《图书借阅管理系统》
- 格式:doc
- 大小:181.00 KB
- 文档页数:17
课程设计报告课程名称C语言程序设计课题名称图书借阅管理系统专业电子信息工程班级1153班学号1319姓名廖信达指导教师叶晓霞2015年12月24 日一、设计内容与设计要求1.设计内容:根据系统需求的描述,要求实现的功能包括图书信息和读者信息的添加、查询的功能,以及借书和还书的功能,本系统格外添加了用户注册和登录功能,方便统计和完善读者信息。
(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。
(2)、本系统显示这样的菜单:首先,要进行登录或者注册才能进入系统,进入后显示1 .全部图书浏览2.新图书添加3.图书删除4.图书查找5.图书借阅6图书归还7.全部读者浏览8.退出登录0.退出之后,程序将重新显示菜单。
2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4上机演示。
4.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;5.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;目录一、课程设计报告 (4)二、功能模块的划分 (6)三、主要功能的实现 (8)四、程序代码清单 (9)三、课程设计报告1.程序设计准备做系统前,首先,自己详细看了《C程序设计》(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。
学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。
另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。
2.程序设计说明根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
3.程序的主要功能图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。
图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的查询、读者信息的录入、读者信息的显示。
通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。
1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。
2、图书基本信息显示:显示已被录入图书的所有信息。
3、图书基本信息删除:通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。
4、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
5、读者信息的录入:这里采用注册登录的方法对读者信息进行统计。
6、读者信息的显示:将读者账号、姓名等输出。
7、退出登录:回到一开始的登录注册页面。
8、退出系统:即退出图书借阅管理系统。
使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下:图书基本信息录入==> void add()图书基本信息显示==> void through()图书基本信息删除==> void del()读者基本信息显示==> void through2()图书基本信息查询==> void search()读者注册==> reg()读者登录==> login()退出登录重来==> restart()这份代码中各个变量的定义如下:num 图书编号name 书名writer 作者publish 出版社time 出版时间price 单价具体各个函数及其功能详解:struct reader *add2(struct reader *llast,char account[max4],char name[max4]);能模块的划分1.主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。
主函数主要负责菜单的显示和各个函数的调用,起着最重要的作用。
1.图书基本信息添加模块添加书号、书名、作者、出版社、出版时间(日期)、单价。
2.图书基本信息显示模块当用户选择图书基本信息显示时,程序会将所有图书信息一一列出。
3.图书基本信息输入模块在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。
结束输入时提示用户图书输入完成4.图书基本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。
5.图书基本信息查询模块用户先选择图书查询方式(按书名查找、按书号查找、按出版社查找、按作者查找)输入这四个中的任意一个后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。
若有多本符合该条件,则输出最先添加的那本书的信息。
7.读者信息浏览模块通过实名注册登记每个读者的信息,可统一查询所有读者的相关信息。
五.主要功能的实现程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。
1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。
2、图书基本信息显示:显示已被录入图书的所有信息。
3、图书基本信息删除:通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。
4、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
5、读者信息的录入:这里采用注册登录的方法对读者信息进行统计。
6、读者信息的显示:将读者账号、姓名等输出。
7、退出登录:回到一开始的登录注册页面。
8、退出系统:即退出图书借阅管理系统。
程序代码清单如下:. #include<>#include<>#include<>#define max1 10#define max2 50#define max3 100#define max4 20typedef struct book{char num[max1];n 读者账号:%-12s\n读者姓名:%-12s\n",cnt2,p->num,p->name);printf("已借书的数量:%d\n",p->count);if(p->count!=0)printf("最后一本书的书号:%-12s\n",p->shuhao_num);p=p->next;}}}void del(){int j,k;struct book *p,*a;p=link;if(p==NULL){printf(" 对不起,现在图书馆一本书还都没有,建议您先添加图书^_^\n");}else{through();printf(" 请输入您要删除第几本书吧^_^\n");scanf("%d",&j);if(j>cnt){printf(" 对不起,压根就没有那么多的书^_^\n");}else if(j<cnt) 书号查找\n");printf(" 2.按作者查找\n");printf(" 3.按书名查找\n");printf(" 4.按出版社查找\n");scanf("%d",&selete);if(selete==1){printf(" 您现在进入书号查找界面,请输入书号\n");scanf("%s",a);while(p!=NULL){m++;if(strcmp(p->num,a)==0){print(m);break;}elsep=p->next;}if(p==NULL)printf(" 对不起,数据库中没有您找的书\n");}else if(selete==2){printf(" 您现在进入作者查找界面,请输入作者\n");scanf("%s",a);while(p!=NULL){m++;if(strcmp(p->writer,a)==0){print(m);break;}elsep=p->next;}if(p==NULL)printf(" 对不起,数据库中没有您找的书\n");}else if(selete==3){printf(" 您现在进入书名查找界面,请输入书名\n");scanf("%s",a);while(p!=NULL){m++;if(strcmp(p->name,a)==0){print(m);break;}elsep=p->next;}if(p==NULL)printf(" 对不起,数据库中没有您找的书\n");}else if(selete==4){printf(" 您现在进入出版社查找界面,请输入出版社名\n");scanf("%s",a);while(p!=NULL){m++;if(strcmp(p->publish,a)==0){print(m);break;}elsep=p->next;}if(p==NULL)printf(" 对不起,数据库中没有您找的书\n");}else{printf(" 对不起,您的输入有误,请重新选择\n");}}}void updata(char name[max4],char num[max4]){struct reader *a;a=llink;while(a!=NULL){if(strcmp(a->name,name)==0){strcpy(a->num,name);a->count++;strcpy(a->shuhao_num,num);}else a=a->next;}}void updata2(char name[max4],char num[max4]){struct reader *a;a=llink;while(a!=NULL){if(strcmp(a->name,name)==0){a->count--;strcpy(a->shuhao_num,"");}}}void borrowbook(){int j,k;struct book *p;p=link;if(p==NULL){printf(" 对不起,现在图书馆一本书还都没有,建议您先添加图书^_^\n");}else{through();printf(" 请输入您要借第几本书吧^_^\n");scanf("%d",&j);if(j>cnt){printf(" 对不起,输入出错请重试\n");}else{for(k=1;k<=j-1;k++){p=p->next;}if(p->flag==0){printf(" 对不起,该书已被借走,请借其他书\n");}else{p->flag=0;updata(people,p->num);printf(" 借书成功,请在规定时间内归还\n");}}}}void returnbook(){char num[max4];struct book *p;p=link;printf(" 输入要还的书的书号:\n");scanf("%s",num);while(p!=NULL){if(strcmp(p->num,num)==0){p->flag=1;printf(" 还书成功哦!\n");updata2(people,num);break;}p=p->next;}}void restart(){char n;int j,k;printf(" 1.已有账号登陆\n 2.新用户注册\n");printf(" 请输入您的选择\n");scanf("%d",&n);if(n==1){for(j=5;j>=0;j--){if(j!=0){k=login(j);if(k==1) break;else continue;flag=0;}elseflag=0;}}else if(n==2){reg();}else{printf(" 对不起,您的输入有误,系统自动退出\n");}}int main(){char selete[max1],n;int j,k;printf(" 欢迎进入图书管理系统\n");printf(" 1.已有账号登陆\n 2.新用户注册\n");printf(" 请输入您的选择\n");scanf("%d",&n);if(n==1){for(j=5;j>=0;j--){if(j!=0){k=login(j);if(k==1) break;else continue;flag=0;}elseflag=0;}}else if(n==2){reg();}else{printf(" 对不起,您的输入有误,系统自动退出\n");}while(flag){printf(" *****************************\n\n");printf(" 菜单选择:\n\n");printf(" 1.全部图书浏览\n\n");printf(" 2.新图书添加\n\n");printf(" 3.图书删除\n\n");printf(" 4.图书查找\n\n");printf(" 5.图书借阅\n\n");printf(" 6图书归还\n\n");printf(" 7.全部读者浏览\n\n");printf(" 8.退出登录\n\n");printf(" 0.退出系统\n\n");printf(" *****************************\n");scanf("%s",&selete);switch(selete[0]){case '0':flag=0;break;case '1':through();system("pause");break;case '2':last=add(last);break;case '3':del();break;case '4':search();system("pause");break;case '5':borrowbook();system("pause");break;case '6':returnbook();system("pause");break;case '7':through2();system("pause");break;case '8':restart();break;default:printf(" 对不起,您的输入有误,请重新输入\n");break;}system("cls");}printf(" 感谢使用本系统,祝您生活愉快!\n");}//haoleia。