C语言课程设计仪器仪表管理系统报告文档格式.docx
- 文档编号:16085303
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:29
- 大小:259.86KB
C语言课程设计仪器仪表管理系统报告文档格式.docx
《C语言课程设计仪器仪表管理系统报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计仪器仪表管理系统报告文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
10.按时间点/段查询----------------------------------第12页
11.公共函数-----------------------------------------第13页
12.上机实践-----------------------------------------第14页
13.程序的亮点与不足---------------------------------第17页
14.总结---------------------------------------------第18页
题目:
仪器仪表管理系统
[要求]
系统功能的基本要求:
(1)
新的仪器仪表信息录入。
(2)
在借出、归还、维修时对仪器仪表信息的修改。
(3)
对报废仪器仪表信息的删除。
(4)
按照一定的条件查询、统计符合条件的仪器仪表信息;
查询功能至少应
包括仪器仪表基本信息的查询、按时间段(如在2004
年1月1日到2004
年10
月10
日购买、借出、维修的仪器仪表等)
查询、按时间点(借入时间、借出时间、归还时间)
查询等,统计功能至少包括按时间段统计、按仪器仪表的基本信息统计等。
(5)
对查询、统计的结果打印输出。
[提示]
数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表可借入,2代表正在维修)等。
需求分析:
根据题目要求,由于仪器仪表信息是存放在文件,所以应提供文件的输入、输出等操作;
在程序中要浏览仪器仪表的信息。
应提供录入、显示、查找,修改等操作;
另外还应提供键盘式选择菜单实现功能选择。
总体设计:
根据上面的需求分析,可以将这个系统的设计分为三个大的模块:
仪表
仪器录入、仪表仪器修改(删除)、仪表仪器查询
详细设计
(一)主函数
主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
其中流程图如下:
[程序]
其中为主函数设定了一个菜单函数,方便用于选择其他模块函数。
用getch0;
获得所按下的键值,用函数内的局部静态变量储存键值对应的其他功能函数。
voidmenu(charc)/*菜单函数*/
{staticintn=0;
//内部变量
if(c=='
s'
||c=='
S'
)n++;
w'
W'
)n--;
if(n==5)n=1;
if(n==0)n=4;
if(c==13)
{switch(n)
{case1:
if(insert()==0)insert();
break;
//录入
case2:
change();
break;
//修改
case3:
serch();
//查询
case4:
exit(0);
//退出程序};
}
system("
cls"
);
printf("
\n\n"
仪器仪表管理系统\n"
\n"
姓名:
xxx"
printf("
班级231xxx"
if(n=1)
printf("
-->
仪器仪表录入<
--\n"
else
仪器仪表录入\n"
if(n=2)
仪器仪表借还/删除<
仪器仪表借还/删除\n"
if(n=3)
仪器仪表查询<
仪器仪表查询\n"
if(n=4)
退出程序<
退出程序\n"
//主函数
voidmain()
{system("
\n\n\n\n"
仪器仪表管理系统<
按W向上选择<
按S向下选择<
按回车确定选择<
按任意键进入系统<
<
----------------->
\n"
getch();
menu('
while
(1)menu(getch());
(二)各功能模块设计
[数据结构]
数据结构选用结构体数组。
这里只简单的给仪器仪表两个部分,一个为仪器仪表的名称、字符串函数,一个为仪器仪表的各个时间点的状态(定义一个time的三维数组,数组下标表示年月日,数组的值表示仪器的状态)。
#definebuy1//购买
#definelean2//借出
#definerepair3//维修
#defineinlib4//空闲
#defineyear_max3000
#definemonth_max12
#defineday_max31
#defineN100//预设仪器最大数
intn;
//仪器数
structequment
{charname[100];
inttime[year_max+1][month_max+1][day_max+1];
}equ[N];
(1)
录入模块
通过strcpy函数实现仪器名称的录入,state函数实现仪器状态的更改。
【程序】
voidinsert()
{inti,j_year,j_month,j_day,year,month,day;
charequ_input[100];
请输入仪器的名称:
"
scanf("
%s"
&
equ_input);
if(presence(equ_input)!
=0)
{
printf("
对不起!
此仪器已购买\n"
录入失败,请按任意键返回主菜单\n"
);
getch();
}
else
{intstate(intyear,intmonth,intday,intn,ints);
n++;
strcpy(equ[n].name,equ_input);
//将equ_input复制给equ[equ_num].name
请输入购买时间(年/月/日)(例如1998/2/15):
scanf("
%d/%d/%d"
year,&
month,&
day);
state(year,month,day,n,inlib);
//equ[n]将当天状态改为空闲
equ[n].time[year][month][day]=buy;
//equ[n]将该天以后状态改为购入
//printf("
%d"
equ[n].time[year][month][day]);
录入成功,请按任意键返回主菜单\n"
----------------------------->
}}
(2)状态改变模块
该模块包括对仪器仪表的借出、归还、维修、报废等小模块的操作,仍然用getch();
函数获取键值来做上下选择。
本函数只考虑对一种仪器仪表的修改,故先要输入该仪器仪表的名称并查找是否已经购买。
intchange()
{charequ_input[100],c='
;
intj,x=0;
----仪器仪表管理系统--->
请输入仪器名称:
"
j=presence(equ_input);
//printf("
\n%d"
j);
system("
pause"
if(j!
{while
(1)
{if(c=='
)x++;
if(c=='
)x--;
if(x==6)x=1;
if(x==0)x=5;
if(c==13)
{switch(x)
{case1:
mylean(j);
case2:
myback(j);
case3:
myrepair(j);
case4:
mydel(j);
case5:
return
(1);
}
}
system("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 仪器仪表 管理 系统 报告