ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:35.04KB ,
资源ID:12866943      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12866943.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++图书管理系统实验报告和源代码.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++图书管理系统实验报告和源代码.docx

1、c+图书管理系统实验报告和源代码课程名称:程序设计综合实训设计题目:图书管理系统姓名:学号:专业班级:指导老师:完成日期:1设计任务1.1设计目的运用所学知识,完成图书馆管理系统,通过实践加强对所学知识的理解和巩固1.2设计内容建立图书馆管理系统,用户分为图书管理人员,读者。管理人员可以增加删除查看图书、读者。读者只能查看自身信息,和借还书1.3设计指标或者要求管理人员可以访问任意图书和读者,而读者只能借还图书馆存在的图书和查看自己的信息。2设计过程分析:由于管理系统用户有图书管理员和读者,但两者的权限不同,管理员有权访问所有图书信息和管理员信息,而读者只能访问所有图书信息和自身的信息。所以他

2、们的相同点:都能访问所有图书信息不同点:管理员能访问所有读者信息而管理员只能访问自身信息而不能访问其它读者信息;故此设计了三个类程序包含三个类:图书类(books),管理员类(manager),读者类reader,books类为抽象类,manager,和reader类为books类的派生类。为了能让管理员和读者访问所有图书信息,所有都继承了books类;而为了分出两者的权限的不同,所以把所有读者的信息做为一个链表作为管理员的一个私有成员,而读者却只能放一个自身节点作为读者的私有成员,然后分别设计各个类的成员函数。2.1程序功能Classbooks/虚基类protected: books_nod

3、e*broot;public: books();/构造函数 savebooks();/保存修改的内容 search_book();/查找某一本书 print_books();/输出所有书的信息 virtualadd_book()=0;/对于读者是还书,对于管理员添加书 virtualdelet_book()=0;/对于读者是借书,对于管理员是去掉某一本书;Classmanager:publicbooks/管理员类protected: readers_node*rroot;public: manager(readers_node*); savereaders(); add_book();/添加图

4、书信息 delet_book();/删除图书 search_reader();/查找读者信息 add_reader();/添加读者 delet_reader();/删除读者 print_readers();/输出所有读者;classreader:publicbooks/读者类private:readers_node*personnel;/存放读者自身信息public: reader(readers_node*); add_book();/还书 reader_borrow(); delet_book(); reader_return();/借书 print_me();/查看自己借书情况 save

5、_readers(readers_node*);2.2程序流程图3软件运行或者测试结果(1)管理员身份登录:(2)读者身份登录:4软件设计过程中遇到的问题以及解决办法由于编写前期做了大量的设计工作,在编写过程中基本没有遇到难解决的问题提,倒是在设计类时有些茫然,经过反复斟酌还是做了一些取舍,比如把读取读者文件放在了类的外面等。5总结通过本次课程设计学到了很多东西,对于c+对象的含义有了进一步的认识,从而对类的封装和设计有了一种新的认识,不只是停留在表面,为以后的学习积累了经验,设计不比编写容易,类设计好是整个程序写好的前提,只有一个好的规划才能写出好的程序。不过也通过本次发现了自己的不足之处。

6、总是:本次课程设计受益匪浅,动手能力大大增强;附录(程序源代码)#include#include#include#include#include#include#definemax3typedefstructBooks charbook_name15; inttotal_num; intborrow_num; charbook_num15; Books*next;books_node;typedefstructReaders charreader_name15; charreader_no15; intreader_borrow_num; structReader_borrow_books c

7、harborrow_books_name15; charborrow_books_no15; reader_borrow_bookmax; Readers*next;readers_node;classbooksprotected: books_node*broot;public: books(); savebooks(); search_book(); print_books(); virtualadd_book()=0; virtualdelet_book()=0;classmanager:publicbooksprotected: readers_node*rroot;public: m

8、anager(readers_node*); savereaders(); add_book(); delet_book(); search_reader(); add_reader(); delet_reader(); print_readers();classreader:publicbooksprivate:readers_node*personnel;public: reader(readers_node*); add_book(); reader_borrow(); delet_book(); reader_return(); print_me(); save_readers(rea

9、ders_node*);books:books() books_node*r; broot=newbooks_node; r=newbooks_node; r-next=NULL; broot=r; ifstreaminFile; inFile.open(c:books.dat,ios:binary); if(inFile.is_open()=-1)coutcontopenbooks.datnext=r-next; r-next=node; inFile.close(); if(i2)cout暂时没有图书数据next; ofstreamoutFile; outFile.open(c:books

10、.dat,ios:binary); while(L) outFile.write(char*)L,sizeof(books_node); L=L-next; outFile.close(); books:search_book() charsearchedbook15; coutsearchedbook; books_node*r; r=newbooks_node; r=broot-next; while(r) if(strcmp(searchedbook,r-book_name)=0) cout书名:book_name书的总量:total_num借出:borrow_num书的编号:book_

