《图书借阅管理组织系统》_第1页
《图书借阅管理组织系统》_第2页
《图书借阅管理组织系统》_第3页
《图书借阅管理组织系统》_第4页
《图书借阅管理组织系统》_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、* *课程设计报告课程名称_C 语言程序设计_课题名称图书借阅管理系统专 业_班级_1153 班_学号_ 201511611319_姓名_ 廖信达_指导教师_叶晓霞2015 年 12 月 24 日一、设计内容与设计要求* *1 .设计内容:根据系统需求的描述,要求实现的功能包括图书信息 和读者信息的添加、查询的功能,以及借书和还书的功能,本系统格外添加 了用户注册和登录功能,方便统计和完善读者信息。(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应 当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。(2)、本系统显示这样的菜单:首先,要进行登录或者注册才能进入系统,进

2、入后显示1 .全部图书浏览2.新图书添加3.图书删除4.图书查找5.图书借阅6图书归还7.全部读者浏览8.退出登录0.退出之后,程序将重新显示菜单。2 .设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求 精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的 案例处理经验。1.设计正确,方案合理。2.界面友好,使用方便。3.程序精炼,结构清晰。4上机演示。4.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;5.按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订;*

3、 *目录一、.课程设计报告4二、 功能模块的划分.6三、 主要功能的实现 .8四、.程序代码清单9* *三、课程设计报告1. 程序设计准备做系统前,首先,自己详细看了C程序设计(教科书),基本自学会了文 件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料, 还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容,图书信息管理系统有助于C语 言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基 本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。2. 程序

4、设计说明根据题目要求,应当把图书信息用结构体形式输入, 再定义一个全局变量和 文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下 个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择 菜单实现功能,在运行时达到所要求的目的。3. 程序的主要功能图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管 理。图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图 书信息的显示、图书信息的删除、图书信息的查询、读者信息的录入、读者信息 的显示。通过编译一个C语言函数,其中包

5、含一个主函数,多个子函数,主函数调 用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功 能。1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、 作者、价格)进行录入。2、 图书基本信息显示:显示已被录入图书的所有信息。3、 图书基本信息删除:通过输入书名,判断此图书是否存在,若存在,则 删除该图书所有信息,若不存在则提示用户重新输入图书书名4、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、 价格等显* *示在屏幕上。5、读者信息的录入:这里采用注册登录的方法对读者信息进行统计。6、读者信息的显示:将读者账号、姓名等输出。7、退出登录:回到一开

6、始的登录注册页面。8、退出系统:即退出图书借阅管理系统使用模块化编程的方法每项功能有一个或多个函数组合来完成, 其中菜单选 项模块对应如下:这份代码中各个变量的定义如下:num图书编号n ame书名writer作者publish出版社time出版时间price单价具体各个函数及其功能详解:struct reader *add2(struct reader *llast,characco un tmax4,charnamemax4); 添加读者信息图书基本信息录入一void add()图书基本信息显示=void through。图书基本信息删除=void del()读者基本信息显示=void t

7、hrough2图书基本信息查询-void search()读者注册=reg()读者登录=log in()退出登录重来=restart()()* *int login(int j);登录系统void reg();注册账号struct book *add(struct book *last);添加读者信息void search(); 查询图书void updata(char n amemax4,char num max4);更新图书信息void through。;/ 全部图书浏览void through2();/全部读者浏览void prin t(i nt j);/输出图书相关信息void del

8、();/删除图书void updata2(char n amemax4,char num max4);更新读者信息void borrowbook();借阅图书void returnbook();/归还图书四.功能模块的划分1.主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定 义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一 个函数,而属于一个源程序文件,在整个程序内可以多次被引用。主函数主要负责菜单的显示和各个函数的调用,起着最重要的作用1图书基本信息添加模块添加书号、书名、作者、出版社、出版时间(日期)、单价。* *2图书基本信息显示模块当用

9、户选择图书基本信息显示时,程序会将所有图书信息一一列出3图书基本信息输入模块在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期, 单价等信息。结束输入时提示用户图书输入完成4图书基本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该 图书所有信息,若不存在则提示无此图书信息。* *5.图书基本信息查询模块用户先选择图书查询方式(按书名查找、按书号查找、按出版社查找、按作 者查找)输入这四个中的任意一个后,查找出该图书是否存在,若存在,则显示 该图书信息,若不存在则提示用户无此图书信息

10、。 若有多本符合该条件,则输出 最先添加的那本书的信息。* *7 .读者信息浏览模块通过实名注册登记每个读者的信息,可统一查询所有读者的相关 信息。五.主要功能的实现程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、 作者、价格)进行录入。2、图书基本信息显示:显示已被录入图书的所有信息。3、 图书基本信息删除:通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。4、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、 价格等显示在屏幕上。5、读者信息的

11、录入:这里采用注册登录的方法对读者信息进行统计。不存在存齐* *char timemax1;/出版时间6、读者信息的显示:将读者账号、姓名等输出7、退出登录:回到一开始的登录注册页面。8、退出系统:即退出图书借阅管理系统。程序代码清单如下:.#in clude#in clude#in clude#defi ne maxi 10#defi ne max2 50#defi ne max3 100#defi ne max4 20 typedef struct bookchar num maxi;/书号char n amemax4; 书名char writermax4;作者char pricemax4

