.
.
图书馆管理系统
045072班 王磊
第三部分13题
题目要求
图书馆管理系统包括:图书名称、图书编号、单价、作者、存在状态,借书人姓名、性别、学号等,此外设计的系统须具有如下功能:
新进图书及基本信息输入
图书基本信息查询
对撤销图书信息的删除
办理借书手续
办理书手续
需求分析
根据题目要求,需建立图书管理系统结构体,结构体中应包括图书名称,图书编号,单价、作者、存在状态,借书人姓名,性别、学号等。其中存在状态设定为整形变量,可用不同的数字来表达,在该系统中用〝1〝来表示可借出,〝0〝来表示已借出。
图书信息应存放在文件中,所以提供文件的输入输出等操作;并且程序需具有实现图书信息浏览,查找、修改等功能,并进行借出借入服务;另外还应提供键盘是选择菜单来实现功能选择。
总体设计
结合上述分析该系统应包括以下模块:信息输入、图书查找、信息删除,图书借出、图书归还。结构图如下
图书馆管理系统
图书馆管理系统
信息输入
图书查找
信息删除
图书借出
图书归还
详细设计
主函数
主函数要求设计比较简洁,只提供设输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。
[流程图]
显示一系列功能选项
显示一系列功能选项
输入n ,判断n 是否1—9
根据的值调用个功能模块的函数
[程序]
main()
{int n,t;
/*变量保存选择菜单数字,判断输入的数字是否在功能人能够菜单所对应的数字范围内*/
do
{puts("\t\t\t***欢迎使用图书馆管理系统***\n\n\n");
puts("\t\t\t*************MENU************\n\n");
puts("\t\t\t1. 图书信息输入\n");
puts("\t\t\t2. 新图书信息录入\n");
puts("\t\t\t3. 图书信息浏览\n");
puts("\t\t\t4. 图书信息查找\n");
puts("\t\t\t5. 图书信息修改\n");
puts("\t\t\t6. 图书信息删除\n");
puts("\t\t\t7. 图书借阅\n");
puts("\t\t\t8. 图书归还\n");
puts("\t\t\t9. 退出系统\n");
puts("\t\t\t\n\n\n*****************************\n\n");
/*对功能选项的显示*/
printf("选择使用功能种类(1--9)[ ]\b\b");
scanf("%d",&n);
if(n<1||n>9)
{t=1;getchar();} /*对选择的数字作判断*/
else t=0;}
while(t==1);
/*实现选择功能*/
switch(n)
{case 1:enter();break; /*输入功能*/
case 2:add();break; /*追加功能*/
case 3:browse();break; /*浏览功能*/
case 4:search();break; /*查找功能*/
case 5:modify();break; /*修改功能*/
case 6:del();break; /*删除功能*/
case 7:TSXX_out();break; /*图书借出*/
case 8:TSXX_back();break; /*归还功能*/
case 9:exit(0);break; /*退出*/
}
}
/*以上完成了主函数计主菜单的构成*/
2输入模块
[数据结构]
根据题目中对数据结构的要求每一本图书包含的信息 利用一个结构体来存放。其中结构体需包含 :
字符变量:图书名称、作者、借书人姓名
实型变量:图书编号、单价、学号
整型变量:存在状态,、性别、库存
定义结构体如下
struct TSXX
{char tsn[30]; /*图书名称*/
int bh[15]; /*图书编号*/
float pri; /*单价*/
char zzn[10]; /*作者*/
int zt; /*存在状态*/