实验4 流运算符的重载及文件的使用.doc_第1页
实验4 流运算符的重载及文件的使用.doc_第2页
实验4 流运算符的重载及文件的使用.doc_第3页
实验4 流运算符的重载及文件的使用.doc_第4页
实验4 流运算符的重载及文件的使用.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

西华大学实 验 报 告( 2010/ 2011 学年 第 二 学期)课程名称面向对象程序设计实验名称流运算符的重载及文件的使用实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业实 验 报 告实验名称流运算符的重载及文件的使用实验类型验证实验学时22一、 实验目的和要求(1)掌握在自定义的类中重载输入流运算符和输出流运算符和输出流运算符对象名”输入对象的值,通过“cout对象名”输出对象的值,输出复数值时将原来主函数中“对象名.print( ) ”改成“cout和输出流运算符的重载函数完整代码:ostream &operator(ostream &out,const Complex &a)out0)out+;outa.imagi;out(istream &in,const Complex &a)ina.real;if(a.imag!=0)if(a.imag0)in+;ina.imagi;return in;写出主函数中调用流运算符函数的主要代码(对算术运算符重载函数的调用可以忽略)void main()Complex a1,a2; couta1;couta2;coutoriginal a1 is:a1endl;coutoriginal a2 is:a2、运算符重载的定义及调用,写出完整的程序代码。#includeusing namespace std;template class Complexprivate:T real;T imag;public:Complex(T r=0,T i=0)real=r;imag=i;friend Complex operator+(const Complex &a,const Complex &b); friend Complex operator-(const Complex &a,const Complex &b);friend ostream &operator(istream &in,const Complex &a);Complex operator*(const Complex &a);Complex operator/(const Complex &a);template ostream &operator(ostream &out,const Complex &a)out0)out+;outa.imagi;outendl;return out;template istream &operator(istream &in,const Complex &a)ina.real;if(a.imag!=0)if(a.imag0)in+;ina.imagi;return in;template Complex operator+(const Complex &a,const Complex &b)Complex temp;temp.real=a.real+b.real;temp.imag=a.imag+b.imag;return temp;template Complex operator-(const Complex &a,const Complex &b)Complex temp;temp.real=a.real-b.real;temp.imag=a.imag-b.imag;return temp;template Complex Complex :operator*(const Complex &a)Complex temp;temp.real=real*a.real;temp.imag=imag*a.imag;return temp;template Complex Complex :operator/(const Complex &a)Complex temp;temp.real=real/a.real;temp.imag=imag/a.imag;return temp;void main()Complex a1,a2,a3,a4,a5,a6;couta1;couta2;coutoriginal a1 is:a1endl;coutoriginal a2 is:a2endl;a3=a1+a2;couta3=a1+a2=a3endl; a4=a1-a2;couta4=a1-a2=a4endl;a5=a1*a2;couta5=a1*a2=a5endl;a6=a1/a2;couta6=a1/a2=a6endl;实 验 报 告实验题目(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,最后再调用ReadFile(ff2.txt);显示新文件的内容。实验解答:根据实验提示完成实验,完整的程序代码如下:#include#includevoid ReadFile(char *s);void Change(char *s1,char *s2);void main()ReadFile(ff.txt);Change(ff.txt,ff2.txt);ReadFile(ff.txt);void ReadFile(char *s)char ch100;ifstream inf(s);if(!inf)coutCannot open the file!n; return ; inf.get(ch);coutchendl;inf.close();void Change(char *s1,char *s2)ifstream ifile(ff.txt);if(!ifile)coutff.txt cannot be openned!endl;return ;ofstream ofile(d:tempff2.txt);if(!ofile)coutff2.txt cannot be openned!endl;return ;char ch;while(ifile.get(ch)ch=ch-32;ofile.put(ch);ifile.close();ofile.close();实 验 报 告实验题目(3): 定义学生类,该类包含学生的一些基本信息:学号、姓名、性别、成绩。定义流对象,实现用write函数将学生信息以二进制方式写到磁盘文件stu.dat中。再用read将磁盘中的学生信息读到内存显示在屏幕上,对读出的记录按总分进行排序后,再将学生信息以二进制方式写到磁盘文件stuSort.dat中。程序中定义CreateBiFile( )函数建立二进制文件,定义ReadBiFile( )函数读出二进制文件内容并显示,定义Sort( )函数按总分进行排序。实验解答:根据实验提示,完整的程序代码如下:#include#include#includeclass Studentchar num10;char name10;char sex3;int score;public:Student(char *nu=,char *na=,char *se=,int s=0);friend ostream &operator(ostream &out,const Student &s);Student:Student(char *nu=,char *na=,char *se=,int s)strcpy(num,&nu);strcpy(name,&na);strcpy(sex,&se);score=s;ostream &operator(ostream &out,const Student &s)outn Number:s.num name: sex:s.sex score:s.score;return out;void CreateBiFile(char *filename)ofstream out(filename);Student stu3=0001,王平,女,97;out.write(stu,20);out.close;void ReadBiFile(char *filename)Student stu3;int i=0;ifstream in(filename);while(!in.eof()out 变量名”的输入方式和“cout 表达式”的输出方式实现用户自定义类型数据的输入和输出。2.在文件操作中read 和 write这一对函数适合于读写哪一种类型的数据? read()与write()函数一般成对使用,既可以用于对文本文件的读写,也可以用于对二进制文件的读写,每次读写一个数据块,一般主要用于对二进制文件的读写

温馨提示

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

评论

0/150

提交评论