实验五:输入输出流答案—专业版

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

1.设计一个职员类EMPLOYEE,主要包括工号、姓名、部门、年龄、工资等属性以及更换部门、年龄变更、工资增长等操作,为EMPLOYEE类提供输入/输出运算“<<”和“>>”。(提示:类EMPLOYEE应有多个重载的构造函数)

/main.cpp

#include "employee.h"

int main(int argc , char *argv[])

{

EMPLOYEE A(200701, "Tom", "DEPARTMENT A",34,2345.6);

cout<

EMPLOYEE B;

cin>>B;

cout<<"输入的信息:"<

return 0;

}

// employee.h

#include

#include

using namespace std;

const int MAX_LEN=100;

class EMPLOYEE{

private:

long id;

char name[MAX_LEN];

char department[MAX_LEN];

int age;

double salary;

public:

EMPLOYEE();

EMPLOYEE(const EMPLOYEE& 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<<(ostream& stream, EMPLOYEE& obj);

friend istream& operator>>(istream& stream, EMPLOYEE& obj);

};

EMPLOYEE::EMPLOYEE()

{

id=000000;

}

EMPLOYEE::EMPLOYEE(const EMPLOYEE& obj) //拷贝构造函数

{

id=obj.id;

strcpy(name,);

strcpy(department,obj.department);

age=obj.age;

salary=obj.salary;

}

EMPLOYEE::EMPLOYEE(long idd, char namee[], char depar[], int agee, double sala) {

id=idd;

strcpy(name,namee);

strcpy(department,depar);

age=agee;

salary=sala;

}

EMPLOYEE::~EMPLOYEE()

{

}

ostream& operator<<(ostream& stream, EMPLOYEE& obj)

{

stream<<"{ "<

stream<

return stream;

}

istream& operator>>(istream& stream, EMPLOYEE& obj)

{

cout<<"输入工号:";

stream>>obj.id;

// 接收键盘上的字符串处理起来比较麻烦。。。。

cout<<"输入姓名:";

stream.ignore(1);

stream.getline(,MAX_LEN,'\n');

cout<<"输入部门:";

stream.ignore(1);

stream.getline(obj.department,MAX_LEN,'\n');

cout<<"输入年龄:";

stream>>obj.age;

cout<<"输入工资:";

stream>>obj.salary;

return stream;

}

2.设计一个管理图书目的简单程序,提供的基本功能包括:可连续将新书存入文件book.dat中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件book.dat中同书名的所有书目信息显示出来。(为简单起见,描述一本书的信息包括:书号,书名,出版社和作者)

//main.cpp

#include

#include

using namespace std;

const int MAX_LEN=20;

// 定义描述书信息的结构体

struct Book{

long id;

char name[MAX_LEN];

char publisher[MAX_LEN];

char author[MAX_LEN];

};

// 向文件book.dat中添加新的一条书的信息

void addBookInfo(Book aBook)

{

ofstream outfile("e:\\book.dat",ios::app|ios::binary);

if(! outfile)

{

cerr<<"open error!"<

相关文档
最新文档