C高级语言程序设计仪器仪表管理系统Word文档下载推荐.docx
《C高级语言程序设计仪器仪表管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C高级语言程序设计仪器仪表管理系统Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
按照界面操作提示输入
2.5上机操作
(1)截图:
主菜单
(2)截图:
添加新仪器信息功能
(3)截图:
显示所有仪器信息功能
(4)截图:
修改仪器信息功能
(5)截图:
删除损坏仪器信息功能
(6)截图:
查询仪器信息功能
(7)截图:
统计所有仪器功能
(8)截图:
退出功能
3.设计小结
C语言课程设计经过2周的实习终于落幕了。
不断的复习理论知识、编程、调试、改错,直至存盘,同样的环节、同样的工作步骤,重复又重复,枯燥而乏味;
看似简单的程序题,编写后调试却屡屡出错。
如何改如何错,怎么编写怎么调试失败,心烦而意乱。
说实话,但奇怪的是,越是如此,我越是激动感觉很刺激。
所以不断地调试,反复地编写。
一旦在黑屏幕的左下角意外地发现所输出的信息正是自己意想中的结果,那时候觉得好幸福。
那份心底里的成就感,可以让你顿时忘记了所有的烦躁,因为那一切付出都是值得的,相信我下一次一定能编出更好的程序!
4.参考文献
【1】谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005.9
【2】谭浩强.C程序设计题解与上机指导(第三版).北京:
清华大学出版社,2005.7
【3】张淑平c语言程序设计学习指导,西安电子科技大学出版社.2004.6
5.存在的问题或不足
输出打印部分界面不够美观,过于普通机械化;
没有具体的仪器仪表数据不然演示起来就会很完美了;
程序兼容性不够强,有一定的局限性。
6.源程序
#include<
stdio.h>
string.h>
#include<
stdlib.h>
#defineM50
structequip
{
charnumber[4];
charname[11];
charb_time[11];
charbin_time[11];
charbout_time[11];
chargiveb_time[11];
charrepair_time[11];
intstate;
}equ[M];
voidsave(intn,intm);
intload_equ();
voidmenu();
voidadd_new_message();
voidinput(inti);
voidload_record();
voidprintf_one(inti);
voidprintf_n(intn);
voidmodify();
voiddel();
voidsearch();
voidsb_buy_tq();
voidsb_gb_tq();
voidsb_par_number();
voidsb_name();
voidstatistic();
voidtb_par_number();
voidtb_name();
voidtb_buy_tq();
voidtb_gb_tq();
voidmain()
menu();
}
voidmenu()
intw,n;
do
{system("
cls"
);
system("
colorf5"
printf("
\t\tTHEEQUIPMENTMANAGEMENTSYSTEM\n\n\n"
\n\n\t\t====================******====================\n\n\n"
\t\t\t1:
添加新仪器信息\n\n"
\t\t\t2:
显示所有仪器信息\n\n"
\t\t\t3:
修改仪器信息\n\n"
\t\t\t4:
删除损坏仪器的信息\n\n"
\t\t\t5:
查询仪器信息\n\n"
\t\t\t6:
统计所有的仪器\n\n"
\t\t\t7:
退出\n"
请选择号码:
[]\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:
del();
/*删除模块*/
case5:
search();
/*查询模块*/
case6:
statistic();
/*统计模块*/
case7:
exit
(1);
/*退出模块*/
intload_equ()
FILE*fp;
inti;
if((fp=fopen("
record.txt"
"
r"
))==NULL)
{
printf("
\n不能打开文件\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)
\nCannotopenfile\n"
exit(0);
for(i=0;
i<
n;
fwrite(&
fclose(fp);
/****************添加模块****************/
voidadd_new_message()
{intt,i,m;
t=load_equ();
你想添加多少组数据?
\n"
输入数据:
[]\b\b\b"
m);
m;
\n输入%d个仪器记录.\n"
i+1);
input(t+i);
save(t+m,0);
/****************输入函数****************/
voidinput(inti)
请输入:
\n编号仪器表名购买时间借入时间借出时间归还时间维修时间状态信息\n"
0可以借出,1已经借出2正在修理\n"
%s%s%s%s%s%s%s%d"
equ[i].number,&
equ[i].name,&
equ[i].b_time,&
equ[i].bin_time,&
equ[i].bout_time,&
equ[i].giveb_time,&
equ[i].repair_time,&
equ[i].state);
voidload_record()
intt;
printf_n(t);
\n\n\n按任意键返回\n\n"
getchar();
pause"
voidprintf_one(inti)
%-3s%-10s%-10s%-10s%-10s%-10s%-10s%d.\n\n"
equ[i].number,equ[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,equ[i].state);
voidprintf_n(intn)
intj;
编号仪器表名购买时间借入时间借出时间归还时间维修时间s\n"
for(j=0;
j<
j++)
printf_one(j);
/****************修改模块****************/
voidmodify()
structequipmod;
intt,i,m,w,addr=-1;
charnumber[4]={'
'
},name[11]={'
};
\n输入仪器的序号或名称(1:
序号2:
名称):
\n\n"
你的选择是:
if(m==1||m==2)w=0;
elsew=1;
}while(w==1);
switch(m)
case1:
\n\n请输入仪器的序号:
[___]\b\b\b\b"
scanf("
%s"
number);
case2:
请输入仪器的名称:
[__________]\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\n请输入新信息:
0可以借出,1已经借出2正在修理\n"
mod.number,mod.name,mod.b_time,
mod.bin_time,mod.bout_time,mod.giveb_time,mod.repair_time,&
mod.state);
strcpy(equ[i].number,mod.number);
strcpy(equ[i].name,mod.name);
strcpy(equ[i].b_time,mod.b_time);
strcpy(equ[i].bin_time,mod.bin_time);
strcpy(equ[i].bout_time,mod.bout_time);
strcpy(equ[i].giveb_time,mod.giveb_time);
strcpy(equ[i].repair_time,mod.repair_time);
equ[i].state=mod.state;
equ[i].number,equ[i].name,equ[i].b_time,
equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,equ[i].state);
break;
if(addr==-1)
不能找到你想要修改信息的仪器!
按任意键返回...\n\n"
getchar();
menu();
save(t,0);
按任意键返回\n\n"
/****************查询模块****************/
voidsearch()
\n\t\t*********************************************\n\n"
\t\t按购买时间查询?
输入[1]\n"
\t\t按归还时间查询?
输入[2]\n"
\t\t按编号查询?
输入[3]\n"
\t\t按仪器表名查询?
输入[4]\n"
\t\t*********************************************\n\n"
输入你的选择(1-4):
4)w=1;
sb_buy_tq();
sb_gb_tq();
sb_par_number();
sb_name();
voidsb_buy_tq()
charyear1[11],year2[11];
intt,i,sum=0;
请输入开始时间:
[____.__.__]\b\b\b\b\b\b\b\b\b\b"
year1);
请输入结束时间:
year2);
if((strcmp(equ[i].b_time,year1)>
=0)&
&
(strcmp(equ[i].b_time,year2)<
=0))
printf_one(i);
sum++;
save(1,1);
if(sum==0)
对不起!
找不到你想要的仪器.\n\n"
按任意键返回上一步...\n"
system("
voidsb_gb_tq()
if((strcmp(equ[i].giveb_time,year1)>
voidsb_par_number()
请输入仪器编号(000~999):
if(strcmp(equ[i].number,number)==0)
voidsb_name()
请输入仪器表名:
if(strcmp(equ[i].name,name)==0)
/*******************统计模块************************/
voidstatistic()
\t\t按购买时间统计?
\t\t按归还时间统计?
\t\t按仪器编号统计?
\t\t按仪器表名统计?
tb_buy_tq();
tb_gb_tq();
tb_par_number();
tb_name();
voidtb_buy_tq()
[____.__.__]\b\b\b\b\b\b\b\b\b\b\b"
p