2022年图书管理系统c语言程序设计 .pdf

上传人:C****o 文档编号:34249327 上传时间:2022-08-15 格式:PDF 页数:9 大小:61.73KB
返回 下载 相关 举报
2022年图书管理系统c语言程序设计 .pdf_第1页
第1页 / 共9页
2022年图书管理系统c语言程序设计 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年图书管理系统c语言程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年图书管理系统c语言程序设计 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#include #include /? #include #include #include usingnamespace std; constint Maxr=100; / 最多的读者constint Maxb=100; / 最多的图书constint Maxbor=5; / 每位读者最多借五本书class Reader / 读者类 ,实现对读者的信息的描述private: int tag; / 删除标记 1: 已删 0: 未删int no; / 读者编号char name10; / 读者姓名int borbookMaxbor; / 所借图书public : Reader() ; char

2、 *getname() / 获取姓名return name; int gettag() / 获取删除标记return tag; int getno() / 获取读者编号return no; void setname( char na) / 设置姓名 strcpy(name,na); void delbook() / 设置删除标记 1: 已删 0: 未删 tag=1; void addreader(int n, char *na) / 增加读者 tag=0; no=n; strcpy(name,na); for ( int i=0;iMaxbor;i+) borbooki=0; void bor

3、rowbook(int bookid) / 借书操作for ( int i=0;iMaxbor;i+) if (borbooki=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - borbooki=bookid; return ; int retbook(int bookid) / 还书操作for ( int i=0;iMaxbor;i+) if (borbooki=bookid) borbooki=0; return 1;

4、 return 0; void disp() / 读出读者信息 cout setw(5) no setw(10) name借书编号 : ; for ( int i=0;iMaxbor;i+) if (borbooki!=0) cout borbooki | ; cout endl; ; class RDatabase / 读者类库,实现建立读者的个人资料private: int top; / 读者记录指针 Reader readMaxr; / 读者记录public : RDatabase() / 构造函数,将 reader.txt读到 read中 Reader s; top=-1; fstre

5、am file(reader.txt,ios:in); / 打开一个输入文件while (1) file.read(char *)&s,sizeof (s); if (!file)break ; top+; readtop=s; file.close(); / 关闭 reader.txt void clear() / 删除所有读者信息 top=-1; int addreader(int n, char *na) / 添加读者时先查找是否存在 Reader *p=query(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -

6、名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - if (p=NULL) top+; readtop.addreader(n,na); return 1; return 0; Reader *query(int readerid) / 按编号查找for ( int i=0;i=top;i+) if (readi.getno()=readerid & readi.gettag()=0) return &readi; return NULL; void disp() / 输出所有读者信息for ( int i=0;i=top;i+) readi.

7、disp(); void readerdata(); / 读者库维护 RDatabase() / 析构函数,将 read 写到 reader.txt文件中 fstream file(reader.txt,ios:out); for ( int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof (readi); file.close(); ; void RDatabase:readerdata() char choice; char rname20; int readerid; Reader *r; while

8、 (choice!=0 ) cout nnttt读者维护 nnntt 1 新增 nntt 2 更改 nntt 3 删除 nntt 4 查找nntt 5 显示 nntt 6 全删 nntt 0 退出 choice; switch (choice) case1 : cout readerid; cout rname; addreader (readerid,rname); break ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - -

9、- case2 : cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 endl; break ; cout rname; r-setname(rname); break ; case3 : cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 delbook(); break ; case4 : cout readerid; r=query(readerid); if (r=NULL) cout 该读者不存在 disp(); break ; case5 : disp(

10、); break ; case6 : clear(); break; case0 : break ; default:cout 输入错误,请从新输入: ; break ; class Book / 图书类 , 实现对图书的描述, 图书的编号 , 书名 , 借出 , 还入等private: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - int tag; / 删除标记 1: 已删 0: 未删int no; / 图书编号char n

11、ame20; / 书名int onshelf; / 是否在架 1: 在架 2: 已借public : Book() char *getname() return name; / 获取姓名int getno() return no; / 获取图书编号int gettag() return tag; / 获取删除标记void setname( char na) / 设置书名 strcpy(name,na); void delbook() tag=1; / 删除图书void addbook( int n, char *na) / 增加图书 tag=0; no=n; strcpy(name,na);

12、onshelf=1; int borrowbook() / 借书操作if (onshelf=1) onshelf=0; return 1; return 0; void retbook() / 还书操作 onshelf=1; void disp() / 输出图书 cout setw(6) no setw(18) name setw(10) (onshelf=1? 在架 : 已借 ) endl; ; class BDatabase / 图书库类,实现对图书的维护,查找,删除等private: int top; / 图书记录指针 Book bookMaxb; / 图书记录public : BDat

13、abase() / 构造函数,将 book.txt读到 book 中 Book b; top=-1; fstream file(book.txt,ios:in); while (1) file.read(char *)&b,sizeof (b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - if (!file) break ; top+; booktop=b; file.close(); void clear() / 全删

14、top=-1; int addbook( int n, char *na) / 增加图书 Book *p=query(n); if (NULL=p) top+; booktop.addbook(n,na); return 1; return 0; Book *query(int bookid) / 查找图书for ( int i=0;i=top;i+) if (booki.getno()=bookid &booki.gettag()=0) return &booki; return NULL; void bookdata(); / 图书库维护void disp() for ( int i=0;

15、i=top;i+) if (booki.gettag()=0) booki.disp(); BDatabase() / 析构函数,将 book 写到 book.txt文件中 fstream file(book.txt,ios:out); for ( int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof (booki); file.close(); ; void BDatabase:bookdata() char choice; char bname40; int bookid; Book *b; 名师资料

16、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - while (choice!=0 ) cout nnnttt图书维护 endlendl; couttt1 新增 n tt2 更改 ntt3 删除 ntt4 查找 ntt5 显示 ntt6 全删 ntt0 退出 choice; switch (choice) case1 : cout 输入图书编号 : bookid; cout 输入图书书名 : bname; addbook(bookid,b

17、name); break ; case2 : cout 输入图书编号 : bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 endl; break ; cout 输入新的书名 : bname; b-setname(bname); break ; case3 : cout 读入图书编号 : bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 delbook(); break ; case4 : cout 读入图书编号 : bookid; b=query(bookid); if (b=NULL) cout

18、 该图书不存在 disp(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - break ; case5 : disp(); break ; case6 : clear(); break ; case0 : break ; default:cout 输入错误,请从新输入: ; int main() /main() 函数的实现 , 程序的主界面的引导char choice; int bookid,readerid; RDatab

19、ase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while (choice!=0) cout endlendlttt 图书管理系统 nnn; cout ttt1 借书 nnttt2 还书 nnttt3 图书维护 nnttt4 读者维护 nnttt0 离开 choice; switch (choice) case1 : cout readerid; cout bookid; r=ReaderDB.query(readerid); / 按编号查找if (NULL=r) cout 不存在该读者,不能借书 endl; break ; b=Book

20、DB.query(bookid); if (b=NULL) cout 不存在该图书 ,不能借书 borrowbook()=0) cout 该图书已借出,不能借书borrowbook(b-getno(); break ; case2 : coutreaderid; cout bookid; r=ReaderDB.query(readerid); if (r=NULL) cout 不存在该读者 ,不能还书 endl; break ; b=BookDB.query(bookid); if (b=NULL) cout 不存在该图书 ,不能还书 borrowbook()=1) cout 该图书未借出,不能还书retbook(); r-retbook(b-getno(); break ; case3 : BookDB.bookdata(); break ; case4 : ReaderDB.readerdata(); break ; default:cout 输入错误 , 请从新输入 : ; return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