c语言cin cou头文件,c+第五次实验

《c+第五次实验》由会员分享,可在线阅读,更多相关《c+第五次实验(19页珍藏版)》请在人人文库网上搜索。

1、天津理工大学计算机与通信工程学院实验报告2013 至 2014 学年 第 二 学期课程名称高级语言程序设计II实验( 5 )实验名称IO流类库模板实验时间2014年 5月12 日 第 3 节 至 第 6 节学号姓名专业信息安全 主讲教师唐召东辅导教师唐召东软件环境VC+6硬件环境PC机实验目的1掌握标准输入输出流的使用方法和作用;2了解字符串流的定义与使用;3. 掌握运用成员函数和操纵符进行格式化输入/输出的方法;4. 掌握流的插入/提取操作的重载方法;5. 掌握文件流的打开、关闭及使用的使用方法;6了解文本文件流与二进制文件流在操作上的区别。7掌握MS Visual C+6.0调试C+程序的。

2、基本方法、基本步骤。实验内容(应包括实验题目、实验要求、实验任务等)1设计一个职员类EMPLOYEE,主要包括工号、姓名、部门、年龄、工资等属性以及更换部门、年龄变更、工资增长等操作,为EMPLOYEE类提供输入/输出运算“”。(提示:类EMPLOYEE应有多个重载的构造函数)题目说明:1)类EMPLOYEE的定义可以参考如下:class EMPLOYEEprivate:long id;char nameMAX_LEN;char departmentMAX_LEN;int age;double salary;public:EMPLOYEE();EMPLOYEE(const EMPLOYEE& 。

3、obj);EMPLOYEE(long idd, char namee, char depar, int agee, double sala);EMPLOYEE();void changeDepartment(char newDepar);void changeAge(int agee);void raiseSalary(double delta);/ 定义友元函数,提供输入/输出运算。friend ostream& operator(istream& stream, EMPLOYEE& obj); 2)主函数如下所示:void main()EMPLOYEE A(, Tom, DEPARTMEN。

4、T A,34,2345.6);coutB;cout”,使之能用于矩阵的输入和输出;重载“+”运算符使之能用于矩阵求和:c=a+b。3设计一个管理图书目的简单程序,提供的基本功能包括:可连续将新书存入文件book.dat中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件book.dat中同书名的所有书目信息显示出来。(为简单起见,描述一本书的信息包括:书号,书名,出版社和作者)题目要求:1)/ 定义描述书信息的结构体struct Booklong id;char nameMAX_LEN;char publisherMAX_LEN;char authorMAX_LEN;2)定义函数。

5、实现:/ 向文件book.dat中添加新的一条书的信息void addBookInfo(Book aBook);/ 从文件book.dat中读出书名为namee的所有书的记录void selectBook(char namee);3)主函数中用一个演示程序完成对所设计的新类的功能测试,并给出测试数据和实验结果:void main()Book aBook=2001, Star, yahoo, Li Ming;Book bBook=2002, Boold, Sina, Tom Berry;Book cBook=2003, Star, google, Li Ming;addBookInfo(aBoo。

6、k);addBookInfo(bBook);addBookInfo(cBook);selectBook(Star);3建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作:从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件中放10个整数);从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面;从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。4. 针对学生类,利用本章中学到的文本文件的顺序、随机读写,二进制文件的顺序、随机读写函数,实现下列功能:1)学生基本信息由学号(长整型)、姓名(字符数组)、性别(字符型)、年龄(。

7、整型)、数学成绩(float)、语文成绩(float)、英语成绩(float)组成。学生类的定义可以参考如下:/定义Student类的子类class Studentpublic:long id;char name20;int age;float math;float chinese;float english;public:Student();Student(long l,char NAME,int a);Student(long l,char NAME,int a,float m, float c, float e);/ 特殊的构造函数:拷贝构造函数Student(const Student。

8、& other);/ 重载赋值运算符Student operator =(const Student& other);Student();void setId(long l);long getId();void setName(char NAME); void setAge(int a);int getAge();void setAll(float m, float c, float e);/ 利用友元函数:重载输出运算符friend ostream& operator (istream& stream, Student& obj);2)文本文件的顺序读写:定义fstream的对象ioFile。

9、,与文件“a.txt”建立关联,创建两个对象,Student s1(,Jerry,18);Student s2(,Jack,19,78.5,89.5,93.0);将s1、s2的学号、年龄、平均分的数据写入文件“a.txt”,并从文件“a.txt”中读出。3)二进制文件的顺序读写:定义ofstream 的对象outfile与文件“stud.dat”建立关联,创建三个对象,Student s1;Student s2(,Jerry,18);Student s3(,Jack,19,78.5,89.5,93.0);将s1、s2、s3的全部信息写入到文件“stud.dat”定义ifstream 的对象in。

10、file与文件“stud.dat”建立关联,从文件“stud.dat”依次读出三个对象的信息到数组Student stud3中,并将三个对象的信息在屏幕上输出:cout#includeclass EMPLOYEEprivate:long id;/工号、姓名、部门、年龄、工资char name20;char department50;int age;double salary;public:EMPLOYEE();EMPLOYEE(const EMPLOYEE& obj);EMPLOYEE(long idd, char namee, char depar, int agee, double sal。

