《图书借阅管理系统》.docx
- 文档编号:16070445
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:19
- 大小:85.26KB
《图书借阅管理系统》.docx
《《图书借阅管理系统》.docx》由会员分享,可在线阅读,更多相关《《图书借阅管理系统》.docx(19页珍藏版)》请在冰点文库上搜索。
《图书借阅管理系统》
课程设计报告
课程名称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的复印纸打印并装订;
1、课程设计报告.................................4
2、功能模块的划分..............................6
3、主要功能的实现..............................8
4、程序代码清单................................9
三、课程设计报告
1.程序设计准备
做系统前,首先,自己详细看了《C程序设计》(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。
学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。
另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。
2.程序设计说明
根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:
在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:
另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
3.程序的主要功能
图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。
图书借阅管理系统是对图书信息的基本管理,它包括:
图书信息的录入、图书信息的显示、图书信息的删除、图书信息的查询、读者信息的录入、读者信息的显示。
通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。
1、图书基本信息录入:
对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。
2、图书基本信息显示:
显示已被录入图书的所有信息。
3、图书基本信息删除:
通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。
4、图书基本信息查询:
将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
5、读者信息的录入:
这里采用注册登录的方法对读者信息进行统计。
6、读者信息的显示:
将读者账号、姓名等输出。
7、退出登录:
回到一开始的登录注册页面。
8、退出系统:
即退出图书借阅管理系统。
使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下:
图书基本信息录入==>voidadd()
图书基本信息显示==>voidthrough()
图书基本信息删除==>voiddel()
读者基本信息显示==>voidthrough2()
图书基本信息查询==>voidsearch()
读者注册==>reg()
读者登录==>login()
退出登录重来==>restart()
这份代码中各个变量的定义如下:
num图书编号
name书名
writer作者
publish出版社
time出版时间
price单价
具体各个函数及其功能详解:
structreader*add2(structreader*llast,characcount[max4],charname[max4]);能模块的划分
1.主函数模块
根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。
主函数主要负责菜单的显示和各个函数的调用,起着最重要的作用。
1.图书基本信息添加模块
添加书号、书名、作者、出版社、出版时间(日期)、单价。
2.图书基本信息显示模块
当用户选择图书基本信息显示时,程序会将所有图书信息一一列出。
3.图书基本信息输入模块
在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。
结束输入时提示用户图书输入完成
4.图书基本信息删除模块
用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。
5.图书基本信息查询模块
用户先选择图书查询方式(按书名查找、按书号查找、按出版社查找、按作者查找)输入这四个中的任意一个后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。
若有多本符合该条件,则输出最先添加的那本书的信息。
7.读者信息浏览模块
通过实名注册登记每个读者的信息,可统一查询所有读者的相关信息。
五.主要功能的实现
程序运行流程:
但每个模块运行完即会回到主函数,然后选择其他或退出。
1、图书基本信息录入:
对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。
2、图书基本信息显示:
显示已被录入图书的所有信息。
3、图书基本信息删除:
通过输入书名,判断此图书是否存在,若存在,则删除该图书所有信息,若不存在则提示用户重新输入图书书名。
4、图书基本信息查询:
将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。
5、读者信息的录入:
这里采用注册登录的方法对读者信息进行统计。
6、读者信息的显示:
将读者账号、姓名等输出。
7、退出登录:
回到一开始的登录注册页面。
8、退出系统:
即退出图书借阅管理系统。
程序代码清单如下:
.#include<>
#include<>
#include<>
#definemax110
#definemax250
#definemax3100
#definemax420
typedefstructbook
{
charnum[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;
}
}
}
voiddel()
{
intj,k;
structbook*p,*a;
p=link;
if(p==NULL)
{
printf("对不起,现在图书馆一本书还都没有,建议您先添加图书^_^\n");
}
else
{
through();
printf("请输入您要删除第几本书吧^_^\n");
scanf("%d",&j);
if(j>cnt)
{
printf("对不起,压根就没有那么多的书^_^\n");
}
elseif(j 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; } else p=p->next; } if(p==NULL) printf("对不起,数据库中没有您找的书\n"); } elseif(selete==2) { printf("您现在进入作者查找界面,请输入作者\n"); scanf("%s",a); while(p! =NULL) { m++; if(strcmp(p->writer,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("对不起,数据库中没有您找的书\n"); } elseif(selete==3) { printf("您现在进入书名查找界面,请输入书名\n"); scanf("%s",a); while(p! =NULL) { m++; if(strcmp(p->name,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("对不起,数据库中没有您找的书\n"); } elseif(selete==4) { printf("您现在进入出版社查找界面,请输入出版社名\n"); scanf("%s",a); while(p! =NULL) { m++; if(strcmp(p->publish,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("对不起,数据库中没有您找的书\n"); } else { printf("对不起,您的输入有误,请重新选择\n"); } } } voidupdata(charname[max4],charnum[max4]) { structreader*a; a=llink; while(a! =NULL) { if(strcmp(a->name,name)==0) { strcpy(a->num,name); a->count++; strcpy(a->shuhao_num,num); } elsea=a->next; } } voidupdata2(charname[max4],charnum[max4]) { structreader*a; a=llink; while(a! =NULL) { if(strcmp(a->name,name)==0) { a->count--; strcpy(a->shuhao_num,""); } } } voidborrowbook() { intj,k; structbook*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"); } } } } voidreturnbook() { charnum[max4]; structbook*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; } } voidrestart() { charn; intj,k; printf("1.已有账号登陆\n2.新用户注册\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; elsecontinue; flag=0; } else flag=0; } } elseif(n==2) { reg(); } else { printf("对不起,您的输入有误,系统自动退出\n"); } } intmain() { charselete[max1],n; intj,k; printf("欢迎进入图书管理系统\n"); printf("1.已有账号登陆\n2.新用户注册\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; elsecontinue; flag=0; } else flag=0; } } elseif(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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书借阅管理系统 图书 借阅 管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)