C语言课程设计实验设备管理系统设计.docx

上传人:b****6 文档编号:6609006 上传时间:2023-01-08 格式:DOCX 页数:31 大小:226.16KB
下载 相关 举报
C语言课程设计实验设备管理系统设计.docx_第1页
第1页 / 共31页
C语言课程设计实验设备管理系统设计.docx_第2页
第2页 / 共31页
C语言课程设计实验设备管理系统设计.docx_第3页
第3页 / 共31页
C语言课程设计实验设备管理系统设计.docx_第4页
第4页 / 共31页
C语言课程设计实验设备管理系统设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C语言课程设计实验设备管理系统设计.docx

《C语言课程设计实验设备管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验设备管理系统设计.docx(31页珍藏版)》请在冰豆网上搜索。

C语言课程设计实验设备管理系统设计.docx

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,Scra

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1