




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号 班级13计转本专业名称计算机科学与技术指导教师李子龙2016年 5月 10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。 使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对 图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、 借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供 清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用 户
2、使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。 图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以 对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的 操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多 C语言知识点,对于不同的数据类型、程序控 制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到 了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分 析问题、解决问题的能力。在设计程序时
3、,实现了程序的模块化、结构化。在主函数中调 用各种子函数,操作界面简单,易操作。2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while() 和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函 数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等 功能。(2)、void Book_Entering(struct SqList &SL) ;这是一个录入图书信息的函数,它 主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其 他函数的操作。它引用了一个顺序表 SL
4、。其他函数调用时只需传入顺序表头即可。(3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数, Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。 Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书 等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询 图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信 息进行文件的保存操
5、作。(4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、(5)、void Book_Borrow(struct SqList &SL);这个函数为保存信息到文件的函数,使用时将顺序表的头传给函数,函数可将整个顺序表的所有信息存入到磁盘文件中。并覆盖 掉源文件,以便以后调用。(9)、void Book_Borrow(struct SqList &SL)、void Book_Return(struct SqList &SL); 这两个函数是借书还书的函数,
6、在借还后系统会修改图书的在库信息。调用时将顺序表参 数带回到主函数。并会出提示信息让用户返回菜单保存信息。3 .实现注释:这个实用的小型图书管理程序程序以顺序表操作完成,并实现文件信息的录入和保存 等功能,所有信息以磁盘文件方式保存,方便用户使用。实现了图书管理的基本功能,包 括了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。查询时可按书名、 编号、作者等方式查询,找到后输出这本书的所有信息。在添加图书信息后,还增加了顺 序表排序操作,并输出整个顺序表,方便用户检查信息。可查询图书的在库状态,方便用 户进行借书、还书操作。在借书还书成功后图书的在库状态改变,并有提示信息让用户保
7、存信息。系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版 时间、价格、在库状态等,在处理过程中各项可以作为一本图书的不同属性来进行处理。4 .结构体系设计:图书管理系统主界面流程图开始图书管理系统流程图图书管系统主界面际解决 和自主 用系统 总足。比 然有序图书查询系统主界面图书查询系统主界面流程图图书借还系统主界面流程图5.设计埔程中的想作为学期末的项课勺能写程序内助手能力C语程匕 匕丽白趣过这次 c沿声课邢设建,彳返1识及实噂统,掌握与 序力综合能力图乎学知识,开留用实 行独立开发应用瓢并力法和 对性法制程序中的不何按。编出来的系统来考察I保屋的基本理论上调试应文令程
8、在大致实现了题鄙要求,制是如,没有对界面进彳亍操作,只是实现了简单的这套程序仍然功能,注释也不是很耗善,对信息字售Hit聘大伊提高程序写打有点簟琐逋!功能还有些晌七Mt是那么I-E-不明确,对于数据的错误输入处理不是很完善等等。 一f 这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。我在做系统的 过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。事实证明,只靠自 己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对 c语言的学习。我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,方便易用。就是要改进一些算法,尽量把界面编写清楚,提示信
9、息全面,三、用户手册:下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择 择1后进入系统,然后显示功能菜单按数字键选择所需服务。1.进入系统, 功能菜单中,信息,2进入图书管理系统,3进入图书查询系统,4进入图书借还系统,2.退出系统。选1录入所有书籍5保存所有图书信息,6显示菜单,7返回上级菜单。 当出现“请选择”时,需要输入选项前的数字,输完之 后接回车(下同)。首次运行系统需要先选择 1录入库存书籍信息,然后再选择其他操作。当选择2时会进入图书管理系统,在这里可以选择添加、修改信息等操作,需要注意的是 每次执行完添加、修改等操作后需要手动
10、选择保存图书信息的操作,不然磁盘文件信息不 会改变(下同)。返回上级菜单进入图书查询系统、图书借还系统的操作和管理系统的差 不多,用户可自己尝试使用,所有信息最后均以磁盘文件方式保存,而且格式固定,在输 入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误四、调试与测试上机操作(截图)系统主界面(选择数字进入相应的选项)nC;U瑞rspillarDgktop匚百吉派举安计(2015772) Libory s/ste mDebu g0Qok_Syste .12 14 奉聿 数教数数 人入JAA修本书喀爵哂裙息逐图T;齐旦显示还书后 闻国丸军存惹苴小4+W-W/xMitM
11、M:MHMH:NM:fcNM,/MTMM,M /, ilKXK4MX/宜/MMitM M比 KH W,* 赫 4 TN / MX /此 Ji ,4, 图书管理系统请输人你要送行臊作的命令字J选才¥ 1进入系统,然后出现图书初始化菜单;选;f¥4进入查询系统,然后出现查询库存信息;选才¥2输入图书编号,借书功能并且显示库存;选才¥3输入图书编号,还书功能并且显示库存;选;f¥4进入查询系统,然后出现查询库存信息;五、小节:在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。将理论和实践结合在一起,用先进的计算机工具方便人
12、们的生活。C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序, 在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来说并没有错,但以上 机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结果。有时一个程序 改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却 屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值 得的。我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到 客户的需求和现实意义。不管什么系统,只用运用到实际应用中,才具有先现实意义。所以c语言程序
13、的实用性很强,我们以后还要更加努力认真地学习编程语言。参考文献:1黄明等编着C语言课程设计北京:电子工业出版社2郭翠英编着C语言课程设计案例精编北京:中国水利水电出版社3宁正元数据结构(c语言) 南京:东南大学出版社。2000年6月第1版4严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版5谭浩强编着C程序设计题解与上机指导(第3版)北京:清华大学出版社6谭浩强编着C程序设计(第3版)北京:清华大学出版社附录:源程序代码/* 任务:C语言课程设计* 班级:13计转本* 姓名:张朝柱* 实验时间:2016-3-22* 本程序的功能是:图书管理系统# /#include&l
14、t;stdio.h>#include<iostream.h>#include<malloc.h># define BOOKNUMBER 5# define LIST_SIZE 10/顺序表的初始大小# define ADD_SIZE 10/ 顺序表的增量struct SqListstruct BOOK_SYSTEM * elem; /这种类型的起始地址int length;/顺序表中元素的个数;int listsize;/顺序表的分配的空间大小/采用结构体定义每本图书的编号,书的名称,书的作者,书的数量等信息。struct BOOKSYSTEMint book_i
15、d;/狮节;char book_name50;char book_author20;/int book_number; /void GUI_human_computer(void)名字作者数量/ 人机交互界面cout<<"/*/”<<endl;cout<<"/*/”<<endcout<<"ttt管理系统"<<endl;cout<<endl;cout<<"tt输入数字1:t初始化5本书的信息并保存到书库中t"<<endl;cout
16、<<"tt输入数字2:t借阅图书;并且显示图书库存的信息t"<<endl;cout<<"tt输入数字3:t返还图书;并且显示还书后库存的信息t"<<endl;cout<<"tt输入数字4:t查阅图书库存信息t"<<endl;cout<<"/*cout<<"/*/"<<endl;*void Book_Entering(struct SqList &SL) SL.elem->book_na
17、me SL是顺序表的变量名;SL.elem是图书结构的顺序表头变量名/int number;int i=0;cout<<”录入5本图书信息"<<endl;for(i=0;i<BOOKNUMBER;i+)cout<<"请录入第"<<i+1<<”本书的信息(格式:编号书名作者数量):";/因为数组的下标是从0开始cin>>SL.elemi.book_id; cin>>SL.elem->book_id; /这样出现的错误是因为一直给第一个elem元素复制cin>
18、;>SL.elemi.book_name;cin>>SL.elemi.book_author;书库中有几种书cin>>SL.elemi.book_number;SL.length+;/cout<<"五本图书信心录入完毕!"<<endl;void Book_Borrow(struct SqList &SL) /借书我个人认为就算借完,即库存为空的时候,这个书的编号还是应该存在的int i=0,ID=0;cout<<"请输入你所借书的编号:”;cin>>ID;for(i=0;i<
19、;SL.length;i+)if(SL.elemi.book_id=ID)&&(SL.elemi.book_number>=1)/ 如果找到了所借书的编号cout<<"成功提示:找到图书!"<<endl;cout<<”图书信息为:";cout<<SL.elemi.book_id<<""<<SL.elemi.book_name<<""<<SL.elemi.book_author<<"&qu
20、ot;<<SL.elemi.book_number<<endl;SL.elemi.book_number-;cout<<"成功提示:借书成功!"<<endl;cout<<”图书信息为:";cout<<SL.elemi.book_id<<""<<SL.elemi.book_name<<""<<SL.elemi.book_author<<""<<SL.elemi.bo
21、ok_number<<endl;return ;cout<<"错误提示:没有你所要借的图书!"<<endl;)void Book_Return(struct SqList &SL)(int i=0,ID=0;cout<<"请输入你所还书的编号:"cin>>ID;for(i=0;i<SL.length;i+)(if(SL.elemi.book_id=ID) /如果是该书库的图书(cout<<"成功提示:是本书库的书籍!"<<endl;cou
22、t<<"图书信息为:"cout<<SL.elemi.book_id<<""<<SL.elemi.book_name<<"<<SL.elemi.book_author<<""<<SL.elemi.book_number<<endl;SL.elemi.book_number+;cout<<"成功提示:还书成功!"<<endl;cout<<"图书信息为:&qu
23、ot;cout<<SL.elemi.book_id<<""<<SL.elemi.book_name<<"<<SL.elemi.book_author<<""<<SL.elemi.book_number<<endl;return ;cout<<"错误提示:你所还书籍不在本书库中!"<<endl;void Book_Inquire(struct SqList &SL)int i,ID;cout<&
24、lt;"请输入你要查询图书的库存(图书的编号):"cin>>ID;for(i=0;i<SL.length;i+)if(SL.elemi.book_id=ID) /如果是该书库的图书cout<<"成功提示:是本书库的书籍!"<<endl;/cout<<”图书信息为:”;cout<<SL.elemi.book_id<<""<<SL.elemi.book_name<<"<<SL.elemi.book_author/ <<" "<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年采购五万合同范本
- 7《听听秋的声音》(教学设计)2024-2025学年统编版语文三年级上册
- 水稻代收合同范本
- 6 陶罐和铁罐 教学设计-2023-2024学年统编版语文三年级下册
- Module 4 Unit 1 Thanksgiving is my favourite festival.(教学设计)-2024-2025学年外研版(三起)英语六年级上册
- 活体购销合同范本
- 停车场车位租用合同范本
- 3做个“开心果”(教学设计)-2023-2024学年道德与法治二年级下册统编版
- 辩论赛主席演讲稿
- 5 铺满金色巴掌的水泥道 教学设计-2024-2025学年语文三年级上册统编版
- 22G614-1 砌体填充墙结构构造
- 2024年全国教育大会精神全文课件
- 人教版八年级下册历史教案全册
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
- GA/T 1081-2020安全防范系统维护保养规范
- 2023一年级下册语文教学工作计划(2篇)
- 2022年云上贵州大数据(集团)有限公司招聘笔试试题及答案解析
- (虎符铜砭刮痧)基本理论及临床应用课件
- 文件袋、档案袋密封条模板
- 依图科技业务概述
- 支气管镜室工作制度
评论
0/150
提交评论