C语言课程设计--图书管理系统课程设计报告.doc
文本预览下载声明
C语言课程设计
一、需求分析
为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、出版社、出版日期、价格、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。整个程序实现链表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
Cbook();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。它返回的时一个单向链表的头。其他函数调用时只需调用它返回的头即可。
(3)、mainmenu();、menu1();、glmenu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。
(4)、print();这个函数为链表的输出函数,把链表的头传给函数后,可输出整个链表的所有信息。、
(5)、hold();这个函数为保存信息到文件的函数,使用时将链表的头传给函数,函数可将整个链表的所有信息存入到磁盘文件中。并覆盖掉源文件,以便以后调用。
(6) 、holdcx();这个函数为保存查询信息到文件的函数,使用时将查询到的节点指针传给函数,函数会将该节点所有信息保存到文件中去,文件写入是以追加方式写入,以便用户查看。
(7)、findnumber();findboookname();findauthor();这三个函数为查询图书信息函数,findnumber();按编号查询、findboookname();按书名查询、findauthor();按作者查询。查询到信息后返回信息所在节点,查询不到则返回空指针。
(8)、add();sortnumber();delbook();revamp();这四个函数为功能函数,add();添加一本图书信息、sortnumber();将图书按编号排序、delbook();删除一本图书信息、revamp();修改一本图书信息。调用时将链表头指针传递给函数,函数返回经过功能操作后的头指针。
(9)、borrowbook();returnbook();这两个函数是借书还书的函数,borrowbook();借书returnbook();还书。在借还后系统会修改图书的在库信息。调用时将链表头指针传递给函数,函数返回经过功能操作后的头指针。并会出提示信息让用户返回菜单保存信息。
3.实现注释:
这个实用的小型图书管理程序
4.结构体系设计:
图书管理系统主界面流程图
图书管理系统流程图
图书查询系统主界面流程图
图书借还系统主界面流程图
5.设计过程中的想法与程序中的不足:
作为学期末的一项课程,主要靠编出来的系统来考察我们所掌握的基本理论知识及实际解决问题的能力,通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。
总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。比如,没有对界面进行操作,只是实现了简单的功能,程序写的有点繁琐,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确,对于数据的错误输入处理不是很完善等等。
这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。
我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写
显示全部