面向对象的图书管理系统C(精).doc
《面向对象的图书管理系统C(精).doc》由会员分享,可在线阅读,更多相关《面向对象的图书管理系统C(精).doc(20页珍藏版)》请在三一办公上搜索。
1、1 类的定义为了清晰和便于修改维护,本系统采用多文件形式组织。在自定义的头文件Mytype.h中,存放所有类的定义。文件内容如下:#include#include#includeusing namespace std;/图书类class CBookprivate:int no; /图书编号char name20; /图书名称int b_flag; /1为在架,2为借出int b_del; /1为存在, 2为删除public :CBook(); /默认构造函数 CBook(int no,char na); /构造函数void setno(int n);int getno();void setna
2、me(char na);char* getname(); int getb_flag(); void setb_flag(int);int getb_del();void setb_del(int); ;/用户类class CUserprivate:int no;char name20;public:CUser(); CUser(int id, char na);void setno(int n);int getno(); /返回图书编号值void setname(char na);char* getname(); /返回图书名称void show();/用户类的派生类-读者类class CR
3、eader:public CUserprivate:int r_del; /1存在,2删除int r_bor; /1借过书,2没有借书CBook brbook;public:CReader();CReader(int id, char na);int getr_del();void setr_del(int);int getr_bor();void setr_bor(int);void setbrbook(CBook bt); CBook getbrbook();void show(); /方法重写;/读者管理类class CReaderManager public:CReader rdarr
4、ay50;int top;public:CReaderManager();CReaderManager();void addreaders(); /添加读者int findreaders(int suffix); /查找读者,这个函数用于借书还书操作。 int findreaders(); /查找读者,这个函数用于读者维护操作void editreaders(); /编辑读者信息void delreaders(); /删除读者,读者如果借书要还书后才能删除void listreaders(); /显示所有读者;/图书管理类class CBookManagerpublic:CBook btarr
5、ay50; /图书集合int top;public:CBookManager();CBookManager(); void addbooks() ; int findbooks(int suffix); int findbooks() ; void editbooks(); void delbooks(); void listbooks() ; ;2 类的实现类的实现可以分多个文件组织,也可以放在一个文件中,本系统类比较少,所以只定义一个文件存放。文件名为classImp.cpp,具体内容如下:#include#includeMytype.h /用户类的实现CUser:CUser()CUser
6、:CUser(int id, char na)no = id;strcpy(name, na);void CUser:setno(int n)no=n;int CUser:getno() /返回图书编号值return no; void CUser:setname(char na)strcpy(name, na);char* CUser:getname() /返回图书名称return name;void CUser:show() cout系统管理员编号: no系统管理员姓名: name; /读者类的实现 CReader:CReader()CReader:CReader(int id, char
7、na):CUser(id, na)r_del=1;r_bor=2;int CReader:getr_del()return r_del;void CReader:setr_del(int n)r_del=n;int CReader:getr_bor()return r_bor;void CReader:setr_bor(int n)r_bor=n;void CReader:setbrbook(CBook bt) /设置借书标记brbook = bt;CBook CReader:getbrbook()return brbook;void CReader:show() char *js; char
8、 *sc; if(r_del=1) cout读者编号: getno()endl;cout读者姓名: getname()endl;if(r_bor=1)cout已借图书名称: brbook.getname(); elsecout目前没有已借图书!endl; else cout该读者已经从系统删除!endl;/图书类的实现CBook:CBook() /构造函数CBook:CBook(int id,char na) no=id;strcpy(name, na);b_flag=1;b_del=1;void CBook:setno(int n) no=n;int CBook:getno() /返回图书编
9、号值return no;void CBook:setname(char na)/返回图书名称strcpy(name, na);char* CBook:getname()return name;int CBook:getb_flag()return b_flag;void CBook:setb_flag(int n)b_flag=n;int CBook:getb_del()return b_del;void CBook:setb_del(int n)b_del=n;/读者管理类的实现CReaderManager:CReaderManager()CReader rd; top=-1; fstrea
10、m file(reader.txt,ios:in); /打开文件while (1) file.read(char *)&rd,sizeof(rd); if (!file) break; top+; rdarraytop=rd; file.close(); /关闭文件CReaderManager:CReaderManager()/析构函数 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+)if (rdarrayi.getr_del()=1) file.write(char *)&rdarrayi,sizeof(rdarrayi); f
11、ile.close(); Void CReaderManager:addreaders() /添加读者CReader rd;int no;char rname20;coutno;coutendlrname;coutendl;rd.setno(no);rd.setname(rname);rd.setr_bor(2);rd.setr_del(1);top+; rdarraytop=rd;return;int CReaderManager:findreaders(int suffix) /查找读者,这个函数用于借书还书操作。 参数suffix是数组下标int no;coutno;for(int i=
12、0; i=top; i+)if(rdarrayi.getno()=no & rdarrayi.getr_del()=1)return i;return -1;int CReaderManager:findreaders() /查找读者,这个函数用于读者维护操作int no;char value3;coutno;for(int i=0; i=top; i+)if(rdarrayi.getno()=no & rdarrayi.getr_del()=1)if(rdarrayi.getr_bor()=1) strcpy(value,借);if(rdarrayi.getr_bor()=2) strcpy
13、(value,无);cout学号: rdarrayi.getno() 姓名: rdarrayi.getname() 是否借书: valueendl;return i;return -1;void CReaderManager:editreaders() /编辑读者信息int cur;cur = findreaders();if (cur=-1)cout没有该学生endl;return;cout请修改数据:endl;coutendlrdarraycur.getname();return ;void CReaderManager:delreaders() /删除读者,读者如果借书要还书后才能删除
14、int cur;cur = findreaders();if (cur=-1)return;if(rdarraycur.getr_bor()=1)cout该用户借了图书,请还书后再删除endl;return;rdarraycur.setr_del(2);return;void CReaderManager:listreaders() /显示所有读者char value3;for(int i=0; i=top; i+)if(rdarrayi.getr_del()=1)if(rdarrayi.getr_bor()=1) strcpy(value,借);if(rdarrayi.getr_bor()=
15、2) strcpy(value,无);cout学号: rdarrayi.getno() 姓名: rdarrayi.getname() 是否借书: valueendl;char ch;coutch;return;/图书管理类的实现CBookManager:CBookManager()CBook 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(); /关闭文件CBookM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象的图书管理系统C 精 面向 对象 图书 管理 系统
链接地址:https://www.31ppt.com/p-2385524.html