《图书管理系统代码》由会员分享,可在线阅读,更多相关《图书管理系统代码(19页珍藏版)》请在金锄头文库上搜索。
1、#include #include #include using namespace std;const int BMAX=50;class bdatabasepublic: book btarrayBMAX; int top;public:bdatabase()book b;top=-1;fstream file(book.txt,ios:in);/打开文件while(1)file.read(char*)&b,sizeof(b);if(!file)break;top+;btarraytop=b;file.close();/关闭文件bdatabase()/析构函数,将btarray写到book
2、.txt文件中fstream file(book.txt,ios:out);for(int i=0;i=top;i+)if(btarrayi.b_del=1)file.write(char*)&btarrayi,sizeof(btarrayi);file.close();void addbooks()/往图书数据库中加图书book bk;int no;charbname20;coutno;coutendlbname;coutendl;bk.b_flag=1;bk.addbook(no,bname);top+;btarraytop=bk;return;int findbooks(int suff
3、ix)/查找图书,这个函数用于借书这个操作,suffix是数组下标int no;coutno;for(int i=0,i=top;i+)if(btarrayi.no=no&btarrayi.b_del=1)return i;return -1;int findbooks()/查找图书,这个函数用于图书维护int no;char value6;coutno;for(int i=0;i=top;i+)if(btarrayi.no=no&btarrayi.b_del=1)if(btarrayi.b_flag=1)strcpy(value,在架);if(btarrayi.b_flag=2)strcpy
4、(value,借出);cout书号:btarrayi.no书的名称:btarrayi.name图书状态:valueendl;return i;return -1;void editbooks()/编辑图书int cur;cur=findbooks();if(cur=-1)cout没有这本书endl;return;cout书号:btarraycur.no书的名称:btarraycur.nameendl;cout请修改数据:endl;coutendlbtarraycur.name;return;void delbooks()/删除图书int cur;cur=findbooks();if(cur=-
5、1)return;if(btarraycur.b_flag=2)/删除时判断图书是否借出cout该图书已经借出,请在归还后删除。endl;return;btarraycur.b_del=2;return;void listbooks()/显示全部图书char value6;for(int i=0;i=top;i+)if(btarrayi.b_del=1)if(btarrayi.b_flag=1)strcpy(value,在架);if(btarrayi.b_flag=2)strcpy(value,借出);cout书号:btarrayi.no书的名称:btarryi.name图书状态:valuee
6、ndl;return;class bookpublic:int no;/图书编号char name20;/图书名称int b_flag;int b_del;public:book()void setno(int n)no=n;int getno()return no;/返回图书编号值void setname(char na)strcpy(name,na);/字符串复制char* getname()return name;/返回图书名称void borbook()b_flag=2;/借书标志void delbook()b_del=2;/删除标志void addbook(int no, char
7、na)/增加图书功setno(no);setname(na);b_flag=1;b_del=1; ;/读者类class readerpublic:int no;char name20;int r_del;/1存在,2删除int r_bor;/1借过书,2没有借书book brbook;public:void addreader(int id, char na)/增加读者no=id;strcpy(name,na);r_del=1; void setbrbook(book bt)/设置借书标记brbook=bt; book getbrbook()return brbook;/返回借书信息 ;/读者
8、数据库类 class rdatabasepublic:reader rdarrayBMAX;int top;public:rdatabase()reader rd;top=-1;fstream file(reader.txt,ios:in);/打开文件while(1)file.read(char*)&rd,sizeof(rd);if(!file)break;top+;rdarraytop=rd; file.close();/关闭文件rdatabase()/析构函数fstream file(reader.txt,ios:out);for(int i=0;i=top;i+)if(rdarrayi.
9、r_del=1)file.write(char*)&rdarrayi,sizeof(rdarrayi); file.close();void addreaders()reader rd;int no;char rname20;coutno;coutendlrname;coutendl;rd,addreader(no,rname);/添加读者rd.r_bor=2;top+;rdarraytop=rd;return; int findreaders(int suffix)/查找读者,这个函数用于借书还书操作。参数suffix是数组下标int no;coutno;for(int i=0;i=top;
10、i+)if(rdarrayi.no=no&rdarrayi.r_del=1)return i;return -1;int findreaders()/查找读者,这个函数用于读者维护操作 int no;char value3;coutno;for(int i=0;i=top;i+)if(rdarrayi.no=no&rdarrayi.r_del=1)if(rdarrayi.r_bor=1)strcpy(value,借);if(rdarrayi.r_bor=2)strcpy(value,无);cout学号:rdarrayi.no姓名rdarrayi.name是否借书:valueendl;return i; return -1;void editreaders()/编辑读者信息int cur;cur=findreaders();if(cur=-1)