c++图书信息管理系统(附源码)

1、学号:20104303计算机实习报告系别:管理系专业:信息管理与信息系统专业班级:1043班学生姓名:李优指导教师:徐日日期:2012-09-03-2012-09-141需求分析1.1选题任务图书借阅管理系统(1)编程工具C+(2)要求选题学生应具有端正的学习态度、正常的交流能力,应有积极主动、克服困难的学习意识(3)本题概述以学院图书馆为例,图书借与管理是一项经常性工作,为使图书借阅管理工作准确高效,提供图书借阅记录的添加、修改、删除、查询、浏览、汇总等,用图书借阅关系软件,能有效提高工作效率,具有较强的实际意义。(4)功能描述能度日外部提供的包含图书借阅信息的文本文件(TXT文件);能在

2、程序中录入图书借阅信息(可参考我院图书馆网上图书借阅信息的各个项目),并将信息写入文本文件(TXT文件);能对所有图书借阅信息,按条件(按图书名、图书编号、借阅日期、借阅人、超期与否、超期天数等)查询浏览,能汇总统计计算出符合某条件的图书借阅记录的数量并浏览这些借阅信息,能将查询、浏览、汇总的结果输出结果文本文件(TXT文件)(5)辅助说明基础要求:+扩展要求:+1.2输入数据和输出数据形式:程序中包含的图书信息包括:charbnum20;书号charbname20;书名charbauthor10J;作者charrnameL10;借阅人charbdays10;charbchaoL10;借

3、出日期超期天数为了方便,我全部设置成了char型。而程序中包含两种输入方式和两种输出方式,对应题目要求,分别是:单个图书信息的增删查改;TXT文档的导入(图书数据库.txt);屏幕的打印;TXT文档的导出(书籍信息.tXt)o1.3测试数据及测试目的字母测试,错误数据测试,重复数据测试目的:产看本程序的纠错能力和是否人性化。2.1关键数据类型定义*书籍结构体,classBook(private:charbnum20;charbname20;charbauthor10;charrname10J;charbdays10J;charbchao10J;public:Book()vo

4、idset_bnum(charchar*get_bnum()voidcharvoid2程序设计用于存放书籍基本信息*set_bname(char*n)*get_bname()set_bauthor(char*a)书号书名作者借阅人借出日期超期天数构造函数初始化信息*no)设置书号获得书号设置书名获得书名设置作者char*get_bauthor()voidset_bdays(char*d)char*get_bdays()voidset_bchao(char*c)char*get_bchao()voidset_rname(char*rn)char

5、*get_rname()voidcopy(Bookm);/classbook获得作者姓名设置借出日期获得借出日期设置超出天数获得超出天数设置借阅人获得借阅人姓名/Book结构体copy函数*书籍管理结构体,实现管理书籍功能*classBookManageprivate:Bookbooks100;定义Book书籍结构体数组对象,最大容量100本public:intlength;构造函数,读取磁盘文件BookManage()intadd(Bookbook)添加图书资料intbnu-search(char*bnu)按书号查找书籍intbna_search(char*bna)按书名查

6、找书籍intbau_search(char*bau)按作者查找书籍intrn_search(char*rn)按借阅人查找书籍intbd_search(char*bd)按借出日期查找书籍intbc_search(char*bc)按超期天数查找书籍voidrevise(Bookbook,inti)/修改书籍函数voiddeleteBook(intindex)删除书籍资料函数voidshow_bookhead()显示输出列表,表头。voidshow_book(inti)显示书籍函数voidsaveFileHeadO/保存书籍文件的表头到txtvoidsaveFile(inti)带参的输出书籍到txt

8、arch()voidbc_search()voidaddBook()voidreviseBook()密码登陆按借阅人姓名查找函数按书号查找函数按书名查找函数按作者查找函数按借阅日期查找函数按超期天数查找函数添加新的书籍信息函数修改书籍函数voiddeiBook()删除书籍函数intmain()2.2主程序流程图2.3调用关系1.书籍信息的录入:voidset_bnum(char*no)strcpy(bnum,no);char*get_bnum()returnbnum;voidset_bname(char*n)strcpy(bname,n);char*get_bna

9、me()returnbname;voidset_bauthor(char*a)strcpy(bauthor,a);)char*get_bauthor()returnbauthor;)voidset_bdays(char*d)strcpy(bdays,d);)char*get_bdays()returnbdays;voidset_bchao(char*c)strcpy(bchao,c);)char*get_bchao()returnbchao;voidset_rname(char*rn)strcpy(rname,rn);char

