- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C上机实验六运算符重载与文件输入输出
试验六 运算符重载和文件I/O
实验内容1? 文件输入输出
从输入文件file.in中读入文件内容,为每一行加上行号后,输出到输出文件“file.out中,最后,输出所读文件总的字符数
[实现要求]1).? 行号占5个字符宽度,且左对齐;
2.? 能处理文件打开错误;
3.? 文件字符总数不包括换行符
[实现提示]:
1.?利用setw和setiosflags(ios::left)来控制行号的输出(需要在程序中包含头文件iomanip.h);
2.?利用长为1000的字符数组作为缓冲区存放读取的一行内容,利用函数istream::getline进行读取一行的操作;
3.?利用strlen求字符串长度(需要在程序中包含头文件string.h)
[实验步骤]
1.?在你的程序目录下创建一个文本文件file.in,在其中输入上面的测试数据
2.?完成所要求的程序,该程序读取文件file.in的内容,并产生输出到文件file.out
3.?打开文件file.out查看输出的文件内容 #includeiostream.h
#includeiomanip.h
#includeifstream.h
void main()
{
int i=0;
ifstream inf;
char fname[20],buf[255];
cout文件名:;
cinfname;
inf.open(fname);
if(!inf)
{
cout不能打开文件fnameendl;
return;
}
while(!inf.eof())
{
inf.getline(buf,sizeof(buf));
i++;
}
couti=iendl;
inf.close();
}
实验内容2、操作符重载:
定义一个复数类Ccomplex,通过重载运算符“*”“/”,直接实现两个复数之间的乘除运算。提示:两复数相乘公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i ,相除公式为:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i,,编写完整的程序进行测试。
程序清单:
#includeiostream.h
class complex
{
double real,imag;
public:
complex(double r,double i){real=r;imag=i;}
complex(){real=0;imag=0;}
void ptint();
friend complex operator*(complex a,complex b);
friend complex operator/(complex a,complex b);
};
void complex::ptint()
{
if (real!=0) coutreal;
if (imag0) cout+;
if (imag!=0) coutimagiendl;
}
complex operator*(complex a,complex b)
{
complex obj;
obj.real=a.real*b.real-a.imag*b.imag;
obj.imag=a.real*b.imag+a.imag*b.real;
return obj;
}
complex operator/(complex a,complex b)
{
complex obj;
double t;
t=1/(b.real*b.real+b.imag*b.imag);
obj.real=(a.real*b.real+a.imag*b.imag)*t;
obj.imag=(b.real*a.imag-a.real*b.imag)*t;
return obj;
}
void main()
{
complex z1(-2.1,5.4),z2(3.4,-1.6),z3;
coutz1=;
z1.ptint();
coutz2=;
z2.ptint();
z3=z1*z2;
coutz1*z2=;
z3.ptint();
z3=z2/z1;
coutz2/z1=;
z3.ptint();
}
运行结果:
您可能关注的文档
- 辽宁省台安县2013-2014学年八年级数学上学期第一次月考试题.doc
- 辽宁省台安县2013-2014学年八年级生物上学期第一次月考试题.doc
- 辽宁省台安县2013-2014学年八年级数学上学期期中试题.doc
- 辽宁省台安县2013-2014学年八年级英语上学期期中试题.doc
- 辽宁省台安县2013-2014学年八年级语文上学期第一次月考试题.doc
- 辽宁省台安县2013-2014学年八年级语文上学期期中试题.doc
- 辽宁省台安县2013-2014学年度七年级生物上学期期中试题.doc
- 辽宁省台安县2013-2014学年度上学期七年级数学第一次月考试题人教版.doc
- 辽宁省台安县2013-2014学年度九年级英语上学期期中试卷.doc
- 辽宁省台安县2013年七年级(下)期中考试数学试题(含答案).doc
文档评论(0)