11、numnext; if(r=NULL)cout对不起,没有此书next; while(r) cout书名:book_name书的总量:total_num借出:borrow_num书的编号:book_numnext; deleter;manager:add_book() books_node*L; L=newbooks_node; L=broot; while(1) books_node*r; r=newbooks_node; r-next=NULL; coutr-book_name; coutr-book_num; r-borrow_num=0; coutr-total_num; r-next

12、=L-next; L-next=r; coutsign; if(sign=n|sign=N) break; broot=L; savebooks(); manager:delet_book() chardeleted15; coutdeleted;books_node*node,*L; node=newbooks_node; L=newbooks_node; node=broot; while(node-next) if(strcmp(deleted,node-next-book_name)=0)break; node=node-next; if(node-next=NULL) coutsor

13、ry!Thereisnothebook!next-borrow_num=0) node-next=node-next-next; savebooks(); else cout对不起,暂时不能删除,因为还有没有归还的书next; ofstreamoutFile; outFile.open(c:Readers.dat,ios:binary); while(L) outFile.write(char*)L,sizeof(readers_node); L=L-next; outFile.close();manager:add_reader() readers_node*L; L=newreaders_

14、node; L=rroot; intsign=0; while(1) readers_node*r; r=newreaders_node; r-next=NULL; coutr-reader_name; coutr-reader_no; r-reader_borrow_num=0; r-next=L-next; L-next=r; coutsign; if(sign=n|sign=N) break; rroot=L; savereaders(); manager:delet_reader() chardeleted15; coutdeleted;readers_node*node,*L; no

15、de=newreaders_node; L=newreaders_node; node=rroot; while(node-next) if(strcmp(deleted,node-next-reader_name)=0)break; node=node-next; if(node-next=NULL) coutsorry!Thereisnothereader!next=node-next-next; savereaders(); manager:search_reader()readers_node*r; r=newreaders_node; r=rroot-next; charreader

16、15; coutreader; while(r) if(strcmp(reader,r-reader_name)=0) cout姓名:reader_name编号:reader_no借书总数:reader_borrow_numendl; for(inti=0;ireader_borrow_num;i+) cout书名:reader_borrow_booki.borrow_books_name书的编号:reader_borrow_booki.borrow_books_no; break; elser=r-next; if(!r)cout没有此人next; while(printL) cout姓名编

17、号借书总数endl; coutreader_namereader_noreader_borrow_numendl; for(inti=0;ireader_borrow_num;i+) cout书名:reader_borrow_booki.borrow_books_name书的编号:reader_borrow_booki.borrow_books_no; printL=printL-next; deleteprintL;reader:reader(readers_node*node) (personnel)=newreaders_node; personnel=node;reader:add_b

18、ook() books_node*node; node=newbooks_node; node=broot-next; charreturned15; coutreturned;for(inti=0;ireader_borrow_num;i+) if(strcmp(returned,personnel-reader_borrow_booki.borrow_books_name)=0)break; if(i=personnel-reader_borrow_num+1) printf(不好意思,你没有此书);system(pause); else while(node) if(strcmp(nod

19、e-book_name,returned)=0)break; elsenode=node-next; if(node) personnel-reader_borrow_num-; node-borrow_num-; savebooks(); elsecout对不起,没有你要还的书或者所还书被删除reader_borrow_numnext; charborrowed15; coutborrowed; while(node) if(strcmp(node-book_name,borrowed)=0)break; elsenode=node-next; if(node&(node-total_num

20、-node-borrow_num)0) strcpy(personnel-reader_borrow_bookpersonnel-reader_borrow_num.borrow_books_name,node-book_name); strcpy(personnel-reader_borrow_bookpersonnel-reader_borrow_num+.borrow_books_no,node-book_num); node-borrow_num+; savebooks(); elsecout对不起,没有你要借的书或者所要借的书已经借完!endl; elsecout对不起,你借书的数量

21、已经超过最大借数量endl;reader:print_me() cout姓名reader_name编号:reader_no借书总数:reader_borrow_numendl; for(inti=0;ireader_borrow_num;i+) printf(书名:%s,书的编号:%s,personnel-reader_borrow_booki.borrow_books_name,personnel-reader_borrow_booki.borrow_books_no); voidPause() getch(); fflush(stdin);reader:reader_borrow() de

22、let_book();reader:reader_return() add_book();reader:save_readers(readers_node*L) readers_node*root; root=newreaders_node; root=L-next; ofstreamoutFile; outFile.open(c:Readers.dat,ios:binary); while(root) outFile.write(char*)root,sizeof(readers_node); root=root-next; outFile.close();readers_node*read_readers() readers_node*r; r=newreaders_node; r-next=NULL; intflag=0; ifstreaminFile; inFile.open(c:Readers.dat,ios:binary); if(inFile.is_open()=-1) coutcontopenreaders.datnext=r-next; r-next=node; inFile.close(); if(flag2) cout暂无读者

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1