10、*get_rname()returnrname;2.书籍信息的添加:intadd(Bookbook)判断length是否达到最大值,设置书号把字符串no中的字符复制到字符串bnum中获得书号返回值为bnum设置书名获得书名设置作者获得作者姓名设置借出日期获得借出日期设置超出天数获得超出天数设置借阅人获得借阅人姓名如果没有则进行添加。3.书籍信息的查找:无论是按照书号、书名、作者、借阅人、借出日期、超期天数来进行查找都是进行挨个比较,如果遇到相同则返回书籍的i值,进行返回输出。4.书籍信息的修改:输入想要修改的书籍编号,按照查找的方法,找到i,然后进行覆盖。完成修改。5.书籍的屏

11、幕打印输出:分两部分输出,首先打印一个头信息,相当于列表的头;然后利用循环语句带参输出(i为参数,循环)。6.保存信息到txt文件:同分为两部分,类似屏幕打印的方法,先存入表头,然后带参循环存入书籍信息。带参的意义就是,可以无限调用该语句,只要知道书的序号i。7.从信息中读取txt文件:structbookscharnumb10;书号charnameb20;charauthorb10J;charnamerL10;chardaysb10;charchaob10;/书名作者借阅人借出日期超期天数;定义结构体。利用fscanf()语句讲读取的数据按顺序存入结构体中。然后直接利用书籍添

13、89ABGDEF色色色色篮色色色色黑蓝绿湖红膏白=01234567CMD.EXE启动时髓爵舞号箭矗鬣韶颜鹃般DefaultColor注册表值。加是用相同的前景和直景颜色来执行COLOR命令,COLOR命令除潞EPRORLEUEL设置为1。图3.12.关于书籍的cout输出:最开始设计输出模块时候,仅仅是想到了不带参的book信息输出,show_book()函数中自带了一个for语句循环输出所有书籍信息,是为显示全部书籍设计的。但是后来发现如果要单显示筛选信息就要从新写一个带参show_book(inti),虽然函数重载允许这样做,但是却无意义的增加了代码长度。我选择删除了不带参的sh

14、ow_book(),把for语句循环写在外面。这样就增加了show_book(inti)函数的利用率,精简了函数的和长度。3.书籍信息的txt写入:综合了屏幕打印的经验,鉴于fwrite和cout使用方法和显示效果类似,我决定将txt的写入语句也设置成带参形式saveFile(inti),原理与show_book(inti)基本一致。完成这些就能实现。后来发现文件总是覆盖,每次写入都会将上一次的覆盖,也就是只有最后一行,后来才想起了ios:app追加模式,才最终算完整实现。4.读取数据函数:这个函数是我编辑最久的,因为使用的不熟练,我先查找了很多资料,并且写了一些单独的小程序去测试效果,但

15、是感觉都不理想。后来选择了一个最笨的方法,利用fseek函数一格一格的挑开空格和无用信息。但是这样做最大的缺点就是,我的txt导入文档鼻息保持固定格式,一格空格都不能多,如果多了就会导致错位。后来与徐老师交流时,老师也说这种输入方法不可取,因为实现了功能但是意义不大。规格太死,不够人性化。于是我就退后开始,重新选择语句。最后决定定义结构体,把txt中信息读取之后直接存入结构体,随后就把结构体中的数据利用set.xxxx函数存入。5.关于字母纠错及错误输入的处理:字母输入原来都是用fflush(stdin);来清空缓存来防止程序进入死循环。但是我这次编程想到了一个更加简单有效的方法:利用cha