11、a);EMPLOYEE();void changeDepartment(char newDepar);void changeAge(int agee);void raiseSalary(double delta);/ 定义友元函数,提供输入/输出运算。friend ostream& operator(istream& stream, EMPLOYEE& obj); EMPLOYEE:EMPLOYEE()id=0;name0=0;/字符数组的初始化department0=0;/字符数组的初始化age=0;salary=0;EMPLOYEE:EMPLOYEE(long idd, char name。

12、e, char depar, int agee, double sala)id=idd;strcpy(name,namee);strcpy(department,depar);age=agee;salary=sala;EMPLOYEE:EMPLOYEE()cout(istream& stream, EMPLOYEE& obj)coutobj.id;coutobj.name;coutobj.department;coutobj.age;coutobj.salary;return stream;void main()EMPLOYEE A(, Tom, DEPARTMENT A,34,2345.6)。

13、;coutB;coutclass Matrixpublic:Matrix();friend Matrix operator + (Matrix &,Matrix &);friend ostream& operator(istream &,Matrix &);private:int mat23;/定义数组;Matrix:Matrix()/构造函数里对多维数组初始化for(int i=0;i(istream & in,Matrix &m)coutm.matij;return in;ostream &operatora;cinb;cout#includestruct Booklong id;/idc。

14、har name30;/书名char publisher30;/出版社char author20;/作者;void addBookInfo(Book dBook4)/ 向文件book.dat中添加新的一条书的信息/Book aBook4=2001, Star, yahoo, Li Ming;ofstream add(book.dat,ios:binary|ios:app);if(!add)cout#includeusing namespace std;int main()int i,t,j;int a10;int b21;ofstream outfile1(f1.dat,ios:out);co。

15、utai;outfile1ai;outfile2ai;infile1.close();ofstream outfile3(f2.dat,ios:app);for(i = 0;i bi;infile2.close();for(j = 0;j bi+1)t = bi;bi = bi+1;bi+1 = t;ofstream outfile4(f2.dat,ios:out);for(i = 0;i bi;cout#include#includeclass Studentpublic:long id;char name20;int age;float math;float chinese;float e。

16、nglish;public:Student();Student(long l,char NAME,int a);Student(long l,char NAME,int a,float m, float c, float e);Student(const Student& other);/ 特殊的构造函数:拷贝构造函数Student operator =(const Student& other);/ 重载赋值运算符Student();void setId(long l);long getId();void setName(char NAME); void setAge(int a);int 。

17、getAge();void setAll(float m, float c, float e);friend ostream& operator friend istream& operator (istream& stream, Student& obj);Student:Student()id=;name20=0;/字符数组初始化age=20;math=90;chinese=90;english=90;Student:Student(long l,char NAME,int a)id=l;strcpy(name,NAME);age=a;math=90;chinese=90;english=。

18、90;Student:Student(long l,char NAME,int a,float m, float c, float e)id=l;strcpy(name,NAME);age=a;math=m;chinese=c;english=e;Student:Student(const Student& other)/拷贝构造函数id=other.id;strcpy(name,other.name);age=other.age;math=other.math;chinese=other.chinese;english=other.english;Student Student:operat。

19、or =(const Student& other)/ 重载赋值运算符id=other.id;strcpy(name,other.name);age=other.age;math=other.math;chinese=other.chinese;english=other.english;return *this;Student:Student()cout(istream& stream, Student& obj)/重载输入运算符streamobj.id;streamobj.name;streamobj.age;streamobj.math;streamobj.chinese;streamo。

20、bj.english;return stream;int main()int a;char ch;Student s1(,Jerry,18);Student s2(,Jack,19,78.5,89.5,93.0);fstream ioFile(a.txt,ios:in|ios:out);if(!ioFile)coutstud3;coutendl;for(int i=0;i3;i+)infile.read(char *) &studi,sizeof(studi);cout输入第 i+1 个学生的信息:nstudiendl;char ch1;coutendl;coutstud.dat内容n;cou。

21、t另一种方式输出n;while(infile.get(ch1)coutch1;infile.close();Student e1(1,张三,23,10,20,30);Student e2(2,李四,32,20,30,40);Student e3(3,王五,34,30,40,50);Student e4(4,刘六,27,40,50,60);ofstream outfile1(stud1.dat,ios:binary);if(!outfile1)coutcannot open stud1.datn;/abort();outfile1e1endle2endle3endle4endl;/输入内容stud1.date3.setAge(40);outfile1.close();ifstream infile1(stud1.dat,ios:binary);coutendl;coutstud1.dat内容n;cout一种方式输出n;char ch2;while(infile1.get(ch2)coutch2;char str3;infile1.read(char *) &str3,sizeof(str3);/输出第三个人的信息cout输出第三个人的信息:str3endl;Student s6=e3;couts6endl;return 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值