//tushuguanli.cpp:Definestheentrypointfortheconsoleapplication.#includestring#includefstream#includeiostream/usingnamespacestd;constintBMAX=50;//图书数据库类classbdatabase{public:bookbtarray[BMAX];inttop;public:bdatabase(){bookb;top=-1;fstreamfile(book.txt,ios::in);//打开文件while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;btarray[top]=b;}file.close();//关闭文件}~bdatabase()//析构函数,将btarray[]写到book.txt文件中{fstreamfile(book.txt,ios::out);for(inti=0;i=top;i++){if(btarray[i].b_del==1)file.write((char*)&btarray[i],sizeof(btarray[i]));}file.close();}voidaddbooks()//往图书数据库中加图书{bookbk;intno;charbname[20];cout请输入书号:;cinno;coutendl请输入书名:;cinbname;coutendl;bk.b_flag=1;bk.addbook(no,bname);top++;btarray[top]=bk;return;}intfindbooks(intsuffix)//查找图书,这个函数用于借书这书操作,suffix是数组下标{intno;cout请输入书号:;cinno;for(inti=0;i=top;i++){if(btarray[i].no==no&&btarray[i].b_del==1){returni;}}return-1;}intfindbooks()//查找图书,这个函数用于图书维护{intno;charvalue[6];cout请输入书号:;cinno;for(inti=0;i=top;i++){if(btarray[i].no==no&&btarray[i].b_del==1){if(btarray[i].b_flag==1)strcpy(value,在架);if(btarray[i].b_flag==2)strcpy(value,借出);cout书号:btarray[i].no书的名称:btarray[i].name图书状态:valueendl;returni;}}return-1;}voideditbooks()//编辑图书{intcur;cur=findbooks();if(cur==-1){cout没有这本书endl;return;}cout书号:btarray[cur].no书的名称:btarray[cur].nameendl;cout请修改数据:endl;coutendl书的名称:;cinbtarray[cur].name;return;}voiddelbooks()//删除图书{intcur;cur=findbooks();if(cur==-1){return;}if(btarray[cur].b_flag==2)//删除时判断图书是否借出{cout该图书已经借出,请在归还后再删除。endl;return;}btarray[cur].b_del=2;return;}voidlistbooks()//显示全部图书{charvalue[6];for(inti=0;i=top;i++){if(btarray[i].b_del==1){if(btarray[i].b_flag==1)strcpy(value,在架);if(btarray[i].b_flag==2)strcpy(value,借出);cout书号:btarray[i].no书的名称:btarray[i].name图书状态:valueendl;}}return;}};classbook{public:intno;//图书编号charname[20];//图书名称intb_flag;intb_del;public:book(){}voidsetno(intn){no=n;intgetno(){returnno;//返回图书编号值}voidsetname(charna[]){strcpy(name,na);//字符串复制}char*getname(){returnname;//返回图书名称}voidborbook(){b_flag=2;//借书标志}voiddelbook(){b_del=2;//删除标志}voidaddbook(intno,charna[])//增加图书功能{setno(no);setname(na);b_flag=1;b_del=1;}};//读者类classreader{public:intno;charname[20];intr_del;//1存在,2删除intr_bor;//1借过书,2没有借书bookbrbook;public:voidaddreader(intid,charna[])//增加读者{no=id;strcpy(name,na);r_del=1;}voidsetbrbook(bookbt)//设置借书标记{brbook=bt;}bookgetbrbook(){returnbrbook;//返回借书信息}};//读者数据库类classrdatabase{public:readerrdarray[BMAX];inttop;public:rdatabase(){readerrd;top=-1;fstreamfile(reader.txt,ios::in);//打开文件while(1){file.read((char*)&rd,sizeof(rd));if(!file)break;top++;rdarray[top]=rd;}file.close();//关闭文件}~rdatabase()//析构函数{fstreamfile(reader.txt,ios::out);for(inti=0;i=top;i++){if(rdarray[i].r_del==1)file.write((char*)&rdarray[i],sizeof(rdarray[i]));}file.close();}voidaddreaders()//添加读者{readerrd;intno;charrname[20];cout请输入学号:;cinno;coutendl请输入姓名:;cinrname;coutendl;rd.addreader(no,rname);rd.r_bor=2;top++;rdarray[top]=rd;return;}intfindreaders(intsuffix)//查找读者,这个函数用于借书还书操作。参数suffix是数组下标{intno;cout请输入学号:;cinno;for(inti=0;i=top;i++){if(rdarray[i].no==no&&rdarray[i].r_del==1){returni;}}return-1;}intfindreaders()//查找读者,这个函数用于读者维护操作{intno;charvalue[3];cout请输入学号:;cinno;for(inti=0;i=top;i++){if(rdarray[i].no==no&&rdarray[i].r_del==1){if(rdarray[i].r_bor==1)strcpy(value,借);if(rdarray[i].r_bor==2)strcpy(value,无);cout学号:rdarray[i].no姓名:rdarray[i].name是否借书:valueendl;returni;}}return-1;}voideditreaders()//编辑读者信息{intcur;cur=findreaders();if(cur==-1){cout没有该学生endl;return;}cout请修改数据:endl;coutendl姓名:;cinrdarray[cur].name;return;}voiddelreaders()//删除读者,读者如果借书要还书后才能删除{intcur;cur=findreaders();if(cur==-1){return;}if(rdarray[cur].r_bor==1){cout该用户借了图书,请还书后再删除endl;return;}rdarray[cur].r_del=2;return;}voidlistreaders()//显示所有读者{charvalue[3];for(inti=0;i=top;i++){if(rdarray[i].r_del==1){if(rdarray[i].r_bor==1)strcpy(value,借);if(rdarray[i].r_bor==2)strcpy(value,无);cout学号:rdarray[i].no姓名:rdarray[i].name是否借书:valueendl;}}return;}};voidbookjiemain()//图书维护子菜单{cout|---------------------|endl;cout|图书维护|endl;cout|(1)增加|endl;cout|(2)更改|endl;cout|(3)删除|endl;cout|(4)查找|endl;cout|(5)显示|endl;cout|(6)返回上一层|endl;cout|---------------------|endl;}voidreaderjiemian()//读者维护子菜单{cout|---------------------|endl;cout|读者维护|endl;cout|(1)增加|endl;cout|(2)更改|endl;cout|(3)删除|endl;cout|(4)查找|endl;cout|(5)显示|endl;cout|(6)返回上一层|endl;cout|---------------------|endl;}voidmainjiemian()//主界面{cout***********************************************endl;cout*图书管理系统*endl;cout**endl;cout*(1)借书*endl;cout**endl;cout*(2)还书*endl;cout**endl;cout*(3)图书管理*endl;cout**endl;cout*(4)用户管理*endl;cout**endl;cout*(0)退出*endl;cout***********************************************endl;}voidborrowtoreturn(charbr)//借书还书函数.参数br用来判断是“借书”还是“还书”.1为“借书”,2为“还书”{intrdid=0;intbkid=0;intrsuffix,bsuffix;bda