




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档/图书室管理系统 #include #include #include using namespace std;const int Max_book=3000; /可保存图书数量的上限const int Max_reader=1000; /可保存读者数量的上限const int Max_bor_book=2; /读者借阅图书本数上限class Book /图书类private:int ID; /登录号int num; /设置书目编号 int flag; /设置删除标记 int onshelf; /判断图书是否再架 char bname50; /设置图书书名char w_name10; /设置作者姓名public:Book()int getID()return ID; /获取登录号 int getnum() return num; /获取图书编号int getflag() return flag; /获取删除标记char *getbname() return bname; /获取图书书名char *getw_name() return w_name; /获取作者姓名void setbname(char na)strcpy(bname,na); /设置书名void setwname(char na)strcpy(w_name,na);/设置作者名字void Addbook(int ID,int n,char *na,char*wname); /新增图书int borrowbook(); /借阅图书void retbook(); /归还图书void delbook() flag=1; /删除图书信息void show(); /输出图书信息;void Book:Addbook(int ID,int n,char *na,char *wname)/新增图书信息 flag=0;ID=ID;num=n;strcpy(bname,na);strcpy(w_name,wname);onshelf=1;int Book:borrowbook() /借阅图书if (onshelf=1)onshelf=0;return 1;return 0;void Book:retbook() /归还图书onshelf=1;void Book:show() /输出图书详细信息cout 图书状态:(onshelf=1? 在架可借:本馆借出) 作者姓名:w_name 书 名 : bname endl;cout 图书编号: num 登录号IDendl; class Bookdata /图书数据类private: int book_total; /图书总共数目Book bookMax_book; /图书记录数组public:Bookdata(); int Addbook(int ID,int n,char *na,char *wname);/新增图书Book *search_ID(int ID) /按登录号查找图书for (int i=0;i=book_total;i+)if (booki.getID()=ID&booki.getflag()=0)return &booki;return NULL;Book *search_bnum(int book_num) /按图书编号查找图书for (int i=0;i=book_total;i+)if (booki.getnum()=book_num&booki.getflag()=0)return &booki;return NULL;Book *search_bname(char bname50)/按图书书名查找图书for(int i=0;i=book_total;i+)if(strcmp(booki.getbname(),bname)=0&booki.getflag()=0)return &booki;return NULL; Book *search_wname(char wname50)/按作者姓名查找图书for(int i=0;i=book_total;i+)if(strcmp(booki.getw_name(),wname)=0&booki.getflag()=0)return &booki;return NULL; /图书数据管理void bookdata(); /图书数据管理void show(); /输出书籍信息Bookdata() /析构函数fstream file(book.txt,ios:out);for (int i=0;i=book_total;i+)if (booki.getflag()=0)file.write(char *)&booki,sizeof(booki);file.close(); Bookdata:Bookdata() /构造函数 Book b;book_total=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;book_total+;bookbook_total=b;file.close(); int Bookdata:Addbook(int ID,int n,char *na,char *wname)/新增图书Book *p=search_bnum(n);if (NULL=p)book_total+;bookbook_total.Addbook( ID,n,na,wname);return 1;return 0;void Bookdata:show() for (int i=0;i=book_total;i+) if (booki.getflag()=0) booki.show(); coutendl; void Bookdata:bookdata() int choice;char wname10;int ID;char bname50;int book_num;Book *b;while (choice!=0) cout n * endl; cout n 图 书 管 理 endl; cout n 1 新增图书信息 endl; cout n 2 图书信息更改 endl; cout n 3 删除图书信息 endl; cout n 4 图书信息显示 endl; cout n 5 搜索图书信息 endl; cout n 0 安全退出模块 endl; cout n * endl; cout 请输入相对有的数字: choice;if(choice5)cout 对不起,输入有误,请查证后再输入! endl;else break;while(1);switch (choice)case 1:cout 请输入新增图书的书名: bname;cout 请输入新增图书的登录号: ID;cout 请输入新增图书作者姓名: wname;cout 请输入新增图书的编号: book_num;Addbook(ID,book_num,bname,wname);break;case 2:cout 请输入需要修改的图书的登录号: ID;b=search_ID(ID);if (b=NULL)cout 对不起,该图书不存在! endl;break;cout 请输入新的书名: bname;b-setbname(bname);cout 请输入图书作者新的名字:wname;b-setwname(wname); break;case 3: cout 请输入需要删除的图书的登录号: ID;b=search_ID(ID);if (b=NULL)cout 对不起,该图书不存在! delbook();break;case 4:show();break;case 5:int selection;cout 请按1endl;cout 请按2endl;cout 请按3endl;cout 请按4 selection;if(selection=1)cout 请输入需要查找的图书的编号: book_num;b=search_bnum(book_num);if (b=NULL)cout 对不起,该图书不存在!show();break;else if(selection=2)cout 请输入需要查找的图书的登录号:ID;b=search_ID(ID);if(b=NULL)cout 对不起,该图书不存在! show();break; else if(selection=3)cout 请输入需要查找的图书的书名: bname;char *p=bname;b=search_bname(bname);if(b=NULL)cout 对不起,该图书不存在! show();break;else if(selection=4)cout 请输入需要查找的作者的姓名: wname;char *q=wname;b=search_wname(wname);if(b=NULL)cout 对不起,该图书不存在! show();break;break;else cout 对不起,输入有误,请重新输入! endl;class Reader /读者类 private:int num; /读者借阅证编号char rname10; /读者姓名int borbookMax_bor_book; /读者借阅的图书int flag; /删除标记 1:已经删除 0:还未删除public:Reader() int getnum() return num; /获取读者借阅证编号int retbook(int bookid); /归还图书 char *getrname() return rname; /获取读者姓名int getflag() return flag; /获取删除标记void setname(char na); /设置姓名void delbook() flag=1; ; /设置删除标记 1:已经删除 0:还未删除void addreader(int n,char *na); /增加读者 void borrowbook(int bookid); /借阅图书 void show(); /输出读者详细信息;void Reader:setname(char na) /设置姓名 strcpy(rname,na);void Reader:addreader(int n,char *na) /新增读者 flag=0;num=n;strcpy(rname,na);for(int i=0;iMax_bor_book;i+)borbooki=0;void Reader:borrowbook(int book_num) /借阅图书for(int i=0;iMax_bor_book;i+) if (borbooki=0)borbooki=book_num;return;int Reader:retbook(int book_num) /归还图书 for(int i=0;iMax_bor_book;i+) if(borbooki=book_num)borbooki=0;return 1;return 0;void Reader:show() /输出读者信息 cout 读者编号: num 读者姓名: rname;for(int i=0;iMax_bor_book;i+)if(borbooki!=0)cout borbooki endl;class Readerdata /读者数据类 private: int reader_total; /读者总共数目 Reader readerMax_reader; /读者信息记录public:Readerdata(); /构造函数int addreader(int n,char *na); /新增读者时先检察该读者是否已经存在Reader *search_rnum(int reader_num) /按读者借阅证编号查找for (int i=0;i=reader_total;i+)if (readeri.getnum()=reader_num&readeri.getflag()=0)return &readeri;return NULL;Reader *search_rname(char reader_name20)/按读者姓名查找读者for (int i=0;i=reader_total;i+)for(int i=0;i=reader_total;i+)if(strcmp(readeri.getrname(),reader_name)=0&readeri.getflag()=0)return &readeri;return NULL;void show(); /输出所有读者详细信息void readerdata(); /读者数据管理Readerdata() /析构函数fstream file(reader.txt,ios:out); for (int i=0;i=reader_total;i+)if (readeri.getflag()=0)file.write(char *)&readeri,sizeof(readeri);file.close();Readerdata:Readerdata() /构造函数Reader R;reader_total=-1;fstream file(reader.txt,ios:in); /打开一个输入文件while (1)file.read(char *)&R,sizeof(R);if (!file)break;reader_total+;readerreader_total=R;file.close(); int Readerdata:addreader(int n,char *na) /新增读者时先检察该读者是否已经存在Reader *p=search_rnum(n);if (p=NULL)reader_total+;readerreader_total.addreader(n,na);return 1;return 0;void Readerdata:show() /输出所有读者详细信息for (int i=0;i=reader_total;i+)readeri.show();cout endl;void Readerdata:readerdata() int choice;char reader_name20;int reader_num;Reader *r;while (choice!=0)cout n * endl; cout n 读 者 管 理 endl; cout n 1 新增读者信息 endl; cout n 2 读者信息更改 endl; cout n 3 删除读者信息 endl; cout n 4 读者信息显示 endl; cout n 5 搜索读者信息 endl;cout n 0 安全退出模块 endl; cout n * endl; cout 请输入相对有的数字: choice;if(choice5)cout 对不起,输入有误,请查证后再输入! endl;else break;while(1);switch (choice)case 1:cout reader_num;cout reader_name;addreader (reader_num,reader_name);break;case 2:cout reader_num;r=search_rnum(reader_num);if (r=NULL)cout 对不起,该读者不存在! endl; break;cout reader_name;r-setname(reader_name);break;case 3:cout reader_num;r=search_rnum(reader_num);if (r=NULL)cout 对不起,该读者不存在! delbook();break;case 4:show();break;case 5:int selection; cout 请按1n按读者姓名搜索-请按2 selection;if(selection=1)cout reader_num;r=search_rnum(reader_num);if (r=NULL)cout 对不起,该读者不存在!show();break;else if(selection=2)cout reader_name;r=search_rname(reader_name);if (r=NULL)cout 对不起,该读者不存在!show();break;else cout 对不起,输入有误,请重新输入! endl;int main() int choice;int book_num,reader_num;Book *b; Bookdata bookdata;Readerdata readerdata;Reader *r;while(choice!=0) cout * endl; co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版实习单位实习学生权益保障合同汇编
- 2025版医疗器械公司售后服务人员劳动合同模板
- 2025版城市基础设施建设砂浆采购合同范本
- 2025年度土地承包经营权流转合同签订与执行指南
- 2025年外墙乳胶漆新型环保材料采购合同
- 2025版专业食堂食材配送与健康管理服务协议
- 2025年烧结砖行业绿色物流服务购销合同模板
- 2025版全民健身中心设施租赁协议书
- 2025年度水果品牌设计与包装合同
- 2025版水电水利工程环境保护与土壤修复设计合同
- 家长会校长讲座
- 中国脑小血管病诊治指南2023版
- 房地产中介服务操作手册
- 水质-氯化物的测定验证报告
- 2024年全国职业院校技能大赛中职组(水利工程制图与应用赛项)考试题库(含答案)
- 2024至2030年中国纪录片市场投资方向及未来运行状况监测报告
- 托管班安全责任承诺书
- 江苏省南京市鼓楼区2023-2024学年八年级下学期期末英语试卷(含答案解析)
- 盘扣式卸料平台计算书
- 天然气管网SCADA系统方案建议书
- 成人氧气吸入疗法-2020版指南解读
评论
0/150
提交评论