25、:弋*黑"面*31校作者直正仔按日期麦技6;返回上级。|ill出索疑置输入也林要的技务序号,4谪桂3以要宜触借出日朝:26161W9建田野产BHWff米.:-<-米.:-;:-<-5.2测试目的1、测试学号重复2、测试字母和特殊字符对输入的影响3、测试筛选是否符合规格5.3测试结果全部通过6心得体会经历了为期十天的编程实习,我觉得我变得更加成熟了,我从一开始的迷茫到后来的目标坚定,这都是一个改变的过程。因为是在暑假前就选好了题目,而且提前也知道了题目的要求。所以我在暑假就做好的了充分的准备。其实最开始想自学用VC+来编写一个可视化的程序。但是实施起来却没有那么容易,因

26、为我学习的VC不系统不全面只是一些皮毛,改改别的还可以,但是要是真正想实现自己的思想就有点捉襟见肘。后决定还是先用比较熟悉的C+语言来编一个完整的系统。虽然以前有做过C+的实验。但是像这种完成的系统确实没有经历过。其实这也是一个挑战,也是一个开始,是我们接触完整系统的开始。等快开学时候我已经完成了大部分代码:0.1原版.cppwIC+Source|11KB工314实现二半二证U*T+SourceI也西102历史存档有vIbug.cppC+Source问题存档."PvIC+Source|.I21KB0.3.cppvIC+

27、Source|19KBdl功能基本实现U*C+Source21KB但是有一些问题还是没有解决,我开学后就开始全力去解决这些问题。偏偏事与愿违,关于文件读取问题始终没有找到好的解决办法。最后还是从C+教科书上找到的灵感来解决这些问题。收获很大。本次学习中我有以下收获:1、明确了C与C+的区别,运用了多种C+知识,包括一开始就没弄太明白的文件输入输出,这回事真正弄明白了。2、复习了类和结构体的知识,但是继承类没有用到。以后还要多加复习。3、第一次编写之后,运行之后有50多个错误,大多数都是因为马虎造成的。以后还要多加此类的练习熟能生巧。4、多多利用网络资源,看网上的类似的代码能够

28、开阔自己的思路,学习别人好的算法。学习有很大帮助。5、先写出流程图这样是非常好的一种习惯,可以为后面写程序打下好的基础。6、养成好习惯,一个一个模块写,写好了立即执行看是否有错误,以防都写完了,错误却没法去改正。10天的编程已经接近尾声,但是总觉得要完善我的选题仍有许多要做的工作。以后还要加强自己的学习。努力学习编程。感谢徐老师的指导。7附录#iiiclude#include#include#include#iiicludeusingnames

