欢迎来到天天文库
浏览记录
ID:39309767
大小:817.17 KB
页数:37页
时间:2019-06-30
《课程设计报告 南航 图书库存管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南京航空航天大学《C++语言程序设计》课程设计报告题目:图书库存管理班级:0116202学号:011620231姓名:苏瑞辅成绩:指导教师:潘梅园日期:2017年5月18日目录一、程序功能................................................-2-二、新增功能................................................-3-三、数据结构................................................-5-四、函数调用关系图.........................
2、...........-9-五、精选算法................................................-9-六、源程序..................................................-13-七、典型测试数据......................................-24-八、问题的处理方法..................................-35-九、做课程设计作业的感受......................-36--1-一、程序功能1.追加图书记录输入书号、书名和库存量
3、,在库存列表尾部追加一条记录。此功能每次只能追加一本图书记录,用于初期建立库存记录。2.删除图书记录输入一本书的书号,首先在库表中查询该图书是否存在,若存在,则显示该图书记录,并提问是否删除该图书,根据回答(y/n)确定是否删除该图书;若不存在,提示该书不存在。3.显示所有图书记录每行显示一本图书记录信息。4.查询图书输入一本图书的书号,查询该书是否存在,若存在,则显示该书记录信息,否则提示该书不存在。5.图书入库输入一本书的书号,查询该书是否存在,若存在,则修改已有图书记录的库存量;若不存在,则追加一条图书记录。6.图书销售输入一本书的书号及销售数量。若该图书存在,并且库存量充
4、足,则修改库存量;否则提示该书不存在或库存不足等信息。-2-7.批量导入图书记录用户输入一个文件名,系统自动地讲该文件中的图书记录追加到库存列表中,从而实现批量导入图书。8.导出图书记录提示用户输入一个文件名,系统自动将库存表中的全部图书记录信息写入该文件正文,文件格式与上述导入文件格式相同。9.排序提供六种排序的选择,分别对三个关键字按升序或降序排列。使用了冒泡法、选择法和插入法几种排序方法。10.删除全部图书记录提示用户是否确认(y/n),确认后删除全部图书记录。0.退出提示用户是否确认退出(y/n),退出时将数据导出到bookdata.txt.二、新增功能1.增加数据检查机
5、制,防止添加重复数据(1)菜单一(追加图书记录)追加图书记录的时候先判断是否有该记录,如果已经有的话,则自动与原来的数据进行合并,即进行入库操作,并向用户提示“与原来的数据进行了合并”。-3-(2)菜单五(批量导入图书记录)批量导入图书记录实际上就是对追加图书记录的批量操作,同样需要数据检查机制,以防止数据重复。在本程序中,对每一个批量导入的数据进行检查,如果出现重复,则自动与先前的数据进行合并。(3)系统初始化的时候会自动地从bookdata.txt中导入数据,虽然这个数据中有重复数据的可能性比较小(因为我们是导出的数据,而这个数据用户是看不到的,对用户来说是透明的),但是为了
6、避免错位,同样加入数据检查机制,具体操作和菜单五的相同。2.丰富排序功能(1)在课本上的按书号排序的基础上,本程序拓展出了六种排序的方案,即分别对书号、书名和数量进行升序或降序排列。(2)本功能的子菜单设计与主菜单的设计思想相同。(3)对书名、书号和数量三个关键字进行升序排列分别使用了冒泡法、选择法和插入法。(4)在对书号、书名和数量进行降序排列的时候所采用的方法是对先前升序排列的结果进行逆置(时间换空间)。3.查询图书时候的分页功能查询所有图书的时候每5条记录一页显示,按任意键后显示下一-4-页。4.输入文件的名字如果不包含.txt则自动添加,通过return_file_nam
7、e函数实现。三、数据结构1.BOOK类(1)私有数据成员a.charbkNo[10]//书号,字符数组b.charbkName[20]//书名,字符数组c.intbkNum//库存量,即数量(2)公有成员函数a.intgetNum()//获取库存量b.voidsetNum(intbkNum)//设置库存量c.voidsetData(char*bkNo,char*bkName,intbkNum)//写入库存信息d.voidshow()//显示一本图书信息e.voidprint(of
此文档下载收益归作者所有