图书管理程序课程设计报告C语言Word下载.docx
《图书管理程序课程设计报告C语言Word下载.docx》由会员分享,可在线阅读,更多相关《图书管理程序课程设计报告C语言Word下载.docx(58页珍藏版)》请在冰豆网上搜索。
图书登记管理程序分析
1系统分析
1.1问题描述
图书登记管理程序能够帮助图书管理员切实高效的登记管理图书信息,管理员将全部图书信息存储在系统中,系统能够提示明显信息,从而管理员能对新增,丢失,修改,借阅的图书信息和借书用户信息做必要的登记,并且该系统设有密码,能够一定程度上阻止无关人员操作系统。
1.2系统功能分析
系统主要分成两大功能,图书管理和用户管理。
在图书管理方面,分为增加新图书,删除图书,修改图书信息,查询图书信息,统计图书信息,借阅图书,归还图书等七大功能。
在查询图书信息功能上,又细分为按ISBN号,作者,名称,出版社,出版日期,图书类别查询。
在统计图书信息功能上,又细分为按ISBN号范围,出版日期范围,价格范围查询。
在用户管理方面,分为查询用户信息,修改用户信息,增加用户,删除用户,修改图书管理密码等五大功能。
1.3开发平台及工具介绍
本系统主要利用C语言的基本知识,使用MicrosoftVisualC++软件来编写程序代码,该软件适合初学者使用,能够帮助程序员快速查找出错误,给出明确提示,从而更加高效的开发出图书登记管理系统。
2系统设计
2.1系统总体结构设计
系统程序中图书信息,用户信息,密码信息都是以结构体的形式表示,并且每一个结构体都分别嵌套在三个链表中,从而能够实现信息的增减功能。
2.2系统各个功能模块及功能模块之间关系设计
首先系统功能模块分别有创造图书信息、用户信息、密码信息模块。
读取图书信息、用户信息、密码信息模块。
保存图书信息、用户信息、密码信息模块。
输入图书信息、用户信息、密码信息模块。
增加图书信息、用户信息模块。
删除图书信息、用户信息模块。
修改图书信息、用户信息、图书管理密码模块。
查询图书信息、用户信息模块。
统计图书信息模块。
借阅图书模块,归还图书模块。
输出图书信息、用户信息模块。
各个模块之间相互存在相互调用的关系,大模块调用小模块,层层调用。
2.3数据存储的设计(文件等)
图书信息,用户信息,密码信息分别存储在三个文件上。
实现信息从文件写入链表,信息从链表存储在文件中。
2.4界面设计
程序的各项功能在程序运行时,以菜单的方式执行。
各个菜单中都有明确的提示,使管理员轻松的使用本系统。
在主菜单中选择所需功能,再在各二级菜单中选择,以此类推,直至选到所需要的功能。
当不需要当前菜单时,还可以返回上一级菜单,重新进行选择,并且系统设置清除界面功能,避免已经没有的信息界面仍然出现。
。
3系统实现
模块的流程图如下:
Y
退出系统
C 输入密码
进入图书登记程序系统
A判断是否存在存储密码,图书,用户信息的文件
B创造存储信息的文件
N
Y
N
D选择操作内容
管理图书信息
管理用户信息
E输入管理图书内容
F输入管理用户内容
判断输入内容1
判断输入内容2
增加图书
修改图书
统计图书
归还图书
借阅图书
查询图书
删除图书
按图书类别
按ISBN号
按作者
按名称
按出版社
按出版日期
按ISBN号
判断输入内容2
查询用户信息
修改用户信息
增加用户化
删除用户
修改密码
按价格
部分关键程序代码如下:
A:
headss=readFiless(headss);
if(!
headss)
{
createFiless();
headss=readFiless(headss);
}
head=readFile(head);
head)
createFile();
head=readFile(head);
} heads=readFiles(heads);
heads)
createFiles();
heads=readFiles(heads);
B:
voidcreateFile()/*创造图书信息函数*/
{
bookdata;
FILE*fp;
if((fp=fopen("
book.dat"
"
wb"
))==NULL)
printf("
存储图书信息的文件未找到!
\n"
);
exit(0);
printf("
请输入图书信息,当输入足够图书时,以ISBN号为0结束!
readNode(&
data);
while(strcmp(data.ISBN,"
0"
)!
=0)
fwrite(&
data,sizebook,1,fp);
readNode(&
fclose(fp);
}
voidcreateFiles()/*创造用户信息函数*/
peopledatas;
FILE*fps;
if((fps=fopen("
people.dat"
存储用户信息的文件未找到!
请输入用户信息,当注册足够用户时,以用户号码为0结束!
readNodes(&
datas);
while(datas.num)
datas,sizepeople,1,fps);
readNodes(&
fclose(fps);
voidcreateFiless()/*创造密码函数*/
accessdatass;
FILE*fpss;
if((fpss=fopen("
access.dat"
存储密码信息的文件未找到!
readNodess(&
datass);
fwrite(&
datass,sizeaccess,1,fpss);
fclose(fpss);
C:
intenter(structnodess*headss)/*进入系统函数*/
structnodess*q=headss;
charcodes[80];
createprints();
scanf("
%s"
&
codes);
if(strcmp(q->
datass.code,codes)==0)
return1;
else
输入密码错误,系统已退出!
return0;
D:
switch(choice)
{
case1:
heads=readFiles(heads);
head=bookmenu(head,heads);
break;
case2:
heads=peoplemenu(heads,head,headss);
case0:
break;
default:
printf("
输入错误,请再输入一遍!
}
E:
printf("
请输入你要增加图书的信息!
readNode(&
head=InsertOrder(head,data);
请输入你要删除图书的ISBN号!
scanf("
ISBNS);
head=Delete(head,ISBNS);
case3:
请输入你要修改图书的ISBN号!
head=correct(head,ISBNS);
break;
case4:
searchManage(head);
case5:
statist(head);
case6:
请输入你要借阅图书的ISBN号!
scanf("
heads=readFiles(heads);
head=borrowbook(head,ISBNS,heads);
case7:
请输入你要归还图书的ISBN号!
head=returnbook(head,ISBNS,heads);
break;
system("
cls"
break;
}:
F:
请输入你要查询用户的号码!
scanf("
%lf"
nums);
searchManages(heads,nums,head);
break;
请输入你要修改用户的号码!
heads=corrects(heads,nums);
请输入你要增加用户的号码!
readNodes(&
heads=InsertOrders(heads,datas);
printf("
增加用户成功!
case4:
请输入你要删除