C语言课程设计图书管理系统课程设计报告.doc
《C语言课程设计图书管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《C语言课程设计图书管理系统课程设计报告.doc(15页珍藏版)》请在咨信网上搜索。
. C语言课程设计 图书管理系统 Books Management System 学生姓名 张朝柱 学院名称 XX工程学院 学号 20130566140 班级 13计转本 专业名称 计算机科学与技术 指导教师 李子龙 2016年 5月 10日 一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: <1>、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while<>和选择语句swithch<>实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 <2>、void Book_Entering<struct SqList &SL>;这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 <3>、int main<void>;这五个函数时整个图书管理系统的全部菜单函数,Book_Entering<>;为系统主界面,进入时可选择进入程序和退出程序。menu1<>;为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire<>;此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu<>;为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu<>;为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 <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>;这两个函数是借书还书的函数,在借还后系统会修改图书的在库信息。调用时将顺序表参数带回到主函数。并会出提示信息让用户返回菜单保存信息。 3.实现注释: 这个实用的小型图书管理程序程序以顺序表操作完成,并实现文件信息的录入和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。查询时可按书名、编号、作者等方式查询,找到后输出这本书的所有信息。在添加图书信息后,还增加了顺序表排序操作,并输出整个顺序表,方便用户检查信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态改变,并有提示信息让用户保存信息。系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、在库状态等,在处理过程中各项可以作为一本图书的不同属性来进行处理。 4.结构体系设计: 图书管理系统主界面流程图 录入所有书籍信 息 进入图书管理系 统 显示菜 单 进入图书查询系 统 进入图书借还系 统 保存所有图书信 息 返回上级菜 单 图书管系统主界面 开始 图书管理系统流程图 显示所有图书信息 按编号查询图书 按书名查询图书 按作者查询图书 保存所查询图书的信息 返回上级菜 单 图书查询系统主界面 图书查询系统主界面流程图 图书借还系统主界面流程图 借书 还书 返回上级菜单 图书借还系统 5.设计过程中的想法与程序中的不足: 作为学期末的一项课程,主要靠编出来的系统来考察我们所掌握的基本理论知识及实际解决问题的能力,通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。 总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。比如,没有对界面进行操作,只是实现了简单的功能,程序写的有点繁琐,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确,对于数据的错误输入处理不是很完善等等。 这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。 我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。 三、用户手册: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择1.进入系统,2.退出系统。选择1后进入系统,然后显示功能菜单按数字键选择所需服务。功能菜单中,1录入所有书籍信息,2进入图书管理系统,3进入图书查询系统,4进入图书借还系统,5保存所有图书信息,6显示菜单,7返回上级菜单。 当出现"请选择"时,需要输入选项前的数字,输完之后按回车〔下同。首次运行系统需要先选择1录入库存书籍信息,然后再选择其他操作。当选择2时会进入图书管理系统,在这里可以选择添加、修改信息等操作,需要注意的是每次执行完添加、修改等操作后需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变〔下同。返回上级菜单进入图书查询系统、图书借还系统的操作和管理系统的差不多,用户可自己尝试使用,所有信息最后均以磁盘文件方式保存,而且格式固定,在输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。 四、调试与测试: 上机操作〔截图 系统主界面〔选择数字进入相应的选项 选择1进入系统,然后出现图书初始化菜单; 选择4进入查询系统,然后出现查询库存信息; 选择2输入图书编号,借书功能并且显示库存; 选择3输入图书编号,还书功能并且显示库存; 选择4进入查询系统,然后出现查询库存信息; 五、小节: 在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。将理论和实践结合在一起,用先进的计算机工具方便人们的生活。C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来说并没有错,但以上机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。 我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。不管什么系统,只用运用到实际应用中,才具有先现实意义。 所以c语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。 参考文献: [1]黄明等编著《C语言课程设计》北京:电子工业出版社 [2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社 [3] 宁正元《数据结构〔c语言》 XX:东南大学出版社。20XX6月第1版 [4] 严蔚敏等 《数据结构〔c语言版》 北京:清华大学出版社,1997年4月第1版 [5] 谭浩强编著《C程序设计题解与上机指导<第3版> 》北京:清华大学出版社 [6] 谭浩强编著《C程序设计<第3版> 》北京:清华大学出版社 附录: 源程序代码 /** * 任务:C语言课程设计 * 班级:13计转本 * 学号:20130566140 * 姓名:张朝柱 * 实验时间:2016-3-22 * 本程序的功能是:图书管理系统 */ #include<stdio.h> #include<iostream.h> #include<malloc.h> #define BOOKNUMBER 5 #define LIST_SIZE 10 //顺序表的初始大小 #define ADD_SIZE 10 //顺序表的增量 struct SqList { struct BOOK_SYSTEM * elem; //这种类型的起始地址 int length; //顺序表中元素的个数 int listsize; //顺序表的分配的空间大小 }; //采用结构体定义每本图书的编号,书的名称,书的作者,书的数量等信息。 struct BOOK_SYSTEM { int book_id; //编号 char book_name[50]; //名字 char book_author[20]; //作者 int book_number; //数量 }; void GUI_human_computer<void> //人机交互界面 { cout<<"/**********************************************************************/"<<endl; cout<<"/**********************************************************************/"<<endl; cout<<"\t\t\t图 书 管 理 系 统"<<endl; cout<<endl; cout<<"\t\t输入数字1:\t初始化5本书的信息并保存到书库中\t"<<endl; cout<<"\t\t输入数字2:\t借阅图书;并且显示图书库存的信息\t"<<endl; cout<<"\t\t输入数字3:\t返还图书;并且显示还书后库存的信息\t"<<endl; cout<<"\t\t输入数字4:\t查阅图书库存信息\t"<<endl; cout<<"/*********************************************************************************/"<<endl; cout<<"/*********************************************************************************/"<<endl; } void Book_Entering<struct SqList &SL> //SL.elem->book_name SL是顺序表的变量名; SL.elem是图书结构的顺序表头变量名 { //int number; int i=0; cout<<"录入5本图书信息"<<endl; for<i=0;i<BOOKNUMBER;i++> { cout<<"请录入第"<<i+1<<"本书的信息<格式:编号 书名 作者 数量>:"; //因为数组的下标是从0开始 cin>>SL.elem[i].book_id; //cin>>SL.elem->book_id; //这样出现的错误是因为一直给第一个elem元素复制 cin>>SL.elem[i].book_name; cin>>SL.elem[i].book_author; cin>>SL.elem[i].book_number; SL.length++; //书库中有几种书 } cout<<"五本图书信心录入完毕!"<<endl; } void Book_Borrow<struct SqList &SL> //借书我个人认为就算借完,即库存为空的时候,这个书的编号还是应该存在的 { int i=0,ID=0; cout<<"请输入你所借书的编号:"; cin>>ID; for<i=0;i<SL.length;i++> { if<<SL.elem[i].book_id==ID>&&<SL.elem[i].book_number>=1>> //如果找到了所借书的编号 { cout<<"成功提示: 找到图书!"<<endl; cout<<"图书信息为:"; cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author <<" "<<SL.elem[i].book_number<<endl; SL.elem[i].book_number--; cout<<"成功提示: 借书成功!"<<endl; cout<<"图书信息为:"; cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author <<" "<<SL.elem[i].book_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.elem[i].book_id==ID> //如果是该书库的图书 { cout<<"成功提示: 是本书库的书籍!"<<endl; cout<<"图书信息为:"; cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author <<" "<<SL.elem[i].book_number<<endl; SL.elem[i].book_number++; cout<<"成功提示: 还书成功!"<<endl; cout<<"图书信息为:"; cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author <<" "<<SL.elem[i].book_number<<endl; return ; } } cout<<"错误提示: 你所还书籍不在本书库中!"<<endl; } void Book_Inquire<struct SqList &SL> { int i,ID; cout<<"请输入你要查询图书的库存<图书的编号>:"; cin>>ID; for<i=0;i<SL.length;i++> { if<SL.elem[i].book_id==ID> //如果是该书库的图书 { cout<<"成功提示: 是本书库的书籍!"<<endl; //cout<<"图书信息为:"; //cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author // <<" "<<SL.elem[i].book_number<<endl; cout<<"该书的库存为:"<<SL.elem[i].book_number<<endl; return ; } } cout<<"错误提示: 您查询的书籍不在本书库中!"<<endl; } int main<void> { struct SqList SL; //SL 表示顺序表的类型的 变量名; struct BOOK_SYSTEM Book; //Book 结构体类型名 SL.elem=NULL; SL.elem=<struct BOOK_SYSTEM *>malloc<sizeof<struct BOOK_SYSTEM>*LIST_SIZE>; //开辟10个struct BOOK_SYSTEM 这个类型的顺序表 if<SL.elem==NULL> { cout<<"错误提示: 内存申请失败!"<<endl; return 0; } else { SL.length=0; SL.listsize=LIST_SIZE; } int command=0; //命令字变量 GUI_human_computer<>; while<1> { cout<<"请输入你要进行操作的命令字:"; cin>>command; switch<command> { case 1:Book_Entering<SL>; //五本书的录入函数 break; case 2:Book_Borrow<SL>; break; case 3:Book_Return<SL>; break; case 4:Book_Inquire<SL>; break; default: cout<<"错误提示: 命令字有误!"<<endl;break; } } return 0; } .- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 图书 管理 系统 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文