《图书管理系统(含代码)课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统(含代码)课程设计报告.docx(35页珍藏版)》请在第壹文秘上搜索。
1、中南大学C+锦翟被耐实跋板告同:老支信息管理索统专业班级.,城地1502指导老师:普冲胜名:场机皆号0202150222龛我时间/2023耳7月13日中南大学课程设计报告目录第一章系统概述11.1功能简介2第二章第二章系统功能的分析和简要框图32.1主函数42.2初始化文件42.3主菜单52.4查询72.5借书操作82.6还书操作92.7新增图书102.8删除图书112.9新增读者122.10读者信息13211借阅记录14第三章调试及运行结果153.1主菜单153,21J!0JO+*+*+*+*+*+*+*+*+*+163.3归还图书163.4借阅图书二173.5读者注册:一一一一一一一一.1
2、83.6图书信息修改193.7新书采编入库193.8删除图书信息.-203.9借阅记录203.10读者信息:21第四章总结一一一一一一一214.1遇到的问题及解决方法214.2收获和体会234.3致谢23第五章源代码235.1book,h235.2head.h235.3addbook.cpp245.4addreader.cpp265.5brbook.cpp285.6checkbr.cpp325.7checkreader,cpp325.8deIbook.cpp335.9findbook.cpp355.10main,cpp425.11mainmenu.cpp425.11return.cpp445.
3、11setfiIe.cpp46-1刖百图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。此程序包含了图书信息的录入、图书信息的浏览、图书的查询和排序、图书信息的删除与借书,还书等。通过编译一个C+语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所想要的信息的功能。该图书信息管理系统记录了图书馆中图书的图书号、书名、作者姓名、出版社名、图书的现存量和总库存量等书籍数据,同时有对书籍数据以及借阅者的信息进行管理,可以实现对书籍和借阅者进行添加和管理。成员设计内容简介一、题目及要求题目三:图书管理系统设计图书管理信息包括:图书名
4、称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述1、新进图书根本信息的输入。2、图书根本信息的查询。3、对撤消图书信息的删除。4、为借书人办理注册。5、办理借书手续。6、办理还书手续要求:使用二进制文件方式存储数据,系统以菜单方式工作二、目的与意义C+语言课程设计课程设计是计算机科学与技术专业实践性环节之一,要求明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;通过课程设计的综合训练可以使学生进一步理解和掌握面向对象程序设计课程的根本知识;掌握面向对象程序设计的思路和方法;根本具有利用面向对象的方法以及C+的编程思想来完成系统设计的能力提高学
5、生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平。三、小组成员及小组分工小组成员:杨帆、余华龙、姚翔宇杨帆:brkook()findbook()addbook()deIbook()姚翔宇:checkreader()fcheckbr()freturnbook();mainmenu(),余华龙:头文件,main(),setfiIe(),addreader()四、主要参考文献C+语言程序设计第三版,郑莉,清华大学出版社,2004C+PrimerPlus第六版fStephenPrata,人民邮电出版社,2023第一章总体设计1.1功能简介本软件是一个简单的图书管理系
6、统,软件为Win32控制应用台程序。完成以下功能:1新进图书根本信息的输入2图书根本信息的查询3对撤销图书信息的删除4为借书人办理注册5办理借书手续非注册会员不能借书-办理还手t补充要求:使用二进制文件方式存储数据系统以菜单方式工作1.2设计思路根本功能:主菜单1新书采编入库:新购入一种书,登记到图书信息中去。如果这种书在帐中已有,那么只将总库存量增加。3)删除图书:某种书已无保存价值,将它从图书帐目中删除。4查询已在图书库中的图书信息。5对读者的信息进行管理:新增,查询。6查看借阅记录查询图书信息:a)按书名查询:如查找所有书名为数据结构的图书。b)按作者姓名查询:如查找所有张三编写的图书。
7、C)按出版社名查询:如查找所有机械工业出版社出版的图书。d)按书籍编号查询:如查找书籍编号为978-7715-27946-0的图书.e)组合查询:如查找所有张三编写的、由机械工业出版社出版的图书。2)借阅:如果一种书的现存量大于零,那么借出一本,登记借阅者的信息,改变该书的现存量。3)归还:注销对借阅者的登记,改变该书的现存量。整个程序的主函数由以下局部构成:头文件head,h、头文件book,h、setfile、mainmenu1.头文件head,h、book,h实现两个类的定义bookdate图书类,实现对图书的描述:图书根本信息如图书编号、书名、作者、出版社、单价等;图书的管理信息如查找
8、图书及新增图书、删除图书通过书的现存量、书的总库存量描述)等;Readerdata读者及图书管理类,公有继承图书类,实现对读者信息的描叙:读者的个人资料如借阅者姓名、学号、性别、登陆密码等;读者借阅信息如借还图书本数等;类的数据成员和各函数的功能描述cIassbookdata/数据成员:charbookisn50/图书编号,bookname50书名Writer50/作者PUbIiShing50出版社;、nowstore,书的现存量alIstorer书的总库存量PriCe单价classmanagebook数据成员:reader50/借阅者姓名,rdID50学号gender50性别password
9、50登陆密码num/借还图书本数各个功能函数:voidsetfile();初始化数据文件voidmainmenuO;主菜单函数voidfindbook(char*fiIe);查询图书voidbrbook(char*fiIe);借阅图书voidreturnbook();/归还图书voidreturnf(char*fiIe,readerdatap);voidaddbookO;新书采编入库voidadd(char*fileFbookdatap);voiddeIbook();/去除库存,删除图书信息voiddel(char*fileFbookdatap);voidaddreader();/新增读者信息
10、voidcheckreader();查询读者信息voidcheckbr();/查看借阅记录第二章系统功能的分析和简要框图算法分析:在本程序中,头文件定义了两个类:CIaSSbookdata和ClaSSmanagebook,以及各个功能函数。运行程序,首先执行voidSetfile();函数,该函数初始化数据文件,将在exe程序所在文件夹生成所有数据文件,假设该文件夹没有数据文件,那么生成空的数据文件,数据文件记录图书馆管理系统的所有数据。然后由VoidmainmenUo;生成主菜单,主菜单运用SWitCh语句区分指令进行执行功能,其他菜单亦雷同形成。1.查询图书信息2.归还图书3.图书信息修改
11、4.读者注册5.读者信息6.借阅记录O.退出系统分别调用相应函数直接在数据文件上对图书执行相应功能。在让借阅者执行查询,借阅,归还图书等操作之前,首先要在初始化的数据文件中添加图书信息,整不卤书馆管理系统大体结构就如上所述,大概可分为图书信息管理和借阅者信息管理2个模块,外加一个借阅记录那么构成图书馆管理系统。本程序对数据文件中数据的编辑是通过将数据文件中的数据编辑后转移至中转文件中,再将中转文件的数据复制回清空了的数据文件当中,即可完成编辑。主函数包含三个局部:建立数据文件setfiIeO;设置背景为紫色字体亮白色/修改窗口名称2.2stfile.cpp初始化数据文件初始化数据文件,将在ex
12、e程序所在文件夹生成所有数据文件,假设该文件夹没有数据文件,那么生成空的数据文件,数据文件记录图书馆管理系统的所有数据。包括:中转文件datReaderdata,datrecord,datbookdata,da中转文件1.dat通过将数据文件中的数据编辑后转移至中转文件中,再将中转文件的数据复制回清空了的数据文件当中,完成编辑。2.3mainmenu.GPP主菜单输入choice2.4findbook,cpp查询图书2.5brbook,cpp/借鸣凰开始输出图书信/息问题三:程序常因错误输入而崩溃解决方案:运用一些可以容错的语句来防止多余的输入,并能返回重新输入。也可以运用提示词来减少用户的非
13、法输入。问题四:运用二进制文件读写解决方案:意我们不再使用插入和提取操作符(译者注:和操作符)你可以这么做,但它不会用二进制方式读写。你必须使用read()和Write()方法读取和写入二进制文件.创立一个二进制文件,看下一行。Ofstreamfout(file.da,ios:binary);这会以二进制方式翻开文件,而不是默认的ASCll模式。问题五:文件结构的混乱解决方案:在书写时保持良好的书写习惯,并在适当的地方增加注释4.2收获和体会虽然在这个学期中,我们已经学习了c+语言程序设计这门课,但是知识的运用完全是一个更高水平的要求。这次设计,不仅稳固了我以前所学的知识,还让我对c+语言有了
14、更深一步的了解,掌握了更多的技巧和技能。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、WhiIe循环和SWitCh语句,还用到了函数之间的调用包括递归调用。编写一个完整并且有严密逻辑,以及抗非法输入的程序对于初学者来说还是有相当的挑战性的,我们在编写的过程中遇到了重重困难,有些克服了进步了。然而更多地是感受到自己知识储藏的缺乏与实现按想法之间的矛盾。当然,我们的程序还有很多不完善的地方,比方说,我们试图以二进制的方式保存文件,最终也是心有余而力缺乏没有做到,程序在调试中不断的冒出bug,大晚上面对电脑debug到生无可恋。总之,这次设计程序让我受益良多,我好好珍惜了这种难得的时机,并且在这个过程中深刻认识到了自己的缺乏。4.3致