




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告(2014 / 2015 学年第二学期)课程名称面向对象程序设计及C+实验名称实验四:流运算符的重载及文件的使用实验时间 2016年5 月 30 日指导单位 计算机研究中心指导教师陈景强学生姓名班级学号学院(系)专 业实验报告实验名称流运算符的重载及文件的使用指导教师陈景强实验类型验证实验学时2实验时间4一、实验目的和要求(1) 掌握在自定义的类中重载输入流运算符 和输出流运算符 和输出流运算符 对象名”输入对象的值,通过“ cout 对象名”输出对象的值,输出复数值时将原来主函数中“对象名.print()”改成“ cout对象名”形式。在上一步完成的基础上,将复数类改成一个类模板,只
2、设一个模板参数,即实部和 虚部用同一种类型,修改相应的代码,完成输入、输出功能。实验解答:(1) 源代码参考多态性实验第2题。(2) 记录重载operatorvv函数的代码:ostream& operator0)cout+; coutc.imagvvi;coutvvendl;return s;(3)将类改写成类模板:(多态性实验代码中的重载符号仅保留加法+,其他可省略)#in cludeusing n amespace std;template class Complexprivate:T real;T imag;public:Complex(T r=O,T i=0)real=r;imag=i
3、;friend Complex operator+(c onst Complex &a,c onst Complex &b);friend Complex operator-(c onst Complex &a,c onst Complex &b);friend ostream &operator(istream &in,const Complex &a);Complex operator*(c onst Complex &a);Complex operator/(c onst Complex &a);template ostream &operator(ostream &out,c onst
4、 Complex &a)out0)out+;outa.imagi;oute ndl;return out;template istream &operator(istream &in,const Complex &a)in a.real;if(a.imag!=0)if(a.imag0)in +;in a.imagi;return in;template Complex operator+(c onst Complex &a,c onst Complex &b) Complex temp;temp.real=a.real+b.real;temp.imag=a.imag+b.imag;return
5、 temp;template Complex operator-(c onst Complex &a,c onst Complex &b) Complex temp;temp.real=a.real-b.real;temp.imag=a.imag-b.imag;return temp;template Complex Complex :operator*(c onst Complex &a)Complex temp;temp.real=real*a.real;temp.imag=imag*a.imag;return temp;template Complex Complex :operator
6、/(c onst Complex &a)Complex temp;temp.real=real/a.real;temp.imag=imag/a.imag;return temp;void mai n()Complex a1,a2,a3,a4,a5,a6;cout a1;cout a2;coutorig inal al is:a1e ndl; coutorig inal a2 is:a2e ndl; a3=a1+a2; couta3=a1+a2=a3e ndl;a4=a1-a2; couta4=a1-a2=a4e ndl; a5=a1*a2;couta5=a1*a2=a5e ndl; a6=a1
7、/a2;couta6=a1/a2=a6e ndl;实验报告8实验题目2:事先用Windows的记事本建立一个文本文件ff.txt。 编写一个函数void ReadFile(char* s)实现读取以s串为文件名的文本文件的内容 在屏幕上显示。 编写一个函数void Change(char *s1, char *s2)将文本文件中的小写字母全部改写 成大写字母生成一个新文件ff2.txt。 主函数中调用 ReadFile(ff.txt);显示 ff.txt 的内容,调用 Change (ff.txt ,ff2.txt); 根据ff.txt文件作修改生成一个新的文件ff2.txt,最后再调用Rea
8、dFile(ff2.txt);显示新文 件的内容。实验解答:void ReadFile(char *s)char ch100;ifstream in f(s);if(!i nf)coutCa nnot ope n the file!n; return ;in f.get(ch);coutche ndl;in f.close();/请完成代码void Cha nge(char *s1,char *s2)ifstream ifile(ff.txt);if(!ifile)coutff.txt cannot be ope nn ed!e ndl;return ;ofstream ofile(d:tem
9、pff2.txt);if(!ofile)coutff2.txt cannot be ope nn ed!e ndl; return ;char ch;while(ifile.get(ch)ch=ch-32;ofile.put(ch);ifile.close();ofile.close();/请完成代码性stu.dat实验题目3 (选做):定义学生类,该类包含学生的一些基本信息:学号、姓名、 别、成绩。定义流对象,实现用write函数将学生信息以二进制方式写到磁盘文件 中。再用read将磁盘中的学生信息读到内存显示在屏幕上。实验解答:(1)Student:Student(char *nu,char *na,char *se,int s)构造函数ostream & operator(ostream &out,const Student &s)/重载输出运算符 s1s2;/从键盘上输入要操作的文件名Cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源汽车市场营销策略考试题及答案
- 2025年度企业安全生产知识竞赛题库及答案(共197题)
- 电商种草经济崛起下的内容营销策略研究报告
- 空间分析考试题及答案
- 数字彼此关系试题及答案
- 安全工程师考试组织能力试题及答案
- 气瓶使用管理试题及答案
- 2025房地产工程管理面试试题及答案
- 综合岗位面试试题及答案
- 教育行业2025年并购整合策略:产业链升级与创新路径研究报告
- 韦氏测试题及答案
- 历年贵州特岗试题及答案
- 2025怎样正确理解全过程人民民主的历史逻辑、实践逻辑与理论逻辑?(答案3份)
- GB/T 45501-2025工业机器人三维视觉引导系统通用技术要求
- 财务英文词汇大全
- 《基于绘本阅读的幼儿语言能力发展研究(论文)》9300字
- 印巴战争(修改稿)
- 工程项目管理实施方案(5篇)
- 2021年全国质量奖现场汇报材料-基础设施、设备及设施管理过程课件
- 防爆电气失爆判别标准和常见失爆现象汇总
- 10kV高压开关柜整定计算书
评论
0/150
提交评论