C输入输出流实验报告.docx

上传人:b****7 文档编号:23736225 上传时间:2023-05-20 格式:DOCX 页数:19 大小:111.65KB
下载 相关 举报
C输入输出流实验报告.docx_第1页
第1页 / 共19页
C输入输出流实验报告.docx_第2页
第2页 / 共19页
C输入输出流实验报告.docx_第3页
第3页 / 共19页
C输入输出流实验报告.docx_第4页
第4页 / 共19页
C输入输出流实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C输入输出流实验报告.docx

《C输入输出流实验报告.docx》由会员分享,可在线阅读,更多相关《C输入输出流实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

C输入输出流实验报告.docx

C输入输出流实验报告

深圳大学实验报告

实验课程名称:

程序设计实验与课程设计

实验项目名称:

实验10C++流输入与流输出

学院:

计软专业:

计科

报告人:

学号:

班级:

3

同组人:

指导教师:

朱安民

实验时间:

2014年6月16日提交时间:

2014年6月16

声明:

本次实验内容由报告人和同组人独立完成,所有涉及到他人的工作均已说明。

报告人和同组人均同意教师及学校为教学活动而引用本实验的内容,且无需事先征得同意和特别说明。

教务处制

一、实验目的

1.掌握标准输入输出(iostream库中标准对象cin、cout)的使用

2.掌握IO流类成员函数输入输出(cin.get,cin.getline,cin.read;cout.put,cout.write)的使用

3.掌握输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符)控制方法

4.掌握磁盘文件的输入输出方法

二、实验说明和实验环境

1.在奥特曼类的基础上,编写一个程序,重载运算符“》”和“《”,使得用户可以直接(格式化)输出奥特曼的状态。

在主程序中输入若干个(3个)奥特曼的状态,并分别将它们保存到文件RecordU.txt中。

然后读取并显示文件中的内容。

2.奥特曼和怪物都具有属性:

等级,生命,攻击,经验,金钱,都具有方法:

初始化initial和显示状态display

在奥特曼的初始化中,需要接受外来等级参数,生命,攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0

在怪兽的初始化中,需要接受外来等级参数,生命,攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍

对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。

注意:

为了实现运算符《重载,需要包含头文件

经常天降怪石会砸中奥特曼或怪兽,如果被幸运石砸中,就会处于“鸿运当头”状态,被砸对象除等级外其它属性全部翻倍;如果被厄运石砸中,就会陷入“倒霉透顶”状态,被砸对象除等级外其它属性全部减半。

把“鸿运当头”封装成操作,并用重载运算符++来实现;“倒霉透顶”封装成操作,并用重载运算符--来实现。

两个重载都需要用友元方法。

3.奥特曼和怪物经过一番战斗斗,需要中场休息,休息时把各自的属性值存放到一个文件中,休息结束时需要从文件中读取之前的状态继续战斗。

奥特曼和怪物都具有属性:

等级,生命,攻击,经验,金钱,都具有方法:

初始化initial和显示状态display

奥特曼和怪兽的属性值均来自于文件(文件的第一行是奥特曼的数据,初始状态为:

等级是8,生命,攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0,文件的第二行是怪兽的数据,初始状态为等级是4,生命,攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍)

对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。

把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载》运算符作为友元;

把奥特曼和怪兽的值写入文件,要求重载《运算符作为友元

三、实验分析设计

.

四、核心代码说明

第一题

#include

#include

usingnamespacestd;

//类的定义与实现

classUltraman

