C输入输出流实验报告_第1页
C输入输出流实验报告_第2页
C输入输出流实验报告_第3页
C输入输出流实验报告_第4页
C输入输出流实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。深圳大学实验报告实验课程名称:程序设计实验与课程设计实验项目名称:实验10 C+流输入与流输出学院:计软 专业:计科报告人:学号:班级:3同组人:无指导教师:朱安民实验时间:2014年6月16日 提交时间:2014年6月16声明:本次实验内容由报告人和同组人独立完成,所有涉及到他 人的工作均已说明。报告人和同组人均同意教师及学校为教学活 动而引用本实验的内容,且无需事先征得同意和特别说明。教务处制一、实验目的1 .掌握标准输入输出(iostream库中标准对象cin、cout)的使用2 .掌握 IO 流类成员函数输

2、入输出(cin.get, cin.getline, cin.read; cout.put, cout.write)的使用3 .掌握输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符) 控制方法4 .掌握磁盘文件的输入输出方法二、实验说明和实验环境1 .在奥特曼类的基础上,编写一个程序,重载运算符“”和“”,使得用户可 以直接(格式化)输出奥特曼的状态。在主程序中输入若干个(3个)奥特曼 的状态,并分别将它们保存到文件RecordU.txt中。然后读取并显示文件中的内 容。2 .奥特曼和怪物都具有属性:等级,生命,攻击,经验,金钱,都具有方法:初 始化initial和显示状态

3、display在奥特曼的初始化中,需要接受外来等级参数,生命,攻击的数值初始化为 等级的10倍,金钱为等级的1。0倍,经验恒为。在怪兽的初始化中,需要接受外来等级参数,生命,攻击的数值初始化为等 级的8倍,经验为等级的80倍,金钱为等级的800倍对怪兽和奥特曼的状态输出采用运算符重载的方法,并结合display方法 使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符,不能直 接使用display方法。注意:为了实现运算符重载,需要包含头文件viomanip>经常天降怪石会砸中奥特曼或怪兽,如果被幸运石砸中,就会处于“鸿运当 头”状态,被砸对象除等级外其它属性全部翻倍;如果被厄运

4、石砸中,就会陷入“倒 霉透顶”状态,被砸对象除等级外其它属性全部减半。把“鸿运当头”封装成操作, 并用重载运算符+来实现;“倒霉透顶”封装成操作,并用重载运算符-来实现。 两个重载都需要用友元方法。3 .奥特曼和怪物经过一番战斗斗,需要中场休息,休息时把各自的属性值存放 到一个文件中,休息结束时需要从文件中读取之前的状态继续战斗。奥特曼和怪物都具有属性:等级,生命,攻击,经验,金钱,都具有方法:初 始化initial和显示状态display奥特曼和怪兽的属性值均来自于文件(文件的第一行是奥特曼的数据,初始 状态为:等级是8,生命,攻击的数值初始化为等级的10倍,金钱为等级的100 倍,经验恒为

5、0,文件的第二行是怪兽的数据,初始状态为等级是4,生命,攻 击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍)对怪兽和奥特曼的状态输出采用运算符重载的方法,并结合display方法 使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符,不能直 接使用display方法。把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载运算符作为友元; 把奥特曼和怪兽的值写入文件,要求重载运算符作为友元三、实验分析设计主函数int nain()cout«M1;累U1和吗表示奥隹曼和怪兽 数变量情叫字和变量5,并调用displ四方法输出状态cin»t;while(

6、t)< cin»s>>k;如果2等于小用爰母巴,碧特曼被砸中如用急嬲,丽亍一否则,U1执彳亡二_通和工s p 1 *历法率硬臂受沸态如果2等于小月芝母叫择兽曲酣如用包嬲,H1执行一否则,M1执行一cout<<M1;return O;friend ifstreamS operator >>( if streams in ? Monster &m)friend ofstreamd operator<<(ofstream5 out,Monster dm)Iword格式支持编辑,如有帮助欢迎下载支持,ttinclude <i

