- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据结构课程设计
图书管理系统
一、需求分析
在进行一个项目的设计之前,先要进行必要的需求分析。
现某图书馆需要管理其各种人员和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书。其完成的功能如下:
(1)可以实现图书的登记、借阅的管理。
(2)可以实现对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和编辑操作。另外,可以根据输入的信息来检索某个图书的信息。
(3)可以实现对借阅学生的管理
(4)可以实现对借阅职工的管理。
系统的功能模块图如图1所示。
本实例根据上面的设计规划出的实体有图书登记实体、图书借阅实体、查询输出实体、职工管理实体、学生管理实体。各个实体具体的描述E-R图
二、结构设计
根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑的窗体的系统,每一个窗体实现不同的功能,可以设计下面的几个模块。
●借阅图书管理模块:用来实现图书的登记、借阅。
●查阅图书资料模块:用来实现图书的查询输出。
●管理系统模块:用来实现借阅人员的信息管理。
●还书管理模块:用来实现对图书的借还登记管理。
该系统主要分为查阅图书借阅图书管理系统还书四大功能模块
详细功能为:
1查阅图书模块
该模块的主要实现的功能为对图书进行浏览输出图书的详细信息如图书数量图书借阅信息等查找方式为按书名查找按作者查找
2借阅图书模块
该模块的主要实现功能为能够对借阅者借阅图书的情况进行详细的登记记录
如通过卡号姓名
管理系统
管理系统分为职工管理系统学生管理系统
学生管理系统
修改图书资料可以对图书的各个信息进行进行修改
书籍统计是对图书的数量进行统计在借阅后借阅前能够对图书的数量进行较准确的统计
职工管理系统可以对职工的信息进行增加删除修改等
学生管理系统可以对学生的信息进行进行增加删除修改等
4还书系统
该功能模块的主要实现功能为通过对图书借阅者的情况进行图书的归还登记
三设计源程序
#includestdio.h
#includestring.h
#includeconio.h
#includestdlib.h
#includectype.h
#defineSTACK_INIT_SIZE10
#defineOK1
#defineTRUE1
#defineFALSE0
#defineERROR0
structstudent/*定义学生类型,用于存放借出的书籍*/
{
intcarnum;
charlendbook[10];
}student[1000];
structbook/*定义书的类型*/
{
intbooknum;
charbookname[10];
charbookcreat[10];
intturefalse;/*用于借书和还书模块判断一本书是否借出的条件*/
}book[1000];
structcar/*借书卡的数据类型*/
{
intcarnum;
charstudentname[10];
intstudentclass;
}car[100];
huanbook()/*还书函数*/
{
FILE*fp,*fp2;/*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/
inti,n;
intcarnum;
charlendbook[10];
printf(请你输入你的卡号\n);
scanf(%d,carnum);
fp=fopen(car.txt,r);/*读取卡号记录*/
for(i=0;fread(car[i],sizeof(structcar),1,fp)!=0;i++)/*for循环判断卡号是否存在*/
{
if(car[i].carnum==carnum)/*卡号存在,进入下一循环*/
{
n=i;
fclose(fp);
printf(请输入你要还的书的名字\n);
scanf(%s,lendbook);
fp=fopen(record.txt,r);
for(i=0;fread(student[i],sizeof(structstudent),1,fp)!=0;i++)/*判断是否借阅了输入的书*/
{
if(strcmp(student[i].lendbook,lendbook)==0)/*借阅了该书,进入下一循环,否则出错显示*/
{
fclose(fp);
fp=fopen(
文档评论(0)