c++图书信息管理系统(附源码)_第1页
c++图书信息管理系统(附源码)_第2页
c++图书信息管理系统(附源码)_第3页
c++图书信息管理系统(附源码)_第4页
c++图书信息管理系统(附源码)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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;借阅人char bdays10;char bchao L10;借

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

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

5、*get_rname() void copy (Book m) ;/class book获得作者姓名设置借出日期获得借出日期设置超出天数获得超出天数设置借阅人获得借阅人姓名/Book结构体copy函数*书籍管理结构体,实现管理书籍功能*classBookManageprivate:Book books100;定义Book书籍结构体数组对象,最大容量100本public:intlength;构造函数,读取磁盘文件BookManage()int add(Book book)添加图书资料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

7、voidreadFile()读取书籍文件;/classBookManage/*菜单结构体,实现界面引导*classMenuBookManagebm;定义书籍管理结构体对象bmprivate:intchoice;intkey;public:voidheader()voidlog_menu()voidadmin-menu()菜单序号选择管理员密码首页欢迎界面主界面登录菜单管理菜单voidabsearch_menu()查找书籍菜单voidlog-adminOvoidrn_search()voidbnu_search()voidbna_search()voidbau_search()voidbd_se

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

9、me() return bname;void set_bauthor(char *a) strcpy(bauthor, a);) char *get_bauthor() return bauthor;) void set_bdays(char *d) strcpy(bdays, d);) char *get_bdays() return bdays; void set_bchao(char *c) strcpy (bchao, c);) char *get_bchao() return bchao;void set_rname(char *rn) strcpy(rname, rn); char

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

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

12、加函数直接写入系统。3调试分析3.1主要问题及解决方案:1 .界面颜色设定:一直抛弃黑底白字这种默认形式,换一种颜色给人特殊的感觉,在网上找到相关的代码为system(color*);语句。但是也是没有头绪不知道怎么调试,后来一不小心设置错误,系统就弹出了提示界面,我就明白了界面颜色的设置方法(图3.1):-回|xc*C:XDocxmentsandSettingsAd>:ini;st:rator桌面!我的计算机实用11图书循系设置默认的控制台前景和背景颜色。COLORLattrlattr指定控制台输出的颜色属性髓属颦翳菽翻饕器之二至一个为背最第二个则为色 色色绿色色色色 色蓝白 灰亮 =

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

16、r来存储选择,随后强转为int型,其实就是讲所有的字符转为了asc2码,因为acs2码的唯一性,我就可以用switch直接跳过了字母部分,比如我要判断i的输入是否唯1,我就将i-48写入switch判断就好了。4使用说明4.1主要功能介绍及操作步骤:1.主界面:派朱陵陵粽粽派BE8TI北京电子科技学院派举图书借阅管理系统E举宓求斗刃:演米必先必先必先外以移偿移(请选择是否进入九进入系统0;退出您的选择是:.选择1登陆,密码为1043,按任意键进入系统。2.系统操作界面:*CtD<n»enfoMd八AdkxniotrotOTaeM伽if£¥£统n添J

17、U就的箔书资料21修改已有照书资料3'分除已有国书袋科如也找己有图书费帮5:点看所有国书费料61读取指定位置TKI?i写入指定位置w8:返回多线叁录界面8:退出图书行理系统系s统”管fl黑”画小米.臂贵择把熏安的服务序号,-I直接输入数字选择功能。1:添加新的图书资料:2:修改已有图书资料:*Ci»ocu>cnta-Xttl-c八bdBfnfNcfdZ'l出的计"机大号'41*下蚊.日日口。:迪出旧书案理殄线3渔淞/朱I请也择笆哥哭的服分序号,1谓轴入新的书号23秀线目前的无京书记录,坦可以空算漫花,谓箱人新节节名,大学物建谓静入新书件看,孙学

18、明谓静人惜肉人,手优谓假A借旧B期,wiiiwe谓轴入超阴天做,1茅喜田,新书出匕术入城勘,谓按任贪楼鸵续.拱向讲言将二13:删除已有图书资料:*Ci»ocu>cnta-Xttl-c八bdBfnfNcfdZ'l出的计"机大号八/*下蚊.日日口朱耳加里面II添加新的图书馁内3't»己有困书浚农S:麦香所育田书资淞75写入指定位置TXY和退出图书管建另嫌21倏找己百困书出匕“应找己百困书第整1滤取指定位e,返回多战圣术界面情选择切弗要的眠芬序号,3谓轴'%夏僚.书辖的书号,1汹如确定要*屋谖书记录叫,4)V我向拚音饕,她,谓我任整决维嫉.

19、I*Ci»ocu>rnta-Xtt»c八8dBfnfN“fdiSl时的计2机大号八和*下班.,日日口1:布喃的田守货料3't»己有困书浚农s.fir*所有图书馁内75写入指定位*TXT0:退出图书曾理殄统2:俺改己有用干资件41应找己百困书第整,晔R18定位Jim,返回弗扰圣术界面请选择笆哥哭的服务序号,2谓ftp、虾.要修改书藉的书号:1必谓假A更改后的书名,1蝌谓常入更改需的件有,孙竽明至师恭喜过,书转第科脩改:则,谓按任意怪雄续.1?向济母华4:查找已有图书资料:根据序号选择功能:按书名查找:按作者查找:按借出口期查找:的2:技书名立在>

20、泉治箝技作者去技7a一派条41技日期会找来灾疾条si»家侬未6返回上级学w章,B出系统柒案请做人好的要的圈务序号,4憎出日即隹阴天数28111212XM,J按超期天数查找:,C:Bynt*andS«tQiz=AdamxQrZryl我酊itlf实却此.d日已学21技书名重技茗|九悔傕|J<及BWfitt孑家“按出期食技?5:返回上级乡8,逸出国庆电弟诙法气抬奈浓翘备该谱注人名篇舞的置务序号,5瘠看八电旻女伏驾多僮书限1Wa书号书W华寺惜何人借出E182劭天然1«1小流传fi&耐电虫三2M11Z121W蝌楮簟任意吟5:查看所有图书资料:6:读取指定位置T

21、XT:ocuanntzS«tt»7八Ad*n»xQ*or象1我*)it2根炎耳、留书/烽.口省11参加普的图书翔科2F|R3i己方图书奥科部卫PJit»己有图书卿41曾找已有图书第匕,急S.宣节所有图书螂6i4取格定诧1E学7:写人指定在置9B,返回另境至求界面案0:退出旧书育理殄统应.c:e甘名义传笠普91=5人指定也置1X1<h也出图书窗过下近勰件於f在程序所左目兼下.埃%IS0耳.圻登录界面借出日期1B期天敦2«iii2i2iee刈MM29129912轲充毕,请按任意法矍算依期脩羊:7:写入指定位置TXT:1/1.泰M新的田例抬2,

22、偌&己整书货省家穹第密九IW已石用书袋料412花已召图书怅和?%$:玄百所有由谈*4,:谀网指定位置以1>17:马人抽定位置TXTa近血强艇量瓶1 '-以山图书营理至统塞承色捶”黑号的很N芹母.?盟曾收省嘉诵百与百名学.说值享蓼联糕枭口没如轧i:s*同.连华搜岫音半,.CiZ0妙25 id 5mnc,U4a)Netr6"qlStt#MXAm4HX£”. BEB翳三5测试结果5.1测试数据1 .A4asdfasdf(多字母):0:退出您的选择是;dfadsfadfadfadfadf您的操作有误,请重新选择01::DocnBcntsandSHna八Ahin

23、iCrrtcrg而I戏的计算机实习1用书B系统.日回R聚滋滋张米聚滋朱米举参W*A1IOTWLJwwCX>ljWwwwwwwwww*w*>*xa幺宓召1:粒加薪的图书资料2:修改己有密书宽料类3=划除已有图书资料七古找已有图书袋料必必5:查看所有图书资料6;读取指定位置的公常木举7:写人指定位置"IB:返回系统登录果面举?k.家朱B:退出图书管理系统宋米女朱去冬去生请选择您需要的服务序号:adddfadf您的操作有话诗至默售8一叱.1000目的为测试重复编号的问题z./.z.z.x/.xz.z.xz-x/.z-xz.Z.X/.X/.z.请选择您需要的服务序号:1请输入新的

24、书号;10眄过不起,该书写纪录已存在?请重新输入?请输入新的书嘉2 .修改时候输入未知编号:请选择您需要的服务序号:2请输入您要修改书籍的书号n0000对不起,您输入的书号不存在,请重新输入,请输入您要修改书籍的书号:、Ik3 .查找时-Cig<3onR0«Sr”y,8daf“1rNorRifll瞬的计生女习”用书达军统.214161B1技退号费技按书名由技技作者麦我技胆期直孜以巴上级退出系.筑请,入笆需哭的坡分序号,23d2请输入也要麦朋书名,耦田咿和檄则音*1JMd5ett京计尊帆、用书系统.c7Soriy八球«女习”4Mt不!tQSB1:技泪号宜找2=技韦花去找

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

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

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

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

29、pacestd;*书籍结构体,class Book (private:char bnum20;char bname20;char bauthorflO;char rname10;char bdays10;char bchao10;public:Book() strcpy(bnum/M,);strcpy(bname/M,); strcpy(bauthor;MI); strcpy(rname,HM); strcpy(bdays/u,); strcpy(bchao/,M);用于存放书籍基本信息*书号书名作者借阅人借出口期超期天数构造函数初始化信息void set_bnum(char *no) sti

30、cpy(bnuni4io);char *get_bnum() return bnum;设置书号把字符串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;void copy(Book m)/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>

33、;=100)cout«”对不起,储存已满,您无法继续添加!ir;retuni-1;)elsebookslength.copy(book);调用书籍结构体copy函数length+;return(length-!);)intbnu_seaich(chai-*bnu)按书号查找书籍(fbr(inti=O;i<length;i+)if(strcmp(booksi.get_bnum(),bnu)=O)字符串比较,判断是否相等returni;return-1;intbna_search(chai-*bna)按书名查找书籍(fbr(inti=O;i<lengtli;i+)if(str

34、cmp(booksi.get_bnameO,bna)=O)判断returni;return-1;intbau_seaich(chai-*bau)按作者查找书籍(fbr(inti=O;i<length;i+)if(strcmp(booksi.get_bauthoi().bau)=0)判断returni;return-1;intrn_search(char*111)按借阅人查找书籍(fbr(inti=O;i<length;i+)if(strcmp(booksi.get_rnameOn)-O)判断returni;return-1;intbd_search(char*bd)按借出口期查找书

35、籍(fbr(inti=O;i<length;i+)if(strcmp(booksi.get_bdays(),bd)=O)判断returni;return-1;intbc_search(char*bc)按超期天数查找书籍(fbr(inti=O;i<length;i+)if(strcmp(booksi.get_bchao0,bc尸=0)判断returni;return-1;voidrevise(Bookbook.mti)修改书籍函数(booksi.copy(book);/调用Book结构体copy函数voiddeleteBook(mtindex)删除书籍资料函数(fbr(inti=md

36、ex;i<length-1;i+)booksi.copy(booksi+1)用后面的地址将当前的地址覆盖length-;voidshow_bookhead()显示输出歹ij表,表头。COUt«"*书*籍*信*息*歹J*本*表cout<<”书号”;cout.width(15);cout<<”书名”;cout.width(15);cout«"作者”;cout.width(15);coutw“借阅人”;cout.width(15);coutvv”借出口期”;cout.width(15);coutw"超期天数n"

37、voidshow_book(mti)显示书籍函数(cout«booksi.get_bnum();cout.width(15);cout«booksi.get_bnameQ;cout.width(15);cout«booksi.get_bauthor();cout.width(15);cout«booksi.get_rnameQ;cout.width(15);cout«booksi.get_bdaysQ;cout.width(15);cout«booksi.get_bchao()«HnM;)voidsaveFileHeadQ/

38、保存书籍文件的表头到txt(ofstieamfwiite("书籍信息.txt”,ios:app);(coutvv”文件保存失败!exit(l);fwiitevv”*书*籍*,信*息*歹j*表*Wn”Rvritew”书号”;fvvrite.width(15);Rvritew”书名”;fvvrite.width(15);Rvritevv”作者fvvrite.width(15);Rvnte«"借阅人”;fvvnte.widtli(15);Bvritew”借出日期”;fvvnte.widtli(15);Rvritew”超期天数n”;fvrite.close();关闭磁盘文

39、件voidsaveFile(inti)带参的输出书籍到txt(ofstieamfvvrite("书籍信息txt”,ios:app);fvnte«booksi.get_bnum();fvnte.width(15);fvnte«booksi.get_bnameQ;fvnte.width(15);fvnte«booksi.get_bauthorQ;fvnte.width(15);fvnte«booksi.get_rname();fvnte.width(15);fvnte«booksi.get_bdays();fvnte.width(15);

40、fvnte«booksi.get_bchao()«,nn;fvvrite.close();关闭磁盘文件)voidreadFileQ读取书籍文件stmctbookscharnumb10;书号charnameb20;书名charauthoib10;作者charnamerl0;借阅人chardaysbl0;借出口期charchaob10;超期天数;Bookbook;书籍结构体对象bookbooksfbrm100;FILE*fp;if(NULL=(fjp=fopen("图书数据库.txt”Jr")notopen!nM);exit(O);fseek(340,SEE

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(!(

43、q=scanf(1,%ld,&m)|IgetchaiQ!=*n')fflush(stdm);pnntf("输入错误,请重新输入:”);wliile(q=O);(int)in;*/returnm;voidheader。首页欢迎界面/system("coloiA9");cout«"tcout«"tcout«"tcout«"tcout«"tcout«"t_sleep(1000);InH;IIIIM”;IIIIM”;II/IIM”;II、