7、ostream>ttinclud© <iomanip>include <fstream> using namespace etd;|/主函数int main。( UltraMan U1;Monster M1; int t, k; char g;UI.initial(8);cout<<U1;Ml.initial(H);cout<<M1;ifstream f in( "c: 123um. txf); 打开文件准备读取数据/* fin»Ul ;从文件中读第一行数据赋值给奥特曼对象cout<<U1;fin&

8、#187;M1 ;从文件中读第二行数据赋值给奥特曼对象cout<<M1;fin.close();头/cin>>t;while(t) cin>>s>>k;if (e = 'u') if ( k%2 = O )十+U1 ;else-U1 ;cout<<U1;)if (s = 'm') if ( k%2 = 0 )+M1 ;else-M1:cout<<M1;)t-;)ofstream foutCBc:123um1 . txt '); 打开文件准备写入数据fout«U1 ;把奥特曼

9、对象的值写入文件fout«M1 ;把怪兽对象的值写入文件fout close();ifstrean fin2(-c:123um1 .txt'); 打开文件准备写入数据fin2»U2;从文件读取奥特曼对象的值fin2»M2 ;从文件读取怪兽对象的值fin2.close();cout<<U2.getmoney()+M2.getmonGy()<<endl;return 0;四、核心代码说明第一题#include<fstream>#include<iostream> using namespace std;类的定义与

10、实现class Ultraman ( public:Ultraman();friend istream & operator »(istream &input,Ultraman &u)input»u.rank»u.hp»u.damage»u.exp»u.money;return input;friend ostream & operator «(ostream &output,Ultraman &u)output«u.rank«H H«u.hp&#

11、171;H H«u.daniage«H H«u.exp«H H«u.money«H K;return output;)int rank;文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。int hp;int damage;int exp;int money;Ultraman: :Ultraman() (rank=0;hp=O;damage=0;exp=0;money=0;)主函数 int main() (Ultraman ul,u2,u3;ofstream outfile(nRecordU.txtH);c

12、in»u 1 »u2»u3;outfile«u 1 «u2«u3;outfile.close();ifstream infile(HRecordU.txt");infile»u I»u2»u3;cout«ul«endl«u2«endl«u3«endl;infile.close();return 0;第二题#include<iostreani> using namespace std;奥特曼类class Ultraman (

13、public:void initial(int);void displayO;friend ostreani& operator«(ostream& output,UItraman& u)output«Mu rank=H«u.rank«H hp=H«u.hp«H damage=H«u.damage«H exp=H«u.exp«M money=H«u.money«endl;return output;)Ultraman operator +() (ran

14、k=rank;hp=2*hp;damage=2 * damage;文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。exp=2*exp;money=2*money;retum*this;)Ultraman operator -() rank=rank;hp=0.5*hp;damage=0.5*damage;exp=0.5*exp;money=0.5*money;retum*this;) private:int rank;int hp;int damage;int exp;int money;奥特曼类的定义void Ultraman:initial(int a)(r

15、ank=a;hp=10*a;damage=10*a;exp=0;money=100*a;) void Ultraman:display()(cout«Hu rank=M«rank«H hp=M«hp«H damage=H«damage«H exp=H«exp«M money=H«money«endl;)怪兽类class Monster public:void initial(int);void display();friend ostream& operator«(o

16、streani& output,Monster&m)output«Hm rank=M«m.rank«H hp=H«m.hp«H damage=H«m.damage«M exp=H«m.exp«n money=H«m.money«endl;return output;)Monster operator +()文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 rank=rank;hp=2*hp;damage=2 * damage;exp=2*

17、exp;money=2*money;retum*this;)Monster operator "()rank=rank;hp=0.5*hp;damage=0.5*damage;exp=0.5*exp;money=0.5*money;retum*this;private:int rank;int hp;int damage;int exp;int money;怪兽类的定义void Monster:initial(int b)(rank=b;hp=8*b;damage=8*b;exp=80*b;money=800*b;)void Monster:display()(cout«H

18、m rank=H«rank«M hp=H«hp«H damage=H«damage«H exp=H«exp«n money=H«money«endl;)主函数int main()(Ultraman U;Monster M;char s;int k;文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。U.initial(8);M.initial(4);U.di 叩 lay();cout«M;int t;cin»t;while(t-)(cin»

19、;s»k;if(s='u,)(if(k%2=0) +U;else -U;U.displayO;)if(s=,m,)(if(k%2=0) +M;else -M;M.displayO;)return 0;)第三,#include<iostreani>#include<fstream>#include<iomanip> using namespace std;奥特曼类class Ultraman ( public:int getmoney() return money;) void initial(int);void displayO;frien

20、distream&operator»(istream&input,Ultraman&u)input»u.rank»u.hp»u.daniage»u.exp»u.money;return input;)friend ostreani& operator«(ostream& output,Ultraman& u)output«Hu rank=M«u.rank«H hp=H«u.hp«M damage=H«u.damage&

21、#171;H exp=H«u.exp«M money=H«u.money«endl;return output;)Ultraman operator +() (rank=rank;hp=2*hp;12word格式支持编辑,如有帮助欢迎下载支持.文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 damage=2 * d amage;exp=2*exp;money=2*money;retum*this;)Ultraman operator -() (rank=rank;hp=0.5*hp;damage=0.5*damage;e

22、xp=0.5*exp;money=0.5*money;retum*this;) private:int rank;int hp;int damage;int exp;int money;;奥特曼类的定义void Ultraman:initial(int a) rank=a;hp=10*a;damage=10*a;exp=0;money=100*a;)void Ultraman:display() (cout«Hu rank=M«rank«n hp=M«hp«H damage=H«damage«H exp=H«exp

23、«M money=H«money«endl;)怪兽类class Monster ( public:int getnioney()return money; void initial(int);void display();friendistream&operator»(istream&input,Monster&m)input»m.rank»m.hp»m.damage»m.exp»m.money;return input;friend ostream& operator&#

24、171;(ostream& output,Monster&m)output«Hm lOword格式支持编辑,如有帮助欢迎下载支持。文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 rank=M«m.rank«H hp=M«m.hp«H damage=H«m.damage«H exp=H«m.exp«M money=H«m.money«endl;return output;)Monster operator +()(rank=rank;hp

25、=2*hp;damage=2 * damage;exp=2*exp;money=2*money;retum*this;)Monster operator "()rank=rank;hp=0.5*hp;damage=0.5*damage;exp=0.5*exp;money=0.5*money;retum*this;)private:int rank;int hp;int damage;int exp;int money;怪兽类的定义void Monster:initial(int b) (rank=b;hp=8*b;damage=8*b;exp=80*b;money=800*b;) v