29、pacestd;*书籍结构体,classBook(private:charbnum20;charbname20;charbauthorflO;charrname10;charbdays10;charbchao10;public:Book()strcpy(bnum/M,);strcpy(bname/M,);strcpy(bauthor;MI);strcpy(rname,HM);strcpy(bdays/u,);strcpy(bchao/,M);用于存放书籍基本信息*书号书名作者借阅人借出口期超期天数构造函数初始化信息voidset_bnum(char*no)sti

30、cpy(bnuni4io);char*get_bnum()returnbnum;设置书号把字符串no中的字符更制到字符串bnum中获得书号返回值为bnumvoidset_bname(char*n)设置书名sticpy(bnaiiieji);char*get_bname()获得书名returnbnaine;voidset_bauthor(chai-*a)设置作者sticpy(bauthoi;a);char*get_bautliorQ获得作者姓名returnbauthor;设置借出口期获得借出口期设置超出天数/获得超出天数voidset_bdays(char*d)sticpy(bdays.d

31、);char*get_bdays()returnbdays;voidset_bchao(chai-*c)sticpy(bchao,c);char*get_bchao()returnbchao;voidseCrnaine(char*rn)设置借阅人sticpy(rname,in);char*get_rnaine()获得借阅人姓名returnrnaine;voidcopy(Bookm)/Book结构体copy函数strcpy(bnumjn.get_bnuniQ);将获得书号函数里的返回值里的字符更制到bnumstrcpy(bname4n.gecbname();strcpy(bauthor4ii

32、.get_bautlioi();strcpy(rnamejn.get_rname();strcpy(bdays,m.get_bdaysQ);strcpy(bchaojn.get_bchaoQ););*书籍管理结构体,实现管理书籍功能*classBookManageprivate:定义Book书籍结构体数组对象,最大容量100本Bookbooks100;public:mtlength;BookMaiiage()构造函数,读取磁盘文件length=0;从头读起,计数,最大100)BookManage0析构函数,保存磁盘文件intadd(Bookbook)/添力口图书资料/if(lengtli>

34、cmp(booksi.get_bnameO,bna)=O)判断returni;return-1;intbau_seaich(chai-*bau)按作者查找书籍(fbr(inti=O;i

35、籍(fbr(inti=O;i

41、K_SET);/跳开表头40字节for(inti=0;i<5;i+)(fscangS,"s",&fbrmi.numb);fscanf(fp,&fbrmi.naineb);fscanf(fp,M%s,&fbrmi.authorb);fscanf(fp,M%s*&r);fscanf(fp,M%s,&fbrmi.daysb);fscanf(fp,M%s,&fbnni.chaob);book.seCbnum(fbrmi.numb);book.secbname(b);book.set_bau

42、thor(fdnni.authorb);book.seOname(r);book.secbdays(formi.daysb);book.seCbchao(fbrmi.chaob);BookManage:add(book);fflush(stdin);/总是溢出,终于想去了清空缓存,就好了,呵呵fclose(fp););*菜单结构体,实现界面引导*classMenuBookMaiiagebm;定义书籍管理结构体对象bmprivate:charchoice;菜单序号选择intkey;管理员密码public:intcheck(intm)检查语句(/*intq;dowhile(!(

THE END
1.华中师范大学图书馆(中文)希望图书馆后续能够为我们正式购买文泉学堂知识库的使用权限,十分感谢!! 办理情况 处理状态 已处理 回复内容 您好,感谢您对图书馆资源建设的良好建议,已将您的建议反馈给图书馆相关部门,图书馆新增数据库一般需要进行一段时间的试用,然后根据试用期成本和效果决定是否新增购买。更多数据库购买详情可联系图书馆文献资源https://lib.ccnu.edu.cn/xxnry.jsp?wbtreeid=1095&leadermailid=8362
2.110个数据库1408TB数字资源免费用!成渝市民的线上图书馆来了下电子书、查论文资料、听有声故事、看名师讲座、阅专题资料、学线上课程、了解地方资源……川渝两地携手推出的公共文化服务又上新了!7月1日,上游新闻记者从重庆图书馆获悉,由重庆图书馆携手成都图书馆推出的“数字文化‘一网通’——成渝特色数字资源共建共享”服务已正式上线。 https://www.163.com/dy/article/J612LQ2N053469M5.html
3.基于C++的图书馆管理系统qtcreator+vc图书馆管理系统资源《基于C++的图书馆管理系统》 在信息技术飞速发展的今天,图书馆管理系统的自动化与智能化已成为必然趋势。本文将深入探讨一款基于C++编程语言实现的图书馆管理系统,它旨在提高图书管理的效率,优化用户借阅体验,同时也为图书馆工作人员提供便利的工作平台。 我们来了解C++这一强大的面向对象编程语言。C++是C语言的增强版https://download.csdn.net/download/ru08_17/10709383
4.C++实现简易图书馆管理系统C语言本文实例为大家分享了C++实现简易图书馆管理系统的具体代码,供大家参考,具体内容如下 思路 在本程序中共有四个类: book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的get()和set()方法。类图如下: library类:此类中有一个存放的书的数组,并且可以对书进行,查询,借阅,归还,添加,等相关操作。类图如下:https://m.jb51.net/article/240545.htm
5.图书管理系统开题报告本设计是以学校图书馆借阅系统为例。编程语言采用Visualbasic6.0,它可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,可以轻松方便的对数据库管理。其主要功能:实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修https://www.unjs.com/fanwenwang/kaitibaogao/20110821165045_683280.html
6.java图书馆管理系统(面向接口编程)腾讯云开发者社区2. 用户借书时,被借阅图书馆图书库存减少,放入我的图书容器 3. 如果同一种书,我的图书容器对象只有1个,但是数量是可以变化的。例如:《设计模式》这本书借了2本,则数量为2,不是2个对象。且,库存为0的图书无法借阅 4. 还书:当用户借的书还掉是,相应的书本的数量应该减少,如果该书本的数量还完了,则我的https://cloud.tencent.com/developer/article/2099253
7.图书管理系统api接口(图书管理系统功能简介)传统手工管理对图书馆管理员而言,工作繁琐而艰巨,同时对读者借阅在时间和空间上也带来诸多不便,逐渐出现信息资源流通效率低、服务不够细致严密等问题。 如何才能更有效的发挥校园图书馆这个信息交换中心的应用效率。图书馆管理系统打破了传 统的图书管理模式,以系统性、实用性为原则,最大限度提高图书馆管理各个环节的https://www.eolink.com/news/post/61446.html
8.图书借阅管理系统毕业设计论文.pdf图书借阅管理系统毕业设计论文.pdf,摘要 本文主要介绍图书借阅管理系统的开发过程,其开发主要包括后台数据库的建立和维 护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性好、完整性强、安全 性强的数据库,而对于后者则要求应用程序功能完备,界面友好等。 https://max.book118.com/html/2024/0609/8046044014006077.shtm
9.图书管理系统图书管理系统,图书馆,管理信息系统,数据库,面向对象, 图书管理系统是典型的信息管理系统。图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对https://wap.cnki.net/lunwen-2009053253.html
10.图书管理系统c++数据结构实验报告.docx该【图书管理系统 c++ 数据结构实验报告 】是由【das】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【图书管理系统 c++ 数据结构实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您https://www.taodocs.com/p-979278932.html
11.图书管理系统项目总结(精选14篇)2、图书馆管理系统的运行 图书馆管理系统运用方便、操作简捷,工作人员先通过编目和打印子系统对图书进行电子书签的制作,并且在系统中录入图书名称、作者、类别、出版商、出版时间、价格和书籍大小等详细信息。再制作电子书签并粘贴在图书书脊,以便读者在借阅时直接扫描电子书签即可完成借阅操作,从而使图书馆的流通和管理效https://www.hrrsj.com/gongzuozongjie/xiangmuzongjie/831296.html
12.的数字图书馆系统,用户可以从该系统查询或下载已发表的学术某高校图书馆欲建设—个图书馆管理系统,目前已经完成了需求分析阶段的工作。功能需求均使用用例进行描述,其中用例“借书(Check Out Books】”的详细描述如下。 参与者:读者<Patron>。 典型事件流: 1输入读者ID; 2.确认该读者能够借阅图书,并记录读者ID; 3输入所要借阅的图书ID: 4根据图书目录中的图书ID确认该书https://www.ruantiku.com/shiti/395678773.html
13.C++实现简单的图书管理系统C++实现简单的图书管理系统 今天再为大家介绍另一个常用的管理系统——图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果。 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:https://www.xiuzhanwang.com/a1/Cyuyan/2909.html
14.c++图书馆管理系统constintMaxb=100;//最多的图书 constintMaxbor=5;//每位读者最多借五本书 //读者类,实现对读者的信息的描述 classReader { private: inttag;//删除标记1:已删0:未删 intno;//读者编号 charname[10];//读者姓名 intborbook[Maxbor];//所借图书 http://www.360doc.com/document/18/0722/15/58020531_772375143.shtml
15.先锋图书馆管理系统2017v5.8.0.820.zip先锋图书馆管理系统软件是一款专业的图书馆管理系统软件。软件最大的特色是可以简单方便的实现图书、报刊、光盘、音像资料等资料管理,包括管理、借阅、检索和打印等常用功能。软件可以适用于学校、企事业单位,以及中小型图书馆、图书室等地。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成日常https://www.iteye.com/resource/weixin_39841882-11338957
16.图书管理系统毕业论文网图书馆管理系统提供丰富的报表(供有几十种报表),不仅可以打印出来,还可以导出到各种格式文件的文件,可以直接发布到校园网络上或提供给其他部门使用。可以说目前图书馆所需要的各种报表,系统都能提供。特别是根据学校用户要求开发的一些功能很受学校图书馆用户的欢迎,例如毕业班催还清单报表、图书借阅或读者排行榜、按https://www.zboao.com/cgal/9114.html