C++实验四.doc

上传人:豆**** 文档编号:29928594 上传时间:2022-08-02 格式:DOC 页数:12 大小:47.50KB
返回 下载 相关 举报
C++实验四.doc_第1页
第1页 / 共12页
C++实验四.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《C++实验四.doc》由会员分享,可在线阅读,更多相关《C++实验四.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验 四 C+的流类库与输入输出实验课程名:面向对象的程序设计专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师: 一、实验目的和要求(1)掌握C+格式化的输入输出方法。(2)掌握重载运算符“”的方法。(3)掌握磁盘文件的输入输出方法。二、 实验内容。1. 下面给出的shiyan4-1.cpp程序用于打印九九乘法表,但程序中存在错误。请上机调试,使得此程序运行后,能够输出如下所示的九九乘法表。* 1 2 3 4 5 6 7 8 91 12 2 43 3 6 9 4 4 8 12 165 5 10 15 20 256 6 12 18 24 30 367 7 14 21 28 35 42

2、 498 8 16 24 32 40 48 56 649 9 18 27 36 45 54 63 72 81/shiyan4-1.cpp#include #include using namespace std;int main() int i,j; cout”*”;for(i=1;i=9;i+)couti” ”;coutendl;for(i=1;i=9;i+) couti” ”; for(j=1;j=i;j+) couti*j” ”;return 0;更正后:#include #include using namespace std;int main() int i,j; cout* ;fo

3、r(i=1;i=9;i+)couti ;coutendl;for(i=1;i=9;i+) couti ; for(j=1;j=i;j+) couti*j ; coutendl; return 0;运行结果:2.下面的程序用于统计文件xyz.txt中的字符个数,请填空完成程序。/shiyan4-2.cpp#include#includeusing namespace std;int main() char ch;int i=0;ifstream file;file.open(“xyz.txt”,ios:in);if( !file ) cout”xyz.txt cannot open”endl;

4、abort();while (!file.eof() file.get(ch) ; i+; cout”文件字符个数:”iendl; file.close(); return 0;3.重载运算符“”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise的框架如下:class merchandisepublic: Merchandiss(); Merchandiss(); friend istream& operator(istream& in,Merchandiss& s); friend ostream&operatormer; co

5、utmer; return 0;程序代码:#include #include using namespace std; class Merchandisepublic:Merchandise(int n=0,char na=a,double p=0.0) no=n;name=na;price=p; Merchandise() friend ostream& operator(ostream& out,Merchandise& s) cout编号:s.noendl;cout名称:s.nameendl; cout价格:s.price(istream& in,Merchandise& s) cout

6、s.no; couts.name; couts.price; return in; private: int no; char name; double price; ; int main() Merchandise mer; cout输入商品信息:mer; cout输出商品信息:endl; coutmer; return 0; 运行结果:4.编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。程序代码:#include #include #include using namespace std; int main() ofstream fout1

7、(f1.txt,ios:out); if(!fout1) coutf1.txt cannt open.n; exit(1); fout1This is a ; ofstream fout2(f2.txt,ios:out); if(!fout2) coutf2.txt cannt open.n; exit(1); fout2str) fout3str; fin2.close(); fout3.close(); ifstream fin1(f1.txt,ios:in); if(!fin1) cout=a&ch=z) ch=ch-32; coutch; coutendl; fin1.close();

8、 return 0; 运行结果:5. 将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函数打开,使用成员函数get与put复制第一个目的文件,使用getline与插入运算符复制第二个目的文件。(提示:用get函数将输入文件流对象的指针指向文件尾后,无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同一源文件,用于两种方式的文件复制。)实验数据:源文件:e:exa.txt,文件内容为souce file目的文件1:e:exb.txt目的文件2:e:exc.txt程序代码:#include#include#includeusing namespace std; void

9、createfile() ofstream outfile(a.txt); if(!outfile) cerropen a.txt error!endl; exit(1); char str100; cin.getline(str,100,n); outfilestr; outfile.close(); void copyfile_b() ofstream outfile(b.txt); if(!outfile) cerropen b.txt error!endl; exit(1); ifstream infile(a.txt); if(!infile) cerropen a.txt erro