12、;价格int flag;/判断书是否被借出,0 是借出,1 是没有借出char publishmax4;出版社* *bk;typedef struct readerchar nummax4;读者账号char namemax4; 读者姓名intcoun t;/ 已借书量char shuhao_nummax4;最后一本借的书书号struct reader* next;/ 下个读者的位置rd;struct book *li nk=NULL;书的单向链表struct book *last=NULL;/指向最后一本书struct reader *lli nk=NULL;读者的单向链表struct rea

13、der *llast=NULL; /指向最后一名读者int flag,cnt,cnt2;/*flag判断有没存书,ent 记录书指针的位置,cnt2 记录读者指针的位置*/char peoplemax4;记录当前读者的姓名struct book* next;/下一本书的位置* *char timemax1;/出版时间struct reader *add2(struct reader *llast,char acco un tmax4,char n amemax4);加读者信息in t logi n(int j); 登录系统void reg(); 注册账号struct book *add(str

14、uct book *last);添加读者信息void search();查询图书void updata(char n amemax4,char num max4);更新图书信息void through。;/ 全部图书浏览void through2();/ 全部读者浏览void prin t(i nt j);/输出图书相关信息void del();/ 删除图书void updata2(char n amemax4,char num max4);更新读者信息void borrowbook();借阅图书void returnbook();/归还图书in t logi n(i nt j)FILE *f

15、p;char acco un tmax4,passwordmax4,acco un t2max4,password2max4;fp=fope n(user.txt,r+);* *if(fp=NULL)* *printf(”对不起,文件打开失败!n);elseprintf(sca nf(%s,acco un t);printf(sca nf(%s,password);printf(用图书管理系统n,account);strcpy(people,acco unt); system(pause);system(cls);flag=1;return 1;fclose(fp);if(j1)printf(

16、您还有%d 次机会,请重新输入n,j-1);账号:);密码:);尊敬的%s 用户,欢迎使对不起,您的输入有误,return 0;* *sca nf(%s,password);printf(”请再次输入密码:);void reg()FILE *fp;int m=1;char n amemax4,acco un tmax4,passwordmax4,password2max4;fp=fope n( user.txt,a+);if(fp=NULL)printf(对不起,系统出错,文件打开失败! ! n”);elseprintf(”请输入账号:);sca nf(%s,acco un t);while(

17、m)printf(请输入密码:);* *struct book *add(struct book *last)scan f(%s,password2);if(strcmp(password,password2)=0)m=0;elseprintf(对不起,您两次输入的密码不同,请重新输入A_An);fprin tf(fp, %s %s ,acco un t,password);prin tf(注册成功,正在进入系统n ”);flag=1;printf(”请输入您的真实姓名方便我们管理n);scan f(%s,&n ame);llast=add2(llast,acco un t, name

18、);system(pause);system(cls);fclose(fp);* *scan f(%s,last-publish);printf(请输入书的出版时间n);struct book *a;a=NULL;if(last=NULL) /*第一次添加书指针处理*/last=new book;li nk=last;printf(”printf(”scan f(%s,last- nu m);printf(scan f(%s,last-writer);printf(sca nf(%s,last-n ame);printf(scan f(%s,last-price);printf(欢迎进入图书添

19、加界面n);请输入添加的书的书号n);请输入书的作者n);请输入书名n);请输出书的价格n);请输入书的出版社n);* *prin tf(请输入书的出版时间n);scan f(%s,a-time);elsescan f(%s,last-time);last-flag=1;last- next=NULL;/*非第一次添加书指针处理*/a=new book;printf(”prin tf(欢迎进入图书添加界面n);请输入添加的书的书号n);sca nf(%s,a-nu m);printf(”scan f(%s,a-writer);printf(”sca nf(%s,a-n ame);printf(

20、”sca nf(%s,a_price);printf(”scanf(%s,a-publish);请输入书的作者n);请输入书名n);请输出书的价格n);请输入书的出版社n);* *else /*非第一次添加读者*/a_flag=1;a- next=NULL; last-n ext=a; last=a;printf(”return last; struct reader *add2(struct reader *llast,char acco un tmax4,char namemax4) struct reader *a;a=NULL;if(llast=NULL)/*第一次添加读者 */lla

21、st=new reader;lli nk=llast;strcpy(llast- nu m,acco un t);strcpy(llast- n ame ,n ame);llast-co un t=0;llast- next=NULL;图书添加完毕n);* *elsea=new reader;strcpy(a-nu m,acco un t);strcpy(a-n ame ,n ame);a-co un t=0;a- next=NULL;llast- n ext=a;llast=a;return llast; void through。struct book *p;cn t=0;p=li nk;

