收藏 分销(赏)

图书馆管理系统C++代码.doc

上传人:快乐****生活 文档编号:2492862 上传时间:2024-05-30 格式:DOC 页数:15 大小:132.54KB
下载 相关 举报
图书馆管理系统C++代码.doc_第1页
第1页 / 共15页
图书馆管理系统C++代码.doc_第2页
第2页 / 共15页
图书馆管理系统C++代码.doc_第3页
第3页 / 共15页
图书馆管理系统C++代码.doc_第4页
第4页 / 共15页
图书馆管理系统C++代码.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、图书馆管理系统C+代码 作者: 日期:15 个人收集整理 勿做商业用途#include string/字符串头文件#include /文件头文件#include iostream/是指标准库中输入输出流的头文件, cout就定义在这个头文件里using namespace std;/使用名字空间stdconst int BMAX=50; /书最多个数/图书管理模块/图书类class bookpublic:int no; /图书编号char name20; /图书名称int b_flag; /1为在架,2为借出int b_del; /1为存在, 2为删除public :book() /构造函数v

2、oid 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 na) /增加图书功能setno(no);setname(na);b_flag=1;b_del=1;/图书数据库类class bdatabasepublic:

3、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.txt文件中 fstream file(book。txt,ios:out); for (int i=0;i=top;i+)if

4、 (btarrayi。b_del=1) file.write((char *)&btarrayi,sizeof(btarrayi); file。close(); void addbooks() /往图书数据库中加图书book bk;int no;char bname20;cout请输入书号: ”;cinno;coutendlbname;coutendl;bk.b_flag=1;bk。addbook(no, bname);top+;btarraytop=bk;return;int findbooks(int suffix) /查找图书,这个函数用于借书这书操作,suffix是数组下标int no

5、;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;cout请输入书号: ;cinno;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(value,借出”);cout”

6、书号: ”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;coutendl书的名称: ;cinbtarraycur.name;return ;void delbooks() /删除图书int cur;cur = fi

7、ndbooks();if (cur=-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书号: btarray

8、i.no” 书的名称: btarrayi。name” 图书状态 :valueendl;return;;/读者管理模块/读者类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 brboo

9、k; /返回借书信息;/读者数据库类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); f

10、or (int i=0;i=top;i+)if (rdarrayi。r_del=1) file.write(char *)&rdarrayi,sizeof(rdarrayi)); file.close(); void addreaders() /添加读者reader rd;int no;char rname20;coutno;coutendl请输入姓名: ;cinrname;coutendl;rd。addreader(no, rname);rd.r_bor=2;top+; rdarraytop=rd;return;int findreaders(int suffix) /查找读者,这个函数用于

11、借书还书操作。 参数suffix是数组下标int no;coutno;for(int i=0; i=top; i+)if(rdarrayi.no=no & rdarrayi.r_del=1)return i;return 1;int findreaders() /查找读者,这个函数用于读者维护操作int no;char value3;cout”请输入学号: ;cinno;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_b

12、or=2) strcpy(value,无”);cout学号: ”rdarrayi.no 姓名: rdarrayi。name” 是否借书: ”valuerdarraycur。name;return ;void delreaders() /删除读者,读者如果借书要还书后才能删除 int cur;cur = findreaders();if (cur=1)return;if(rdarraycur。r_bor=1)cout”该用户借了图书,请还书后再删除endl;return;rdarraycur.r_del=2;return;void listreaders() /显示所有读者char value3

13、;for(int i=0; i=top; i+)if(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;;void bookjiemain() /图书维护子菜单cout|-|endl;cout”| 图书维护 ”endl;cout”| (1)增 加 ”endl;cout” (2)更 改 endl;cout” (3)删 除 |endl;co

14、ut| (4)查 找 |”endl;cout”| (5)显 示 endl;cout” (6)返回上一层 |”endl;cout”-endl;void readerjiemian() /读者维护子菜单cout”-|endl;cout 读者维护 endl;cout (1)增 加 |endl;cout (2)更 改 |”endl;cout” (3)删 除 |endl;cout| (4)查 找 ”endl;cout” (5)显 示 ”endl;cout” (6)返回上一层 |endl;cout|-|endl;void mainjiemian() /主界面cout*endl;cout 图 书 管 理 系

15、 统 ”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;void borrowtoreturn(char br) /借书还书函数.参数br用来判断是“借书”还是“还书”。1为“借书”,2为“还书”int rdid=0;int bkid=0;int rsuffix, bsuffix;bdata

16、base t_bd;rdatabase t_rd;if(br=1) /借书rsuffix=t_rd.findreaders(rdid);bsuffix=t_bd。findbooks(bkid);if (rsuffix=1 | bsuffix=1) return;if(t_bd.btarraybsuffix。b_flag=2)cout图书已经借出,请选择其它图书endl;return;if(t_rd.rdarrayrsuffix。r_bor=1)cout”你已经借过图书,请先归还再借其它图书”endl;return;t_bd.btarraybsuffix.b_flag=2;t_rd.rdarra

17、yrsuffix.r_bor=1;t_rd.rdarrayrsuffix.brbook=t_bd.btarraybsuffix;return;if(br=2)rsuffix=t_rd.findreaders(rdid);bsuffix=t_bd。findbooks(bkid);if (rsuffix=-1 | bsuffix=1 )return;if(t_rd.rdarrayrsuffix.brbook.no=t_bd。btarraybsuffix.no)t_bd.btarraybsuffix。b_flag=1;t_rd.rdarrayrsuffix。r_bor=2;t_rd。rdarrayr

18、suffix.brbook=t_bd.btarraybsuffix;elsecout”请重新输入,读者借的图书号不正确”in;switch (in)case 1:bd.addbooks();break;case 2:bd.editbooks();break;case 3:bd.delbooks();break;case 4:bd。findbooks();break;case 5:bd.listbooks();break;case 6:break;default:cout”输入错误,请从新输入。in;switch (in)case 1:bd。addreaders();break;case 2:b

19、d.editreaders();break;case 3:bd。delreaders();break;case 4:bd.findreaders();break;case 5:bd.listreaders();break;case 6:break;default:coutin;switch (in)case 1:borrowtoreturn(in);break;case 2:borrowtoreturn(in);break;case 3:booksmange();break;case 4:readersmange();break;case 0:break;default:cout输入错误,请从新输入。”endl; while(in!=0);return 0;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服