C语言课程设计实验设备管理系统设计.docx
- 文档编号:7716309
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:31
- 大小:212.56KB
C语言课程设计实验设备管理系统设计.docx
《C语言课程设计实验设备管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验设备管理系统设计.docx(31页珍藏版)》请在冰豆网上搜索。
C语言课程设计实验设备管理系统设计
C语言课程设计
院系:
姓名:
学号:
班号:
指导教师:
日期:
一.题目要求……………………
(1)
二.需求分析……………………
(1)
三.总体设计……………………
(1)
四.详细设计……………………
(1)
五.完整程序……………………(12)
六.上机操作……………………(21)
七.结束语………………………(24)
一.题目要求
实验设备信息包括:
设备编号,设备种类(如:
微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:
(1)能够完成对设备的录入和修改
(2)对设备进行分类统计
(3)设备的查询
二.需求分析
实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
三.总体设计
根据上面的需求分析,可以将这个系统的设计分为以下模块
四.详细设计
1.主函数
[流程图]
[程序]
main()/*********************主函数***********************************/
{
intn,w,t;
for(t=0;t<1;t++)1
{
do
{
puts("\t\t*******MENU*******\n\n");
puts("\t\t1.Enternewdata");
puts("\t\t2.Additiondata");
puts("\t\t3.Modifydata");
puts("\t\t4.Statist");
puts("\t\t5.Search");
puts("\t\t6.Exit");
puts("\n\n\t\t*****************\n");
printf("Whatdoyouwanttodo(1-6):
");
scanf("%d",&n);
if(n<1||n>6)/*对选择的数字作出判断*/
{w=1;
getchar();
}
elsew=0;
}
while(w==1);
switch(n)
{case1:
t=enter();break;/*输入模块*/
case2:
t=enter();break;/*追加模块*/
case3:
t=modifty();break;/*修改模块*/
case4:
t=total();break;/*统计模块*/
case5:
t=search();break;/*搜索模块*/
case6:
exit(0);/*退出*/
}
}
2.各功能模块设计
(1)输入模块
[流程图]
[程序]
/*********************输入模块*****************************/2
intenter()/*输入模块*/
{
FILE*fp;
EQnewequ;
inti,j;
intc;
printf("**************************************\n");
printf("Addnewequiment\n");
printf("**************************************\n");
printf("Howmanyequimentsdoyouwanttoadd?
\n");
scanf("%d",&i);/*输入要输入的设备个数*/
for(j=0;j
{
printf("------------------\n");
printf("Inputequipcode\n");
scanf("%s",newequ.equipCode);
printf("Inputequiptype\n");
scanf("%s",newequ.equipType);
printf("Inputequipname\n");
scanf("%s",newequ.equipName);
printf("InputequipPrice\n");
scanf("%f",&newequ.equipPrice);
printf("InputbuyYear\n");
scanf("%d",&newequ.buyYear);
printf("InputbuyMonth\n");
scanf("%d",&newequ.buyMonth);
printf("InputbuyDay\n");
scanf("%d",&newequ.buyDay);
printf("Inputscrap\n");
scanf("%d",&newequ.scrap);
printf("InputscrapYear\n");
scanf("%d",&newequ.scrapYear);
printf("InputscrapMonth\n");
scanf("%d",&newequ.scrapMonth);
printf("InputscrapDay\n");
scanf("%d",&newequ.scrapDay);
if((fp=fopen("test.txt","w"))==NULL)/*打开文件,输入保存*/
{printf("Cannotopenfile!
\n");
}3
fprintf(fp,"%s%s%s%f%d%d%d%d%d%d%d",newequ.equipCode,newequ.equipType,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);
fclose(fp);
printf("\n-----------------------\n");
printf("Returntomainmenu?
\n");
printf("1.YES\n");
printf("2.NO,Iwanttoquitnow\n");
scanf("%d",&c);
if(c==1)return(-1);
if(c==2)return(0);/*任务结束选择是返回主菜单还是跳出*/
}
}
(2)追加模块
[流程图]
[程序]
/*********************追加模块*****************************/
intenter()/*追加模块*/
{
FILE*fp;
EQnewequ;
inti,j;
intc;
printf("**************************************\n");
printf("Addnewequiment\n");
printf("**************************************\n");
printf("Howmanyequimentsdoyouwanttoadd?
\n");
scanf("%d",&i);/*输入要追加的设备个数*/
for(j=0;j
{
printf("------------------\n");
printf("Inputequipcode\n");
scanf("%s",newequ.equipCode);
printf("Inputequiptype\n");
scanf("%s",newequ.equipType);
printf("Inputequipname\n");
scanf("%s",newequ.equipName);
printf("InputequipPrice\n");
scanf("%f",&newequ.equipPrice);
printf("InputbuyYear\n");
scanf("%d",&newequ.buyYear);
printf("InputbuyMonth\n");
scanf("%d",&newequ.buyMonth);
printf("InputbuyDay\n");
scanf("%d",&newequ.buyDay);
printf("Inputscrap\n");
scanf("%d",&newequ.scrap);
printf("InputscrapYear\n");
scanf("%d",&newequ.scrapYear);
printf("InputscrapMonth\n");
scanf("%d",&newequ.scrapMonth);
printf("InputscrapDay\n");
scanf("%d",&newequ.scrapDay);
if((fp=fopen("test.txt","w"))==NULL)/*打开文件,输入保存*/
{printf("Cannotopenfile!
\n");
}
fprintf(fp,"%s%s%s%f%d%d%d%d%d%d%d",newequ.equipCode,newequ.equipType,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);
fclose(fp);
printf("\n-----------------------\n");
printf("Returntomainmenu?
\n");
printf("1.YES\n");
printf("2.NO,Iwanttoquitnow\n");
scanf("%d",&c);5
if(c==1)return(-1);
if(c==2)return(0);/*任务结束选择是返回主菜单还是跳出*/
}
}
(3)修改模块
[需求分析]
此模块可以根据客户需要对以记录在文件中的信息进行修改
[流程图]
[程序]
/*******************************修改模块*********************/
intmodifty()/*修改模块*/
{
EQequ[50];
charcode[10];
inti,j,c;
FILE*fp;
printf("*************************************\n");
printf("Modiftyfortheequiment\n");
printf("*************************************\n");
printf("Pleaseinputtheequipcodeformodiftying\n");
scanf("%s",code);/*输入要修改的设备编号*/
printf("------------------------------------\n");
if((fp=fopen("test.txt","r"))==NULL)
{6
printf("\nCannotopentest!
\n");
}
for(i=0;!
feof(fp);i++)
{
fscanf(fp,"%s%s%s%f%d%d%d%d%d%d%d",equ[i].equipCode,equ[i].equipType,equ[i].equipName,&equ[i].equipPrice,&equ[i].buyYear,&equ[i].buyMonth,&equ[i].buyDay,&equ[i].scrap,&equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);
if(strcmp(equ[i].equipCode,code)==0)
{
printf("------------------\n");
printf("Inputnewequipcode\n");
scanf("%s",equ[i].equipCode);
printf("Inputnewequiptype\n");
scanf("%s",equ[i].equipType);
printf("Inputnewequipname\n");
scanf("%s",equ[i].equipName);
printf("InputequipPrice\n");
scanf("%f",&equ[i].equipPrice);
printf("InputnewbuyYear\n");
scanf("%d",&equ[i].buyYear);
printf("InputnewbuyMonth\n");
scanf("%d",&equ[i].buyMonth);
printf("InputnewbuyDay\n");
scanf("%d",&equ[i].buyDay);
printf("Inputnewscrap\n");
scanf("%d",&equ[i].scrap);
printf("InputnewscrapYear\n");
scanf("%d",&equ[i].scrapYear);
printf("InputnewscrapMonth\n");
scanf("%d",&equ[i].scrapMonth);
printf("InputnewscrapDay\n");
scanf("%d",&equ[i].scrapDay);
}
}/*将修改后的信息写如文件中*/
fclose(fp);
j=i;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("\nCannotopentest!
\n");
}7
for(i=0;i { printf("\nwrite! \n"); fprintf(fp,"%s%s%s%f%d%d%d%d%d%d%d",equ[i].equipCode,equ[i].equipType,equ[i].equipName,equ[i].equipPrice,equ[i].buyYear,equ[i].buyMonth,equ[i].buyDay,equ[i].scrap,equ[i].scrapYear,equ[i].scrapMonth,equ[i].scrapDay); } fclose(fp); printf("\n-----------------------\n"); printf("Returntomainmenu? \n"); printf("1.YES\n"); printf("2.NO,Iwanttoquitnow\n"); scanf("%d",&c); if(c==1)return(-1); if(c==2)return(0); } (4)统计模块 [需求分析] 将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息 [流程图] [程序] inttotal() { intc; floatsum=0; intcount=0; floataver=0; chartype[20]; EQequ; inti; FILE*fp; if((fp=fopen("test.txt","r"))==NULL) { printf("\nWrong\n"); }8 printf("pleaseinputequipType: \n"); scanf("%s",type); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%f%d%d%d%d%d%d%d",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scrapMonth,&equ.scrapDay); printf("\nOK! \n"); printf("%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scrapDay); if(strcmp(equ.equipType,type)==0) { count++; sum+=equ.equipPrice; aver=sum/count; } } fclose(fp); printf("----------Statist--Result-----------"); printf("\n\nthenumberofthistypeis: %d",count); printf("\n\nthetotalsumofpriceis: %f",sum); printf("\n\ntheaveroftotalpriceis: %f",aver); printf("\nPressanykeytoexit......"); getch(); printf("\n-----------------------\n"); printf("Returntomainmenu? \n"); printf("1.YES\n"); printf("2.NO,Iwanttoquitnow\n"); scanf("%d",&c); if(c==1)return(-1); if(c==2)return(0); } (5)搜索模块9 [需求分析] 该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。 [流程图] 询问用户想要选择的搜索方式 y [程序] /***********************************搜索模块******************************/ intsearch()/*搜索模块*/ { charcode[10]; charname[20]; floatprice; intchoice; intc; FILE*fp; EQequ; inti; fp=fopen("test.txt","r"); if(fp==NULL)exit(0); printf("pleasechoosethewayofsearch: \n\n"); printf("1.searchbyequipCode\n\n"); printf("2.searchbyequipName\n\n"); printf("3.searchbyequipPrice\n\n"); printf("0.return\n\n"); printf("pleaseinputnumber0-5: "); scanf("%d",&choice);10 if(choice==0)exit(0); switch(choice) { case0: exit(0);break; case1: printf("pleaseinputequipCode: \n"); scanf("%s",code); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%f%d%d%d%d%d%d%d",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scrapMonth,&equ.scrapDay); if(strcmp(equ.equipCode,code)==0) { printf("\nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,scrap,scrapYear,scrapMonth,ScrapDay\n"); printf("\n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scrapDay); } } getch(); break; case2: printf("pleaseinputequipName: \n"); scanf("%s",name); for(i=0;! feof(fp);i++) { fscanf(fp,"%s%s%s%f%d%d%d%d%d%d%d",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scrapMonth,&equ.scrapDay); if(strcmp(equ.equipName,code)==0) { printf("\nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,scrap,scrapYear,scrapMonth,ScrapDay
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课程设计 实验设备管理系统设计 语言 课程设计 实验 设备管理 系统 设计