PAGE
PAGE 1
仪器仪表管理系统
【要求】
系统功能的基本要求:
新的仪器仪表信息的录入;
在借出、归还、维修时对仪器仪表信息的修改;
对报废仪器仪表信息的删除;
按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等
对查询结果的输出。
【提示】
数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
需求分析
根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
总体设计
仪器仪表管理系统
仪器仪表管理系统
输入
查找
修改
删除
退出
系统功能模块图
详细设计
主函数
主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。其各功能模块用菜单方式选择。本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】
main()
{menu();
}
菜单部分设计如下:
【流程图】
显示一系列功能选项
显示一系列功能选项
输入n,判断n是否是1-5 N
输入n,判断n是否是1-5
Y
根据n的值调用各功能模块函数
根据n的值调用各功能模块函数
主函数的菜单流程图
【程序】
menu()
{
int n,w;
/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/
do
{puts("\t\t**************MENU********************\n\n");
puts("\t\t\t\t 1.enter");
puts("\t\t\t\t 2.modify");
puts("\t\t\t\t 3.search");
puts("\t\t\t\t 4.delete");
puts("\t\t\t\t 5.exit");
puts("\n\n\t\t ******************************************\n");
printf("Choice your number(1-5):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>5) /*对选择的数字作判断*/
{w=1;
getchar();
}
else w=0;
}
while(w==1);
switch(n)
{case 1:enter();break; /*输入模块*/
case 2:modify();break; /*修改模块*/
case 3:search();break; /*查找模块*/
case 4:delete();break; /*删除模块*/
case 5:exit(0); /*退出*/
}
}
各功能模块设计
(1)输入模块
【数据结构】
【分析】
单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。实际上操作时发现只有字符型的数据可以在文件中成功被保存,所以本题所有数据一律采用字符型。
struct machine
{char name[5];
char number[5];
char buy_time[5];
char borrowin_time[5];
char borrowout_time[5];
char return_time[5];
char repair_time[5];
char sta[5];
char time[5];/*time为下面程序中按时间查找和修改时记录输入的时间*/
}mac[N];/* mac[N]中每个数组元素对应一个仪表仪器*/
【注意】
mac[N]中的N是仪表仪器个数,