C++上机实验六 运算符重载与文件输入输出.docVIP

C++上机实验六 运算符重载与文件输入输出.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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(); } 运行结果:

文档评论(0)

cbf96793 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档