{

public:

Ultraman();

friendistream&operator>>(istream&input,Ultraman&u){input>>u.rank>>u.hp>>u.damage>>u.exp>>u.money;returninput;}

friendostream&operator<<(ostream&output,Ultraman&u){output<

intrank;

inthp;

intdamage;

intexp;

intmoney;

};

Ultraman:

:

Ultraman()

{

rank=0;

hp=0;

damage=0;

exp=0;

money=0;

}

//主函数

intmain()

{

Ultramanu1,u2,u3;

ofstreamoutfile("RecordU.txt");

cin>>u1>>u2>>u3;

outfile<

outfile.close();

ifstreaminfile("RecordU.txt");

infile>>u1>>u2>>u3;

cout<

infile.close();

return0;

}

第二题

#include

usingnamespacestd;

//奥特曼类

classUltraman

{

public:

voidinitial(int);

voiddisplay();

friendostream&operator<<(ostream&output,Ultraman&u){output<<"urank="<

Ultramanoperator++()

{

rank=rank;

hp=2*hp;

damage=2*damage;

exp=2*exp;

money=2*money;

return*this;

}

Ultramanoperator--()

{

rank=rank;

hp=0.5*hp;

damage=0.5*damage;

exp=0.5*exp;

money=0.5*money;

return*this;

}

private:

intrank;

inthp;

intdamage;

intexp;

intmoney;

};

//奥特曼类的定义

voidUltraman:

:

initial(inta)

{

rank=a;

hp=10*a;

damage=10*a;

exp=0;

money=100*a;

}

voidUltraman:

:

display()

{

cout<<"urank="<

}

//怪兽类

classMonster

{

public:

voidinitial(int);

voiddisplay();

friendostream&operator<<(ostream&output,Monster&m){output<<"mrank="<

Monsteroperator++()

{

rank=rank;

hp=2*hp;

damage=2*damage;

exp=2*exp;

money=2*money;

return*this;

}

Monsteroperator--()

{

rank=rank;

hp=0.5*hp;

damage=0.5*damage;

exp=0.5*exp;

money=0.5*money;

return*this;

}

private:

intrank;

inthp;

intdamage;

intexp;

intmoney;

};

//怪兽类的定义

voidMonster:

:

initial(intb)

{

rank=b;

hp=8*b;

damage=8*b;

exp=80*b;

money=800*b;

}

voidMonster:

:

display()

{

cout<<"mrank="<

}

//主函数

intmain()

{

UltramanU;

MonsterM;

chars;

intk;

U.initial(8);

M.initial(4);

U.display();

cout<

intt;

cin>>t;

while(t--)

{

cin>>s>>k;

if(s=='u')

{

if(k%2==0)++U;

else--U;

U.display();

}

if(s=='m')

{

if(k%2==0)++M;

else--M;

M.display();

}

}

return0;

}

第三题

#include

#include

#include

usingnamespacestd;

//奥特曼类

classUltraman

{

public:

intgetmoney(){returnmoney;}

voidinitial(int);

voiddisplay();

friendistream&operator>>(istream&input,Ultraman&u){input>>u.rank>>u.hp>>u.damage>>u.exp>>u.money;returninput;}

friendostream&operator<<(ostream&output,Ultraman&u){output<<"urank="<

Ultramanoperator++()

{

rank=rank;

hp=2*hp;

damage=2*damage;

exp=2*exp;

money=2*money;

return*this;

}

Ultramanoperator--()

{

rank=rank;

hp=0.5*hp;

damage=0.5*damage;

exp=0.5*exp;

money=0.5*money;

return*this;

}

private:

intrank;

inthp;

intdamage;

intexp;

intmoney;

};

//奥特曼类的定义

voidUltraman:

:

initial(inta)

{

rank=a;

hp=10*a;

damage=10*a;

exp=0;

money=100*a;

}

voidUltraman:

:

display()

{

cout<<"urank="<

}

//怪兽类

classMonster

{

public:

intgetmoney(){returnmoney;}

voidinitial(int);

voiddisplay();

friendistream&operator>>(istream&input,Monster&m){input>>m.rank>>m.hp>>m.damage>>m.exp>>m.money;returninput;}

friendostream&operator<<(ostream&output,Monster&m){output<<"mrank="<

Monsteroperator++()

{

rank=rank;

hp=2*hp;

damage=2*damage;

exp=2*exp;

money=2*money;

return*this;

}

Monsteroperator--()

{

rank=rank;

hp=0.5*hp;

damage=0.5*damage;

exp=0.5*exp;

money=0.5*money;

return*this;

}

private:

intrank;

inthp;

intdamage;

intexp;

intmoney;

};

//怪兽类的定义

voidMonster:

:

initial(intb)

{

rank=b;

hp=8*b;

damage=8*b;

exp=80*b;

money=800*b;

}

voidMonster:

:

display()

{

cout<<"mrank="<

}

//主函数

intmain()

{

UltramanU1,U2;

MonsterM1,M2;

chars;

intt,k;

U1.initial(8);

cout<

M1.initial(4);

cout<

cin>>t;

while(t--)

{

cin>>s>>k;

if(s=='u')

{

if(k%2==0)++U1;

else--U1;

cout<

}

if(s=='m')

{

if(k%2==0)++M1;

else--M1;

cout<

}

}

ofstreamfout("c:

\\123\\um.txt");

fout<

fout<

fout.close();

ifstreamfin2("c:

\\123\\um.txt");

fin2>>U2;

fin2>>M2;

fin2.close();

cout<

return0;

}

五、测试与结果

1和2题通过网上测评系统;

第三题时间时间未掌握好,没有进行测评,但通过vc6.0

六、总结与分析

1.实验基本达到了实验要求,第三题应该能通过测评系统。

2.基本掌握了以下内容:

(1)标准输入输出(iostream库中标准对象cin、cout)的使用

(2)IO流类成员函数输入输出(cin.get,cin.getline,cin.read;cout.put,cout.write)的使用

(3)输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符)控制方法

(4)磁盘文件的输入输出方法

3.实验过程中对某些语句应用不熟练,走了很多弯路,需要加强对编程的练习。

七、参考资料

《C++程序设计》

指导教师批阅意见:

实验报告内容的确完整性

(20分)

实验设计的清晰程度

(20分)

实验数据的准确性

(20分)

实验结果和分析的正确性

(20分)

实验态度(实验表现、格式排版、独立完成、按时提交)(20分)

完整

20

较完整

15

不够完整

10

清晰

20

较清晰

15

不够清晰

10

准确

20

较准确

15

不够准确

10

正确

20

较正确

15

不够正确

10

规范

20

较规范

15

不够规范

10

说明:

说明:

说明:

说明:

说明:

成绩评定:

指导教师签字:

朱安民

2014年6月23日

备注:

注:

1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后15工作日内。

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1