44、/1IM”;1nH;cout«nt证”;cout«"tX皿;cout«"tXBESTI北京电子科技学院力”;cout«"tXcout«"tX图书借阅管理系统L03”;cout«"tX皿;cout«"t证”;_sleep(600);voidlog_menu()主界面登录菜单(/system(Hcolorfd");header();coutvv”nNt请选择是否进入cout«Hnttttl:进入系统nnttttO:退出nt您的选择是:H;choice

45、:cm»choice;cm.ignoreO;清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响mtcheck(choice);检查语句switch(check-48)case1:log_adnwi();/登录,需密码验证break;case0:exit(l);退出系统break;default:cout«"iit您的操作有误,请重新选择(01):fflush(stdm);gotochoice;)voidadinin_menuQ管理菜单system(nclsM);/system(Hcolorcout«Mt证”;cout«"

46、;tX力”;cout«Mt科*系*统*管*理*界*面*“1”;cout«Mt证”;cout«MtX1:添加新的图书资料2:修改已有图书资料皿;cout«Mt证”;cout«MtX3:删除已有图书资料4;查找已有图书资料皿;cout«Mt证”;cout«MtX5:查看所有图书资料6:读取指定位置TXT证”;cout«Mt证”;cout«Mt派7:写入指定位置TXT8:返回系统登录界面耽cout«Mt证”;cout«MtX0:退出图书管理系统也”;cout«Mt证”;cout&#

47、171;Mt证”;cout«Mt证”;cout«“St请选择您需要的服务序号:choice:ciii»choice;ciii.ignore();mtcheck(choice);检查语句switch(check-48)(case 1: 添加图书addBookQ;bm.-BookManageQ;break;case 2: 修改图书reviseBookQ;bm.-BookManageQ;break;case 3: 删除图书delBookQ;bm.-BookManageQ;break;case 4: 查找图书abseaich_menu();break;case 5: 查看

48、全部图书(bm.show_booklieadQ;fbr(mtj=O;j<bm.length;j+)(bm.show_book(j);cout«nnt显示完毕!”;system(npauseH);adniHi_menu();break;case 6:coutvv”请将命名为图书数据库.txt的文件放置在程序所在目录下。”endl;coutvv”放置完成后,system(npauseH);bm.readFileQ;coutvv”请稍后系统正在处理中."VVendl;_sleep(1000);coutw"导入成功!显示全部书籍。"Wendi;_sleep

49、(1000);bm.show_bookliead();fbr(iiitj=0;j<bm.lengthj+)(bm.show_book(j);cout«niit显示完毕!”;system(npauseH);adnini_menu();break;case 7:(coutvv”讲程序保存在当前目录下,名为:书籍信息.txtyvendl;bm.saveFileHead();fbr(iiitj=0;j<bm.lengthj+)(bm.saveFile(j);coutvv”请稍后系统正在处理中."VVendl;_sleep(1000);coutvv”生成成功!请前往程序所

50、在目录查询。即将返回主菜单!lf«endl;_sleep(2000);adnini_menu();case 8: 返回系统登录界面system(HclsH);log_menuQ;case0:退出系统exit(l);break;default:cout«"iit您的操作有误,请重新选择(0-8):fflush(stdm);gotochoice;)voidabsearch_menuQ查找书籍菜单system(nclsM);/system(Mcolorf2H);(做coutw'r't'tX山coutvv"tttX*书*籍*杳*找*界*面

51、*cout«nttt山coutvv”t田1:按编号查找业"cout«nttt山coutvv”t田2:按书名查找业”;cout«nttt山coutvv”t田3:按作者查找业”;coutvvr't'tX山coutvv”t田4:按口期查找业”;coutvvr't'tX山coutvv”t田5:按超期查找业”;cout«nttt山coutvv”t田6:返回上级业”;cout«nttt山coutvv”t田0:退出系统业”;coutvvr't'tX山cout«Mttt派XW”:charbsc;/booksearchchoicecout«-nt请输入您需要的服务序号:ciii»bsc;cin.ignoreO;mtcheck(bsc);检查语句switch(check-48)case 1:bnu-searchO;break:case 2:bna_search();break:case 3:bau_search();break:case 4:bd_seaich0;break:case 5:bc_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论