C++上机实验六 运算符重载与文件输入输出.doc_第1页
C++上机实验六 运算符重载与文件输入输出.doc_第2页
C++上机实验六 运算符重载与文件输入输出.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验六 运算符重载和文件I/O实验内容1、 文件输入输出 从输入文件file.in中读入文件内容,为每一行加上行号后,输出到输出文件“file.out中,最后,输出所读文件总的字符数 实现要求:1). 行号占5个字符宽度,且左对齐; 2). 能处理文件打开错误; 3). 文件字符总数不包括换行符 实现提示:1).利用setw(n)和setiosflags(ios:left)(左对齐)来控制行号的输出(需要在程序中包含头文件iomanip.h); 2).利用长为1000的字符数组作为缓冲区存放读取的一行内容,利用函数istream:getline进行读取一行的操作; 3).利用strlen求字符串长度(需要在程序中包含头文件string.h)实验步骤1).在你的程序目录下创建一个文本文件file.in,在其中输入上面的测试数据 2).完成所要求的程序,该程序读取文件file.in的内容,并产生输出到文件file.out 3).打开文件file.out查看输出的文件内容 程序清单:#include#include#includevoid main()int i=0;ifstream inf;char fname20,buf255;coutfname;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,编写完整的程序进行测试。程序清单:#includeclass complexdouble 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) cout0) 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论