C++输入输出流实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳大学实验报告

实验课程名称:程序设计实验与课程设计

实验项目名称:实验10 C++流输入与流输出

学院:计软专业:计科

报告人:学号:班级: 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

using namespace std;

//类的定义与实现

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<

int rank;

int hp;

int damage;

int exp;

int money;

};

Ultraman::Ultraman()

{

rank=0;

hp=0;

damage=0;

exp=0;

money=0;

}

//主函数

int main()

{

Ultraman u1,u2,u3;

ofstream outfile("RecordU.txt");

cin>>u1>>u2>>u3;

outfile<

outfile.close();

ifstream infile("RecordU.txt");

infile>>u1>>u2>>u3;

cout<

infile.close();

return 0;

}

第二题

#include

using namespace std;

//奥特曼类

class Ultraman

{

public:

void initial(int);

void display();

friend ostream& operator<<(ostream& output,Ultraman& u){output<<"u rank="<

相关文档
最新文档