仪器仪表管理系统Word格式文档下载.docx
- 文档编号:15839421
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:47
- 大小:321.72KB
仪器仪表管理系统Word格式文档下载.docx
《仪器仪表管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《仪器仪表管理系统Word格式文档下载.docx(47页珍藏版)》请在冰豆网上搜索。
8.编程中遇到的困难及解决方法39
9.总结心得及良好建议40
10.致谢40
1.课程设计论文题目
仪器仪表管理系统
[要求]
系统功能的基本要求:
(1).新的仪器仪表信息的录入。
(2).在借出、归还、维修时对仪器仪表信息的修改。
(3).对报废仪器仪表信息的删除。
(4).按照一定的条件查询、统计符合条件的仪器仪表信息;
查询功能至少应包括仪器仪表基本的信息查询、按时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少应包括按时间段统计、按仪器仪表的基本信息统计等。
(5).对查询、统计的结果打印输出。
[提示]
数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
2.程序设计思路
按照题目的要求,把程序分为录入、显示记录、信息修改、删除、查询、统计六大模块。
首先将主函数写出,在menu函数中就列出这六大模块,然后分别编写。
编写录入函数前,save函数和load函数非常重要,提前编写。
在save函数中,文件record.txt是以”w”(只写)方式打开的,而后将结构体数组中的数据用fwrite函数存入之前,文件中的数据已清空。
而add_new_message函数则是先询问要存的仪器个数,输入后,再用save函数加之文件中已有的数据(之前已用load_equ函数将文件中已有函数写入结构体数组中)一起再存入文件。
显示记录模块,主要用load_equ函数即可解决。
修改模块,先查找到要修改的条目,然后重新输入其数据,用新数据覆盖旧的数据即修改了。
删除模块也是先找到要删除的条目,而后用for语句和continue加之fwrite即可完成。
查找和统计两个模块原理大致相同,都是主要运用strcmp找到符合条件的的条目,然后用for循环将之输出或统计。
3.功能模块图
4.数据结构设计
整个程序数据结构主要是用结构体数组来实现仪器仪表各种信息的加载。
具体结构体数组如下:
structequip
{
charnumber[4];
/*仪器编号*/
charname[11];
/*仪器名称*/
charb_time[11];
/*购买时间*/
charbin_time[11];
/*借入时间*/
charbout_time[11];
/*借出时间*/
chargiveb_time[11];
/*归还时间*/
charrepair_time[11];
/*修理时间*/
intstate;
/*仪器状态(0表示可借出,1表示已借出,2表示正在维修)
}equ[M];
5.算法设计
1.主菜单menu()于其它函数的关系
程序中共有6个函数,add_new_message(),load_record(),modify(),delete(),search(),statistic()。
menu()函数负责调用以上几个函数,用switch()函数实现选择功能,同时也可以用exit(0)直接退出。
main()
menu();
}
voidmenu()
intw,n;
do
printf("
\t\tWELCOMETOTHEEQUIPMENTMANAGEMENTSYSTEM\n\n\n"
);
\n\n\t\t====================******====================\n\n\n"
\t\t\t1:
Addmessageofnewequipmen\n\n"
\t\t\t2:
Loadthemessageofallequipment\n\n"
\t\t\t3:
Correctthemessageofequipment\n\n"
\t\t\t4:
Ddletethemessageofbrokenequipment\n\n"
\t\t\t5:
Searchthemessageofequipment\n\n"
\t\t\t6:
Searchofalltheequipment\n\n"
\t\t\t7:
Exit\n"
Pleasechoiceyournumber:
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
7)w=1;
elsew=0;
while(w==1);
switch(n)
case1:
add_new_message();
break;
/*输入模块*/
case2:
load_record();
/*显示模块*/
case3:
modify();
/*修改模块*/
case4:
delete();
/*删除模块*/
case5:
search();
/*查询模块*/
case6:
statistic();
/*统计模块*/
case7:
exit();
/*退出模块*/
2.添加函数add_new_message()
添加函数先用load_equ()函数将文件中的数据写入结构体数组中,再询问要添加几组数据,t为已有的数据组数,m是要添加的数据组数。
因save()函数中是以只写方式”w”打开的文件,所以此前文件中已有的数据已清空。
从键盘中输入m组数据后,save()函数会将t+m组数据一起再次存入record.txt文件中。
intload_equ()
FILE*fp;
inti;
if((fp=fopen("
record.txt"
"
r"
))==NULL)
{
printf("
\nCannotopenfile\n"
exit(0);
}
for(i=0;
!
feof(fp);
i++)
fread(&
equ[i],sizeof(structequip),1,fp);
fclose(fp);
return(i-1);
voidsave(intn,intm)
if(m==0)
fp=fopen("
w"
elseif(m==1)
search_record.txt"
else
statistic_record.txt"
if(fp==NULL)
exit(0);
for(i=0;
i<
n;
fwrite(&
fclose(fp);
voidadd_new_message()
{intt,i,m;
t=load_equ();
Howmanygroupsdatasdoyouwanttoadd?
\n"
inputthenumber:
[]\b\b\b"
m);
m;
\nInput%dthequipmentrecord.\n"
i+1);
input(t+i);
save(t+m,0);
3.显示函数load_record()
显示函数主要运用load_equ()函数。
然后再用printf_n()函数输出。
voidload_record()
intt;
printf_n(t);
\n\n\nPressanykeytogoback...\n\n"
getch();
voidprintf_n(intn)
intj;
numbernameb_timeb_in_timeb_out_timeg_back_timerepair_times\n"
for(j=0;
j<
j++)
if((j+1)%10==0)
\n\nPassanykeytocontinue..."
getch();
puts("
\n\n"
printf_one(j);
4.修改函数modify()
先通过仪器编号或仪器名称找到要修改的条目。
然后将这一组数据全部从新输入,存如结构体数组中。
再将结构体数组中的所有数据用save_equ()函数存入record.txt文件中去。
voidmodify()
structequipmod;
intt,i,m,w,addr=-1;
charnumber[4]={'
'
},name[11]={'
};
\nInputtheequipment'
numberorname(1:
thenumber2:
thename):
Whatisyourchoice:
if(m==1||m==2)w=0;
elsew=1;
}while(w==1);
switch(m)
case1:
\n\nPleaseinputtheequipment'
snumber:
[___]\b\b\b\b"
scanf("
%s"
number);
case2:
Pleaseinputtheequipment'
sname:
[__________]\b\b\b\b\b\b\b\b\b\b\b"
name);
t;
if(strcmp(equ[i].name,name)==0||strcmp(equ[i].number,number)==0)
addr=i;
\n\nPleaseinputthenewinformation:
numbernameb_timeb_in_timeb_out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仪器仪表 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)