2022年c语言图书管理系统课程设计报告 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年c语言图书管理系统课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言图书管理系统课程设计报告 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、沈航北方科技学院课程设计说明书课程名称c语言课程设计教 学 部机械工程系专业数控班级 B042111 学号 B04211123 学生姓名田文指导教师赵小磊 _ 2012 年 6 月名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 27 页 -链表实现图书信息操作田文目录摘要.31 绪论.32 系统分析.32.1 功能需求.32.2 数据需求.42.3 性能需求.43 总体设计.43.1 功能模块设计.43.2 系统设计方案.64 详细设计.74.1 登录模块.74.2 借书管理模块.84.3 还书管理模块.95 调试与测试.105.1 调试.105.2 测试.116 结论.12结束
2、语.12参考文献.12附录 1用户手册(另起一页).13附录 2源程序(另起一页).15名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 27 页 -摘要经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:图书信息输入函数input(),借阅图书函数(borrow),增加删除图书函数(adddelet),图书查询函数(search),以及归还图书信息函数(giveback)。在这些函数当中,这四个函数的实现严格按照题目的要求。1、图书信息输入函数主要功能是从键盘输入图书信息并将其写入文件中,作为图书馆的书库,以便对下面的函
3、数进行运行,此函数是基础.2、图书借阅函数主要借阅图书的功能和录入学生应该还书的时间;3、图书归还函数主要实现借阅图书后,归还图书的功能,并把应该还书的时间和实际还书的时间进行比较过期时输出学生的信息,也是该程序的的一个重点4、增加删除图书函数实现的功能是实现对图书的删除;5、图书查询函数允许按照图书编号,书名,作者,出版社进行查询,并将查询信息输出;6、退出函数该函数主要实现退出运行界面的功能.除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个图书记录都包含:图书编号,名称,出版社,作者,现有数量和总量在程序当中,将图书记录
4、类型定义为结构体类型,并把它写入d:liuyan.txt中,其他函数每次对图书记录的访问,其数据来源都是d:liuyan.txt文件,这样做不但可以保证图书数据的一致性,而且可以对图书数据进行永久保存,保证每次运行程序都可以采用原来的数据。1 绪论整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:图书信息输入函数input(),借阅图书函数(borrow),增加删除 图书 函数(adddelet),图书 查询 函数(search),以 及归 还图 书信 息函 数(giveback)。在这些函数当中,这四个函数的实现严格按照题目的要求。2 系统分析2.1 功能需求
5、设计一个通过链表实现对图书信息进行管理的程序,要求完成以下功能:1.建立一个链表,每个结点应包含以下信息:图书号、书名及出版社、价格、ISBN、作者、册数;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 27 页 -2.将输入信息按图书号进行从小到大的排序;3.实现查询功能输入书名,查询输出相关信息;4.实现插入功能输入图书信息并插入有序链表中;5.实现删除功能输入书名或书号,可将其信息从链表中删除;6.统计链表中图书总价值,并在屏幕上输出;7.统计该链表中价值超过某一数目的图书总数,并在屏幕上输出。8.有界面友好易于使用的菜单。2.2 数据需求需要向系统输入图书号、书名及出版社
6、、价格、ISBN、作者、册数2.3 性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3 总体设计3.1 功能模块设计根据分析整个系统主要划分为4 个功能模块,分别执行要求中的功能。该系统需要有添加,删除,查询,修改,累加,循环显示主菜单,保存信息功能,能将会员卡进行注销,利用显示函数将会员卡内所有信息显示。要求有循环显示菜单工能。功能模块图如图1 所示。(1)输入读者输入相关读者信息至内存中;(2)输入书籍输入书籍号,对已存的书籍信息进行查询;(3)书籍管理模块输入相应代码,对相关信息进行查询;(4)退出管理模块主菜单中输入 0 退出系统登录;名师
7、资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 27 页 -图书管理系统输入读者输入书籍书籍管理退出系统登录图 1 图书管理系统流程图管理员版图书管理系统新书入库查询借书登记书籍数量书籍信息修改还书管理书籍信息查询图 2 管理员版图书管理系统流程图退出查询按照读者姓名查询按照读者编号查询按照图书作者查询按照图书名查询按照图书编号查询图书查询系统主界面图 3 图书查询主界面流程图名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 27 页 -3.2 系统设计方案设计一个总菜单,1 登录信息,2 查询管理,3 书籍管理系统,4 退出系统。基本功能的实现都将体现在这几个菜单选项中
8、。struct reader*next;RD;BK*h_book;RD*h_reader;void Login();/*登陆*/int Menu();/*主菜单*/void Menu_select();/*主菜单选择函数*/void Init();/*初始化*/void Init_reader();/*初始化读者*/void Init_book();/*初始化图书*/void Insert_New_Book();/*新书入库*/int Find();/*查找菜单*/void Find_Select();/*查找菜单选择函数*/void Find_Reader();/*查找读者信息*/void
9、Find_Book();/*查找图书信息*/void Print_reader();/*打印读者信息*/void Print_book();/*打印图书信息*/void Borrow_Book();/*借书函数*/void Return_Book();/*还书函数*/void Save();/*保存信息*/void Save_Reader();/*保存读者信息*/void Save_Book();/*保存图书信息*/void Load();/*加载信息*/void Load_Reader();/*加载读者信息*/void Load_Book();/*加载图书信息*/void Login()/*
10、登陆*/system(cls);printf(nnnttt 欢迎登陆本系统 n);printf(nntt 系统版权所有 nnnnnnn);printf(nnntt 按 任 意 键 进 入 系 统.);getchar();system(cls);int Menu()/*主菜单*/int sn;printf(ntt 图书管理系统主菜单 n);printf(=n);printf(*t0-退出系统*n);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 27 页 -printf(*t1-新书入库*n);printf(*t2-查询*n);printf(*t3-借书登记*n);printf(*
11、t4-还书管理*n);printf(=n);printf(请选择相应代码:);4 详细设计4.1 登录模块开始intj=1,m;m=1!InsertLinklist(Linklist)L)printf(t 输入下一个读者信息?n);printf(内存已满 n);exit(OVERFLOW);结束图 4:输入读者信息名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 27 页 -开始intj=1,m;m=1!InsertLinklist(Linklist)L)printf(内存已满n);exit(OVERFLOW);结束printf(t 输入下一个书籍信息?n);图 5:输入书籍信息4
12、.2 借书管理模块主菜单中输入读者和书籍信息后,对已存的书籍进行借阅,程序流程如图4所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 27 页 -开始读方式打开文件不成功?输入你的学号和要借书的名循环变量 i i0?输出 borrow success输入应书日期关闭文件!结束borrow failed returnYNYNNY图 6 借书模块流程图4.3 还书管理模块对于已还书籍进行管理,程序流程如图4 所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 27 页 -开始以读取方式打开文件不成功输入读者信息输入书籍信息循环变量 ii1000输入编号与书库编号一
13、致输出还书成功关闭文件结束breakreturn图 7 还书模块流程图5 调试与测试5.1 调试调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。调试的任务是及时改正测试过程中发现的软件错误。具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究推断代码以确定问题的原因,并设法改正。调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍。(1)程序只能在当前运行时才能实现自动生成书籍信息,而关
14、闭系统再次打开添加新读者又从0 开始与之前的读者重复,导致借还信息程序管理混乱,无法名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 27 页 -正确运行。原因:在执行后系统没有记录当前的读者信息,因为读者信息自动按1、2、3、4 依次递增生成系统;应该记录最后所生成的读者信息,在下次运行程序时系统会接着上次记录的读者信息自动依次生成。(2)运行完程序一次有错误提醒原因:上次运行程序后没有关闭操作界面当点击编译时会有一个错误提示,解决方法:将上一次运行时的操作界面关闭。(3)设计过程中的想法与程序中的不足总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足
15、。比如,程序中主函数写的有点繁琐,有太多的嵌套,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确。还有就是没能做到模糊查询。这个系统主要是参照课本手机通讯录模版编写的,同时也得到了老师和同学的一些帮助。我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全。事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c 语言的学习。我认为对于 C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。5.2 测试软件测试是软件生存期中的一个重要阶
16、段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。测试数据过程如下。(1)登陆功能测试输入数据 1:读者编号:23,读者姓名:tianwen,书籍编号:01,书名:xyz作者:xxx,数量:10 预期结果:数据输入到系统中;名师资料总结-精品资料欢迎
17、下载-名师精心整理-第 11 页,共 27 页 -运行结果:出现图书管理系统主菜单说明:登陆功能实现(2)借书功能测试。(3)还书功能测试。6 结论计算机综合训练顺利完成,任务书中所提出的要求全部实现,可以对会员信息进行添加、修改、删除以及按各种信息查找,可将会员本次消费金额累加到会员卡上,能够自动生成会员卡号并且将各种信息保存到文本文件中。不过这个程序还有些不够完善,例如:在添加新会员时当会员信息全部输入之后系统中的全部会员信息自动显示,这样非常占用操作界面,使操作不是十分清晰;再一个就是系统无法正确识别身份证号和电话好码只能靠会员卡管理员的认真细心才能减少出错,改进方式:调用一个可以判断号
18、码位数的函数,如果输入位数不合法则提出警告重新输入。结束语在这一个星期的实践中,通过编写这个图书管理系统,我体会到了 c 语言学习的实用性。将理论和实践结合在一起,用先进的计算机工具方便人们的生活。C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来说并没有错,但一上机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切
19、都是值得的。我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。不管什么系统,只用运用到实际应用中,才具有现实意义。所以 c 语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。参考文献名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 27 页 -附录 1用户手册点击运行,首先出现的是菜单界面,选择菜单选项进行操作,可进行如图 8所示。系统主界面(选择数字进入,退出系统)图 8 菜单界面选择 1 进入系统,然后出现功能菜单名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 27 页 -图 9 登陆功能;输入读者和书
20、籍,然后出现功能菜单;图 10 图书管理系统主菜单名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 27 页 -附录 2源程序#include#include#include#define Max 3 typedef struct book char book_num10;char book_name20;char book_writer10;int book_kc;int book_xy;struct book*next;BK;typedef struct borrow char borrow_book_num10;char limit_date8;BO;typedef str
21、uct reader char reader_num10;char reader_name10;int right;BO borrowMax;struct reader*next;RD;BK*h_book;RD*h_reader;void Login();/*登陆*/int Menu();/*主菜单*/void Menu_select();/*主菜单选择函数*/void Init();/*初始化*/void Init_reader();/*初始化读者*/void Init_book();/*初始化图书*/void Insert_New_Book();/*新书入库*/int Find();/*查
22、找菜单*/void Find_Select();/*查找菜单选择函数*/void Find_Reader();/*查找读者信息*/void Find_Book();/*查找图书信息*/void Print_reader();/*打印读者信息*/void Print_book();/*打印图书信息*/void Borrow_Book();/*借书函数*/名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 27 页 -void Return_Book();/*还书函数*/void Save();/*保存信息*/void Save_Reader();/*保存读者信息*/void Save
23、_Book();/*保存图书信息*/void Load();/*加载信息*/void Load_Reader();/*加载读者信息*/void Load_Book();/*加载图书信息*/void Login()/*登陆*/system(cls);printf(nnnttt欢迎登陆本系统n);printf(nntt 系统版权所有nnnnnnn);printf(nnntt 按 任 意 键 进 入 系 统.);getchar();system(cls);int Menu()/*主菜单*/int sn;printf(ntt图书管理系统主菜单n);printf(=n);printf(*t0-退出系统*
24、n);printf(*t1-新书入库*n);printf(*t2-查询*n);printf(*t3-借书登记*n);printf(*t4-还书管理*n);printf(=n);printf(请选择相应代码:);for(;)scanf(%d,&sn);fflush(stdin);if(sn4)printf(n 错误!请重新输入:);else break;return sn;void Menu_select()/*主菜单选择函数*/for(;)/*循环调用模式,保证能进行重复操作*/switch(Menu()/*功能选择*/case 0:system(cls);/*清楚屏幕先前的显示内容*/Sav
25、e();printf(nnt文件保存成功!n);名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 27 页 -printf(nnt欢迎下次使用本系统!n);getchar();exit(0);case 1:Insert_New_Book();break;case 2:Find_Select();break;case 3:Borrow_Book();break;case 4:Return_Book();break;default:printf(n错误!);exit(0);void Init()/*初始化*/Init_reader();Init_book();void Init_re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年c语言图书管理系统课程设计报告 2022 语言 图书 管理 系统 课程设计 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内