图书借阅管理系统C语言程序设计报告材料

上传人:沈*** 文档编号:100661556 上传时间:2022-06-03 格式:DOC 页数:26 大小:831.50KB
收藏 版权申诉 举报 下载
图书借阅管理系统C语言程序设计报告材料_第1页
第1页 / 共26页
图书借阅管理系统C语言程序设计报告材料_第2页
第2页 / 共26页
图书借阅管理系统C语言程序设计报告材料_第3页
第3页 / 共26页
资源描述:

《图书借阅管理系统C语言程序设计报告材料》由会员分享,可在线阅读,更多相关《图书借阅管理系统C语言程序设计报告材料(26页珍藏版)》请在装配图网上搜索。

1、word课 程 设 计 报 告课程名称 C语言程序设计 课题名称图书借阅管理系统 专 业 建筑环境与设备工程 班 级 1101班 学 号 201109010112 姓 名 黄斌 指导教师唐北平 2012年 6 月 20 日某某工程学院课 程 设 计 任 务 书课程名称 C语言程序设计课 题 图书借阅管理系统专业班级 建环1101班 学生某某 黄斌 学 号 201109010112 指导教师 唐北平 审 批 任务书下达日期 2012 年 6 月20 日任务完成日期 2012 年 7 月 03 日一、设计内容与设计要求1设计内容:对一个有N本图书的图书馆,通过该系统实现对该班级学生的根本信息进展录

2、入、显示、修改、删除、保存等操作的管理。1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:书号、书名、作者、出版日期、单价、是否借出等。2、本系统显示这样的菜单:a. 图书根本信息录入b. 图书根本信息显示c. 图书根本信息删除d. 图书根本信息修改e. 图书根本信息查询按书号查询、书名等g. 退出系统3、执行一个具体的功能之后,程序将重新显示菜单。2设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5

3、000字以上,含程序设计说明,用户使用说明,源程序清单与程序框图。5. 上机演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序与编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告Word文档格式。并用A4的复印纸打印并装订; 二、进度安排第 十九 周 星期1 8时00分11时30分星期2 14时00分18时15分 星期4 14时00分18时15分 星期6 8时00分12时15分 26 / 26目录一、 课程设计报告.2二、 功能模块的划分.6三、 主要功能的实现.12四、 程序代码清单.13五、 程序调试详情.19

4、六、 总结.24七、 附件.25八、评分表.25三、课程设计报告做系统前,首先,自己详细看了C程序设计教科书,根本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以与对文件的相关内容进一步理解。学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等根本知识的进一步理解。另外图书信息管理系统也是学校常用的根本系统之一,它有助于学校对图书馆书籍的根本管理。根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进展整个程序的运行,然

5、后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进展管理。图书借阅管理系统是对图书信息的根本管理,它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、图书根本信息录入:对新到图书馆的图书的信息编

6、号、书名、作者、价格进展录入。2、图书根本信息显示:显示已被录入图书的所有信息。3、图书根本信息删除:通过输入书名,判断此图书是否存在,假如存在, 如此删除该图书所有信息,假如不存在如此提示用户重新输入图书书名。4、图书根本信息修改:通过输入书名,判断此图书是否存在,假如不存在如此提示用户重新输入图书书名,假如存在,如此可对图书各项信息进展修改。 5、图书根本信息查询:将所有图书信息包括编号、书名、作者、价格等显示在屏幕上。6、退出系统:即退出图书借阅管理系统。使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单项选择项模块对应如下: 图书根本信息录入= void insert()

7、 图书根本信息显示= void print()图书根本信息删除= void del() 图书根本信息修改= void modify() 图书根本信息查询= void find()这份代码中各个变量的定义如下: num 图书编号 name 书名 author 作者 pub where 出版日期 count 单价四.功能模块的划分根据图书馆信息管理系统的要求,可设计一个主函数,与定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以屡次被引用。1.图书根本信息录入模块首先输入图书录入的编号不为0判断是否有重复的编号,假如

8、有,如此提示用户该书已存在,假如无如此继续录入书名、作者、单价。当用户选择图书根本信息显示时,程序会将所有图书信息列出。在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号编号为0时完毕输入,然后继续输入图书书名,作者,出版日期,单价等信息。完毕输入时提示用户图书输入完成4.图书根本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,假如存在,如此删除该图书所有信息,假如不存在如此提示无此图书信息。5.图书根本信息修改模块用户输入要修改的书名,判断该书是否存在,假如不存在,如此提示用户无此图书信息;假如存在,如此提示用户选择修改项目,然后提示用户图书信息修改完成。6.图

9、书根本信息查询模块用户先选择图书查询方式按书名查找或按书号查找输入图书书名或书号后,查找出该图书是否存在,假如存在,如此显示该图书信息,假如不存在如此提示用户无此图书信息。7.读文件模块在运行该程序时,程序会自动检测是否存在图书信息,假如存在,如此会显示图书信息,假如不存在,如此会提示用户创建文件库,录入图书信息。8.文件保存模块当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和新的图书信息。程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。程序代码清单如下:#include#include#includetypedef struct char number10;