26、oid Monster:display()(cout«nm rank=H«rank«M hp=H«hp«H damage=H«damage«H exp=H«exp«M nioney=M«money«endl;)主函数int main() (文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。Ultraman U1JJ2;Monster Ml,M2; char s; int t,k;Ul.initial(8);cout«U 1;Ml.initial(

27、4);cout«M 1;cin»t; while(t-) cin»s»k;if(s='u,) (if(k%2=0) +U1;else -U1;cout«U 1;) if(s=,m,) ( if(k%2=0) +M1; else -M1; cout«Ml;) ) ofstream fout(,c:123um.txtH); fout«U 1; fout«Ml;fout.closeO;ifstream fin2(Hc:l 23um.txtH);fin2»U2;fin2»M2;fin2.clos

28、e();cout«U l.getmoney()+M 1 .getnioney()«endl;return 0: )五、测试与结果1和2题通过网上测评系统;106235 2012150254AAccepted12684C一任而692 B2014-06-16 16:31:47106281 2012150254BAccepted12684C+/Edit2375 B2014-06-16 17 02:44第三题时间时间未掌握好,没有进行测评,但通过VC6.012word格式支持编辑,如有帮助欢迎下载支持.文档从互联网中收集,己重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。LI n S u ii it U */ It u n n n n n rn n mrank=8rank=4)p=80 damage =80 exp=0 money =800 )p=32 damage=32 exp=320 money=32006 rank-84hp-i60damage=160exp-0money=1600ran

温馨提示

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

评论

0/150

提交评论