




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.(30分)现有文本文件num.txt,其中有若干行整数,每行中的整数用空格隔开,行末的
结束数字为0或1(这两个数字只出现在行末作为特殊含义),0表示需要对该行数字求和
(SUM),1表示需要对该行数字求平均值(AVG)。编写程序将文件num.txt中的数据逐个
读入,根据每行结束数字0或1的要求进行计算,并将结果按行依次存放到文件OUtPUt.txt
中,实例如下图所示。(注意只能用C++的文件库函数,不能用C的库函数)
输入文件num.txt输出文件oulput.txt
2340SUM:9
5671AVG:6
2430SUM:9
81012121AVG:10.5____________
2.(35分)设有一个字符串类MyString的定义如下:
classMyString{
public:
MyString(constchar*s);//构造字符串,使Collnt加一
MyString(constMyStringfeStr);〃构造字符串,使CoUnt加一
"MyStringO;〃析构字符串,使COUnt减一
char*jstr();〃访问字符串(获取当前字符串指针)
booloperator—(constMyString&str);〃两个字符串相等比较
charftoperator[](inti);〃下标访问第i个字符
staticvoidprintCount();〃打印COUnt的值
private:
char*SString;〃用于记录字符串内容,需要分配内存
staticintCOUnt;〃用于记录字符串对象的个数,初始值为0
};
请完成类中所有成员函数和重载运算符的实现代码,并编写主函数对每个函数进行测试。
3.(35分)编写程序计算正方体、圆形和圆柱体的表面积和体积。要求:
(1)设id^一个抽象类ObjeC3包含一个保护数据成员doubledata(它可以作为正方体的边
长、圆形的半径或圆柱体底面圆的半径),构造函数ObjeCl(doubledata),用于求表面积area()
和体积VolUme()的纯虚函数。
(2)由抽象类ObjeCt派生出描述正方体的CUbe类和描述圆形的CirCIe类,再由CirCIe类
派生出描述圆柱体的CyIinder类(增加height表示高度),在这3个类中都有构造函数、以
及用于计算表面积和体积的虚函数的重载实现。要求Cylinder类的area()和volume()函
数实现需要调用其父类CirCle的area。函数实现(即获得底面圆的面积,然后继续计算)。
(3)设计main函数对上述功能进行测试,计算并输出正方体、圆形和圆柱体3种不同类型
对象的表面积和体积。其中对派生类中area()和VOlUme()函数的调用要求使用基类ObjeCt
的指针进行调用。
1.
^include<iostream>
#include<fstream>
usingnamespacestd;
intmainO{
i!streaminfile("num.txt",ios::in);
if(Iinfile){
cout«*Inputfileopenerror!*«endl;
exit(O);
)
Ofstreamoutfile(''output,txt”,ios::out);
if(!outfile){
cout«*0utputfileopenerror!*«endl;
exit(O);
}//--------------至此10分
inti,sum=O,count-O;
while(!infile,eof())(
infile»i;
if(i=O)
(
outfile«zzSUM:"«sum<<“∖n";
sum=O;count=O;
)
elseif(i==1)
{
outfile<<"AVG:"«(double)sum/count<<“∖n";
sum=O;count-O;
)
else
{
sum+=i;
count++;
)
}//--------------至此25分
outfile.close();
infile,closeO;//-------------至此30分
returnO;
}
2.
#include<iostream>
usingnamespacestd;
classMyString{
public:
MyString(constchar*s);//构造字符串,使CoUnt加一
MyString(constMyStringftStr);〃构造字符串,使COUnt加一
'MyStringO;〃析构字符串,使CoUnt减•
char*c_str();〃访问字符串(获取当前字符串)
booloperator—(constMyString&str);//两个字符串相等比较
char&operator[](inti);〃下标访问第i个字符
staticvoidprintCountO;〃打印COUnt的值
private:
char*SString;〃用于记录字符串内容
staticintColmt;〃用于记录字符串对象的个数
);
intMyString::count=0;//-------------3分
MyString::MyString(constchar*s){//--------------4分
ifQs){
sstring=0;
else{
sstring=newchar[strlen(s)+1];
strcpy(sstring,s);
)
count++;
)
MyString::MyString(constMyString&str){//--------------4分
if(!str.sstring){
sstring=0;
)
else{
sstring=newchar[strlen(str.sstring)+1];
strcpy(sstring,str.sstring);
}
count++;
)
MyString::vMyStringO{//--------------4分
if(sstring)delete[]sstring;
count——;
}
char*MyString::c_str(){//-------------------4分
returnsstring;
)
boolMyString::operator==(constMyStringfestr){//-------------------4分
return(strcmp(sstring,str.sstring)?false:true);
)
char&MyString::operator[](inti){//-------------------4分
returnsstring[i];
)
voidMyString::printɛount(){//--------------------2分
cout<<z,Countis"«count«"∖n";
)
intmain(){//-------------------6分
MySlringa("thisisastring.",);
MyStringb(*IlikeC++.”);
MyStringc(b);
MyStiJng::printCount();
if(a二二b){
cout<<z,a==b"«zz«endl;
)
else{
cout<<〃a!=b〃«z/〃«endl;
if(b二二c){
cout«,zb==c〃«〃〃endl;
)
else{
z,,z
cout«b!二c«〃“«endl;
)
c[8]=c[9]=>P,;
cout«"cis"<<c.c_str()«"∖n";
if(b==c){
cout<<"b=c"«"''«endl;
else{
cout«,zb!二c"«〃〃«endl;
)
return0;
)
3.
^include<iostream>
usingnamespacestd;
classObject{//--------------6分
protected:
doubledata;
public:
Object(doubledata){
Object::data=data;
)
virtualdoubleareaO二O;
virtualdoublevolume()二O;
);
classCube:publicObject{//--------------6分
public:
Cube(doubledata):Object(data){};
doublearea(){
returndata*data*6;
}
doublevolumeO{
returndata*data*data;
)
};
classCircle:publicObject{//--------------6分
public:
Circle(doubleradius):Object(radius){};
doublearea(){
return3.1416*data*data;
doublevolume(){
returnO;
}
);
classCyIinder:publicCireIe{//•IO分
doubleheight;
public:
Cylinder(doubleradius,doubleheight):Circle(radius){
Cylinder::height-height;
doublearea()(
return2*3.1416*data*height+2*Circle::areaO;//----注意此处得分点
)
doublevolume(){
returnCircle::area()*height;//----注意此处得分点
)
);
intmain(){//----------------7分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防安全合同管理规定
- 船舶制造材料供应合同
- 新建住宅买卖合同备案流程
- 股权转让合同及相关权益转让协议
- 股权转让居间服务合同样本
- 商铺租赁合同参考模板
- 小班安全玩滑梯课件
- 创业企业的股权结构设计考核试卷
- 方便食品的包装设计与人机工程考核试卷
- 新材料新技术的巨大潜力探索未知的研究领域考核试卷
- 《水利工程质量检测管理规定》知识培训
- 2025年02月贵州省司法厅所属事业单位公开招聘2人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年校长春季开学思政第一课讲话稿1720字例文【供参考】
- 2025至2030年中国单板电磁制动器数据监测研究报告
- 2024年07月国新国证期货有限责任公司(海南)2024年招考2名工作人员笔试历年参考题库附带答案详解
- 人教版数学八年级下册 第17章 勾股定理 单元测试(含答案)
- 国网标书制作流程
- 六年级语文教学学情分析提高六语文质量的措施
- 中医药临床适宜技术
- 银发经济的发展路径
- 工业厂房水电安装施工方案
评论
0/150
提交评论