22、if(p=NULL)printf(”没有,建议您先添加图书n);对不起,现在图书馆一本书还都* *cnt+;prin tf(%dn书号:-12sn作者:-12sn书名:-12sn%-12sn出 版 社: %-12sn出 版间:%-12sn ,cnt,p-nu m,p_writer,p-n ame,p-price,p-publish,p-time);if(p-flag=O)printf(”状态:不可借 n);else printf(状态:可借 n”);p=p-n ext;void through2()struct reader *p;cn t2=0;p=lli nk;while(p!=NULL)

23、/输出读者相关信息while(p!=NULL) /输出图书各样详细信息* *elsecnt2+;prin tf(%d.n读 者 账 号:-12sn读 者名:%-12sn,cnt2,p-num,p-name);printf(已借书的数量:%dn,p-count);if(p-co un t!=0)printf(最后一本书的书号:-12sn,p-shuhao_num);p=p-n ext;void del()int j,k;struct book *p,*a;p=li nk;if(p=NULL)printf(对不起,现在图书馆一本书还都没有,建议您先添加图书A_An);* *printf(记录删除成

24、功n);through。;printf(”A_An);scan f(%d,&j);if(jcnt)printf(多的书 A_An);else if(jcnt)/删除中间的书for(k=1;kn ext;a=p-n ext;p-n ext=a-n ext;delete(a);else /删除最后一本书请输入您要删除第几本书吧对不起,压根就没有那么* *for(k=1;kn ext;a=p;delete(a);p- next=NULL;last-n ext=p;printf(记录删除成功n);void prin t(i nt j)/*输出图书相关信息*/struct book *p;int

25、 m;p=li nk;for(m=1;mn ext;prin tf(%dn书号:-12sn 作者:-12sn 书名:-12sn 价格:版社:%-12sn出版间:%-12sn,j,p_ n um,p_writer,p_ n ame,p_price,p_publish,p_time);if(p-flag=O)printf(”状态:不可借 n);else printf(” 状态:可借 n);void search()int selete=0,m=0;char amax1*2;struct book *p;p=li nk;printf(if(p=NULL)printf(%-12sn 出时欢迎进入查找界

26、面n);* *对不起,现在图书馆中还没有图书呢n);else/*按四种方式查询图书*/* *printf(”1.按书号查找 n);printf(”2.按作者查找 n);printf(”3.按书名查找 n);printf(”4.按出版社查找n);scan f(%d, &selete);if(selete=1)printf(”您现在进入书号查找界面,请输入书号scan f(%s,a);while(p!=NULL)m+;if(strcmp(p-nu m,a)=O)prin t(m);break;elsep=p-n ext;n);* *if(p=NULL)* *printf(”对不起,数据库中

27、没有您找的书n);printf(”对不起,数据库中没有您找的书n);else if(selete=2)printf(您现在进入作者查找界面,请输入作者scan f(%s,a);while(p!=NULL)m+;if(strcmp(p_writer,a)=O)prin t(m);break;elsep=p-n ext;if(p=NULL)n);* *printf(”对不起,数据库中没有您找的书n);else if(selete=3)* *printf(您现在进入出版社查找界面,请输入出版scan f(%s,a);while(p!=NULL)m+;if(strcmp(p-name,a)=0)pri

28、n t(m);break;elsep=p-n ext;if(p=NULL)printf(else if(selete=4)n);printf(”您现在进入书名查找界面,请输入书名对不起,数据库中没有您找的书n);* *printf(您现在进入出版社查找界面,请输入出版社名n);* *scan f(%s,a);while(p!=NULL)m+;if(strcmp(p-publish,a)=O)prin t(m);break;elsep=p-n ext;if(p=NULL)prin tf(对不起,数据库中没有您找的书n);elseprintf(对不起,您的输入有误,请重新选择n);* *void

29、updata(char n amemax4,char num max4) struct reader *a;a=lli nk;while(a!=NULL)if(strcmp(a-n ame ,n ame)=0)strcpy(a-num,n ame);a-co un t+; strcpy(a-shuhao_ num,nu m);else a=a-n ext; void updata2(char n amemax4,char num max4) struct reader *a;a=lli nk;while(a!=NULL)* *if(strcmp(a-n ame ,n ame)=O)a-co u

30、n t-;strcpy(a-shuhao_ num,);void borrowbook()int j,k;struct book *p;p=li nk;if(p=NULL)printf(对不起,现在图书馆一本书还都没有,添加图书A_An);else建议您先* *printf(”请输入您要借第几本书吧A_An);through();* *scan f(%d,&j);if(jcnt)printf(”对不起,输入出错请重试n);elsefor(k=1;kn ext;if(p-flag=0)prin tf(对不起,该书已被借走,请借其他elsep-flag=0;updata(people,p-

31、nu m);prin tf(借书成功,请在规定时间内归还n);书n);* *void retur nbook()char num max4;struct book *p;p=li nk;printf(”scan f(%s, num);输入要还的书的书号:n);while(p!=NULL)if(strcmp(p-num,num)=0)p-flag=1;printf(updata2(people ,num);还书成功哦!n);break;* *p=p-n ext;void restart。char n;int j,k;printf(”1.已有账号登陆n2.新用户注册n);printf(请输入您的选择n);scan f(%d,&n);if(n=1)

温馨提示

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

评论

0/150

提交评论