欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++实验四.doc

    • 资源ID:29928594       资源大小:47.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++实验四.doc

    实验 四 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 498 8 16 24 32 40 48 56 649 9 18 27 36 45 54 63 72 81/shiyan4-1.cpp#include <iostream>#include <iomanip>using namespace std;int main() int i,j; cout<<”*”;for(i=1;i<=9;i+)cout<<i<<” ”;cout<<endl;for(i=1;i<=9;i+) cout<<i<<” ”; for(j=1;j<=i;j+) cout<<i*j<<” ”;return 0;更正后:#include <iostream>#include <iomanip>using namespace std;int main() int i,j; cout<<"* "for(i=1;i<=9;i+)cout<<i<<" "cout<<endl;for(i=1;i<=9;i+) cout<<i<<" " for(j=1;j<=i;j+) cout<<i*j<<" " cout<<endl; return 0;运行结果:2.下面的程序用于统计文件xyz.txt中的字符个数,请填空完成程序。/shiyan4-2.cpp#include<iostream>#include<fstream>using 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; abort();while (!file.eof() file.get(ch) ; i+; cout<<”文件字符个数:”<<i<<endl; file.close(); return 0;3.重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise的框架如下:class merchandisepublic: Merchandiss(); Merchandiss(); friend istream& operator>>(istream& in,Merchandiss& s); friend ostream&operator<<(ostream& out,Merchandiss& s);private: int no; char *name; double price;要求实现该类,并编写以下的main函数对该类进行操作。int main() Merchandise mer; cin>>mer; cout<<mer; return 0;程序代码:#include<iostream> #include<string> 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.no<<endl;cout<<"名称:"<<s.name<<endl; cout<<"价格:"<<s.price<<endl; return out; friend istream& operator>>(istream& in,Merchandise& s) cout<<"编号:" cin>>s.no; cout<<"名称:" cin>>s.name; cout<<"价格:" cin>>s.price; return in; private: int no; char name; double price; ; int main() Merchandise mer; cout<<"输入商品信息:"<<endl;cin>>mer; cout<<"输出商品信息:"<<endl; cout<<mer; return 0; 运行结果:4.编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。程序代码:#include<iostream> #include<fstream> #include<string> using namespace std; int main() ofstream fout1("f1.txt",ios:out); if(!fout1) cout<<"f1.txt cannt open.n" exit(1); fout1<<"This is a " ofstream fout2("f2.txt",ios:out); if(!fout2) cout<<"f2.txt cannt open.n" exit(1); fout2<<"program" fout1.close(); fout2.close(); ifstream fin2("f2.txt", ios:in); ofstream fout3("f1.txt", ios:app); string str; while (fin2>>str) fout3<<str; fin2.close(); fout3.close(); ifstream fin1("f1.txt",ios:in); if(!fin1) cout<<"f1.txt cannt open.n" exit(1); char ch; while(!fin1.eof() fin1.get(ch); if(ch>='a'&&ch<='z') ch=ch-32; cout<<ch; cout<<endl; fin1.close(); return 0; 运行结果:5. 将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函数打开,使用成员函数get与put复制第一个目的文件,使用getline与插入运算符复制第二个目的文件。(提示:用get函数将输入文件流对象的指针指向文件尾后,无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同一源文件,用于两种方式的文件复制。)实验数据:源文件:e:exa.txt,文件内容为souce file目的文件1:e:exb.txt目的文件2:e:exc.txt程序代码:#include<iostream>#include<fstream>#include<string>using namespace std; void createfile() ofstream outfile("a.txt"); if(!outfile) cerr<<"open a.txt error!"<<endl; exit(1); char str100; cin.getline(str,100,'n'); outfile<<str; outfile.close(); void copyfile_b() ofstream outfile("b.txt"); if(!outfile) cerr<<"open b.txt error!"<<endl; exit(1); ifstream infile("a.txt"); if(!infile) cerr<<"open a.txt error!"<<endl; exit(1); char ch; while(infile.get(ch) outfile<<ch; outfile.close(); infile.close(); void copyfile_c() ofstream outfile("c.txt"); if(!outfile) cerr<<"open c.txt error!"<<endl; exit(1); ifstream infile("a.txt"); if(!infile) cerr<<"open a.txt error!"<<endl; exit(1); char ch; while(infile.get(ch) outfile<<ch; outfile.close(); infile.close(); void display(char *filename) ifstream infile(filename); if(!infile) cerr<<"open the file error!"<<endl; exit(1); char ch; while(infile.get(ch) cout.put(ch); cout<<endl; infile.close(); int main() createfile(); copyfile_b(); copyfile_c(); cout<<"a文件t中D的内容为:" display("a.txt"); cout<<"b文件t中D的内容为:" display("b.txt"); cout<<"c文件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:exarray2.txt程序代码:#include<iostream>#include<fstream>using namespace std; void createfile() ofstream outfile("array1.txt"); int a34; int i,j; for(i=0;i<3;i+) cout<<"请输入第"<<i+1<<"个学生的信息:" for(j=0;j<4;j+) cin>>aij; for(i=0;i<3;i+) for(j=0;j<4;j+) outfile<<aij; outfile<<' ' outfile<<'n' /tarray1void sort() /排序并创建文件tarray2 ifstream infile("array1.txt"); int a35; int i,j,t; double s=0; for(i=0;i<3;i+) for(j=0;j<4;j+) infile>>aij; s=s+aij; s=(s-ai0)/3; ai4=s; s=0; for(j=0;j<2;j+) for(i=0;i<2-j;i+) if(ai4>ai+14) for(t=0;t<5;t+) s=ait; ait=ai+1t; ai+1t=s; ofstream outfile("array2.txt"); if(!outfile) cerr<<"open file error!" exit(1); for(i=0;i<3;i+) for(j=0;j<5;j+) outfile<<aij; outfile<<' ' outfile<<'n' void display_file(char*filename) ifstream infile(filename); if(!infile) cerr<<"open file error!"<<endl; exit(1); int a35; int i,j; for(i=0;i<3;i+) for(j=0;j<5;j+) infile>>aij; cout<<aij<<' ' cout<<endl; cout<<endl; int main() createfile(); sort(); display_file("array2.txt"); return 0; 运行结果:三、 结论 通过本次实验,我掌握C+格式化的输入输出方法,还掌握重载运算符“<<”和“>>”的方法,掌握磁盘文件的输入输出方法。12 +法方输类件握,的入>输”符载握法输输格 握验过结果;0 ;" ( );( ) ; < ; ' <>) ; ) ; ,; ;) ; < <) !;) ) _ ;< ; < ; )+ 0 )+ ; ) ;" <) ;" " ; += ;) ) )+;< )+ ;0 ;=;/0 +; )+ );0 ;0 ; ; ) "( 件并/) ;'< ;<< ;<< ) ; )+ ;0 )+ ; ;:的学< "入<) < ; ; ;) " ) ; < 码 . : 0 0 0 下容 ::据求述现序编据实成学学中 文在,序升均组对用成的个出计成放,放存 数 组型维成学 :件存果 ; ;" " ;:内 文"< ) ;"内的 " " ;:容中文< ) ;) ;( ( ) ; << ; ) . ) ; < ) ; ) ) ;) < )( ; ) ; <! < ) !;) " ) ; <! < ) ;) " ) ) ;( . < ) . ; (; <" "<) ;" ; ! ") !;" " )(_ ) ;< ;',( 0 ;<< . " ) !;) " )( ; 码 : 件 . 内, .:据。文种于文一开件输两只所置件指将后尾指象件入函 用提文二制运插 文个一 与数员,数造均目文,目名两件源将果;0 ;( . ; < ; < - = &= ; ) ; ;(;" " ) ;: ; .;) ; < > ( ; ; , ( ;) ) ;( ; " ; ;" .< ) ; " ; <);". < ) ; , .( ; > < > < > 码来来并写换字有中文然个接文本将程果 ; ; < ; "息出< > <息品"< )( ; ; ; : ; ; >"价 ; >:称 ;:"<) > ; ; <<" ;< .<"" <.<号< ) ( & ; ) '= 0 ; > > 码0 < ( 作行类函 下编并 ) < )& > ) ) 下架 品如价品号息品。信件和的商入够”><符运0 ( * = <<数字件 + ; (. * ) ( ) < < ! ) ,” “ . 0= ( < < .- 序程填,个 件用程果0 ;< ; < +; "" < + ;= <""< + ; ("*< ( < 后0 ; ”*< + ;= ” << +; <” <<+ ; (”* ( < < . 表法的示如能运程得机上错序,乘九于 - 给容。方入件盘握法方>”“符握法出入化+掌要目 师指 点验 : 号 设程象:名

    注意事项

    本文(C++实验四.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开