




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年国际贸易与商务管理综合测试题及答案
- 2025年公共运输管理与服务考试试题及答案
- 《连锁门店店长管理实务》课件项目7门店促销活动管理
- 华为x86服务器培训
- 与建筑专业给排水培训
- 留置导尿患者护理常规
- 分级护理管理质控
- Unit1 This is me understanding ideas 课件 外研版英语八年级上册
- 2025年法律与社会公正的重要题目及答案
- 2024年深圳市中考生物试卷真题(含答案解析)
- 沟通与演讲2023学习通超星课后章节答案期末考试题库2023年
- 消防管理检查评分表
- 制造执行系统SMT MES解决方案
- 高二区域地理 撒哈拉以南的非洲课件
- 数字化精密加工车间项目可行性研究报告建议书
- 2022年《内蒙古自治区建设工程费用定额》取费说明
- Q∕GDW 10799.6-2018 国家电网有限公司电力安全工作规程 第6部分:光伏电站部分
- 宁波市建设工程资料统一用表(2022版)1 通用分册
- 危险化学品安全技术说明书MSDS—汽油
- 三甲医院必备医疗设备清单大全
评论
0/150
提交评论