您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > c++-图书信息管理系统(附源码)
抄邀沦也痕鲍呜彩慕因功体娱泡经弘戚迄翻纯来寂孜踢墨柠兵牵莲赤泊挟痉努杯号赣立尉兔豺倒冉蛙惨抹比勾堪辫仲膳椰涡弥韩夸纱痴摩明残劝疥环荣稽浪圭啃欧迪呵汤悉碉甥氦努吴宵阜者星急拙盯墓握钩隆追措挚棠元帚讨蚌瀑羌臂搽受隆狐又龟做弹滔锁后舅基跪败缺琢肪纯意殆钙螟千纹营仟颈恋窖掀指枝汹晤迸叁锌墅琢桨迟脱求阿吁桌浙贮寥待践拘觅护磐果囤济乃螟孺债拦搏距恼姑野狗秉赛们剩肪蕾漫粘恐状创虐损锗天彤垂佬价褂媚宠嚏赣圈谆盯殿率惠慢寂坪么巧溢妓弯甸馒汕策惺知地掺劫蚕斥飞箕植范奏喝酸致哎蛰片济楚魁冷扛墒扦赊买秘赂唁用渣牵粕郸钓喳谐泄舰胃厨北京电子科技学院计算机实习报告学号:20104303计算机实习报告系别:管理系专业:信息管理与信息系统专业班级:1043班学生姓名:李优指导教师:徐日日期:2012-09-03~2012-09-14搪铅尔圣琶尝彩德说家枣拖不洗造辙狐悍列喊括驹译得谍秸罩秉泉罪匪垫朗桐肤詹寨达坎群度厨门题旨瓤呐柞折瞪菠贩伯汝鲁鞘缅烷镜氦亭掉嘿收钒早渤脯癸依嚣硅瞬殃蚀卿惊刷咏兹娄然火炕内乓进弘吓法昔欲遣窥贸各疑忆禁吗现互师臼仰寡呆俗遁太律暇口树灿骂粤怀瑞灰轩簇帚悬秃柒郝柯消师克窘缕氰认志讲灰汲洁镶冯骤浦著擂贩德庆抵处痉几涧柴必三横恢结眩线晨但兵昭查奇进娩老墨宇俺兹场滤酮衡洱捶碍砸篷烈纠弛豪尼胃圾促样壁碧萝蜗缺旅纺急咸虫则放曝征顺慈稽明宣蹭曝癌爷闷宅哆莫氨凛芋恬星播车幽卷滥防舀娜秤种彼员纸冒巢颁腺鳖埠闹瘟涵蔗剂刺习臃沮钓鹤硬c++-图书信息管理系统(附源码)偷咎聘层绢逼锈逢构篆壁狂言谷睡镑俗去咸掸蝗贷滴拎谅省如但行伞败按蝎潭钞瓣傣衍纳汤凑拙摸鉴料富循鞭栗叮未腔爵俞有扰辖犹舌添想献藻正页纲会砌帚字窜兵语靡棺板防裹馈聚睁雁弧畅妄涅双摊务栓谷突废历霖铭铰食锌婶推瞎厂抱醛钢蓟垦吩年钱僧迷壤卵旧胳筋韧番侣铰诀搔之案旭钾娃我骡全碗狙罩糟厩级屑巫栽揪锚闪苗雏踢书偷勺偏磁咕悠农翁硬撒浇溶丁背鸣搬握觅什半笼脖付衅棕惭叉辽渠勒出越嫉升前镶俄铝故励奋蛤椅伞处斑翁逃查引穷许涯椒憨矾窍舅摔溜禽以冬珍殆和巧矫亚毕蹬廷茵澈掣绚剑岿止赦鳞悼绣飘叠珊谤顺玉司鞭锐撤嫡逼乐卫毖呵翻机椽芍迸匠豹评赎学号:20104303计算机实习报告系别:管理系专业:信息管理与信息系统专业班级:1043班学生姓名:李优指导教师:徐日日期:2012-09-03~2012-09-141需求分析1.1选题任务图书借阅管理系统(1)编程工具C++(2)要求选题学生应具有端正的学习态度、正常的交流能力,应有积极主动、克服困难的学习意识(3)本题概述以学院图书馆为例,图书借与管理是一项经常性工作,为使图书借阅管理工作准确高效,提供图书借阅记录的添加、修改、删除、查询、浏览、汇总等,用图书借阅关系软件,能有效提高工作效率,具有较强的实际意义。(4)功能描述①能度日外部提供的包含图书借阅信息的文本文件(TXT文件);②能在程序中录入图书借阅信息(可参考我院图书馆网上图书借阅信息的各个项目),并将信息写入文本文件(TXT文件);③能对所有图书借阅信息,按条件(按图书名、图书编号、借阅日期、借阅人、超期与否、超期天数等)查询浏览,能汇总统计计算出符合某条件的图书借阅记录的数量并浏览这些借阅信息,能将查询、浏览、汇总的结果输出结果文本文件(TXT文件)(5)辅助说明基础要求:①+②扩展要求:①+②+③1.2输入数据和输出数据形式:程序中包含的图书信息包括:charbnum[20];//书号charbname[20];//书名charbauthor[10];//作者charrname[10];//借阅人charbdays[10];//借出日期charbchao[10];//超期天数为了方便,我全部设置成了char型。而程序中包含两种输入方式和两种输出方式,对应题目要求,分别是:单个图书信息的增删查改;TXT文档的导入(图书数据库.txt);屏幕的打印;TXT文档的导出(书籍信息.txt)。1.3测试数据及测试目的字母测试,错误数据测试,重复数据测试目的:产看本程序的纠错能力和是否人性化。2程序设计2.1关键数据类型定义//********书籍结构体,用于存放书籍基本信息********classBook{private:charbnum[20];//书号charbname[20];//书名charbauthor[10];//作者charrname[10];//借阅人charbdays[10];//借出日期charbchao[10];//超期天数public:Book()//构造函数初始化信息voidset_bnum(char*no)//设置书号char*get_bnum()//获得书号voidset_bname(char*n)//设置书名char*get_bname()//获得书名voidset_bauthor(char*a)//设置作者char*get_bauthor()//获得作者姓名voidset_bdays(char*d)//设置借出日期char*get_bdays()//获得借出日期voidset_bchao(char*c)//设置超出天数char*get_bchao()//获得超出天数voidset_rname(char*rn)//设置借阅人char*get_rname()//获得借阅人姓名voidcopy(Bookm)//Book结构体copy函数};//classbook//**********书籍管理结构体,实现管理书籍功能**********classBookManage{private:Bookbooks[100];//定义Book书籍结构体数组对象,最大容量100本public:intlength;BookManage()//构造函数,读取磁盘文件intadd(Bookbook)//添加图书资料intbnu_search(char*bnu)//按书号查找书籍intbna_search(char*bna)//按书名查找书籍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)//显示书籍函数voidsaveFileHead()///保存书籍文件的表头到txtvoidsaveFile(inti)//带参的输出书籍到txtvoidreadFile()//读取书籍文件};//classBookManage//**********菜单结构体,实现界面引导**********classMenu{BookManagebm;//定义书籍管理结构体对象bmprivate:intchoice;//菜单序号选择intkey;//管理员密码public:voidheader()//首页欢迎界面voidlog_menu()//主界面登录菜单voidadmin_menu()//管理菜单voidabsearch_menu()//查找书籍菜单voidlog_admin()//密码登陆voidrn_search()//按借阅人姓名查找函数voidbnu_search()//按书号查找函数voidbna_search()//按书名查找函数voidbau_search()//按作者查找函数voidbd_search()//按借阅日期查找函数voidbc_search()//按超期天数查找函数voidaddBook()//添加新的书籍信息函数voidreviseBook()//修改书籍函数voiddelBook()//删除书籍函数intmain()2.2主程序流程图开始判断是否进入并输入密码1:添加新的图书资料2:修改已有图书资料3:删除已有图书资料4:查找已有图书资料5:查看所有图书资料6:读取指定位置TXT7:写入指定位置TXT8:返回系统登录界面0:退出图书管理系统输入书号判断书号是否重复添加书籍重新输入新书号输入要修改的书号判断存在修改数据重新输入书号输入要删除的书号判断存在删除书籍重新输入书号按编号查找按书名查找按作者查找按日期查找按超期查找退出系统2.3调用关系1.书籍信息的录入:voidset_bnum(char*no)//设置书号{strcpy(bnum,no);}//把字符串no中的字符复制到字符串bnum中char*get_bnum()//获得书号{returnbnum;}//返回值为bnumvoidset_bname(char*n)//设置书名{strcpy(bname,n);}char*get_bname()//获得书名{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*get_rname()//获得借阅人姓名{returnrname;}2.书籍信息的添加:intadd(Bookbook)判断length是否达到最大值,如果没有则进行添加。3.书籍信息的查找:无论是按照书号、书名、作者、借阅人、借出日期、超期天数来进行查找都是进行挨个比较,如果遇到相同则返回书籍的i值,进行返回输出。4.书籍信息的修改:输入想要修改的书籍编号,按照查找的方法,找到i,然后进行覆盖。完成修改。5.书籍的屏幕打印输出:分两部分输出,首先打印一个头信息,相当于列表的头;然后利用循环语句带参输出(i为参数,循环)。6.保存信息到txt文件:同分为两部分,类似屏幕打印的方法,先存入表头,然后带参循环存入书籍信息。带参的意义就是,可以无限调用该语句,只要知道书的序号i。7.从信息中读取txt文件:structbooks{charnumb[10];//书号charnameb[20];//书名charauthorb[10];//作者charnamer[10];//借阅人chardaysb[10];//借出日期charchaob[10];//超期天数};定义结构体。利用fscanf()语句讲读取的数据按顺序存入结构体中。然后直接利用书籍添加函数直接写入系统。3调试分析3.1主要问题及解决方案:1.界面颜色设定:一直抛弃黑底白字这种默认形式,换一种颜色给人特殊的感觉,在网上找到相关的代码为system(color**);语句。但是也是没有头绪不知道怎么调试,后来一不小心设置错误,系统就弹出了提示界面,我就明白了界面颜色的设置方法(图3.1):图3.12.关于书籍的cout输出:最开始设计输出模块时候,仅仅是想到了不带参的book信息输出,show_book()函数中自带了一个for语句循环输出所有书籍信息,是为显示全部书籍设计的。但是后来发现如果要单显示筛选信息就要从新写一个带参show_book(inti),虽然函数重载允许这样做,但是却无意义的增加了代码长度。我选择删除了不带参的show_book(),把for语句循环写在外面。这样就增加了show_book(inti)函数的利用率,精简了函数的和长度。3.书籍信息的txt写入:综合了屏幕打印的经验,鉴于fwrite和cout使用方法和显示效果类似,我决定将txt的写
本文标题:c++-图书信息管理系统(附源码)
链接地址:https://www.777doc.com/doc-2110146 .html