图书管理系统课程设计报告.doc
《图书管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《图书管理系统课程设计报告.doc(29页珍藏版)》请在咨信网上搜索。
工程技术学院----课程设计说明书 工程技术学院 课程设计说明书 学生姓名 : 专业 : 计算机科学与技术 学号 : 指导教师 : 所属系(部) : 信息系 工程技术学院 课程设计评阅书 题目:图书管理系统课程设计报告 信息 系 计算机科学与技术 专业 姓名 设计时间:2015年 月 日~2015 年 月 日 评阅意见: 成绩: 指导教师: (签字) 职 务: 201 年 月 日 摘 要 随着计算机技术的飞速发展,电子信息化慢慢替代了企业管理的传统管理手法,采用管理系统是能够有效提高管理效率的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。为了提高日常的图书管理效率,本文针对通常的图书管理流程,设计了一个面向对象图书管理系统。本系统中包含六个功能模块:图书馆基本信息,借书,还书,读者维护,图书维护,管理员维护。 关键词:借书,还书,读者维护,图书维护,管理员维护 Abstract With the rapid development of computer technology, electronic information technology gradually replaced the traditional management of enterprise management methods, management system, can effectively improve the efficiency of management. Library as a kind of information resource collection and distribution center, library and user lending data is various, contains a lot of information data management, today, there are a lot of libraries are preliminary started using, hasn't even use a computer for information management. If libraries adopt manual approach to artificial management books and materials and library, because the material is various, manual processing workload is big, the overall management efficiency is low, also not convenient to readers of books and materials inspection. In order to improve the efficiency of books management, this paper usually books management processes, an object-oriented books management system management system is designed. This system contains six modules: basic information, library books, and books, the reader maintenance, maintenance, administrators to maintain. Key words: Borrow books, return books, readMaintenance, book maintenance, administrator maintenance 摘 要 3 ABSTRACT 4 第1章 6 1.1 题目背景 6 1.2 设计目的 6 第2章 解决问题 7 第3章 图书管理系统的设计与实现 7 3.1系统的需求分析 7 3.2系统的设计 8 3.2.1 系统的总统设计 8 (1)总体思想 8 (2)系统模块结构图 8 3.2.2 系统的概要设计 8 3.3 测试结果 9 3.3.1系统主界面 10 3.3.2功能菜单 10 3.3.3查询系统菜单 11 3.3.4借还系统菜单 11 3.4 源代码 12 参考文献 23 第四章 心得体会 23 致 谢 25 第1章 1.1 题目背景 随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求 当今社会,多元文化快速发展,人与人的交流也越来越多,社交也越来越广泛,这时,记住自己认识的人是很重要的,因此我们做了这个程序,为了使我们更有效的记录下自己所认识的人,更方便去和更多的人交流而不会记错。 C语言成了在国内外使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生也是能够学习好的。 1.2 设计目的 这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序包括的主要内容可以对图书馆管理系统进行输入、修改、删除、借阅、归还、显示等操作,设计一个有关学生借阅图书的管理程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。 通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的记录学生的借书管理,使人们不再因为添加、删除图书而苦恼。 第2章 解决问题 图书馆管理系统用于计算机管理图书馆里的书籍,方便学生进行更方便快捷的结束程序。在这个程序中可以对图书馆管理系统中的内容进行输入、添加记录、显示记录、注册会员,还可对其中的书籍进行删除等等。使信息管理更具体、更明朗、更电子化,让人一目了然,给人们带来无穷的快捷。 这次实训,使我们对C语言的掌握更加熟练,也解决了一些问题: 1、解决手工记录和减少工作量,以及相关函数的使用。 2、解决函数间的链接关系,使函数的调用更加方便灵活以及相关函数的使用。 3、解决对单个函数如何操作和各种按键的功能设置以及相关函数的使用。 4、解决对程序显示窗口的设置及对各种相关函数的使用。 5、提高分析问题、解决问题和实际动手的能力。 6、需要对图像和文本的输出有一个较好的了解。 7、能够熟练运用C言分支语句,并能使各种循环相互连接,完成对按键选择操作等过程。 8、在设计的过程中,建立清晰的层次结构。 9、在编写程序前先画出主要的功能结构图和主要模块的流程图。 10、对每个功能所运用的数学知识有一个较好的认识和探索。 11、得出最简洁,最快速的算法。 12、要求操作简单,用户界面友好。 第3章 图书管理系统的设计与实现 3.1系统的需求分析 图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作 系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作 3.2系统的设计 3.2.1 系统的总统设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。 (2)系统模块结构图 根据需求分析结果,图书管理系统可以分为三大模块:查询图书模块、借书功能模块、还书功能模块。 系统模块结构如图: 图书管理系统 图书查询系统 图 书 管理主菜单 还书功能系统 借书功能系统 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。 ㈡查询图书信息 进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。 图书查询模块流程如图: 开始 提示输入图书编号、书名、作者 输入正确 查询 否 是 否 是 是 重新输入 否 退出系统 3.3 测试结果 3.3.1系统主界面 3.3.2功能菜单 3.3.3查询系统菜单 3.3.4借还系统菜单 3.4 源代码 # include <stdio.h> # include <stdlib.h> # include <string.h> typedef struct link { char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100]; float price; char status[100]; struct link *next; }link; link *Cbook() { int n=0; link *p,*q,*head; FILE *fp; fp=fopen("图书信息.txt","r+"); if(fp==NULL) printf("没有找到文件,请检查……"); p=(link *)malloc(sizeof(link)); if(p==NULL) printf("申请内存出错!!!\n"); fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p->publish,p->time); fscanf(fp,"%f",&p->price); fscanf(fp,"%s",p->status); while(feof(fp)==0) { n++; if(n==1) { head=p; } else { q=p; p=(link *)malloc(sizeof(link)); if(p==NULL) printf("申请内存出错!!!\n"); fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p->publish,p->time); fscanf(fp,"%f",&p->price); fscanf(fp,"%s",p->status); q->next=p; } } p->next=NULL; fclose(fp); printf("信息已录入!!!"); return head; } void mainmenu() { printf("\n*****************************************\n"); printf("\n** 欢迎使用图书管理系统 **\n"); printf("\n** 1.进入系统 0.退出系统 **\n"); printf("\n*****************************************\n"); printf("\n 请选择"); } void menu1() { printf("\n*****************************************\n"); printf("\n** 1.进入图书查询系统 **\n"); printf("\n** 2.进入图书借还系统 **\n"); printf("\n** 3.保存所有图书信息 **\n"); printf("\n** 4.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择"); } void cxmenu() { printf("\n*****************************************\n"); printf("\n** 1.显示所有图书信息 **\n"); printf("\n** 2.按编号查询图书 **\n"); printf("\n** 3.按书名查询图书 **\n"); printf("\n** 4.按作者查询图书 **\n"); printf("\n** 5.返回上级菜单 **\n"); printf("\n****************************************\n"); printf("\n请选择"); } void jhmenu() { printf("\n*****************************************\n"); printf("\n** 1.借书 **\n"); printf("\n** 2.还书 **\n"); printf("\n** 3.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择"); } void print(link *head) { link *p; p=head; printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"); while(p!=NULL) { printf("\n"); printf("%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); printf("\t\t%.2f",p->price); printf("\t\t%s",p->status); printf("\n"); p=p->next; } } void hold(link *head) { link *p; FILE *fp; fp=fopen("图书信息.txt","w+"); if(fp==NULL) { printf("文件操作出错!!!"); exit(1); } p=head; for(;p!=NULL;p=p->next) { fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); fprintf(fp,"\t\t%.2f",p->price); fprintf(fp,"\t\t%s",p->status); fprintf(fp,"\n"); } fclose(fp); printf("信息已保存。"); } void holdcx(link *t) { link *p=NULL; FILE *fp; fp=fopen("查询.txt","a+"); p=t; fprintf(fp,"查询到的信息为:\n"); fprintf(fp,"\n"); fprintf(fp,"\n**************************************************\n"); fprintf(fp,"\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"); fprintf(fp,"\n"); fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); fprintf(fp,"\t\t%.2f",p->price); fprintf(fp,"\t\t%s",p->status); fprintf(fp,"\n"); fclose(fp); printf("信息已保存!!!"); } link *findnumber(link *head) { char key[100]; link *h,*t1=NULL; printf("请输入图书的编号:"); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->number)==0) { t1=h; break; } } return t1; } link *findboookname(link *head) { char key[100]; link *h,*t2=NULL; printf("请输入图书的书名:"); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->bookname)==0) { t2=h; break; } } return t2; } link *findauthor(link *head) { char key[100]; link *h,*t3=NULL; printf("请输入作者姓名:"); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->author)==0) { t3=h; break; } } return t3; } link *sortnumber(link *head) { link *p,*q,*temp; temp=(link *)malloc(sizeof(link)); if(temp==NULL) { printf("申请内存出错!!!"); exit(1); } for(p=head;p!=NULL;p=p->next) { for(q=p->next;q!=NULL;q=q->next) { if(strcmp(p->number,q->number)>0) { strcpy(temp->number,p->number); strcpy(temp->bookname,p->bookname); strcpy(temp->author,p->author); strcpy(temp->publish,p->publish); strcpy(temp->time,p->time); temp->price=p->price; strcpy(temp->status,p->status); strcpy(p->number,q->number); strcpy(p->bookname,q->bookname); strcpy(p->author,q->author); strcpy(p->publish,q->publish); strcpy(p->time,q->time); p->price=q->price; strcpy(p->status,temp->status); strcpy(q->number,temp->number); strcpy(q->bookname,temp->bookname); strcpy(q->author,temp->author); strcpy(q->publish,temp->publish); strcpy(q->time,temp->time); q->price=temp->price; strcpy(q->status,temp->status); } } } return head; } link *borrowbook(link *head) { link *h,*p; char ch,ch1[100]="在库",ch2[100]="不在库"; h=head; printf("\n**************************************************\n"); printf("\t\t欢迎使用借书系统!!!\n"); p=findboookname(h); if(p==NULL) printf("借书失败,书库中没有这本书!!!"); else if(strcmp(p->status,ch2)==0) printf("借书失败,图书不在库!!!"); else { printf("确认借出?Y/N:"); scanf("%c",&ch); getchar(); if(ch=='Y'||ch=='y') { strcpy(p->status,ch2); printf("借书成功,请返回上级菜单保存信息!!!"); } if(ch=='N'||ch=='n') { printf("你没有借任何书!!!"); } } return head; } link *returnbook(link *head) { link *h,*p; char ch,ch1[100]="在库",ch2[100]="不在库"; h=head; printf("\n**************************************************\n"); printf("\t\t欢迎使用还书系统!!!\n"); p=findboookname(h); if(p==NULL) printf("还书失败,这不是本书库的书!!"); else { printf("确认还书?Y/N:"); scanf("%c",&ch); getchar(); if(ch=='Y'||ch=='y') { strcpy(p->status,ch1); printf("还书成功,请返回上级菜单保存信息!!!"); } if(ch=='N'||ch=='n') { printf("你没有还书!!!"); } } return head; } void main() { int a,b,c,d; link *h,*t; L:system("cls"); mainmenu(); while(1) { scanf("%d",&a); switch(a) { case 1: { B: system("cls"); menu1(); while(1) { scanf("%d",&b); switch(b) { case 1: { system("cls"); cxmenu(); while(1) { scanf("%d",&c); switch(c) { case 1: { print(h); }break; case 2: { t=findnumber(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } }break; case 3: { t=findboookname(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } }break; case 4: { t=findauthor(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } } break; case 5: { goto B; }break; } } }break; case 2: { system("cls"); jhmenu(); while(1) { scanf("%d",&d); switch(d) { case 1: { borrowbook(h); }break; case 2: { returnbook(h); }break; case 3: { goto B; }break; } } }break; case 3: { hold(h); }break; case 4: { goto L; }break; } } }break; case 0: { printf("\t\t\t感谢使用,再见!!!"); exit(0); } } } } 参考文献 1.《C语言程序设计教程》 2012,李丽娟 人民邮电出版社 2.《C程序设计语言》 2010,魏东平等 电子工业出版社 3.《C Primer Plus》 2005,(美)Stephen Prata 人民邮电出版社 4.《C语言程序设计:现代方法》 2010,(美)K.N.King 人民邮电出版社 5.《Absolute Beginner’s Guide To C》 2010,(美)Greg Perry 6.《C专家编程》 2008,(美)LinDen,P.V.D 人民邮电出版社 7.《The C Programming Language》 2004,(美)Dennis M.Ritchie 8. 《C和C++经典著作·C专家编程Expert C Programming Deep C Secrets》 2008,人民邮电出版社 9. 《C和指针》2008,(美) KennethA.Reek 人民邮电出版社 10.《C标准库》 2009,(美)P.J.Plauger 人民邮电出版社 11.《C语言解惑》2007,(美)Alan R.Feuer) 人民邮电出版社 12. 13.谭洁强 《C程序设计》 清华大学出版社 14.张基温 《C程序设计案例教程》 清华大学出版社 15.王宏 《C#程序设计案例教程》 清华大学出版社 第四章 心得体会 经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。 通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的- 配套讲稿:
如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。
关于本文