10、/书号char name20;/书名char author20;/作者char publish50;/char time20;/出版时间float price;mbook;typedef struct int count;/书的本数mbook book100;/最大可有100本书mlibrary;mlibrary library;void save()/保存图书信息。FILE *fp;if(fp=fopen(library.doc,w)=NULL)printf(n不能保存图书信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwrite(l

11、ibrary.book,sizeof(library.book0),library.count,fp);void putin() /*定义录入函数*/ int y=1;system(cls);while(y) printf(t请输入您的书籍的书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,library.booklibrary.count.name);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);printf(t请输入:);

12、scanf(%s,library.booklibrary.count.publish);printf(t请输入出版时间:);scanf(%s,library.booklibrary.count.time);printf(t请输入该书的价格:);fflush(stdin);scanf(%f,&library.booklibrary.count.price);library.count+;printf(n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break; save();void print()system(cls

13、);printf(图书号t图书名t作者名tt出版日期t图书价格n);for (int i=0;ilibrary.count;i+)printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);fflush(stdin);getchar();void search_by_name() /*定义按书名查询*/ char s220; int flag=1;pri

14、ntf(n请输入要查询的书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名tt出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,library.booki.name)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.pric

15、e); if (flag)printf(cannot found!);fflush(stdin);getchar();void search_by_author() /*定义按作者名查询*/ char s320;int flag=1;printf(请输入要查询的书的 );fflush(stdin);scanf(%s,s3);printf(图书号t图书名t作者名tt出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%st%6.2fn,

16、library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void del() /*定义删除函数*/ char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:

17、);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(library.booki.name,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.book

18、i+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf(n cannot found!n);save();fflush(stdin);getchar();void modify()/修改图书信息char number10;system(cls); /*清屏*/printf(n Please t

19、ype in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+) if(strcmp(number,library.booki.number)=0) printf(图书号t图书名t作者名tt出版日期t图书价格n); printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publi

20、sh,library.booki.time,library.booki.price); break; if (i!=library.count)mbook book;printf(ntt请输入修改后此图书的信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,book.name);printf(t请输入作者名:);scanf(%s,book.author);printf(t请输入:);scanf(%s,book.publish);printf(t请输入出版时间:);scanf(%s,book.time);pr

21、intf(t请输入该书的价格:);fflush(stdin);scanf(%f,&book.price);strcpy(library.booki.name,book.name);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf

22、(n cannot found!n);fflush(stdin);getchar();void main()FILE *fp;if(fp=fopen(library.doc,r)=NULL)printf(n不能打开图书信息库n);fp=fopen(library.doc,w+);printf(n初始化图书信息库,初始化之后要重启程序n);library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;fread(&library.count,sizeof(int),1,fp);fread(library.boo

23、k,sizeof(library.book0),library.count,fp);fclose(fp);int a; do system(cls);printf(nnnnntttt图书信息管理系统ttttn);printf(tt*n);printf(ttt1 -图书信息录入n);printf(ttt2 -图书信息显示n); printf(ttt3 -图书信息查询n);printf(ttt4 -图书信息删除n);printf(ttt5 -图书信息修改n);printf(ttt0 -退出图书信息系统n);printf(tt*n);printf(ttPlease Enter Choose: );f

24、flush(stdin);scanf(%d,&a);switch(a)case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();break;case 0:printf(nn退出nn);break;default:printf(n序号不对n); while(a!=0); save();void find() /*定义查询函数*/ int a;system(cls); /*进展清屏*/ printf(tt*n);printf(开始查询n); printf(t

25、tt1-search_by_namen); printf(ttt2-search_by_writern); printf(ttt0-exitn); printf(tt*n) ; printf(tt请选择你想要的查询方式:);fflush(stdin); scanf(%d,&a); switch(a) case 1:search_by_name();break; case 2:search_by_author();break;case 0:return;1.第一次运行程序时,库文件不存在图书信息,于是录入图书信息。图书编号书名作者出版日期单价1英语X三人民教育302.主界面。3. 在主界面选择1

26、,开始录入新的图书信息。图书编号书名作者出版日期单价2数学李四高等教育284. 在主界面选择2,查询图书信息,按1或2分别选择按书名或书号查询。以英语为例选择2,按书号查找,输入书号:1,即可查询图书英语所有信息。选择1,按书名查找,输入书名:英语,即可获得图书英语所有信息。5.在主界面选择3,对图书资料进展删除以数学为例,在后续图书信息显示时无数学图书信息。6.在主界面选择4,对图书进展修改以英语为例,修改图书作者,将作者更换为王五,在后续图书根本信息显示时,作者不将是X三,而是王五。7.在主界面选择5,图书根本信息显示,此时图书信息经过删除和修改,和初始信息不同。C语言课程设计和现代计算机

27、技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以与另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识与技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Turbo C的使用技巧。另外,实习中教师对我们进展了细心、耐心的指导,鼓励

28、我们对程序进展合理改良,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.八附件第五步主要功能的实现模块已包含程序代码清单,这里就不再呈述。附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件A4大小的图纸与程序清单。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分要求画出模块图;三、主要功能的实现至少要有一个主要模块的流程图;四、程序调试;五、总结;六、附件所有程序的原代码,要求对程序写出必要的注释。正文总字数要求在5000字以上不含程序原代码。计算机科学与技术系课程设计评分表课题名称:项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量辩论陈述与回答如下问题情况课程设计周表现情况综合成绩 教师签名: 日 期:注:1此页附在课程设计报告之后;2综合成绩按优、良、中、与格和不与格五级评定。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!