C++实验四.docx

上传人:罗晋 文档编号:6110048 上传时间:2020-09-11 格式:DOCX 页数:12 大小:37.54KB
返回 下载 相关 举报
C++实验四.docx_第1页
第1页 / 共12页
C++实验四.docx_第2页
第2页 / 共12页
C++实验四.docx_第3页
第3页 / 共12页
C++实验四.docx_第4页
第4页 / 共12页
C++实验四.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C++实验四.docx》由会员分享,可在线阅读,更多相关《C++实验四.docx(12页珍藏版)》请在三一文库上搜索。

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

2、827364554637281/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* ;for(i=1;i=9;i+)couti ;coutendl;for(i=1;i=9

3、;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;(“xyz.txt”,ios:in);if( !file)cout”xyz.txt cannot open ”endl;abort();while (!() (ch) ;.i+;cout ”文件字符个数:”iendl; ();

4、return 0;3.重载运算符“”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise 的框架如下:class merchandisepublic:Merchandiss();Merchandiss();friend istream& operator(istream& in,Merchandiss& s);friend ostream&operatormer; coutmer;return 0;程序代码:#include#includeusing namespace std;class Merchandisepublic:Mer

5、chandise(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)couts.no;couts.name;couts.price;return in;private:int no;char name;double price;int main()

6、Merchandise mer;cout 输入商品信息: mer;cout 输出商品信息: endl;coutmer;return 0;运行结果:4.编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。程序代码:#include#include#includeusing namespace std;int main() ofstream fout1(f1.txt,ios:out); if(!fout1) coutf1.txt cannt open.n; exit(1);.fout1This is a ;ofstream fout2(f2.txt,i

7、os: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();return 0;运行结果:5. 将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函数打开,使用成员.函数 get 与 put 复制第一个目的文件,使用getline 与插入运算符复制第二个目的文件。(提示:

8、用 get 函数将输入文件流对象的指针指向文件尾后,无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同一源文件,用于两种方式的文件复制。)实验数据:源文件: e:exa.txt ,文件内容为souce file目的文件 1: e:exb.txt目的文件 2: e:exc.txt程序代码:#include#include#includeusing namespace std;voidcreatefile()ofstream outfile(a.txt);if(!outfile)cerropen a.txt error!endl;exit(1);char str100;cin.get

9、line(str,100,n);outfilestr;out();voidcopyfile_b()ofstream outfile(b.txt);if(!outfile)cerropen b.txt error!endl;exit(1);ifstream infile(a.txt);if(!infile)cerropen a.txt error!endl;exit(1);char ch;.while(in(ch)outfilech;out();in();voidcopyfile_c()ofstream outfile(c.txt);if(!outfile)cerropen c.txt erro

10、r!endl;exit(1);ifstream infile(a.txt);if(!infile)cerropen a.txt error!endl;exit(1);char ch;while(in(ch)outfilech;out();in();void display(char *)ifstream in);if(!infile)cerropen the !endl;exit(1);char ch;while(in(ch).cout.put(ch);coutendl;in();intmain()createfile();copyfile_b();copyfile_c();couta 文件

11、t 中 D 的内容为 :;display(a.txt);coutb 文件 t 中 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.tx

12、t ,内容如下:100190858001002807060010038580750目的文件: e:exarray2.txt程序代码:#include#includeusing namespace std;voidcreatefile()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() / 排序并创建文件ta

13、rray2ifstream infile(array1.txt);int a35;int i,j,t;doubles=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 !;exit(1);for(i=0;i3;i+)for(j=0;j5;j+)outfileaij;outfile ;outfilen;void display_*).ifstream in);if(!infile)cerropen !endl;exit(1);int a35;int i,j;for(i=0;i3;i+)for(j=0;jaij;coutaij ;coutendl;coutendl;intmain()createfile();sort();display_file(array2.txt);return 0;运行结果:.三、结论通过本次实验,我 掌握 C+格式化的输入输出方法,还掌握重载运算符“ ”的方法,掌握磁盘文件的输入输出方法。.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1