10、r!endl; exit(1); char ch; while(infile.get(ch) outfilech; outfile.close(); infile.close(); void copyfile_c() ofstream outfile(c.txt); if(!outfile) cerropen c.txt error!endl; exit(1); ifstream infile(a.txt); if(!infile) cerropen a.txt error!endl; exit(1); char ch; while(infile.get(ch) outfilech; outf

11、ile.close(); infile.close(); void display(char *filename) ifstream infile(filename); if(!infile) cerropen the file error!endl; exit(1); char ch; while(infile.get(ch) cout.put(ch); coutendl; infile.close(); int main() createfile(); copyfile_b(); copyfile_c(); couta文件t中D的内容为:; display(a.txt); coutb文件t

12、中D的内容为:; display(b.txt); coutc文件t中D的内容为:; display(c.txt); return 0; 运行结果:6. 将存放在源文件(e:exarray1.txt)中学生成绩读入二维整型数组a35中,数组a的第0列存放学号,第4列存放平均成绩。计算出每个学生的平均成绩,用擂台法对数组a按平均成绩升序排序后,存放在目的文件(e:exarray2.txt)中。学生的学号与成绩如实验数据所示。编写程序实现上述要求。实验数据:源文件:e:exarray1.txt,内容如下:1001 90 85 80 01002 807060010038580750目的文件:e:exa

13、rray2.txt程序代码:#include#includeusing namespace std; void createfile() ofstream outfile(array1.txt); int a34; int i,j; for(i=0;i3;i+) cout请输入第i+1个学生的信息:; for(j=0;jaij; for(i=0;i3;i+) for(j=0;j4;j+) outfileaij; outfile ; outfilen; /tarray1void sort() /排序并创建文件tarray2 ifstream infile(array1.txt); int a35

14、; int i,j,t; double s=0; for(i=0;i3;i+) for(j=0;jaij; s=s+aij; s=(s-ai0)/3; ai4=s; s=0; for(j=0;j2;j+) for(i=0;iai+14) for(t=0;t5;t+) s=ait; ait=ai+1t; ai+1t=s; ofstream outfile(array2.txt); if(!outfile) cerropen file error!; exit(1); for(i=0;i3;i+) for(j=0;j5;j+) outfileaij; outfile ; outfilen; voi

15、d display_file(char*filename) ifstream infile(filename); if(!infile) cerropen file error!endl; exit(1); int a35; int i,j; for(i=0;i3;i+) for(j=0;jaij; coutaij ; coutendl; coutendl; int main() createfile(); sort(); display_file(array2.txt); return 0; 运行结果:三、 结论 通过本次实验,我掌握C+格式化的输入输出方法,还掌握重载运算符“”的方法,掌握

16、磁盘文件的输入输出方法。12 +法方输类件握,的入输”符载握法输输格 握验过结果;0 ; ( );( ) ; ; ) ; ) ; ,; ;) ; ) !;) ) _ ; ; ; )+ 0 )+ ; ) ; ) ; ; += ;) ) )+; )+ ;0 ;=;/0 +; )+ );0 ;0 ; ; ) ( 件并/) ; ; ; ) ; )+ ;0 )+ ; ;:的学 入) ; ; ;) ) ; 码 . : 0 0 0 下容 ::据求述现序编据实成学学中 文在,序升均组对用成的个出计成放,放存 数 组型维成学 :件存果 ; ; ;:内 文 ) ;内的 ;:容中文 ) ;) ;( ( ) ; ;

17、) . ) ; ) ; ) ) ;) )( ; ) ; ! ) !;) ) ; ! ) ;) ) ) ;( . ) . ; (; ) ; ; ! ) !; )(_ ) ; ;,( 0 ; . ) !;) )( ; 码 : 件 . 内, .:据。文种于文一开件输两只所置件指将后尾指象件入函 用提文二制运插 文个一 与数员,数造均目文,目名两件源将果;0 ;( . ; ; ; - = &= ; ) ; ;(; ) ;: ; .;) ; ( ; ; , ( ;) ) ;( ; ; ; . ) ; ; ;);. 码来来并写换字有中文然个接文本将程果 ; ; ; 息出 息品;价 ; ;:称 ;: ; ; ; . .号 码0 ( 作行类函 下编并 ) ) ) 下架 品如价品号息品。信件和的商入够”符运0 ( * = 数字件 + ; (. * ) ( ) ! ) ,” “ . 0= ( .- 序程填,个 件用程果0 ; ; +; + ;= + ; (* ( 后0 ; ”* + ;= ” +; ” + ; (”* ( ”“符握法出入化+掌要目 师指 点验 : 号 设程象:名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