图书馆管理程序报告 下载本文

程序设计综合课程设计

void set_rtel(char *rt) //设置电话

{strcpy(rtel,rt);}

char *get_rtel() //获得电话 {return rtel;}

void copy(Reader m) //读者Reader结构体copy函数

{strcpy(rname,m.get_rname());strcpy(rclass,m.get_rclass());strcpy(rtel,m.get_rtel());}

};

//*********读者管理结构体,实现对读者用户的管理********* class ReaderManage {

Reader readers[50]; //定义读者结构体数组对象,最多50位 int length;

void readFile() //读取读者文件函数

{

ifstream fread; //定义输入文件流对象fread

length=0; //计数 if(!fread)

{cout<<\读取磁盘文件失败!\

fread.open(ReaderFile,ios::binary);//使文件流与文件关联,以二进制方式打开

int i=0;

while((fread.read((char *)&readers[i],sizeof(Reader))))//计算并

返回所占字节数

i++;

length=i;

fread.close();//关闭磁盘文件

}

19

程序设计综合课程设计

void saveFile() //保存读者文件 {

ofstream fwrite; //定义输出文件流对象fwrite

if(!fwrite)

{cout<<\文件保存失败!\\n\

fwrite.open(ReaderFile,ios::binary);//使文件流与文件关联,以二

进制方式打开

fwrite.write((char *)readers,length*sizeof(Reader));//计算并返

回所占字节数

fwrite.close(); //关闭磁盘文件

}

public:

ReaderManage() //构造函数,读取读者文件

{readFile();}

~ReaderManage() //析构函数,保存读者文件 {saveFile();}

void add_reader(Reader r) //添加读者用户函数

{

if(length>=50)

{cout<<\对不起,注册人数已满!\\n\

readers[length].copy(r); //调用读者结构体copy函数 length++;

}

int search(char *rn) //按姓名查找读者函数 {

for(int i=0;i

if(strcmp(readers[i].get_rname(),rn)==0)//判断是否相等

return i;

return -1;

20

程序设计综合课程设计

}

bool revise(Reader reader,int i) //修改读者资料函数 { }

void delete_reader(int index) //删除读者函数 { }

bool log_reader(Reader r) //登录时判断读者用户是否存在函数 { }

void reg_reader() //注册用户函数 {

char n[10]; //姓名name char c[10]; //班级class char t[10]; //电话tel for(int i=0;i

if(strcmp(readers[i].get_rname(),r.get_rname())==0)

return true;

for(int i=index;i

readers[i].copy(readers[i+1]); //用后面的地址覆盖前面的地址 readers[i].copy(reader); //调用读者结构体cpoy函数 return true;

length--;

return false;

Reader reader;

cout<<\请输入您的姓名:\ cin>>n;

cout<<\请输入您的所在班级:\ cin>>c;

cout<<\请输入您的联系电话:\

21

程序设计综合课程设计

cin>>t;

reader.set_rname(n); //调用读者结构体设置读者姓名函数 reader.set_rclass(c); //调用读者结构体设置读者班级函数 reader.set_rtel(t); //调用读者结构体设置联系电话函数 add_reader(reader); //调用读者结构体添加读者函数

}

void show_reader() //不带参的显示读者信息函数 {

cout<<\读****者****信****息****列****cout<<\注册成功!\

表**********************\\n\\n\

cout<<\姓名\\t\\t\\t班级\\t\\t\\t电话\\n\ for(int i=0;i

}

void show_reader(int i) //带参的显示读者信息函数 {

{ }

cout<

cout<<\cout<<\

cout<<\读****者****信****息****列****表**********************\\n\\n\

cout<<\姓名\\t\\t\\t班级\\t\\t\\t电话\\n\ cout<

cout<<\ cout<<\

}

};

22