实验设备管理系统c语言版

合集下载

实验设备信息管理系统——C语言

实验设备信息管理系统——C语言

实验设备信息管理系统题目要求:实验设备信息包括:设备编号,设备种类(如微机,打印机,扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:1.能够完成对设备的录入和修改。

2.对设备进行分类统计。

3.设备的查询。

需求分析:实验室设备信息用文件储存,提供文件的输入输出操作;要能够完成设备的录入和修改工作,需要添加设备的添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作,设备的查询可根据设备编号,设备种类,设备名称,设备购入日期等多种方式查询;另外还要提供键盘式选择菜单以实现选择功能。

总体设计:试验设备信息添加输入模块,试验设备信息修改模块,实验设备信息统计模块和试验设备信息查询模块。

建立试验设备信息结构体,结构体成员包括设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期。

我的程序设计如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 50void menu();void add();void modify();void stat();void search();int load();struct equipment{char num[10]; /*设备编号*/char kind[10]; /*设备种类*/char name[10]; /*设备名称*/char money[10]; /*设备价格*/char brithday[10]; /*设备日期*/char bf[10]; /*是否报废*/char badday[10]; /*报废日期*/}eup[N],temp;/* 返回主函数模块 */void menu(){int n;puts("\t\t************************MENU*************************\n\n" );puts("\t\t\t\t 1.tianjia shiyan ");puts("\t\t\t\t 2.xiugai");puts("\t\t\t\t 3.tongji");puts("\t\t\t\t 4.chaxun");puts("\t\t\t\t 5.EXIT");puts("\n\n\t\t****************************************************** ****\n");printf("please choice(1-5):[ ]\b\b");scanf("%d",&n);switch(n){case 1:add();break;case 2:modify();break;case 3:stat();break;case 4:search();break;case 5:exit(0);default:menu();}}void main()/*主函数*/{menu();getch();}/* 追加模块 */void add(){int i;FILE *fp;fp=fopen("eup.txt","a");if((fp=fopen("eup.txt","a"))==NULL){printf("cannot open file\n");}printf("\nshuru:num\tkind\tname\tmoney\tbrithday\tbf\tbadday\n");scanf("%s",temp.num);scanf("%s",temp.kind);scanf("%s",);scanf("%s",temp.money);scanf("%s",temp.brithday);scanf("%s",temp.bf);scanf("%s",temp.badday);fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s\t%s",temp.num,temp.kind,temp.na me,temp.money,temp.brithday,temp.bf,temp.badday);fclose(fp);printf("\n\n\tSuccessful.^_^\n\n");printf("\n********************************************************** *********************\n");printf("What do you want to do?\n\n");printf("\t1.Continue to add\t2.Back to main menu\t3.Exit\n"); printf("\n********************************************************** *********************\n");printf("\n\nInput your choice(1-3):");scanf("%d",&i);if(i==1){add();}if(i==2){menu();}if(i==3){exit(0);}}/* 修改模块 */void modify(){FILE *fp;int n,k=0,b,c,i,e;char a[10];n=load();for(i=0;i<n;i++){printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}printf("\nInput the shebei number you want to modify!\n\nThe equ number:");scanf("%s",a);for(i=0;i<n;i++)if(strcmp(a,eup[i].num)==0) /*查找要修改的设备信息*/{k=1;c=i;break;}if(k==0){printf("\n\nsorry meiyou zhaodao!");printf("\t1).zaici chazhao 2).fanhui MENU []\b\b");scanf("%d",&b);if(b==1){modify();}if(b==2){menu();}}if(k==1){printf("\nFind the shebei!\n");printf("\nPlease input the new information:\n");printf("\nnum kind name money brithday bf badday\n"); scanf("%s",eup[c].num);scanf("%s",eup[c].kind);scanf("%s",eup[c].name);scanf("%s",eup[c].money);scanf("%s",eup[c].brithday);scanf("%s",eup[c].bf);scanf("%s",eup[c].badday);}fp=fopen("eup.txt","w");for(i=0;i<n;i++){fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup [i].name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}fclose(fp);printf("\n\n\tSuccessful.^_^\n\n");printf("\n********************************************************** *********************\n");printf("What do you want to do?\n\n");printf("\t1.Continue to modify\t2.Back to main menu\t3.Exit\n"); printf("\n********************************************************** *********************\n");printf("\n\nInput your choice(1-3):");scanf("%d",&e);if(e==1){modify();}if(e==2){menu();}if(e==3){exit(0);}}/* 分类统计模块 */void stat(){int n,i;FILE *fp;fp=fopen("eup.txt","r");if((fp=fopen("eup.txt","r"))==NULL){printf("cannot open file\n");}while(!feof(fp)){fscanf(fp,"\n%s %s %s %s %s %s %s",temp.num,temp.kind,,temp .money,temp.brithday,temp.bf,temp.badday);printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",temp.num,temp.kind,,t emp.money,temp.brithday,temp.bf,temp.badday);}fclose(fp);menu();}/* 查找模块 */void search(){int i,n,k=-1,w1,w2,w3;char c[10];n=load();printf("\n\n chazhao yiju:\n\n1).shebei number 2).kind 3).name 4).birthday [ ]\b\b");scanf("%d",&w3);switch(w3){case 1:{printf("\n\nprint yao chazhao de shebei number! num:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].num)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}break;case 2:{printf("\n\nprint yao chazhao de shebei kind! kind:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].kind)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}break;case 3:{printf("\n\nprint yao chazhao de shebei name! name:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].name)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();case 4:{printf("\n\nprint yao chazhao de shebei birthday! birthday:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].brithday)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}}}int load(){FILE *fp;int i;if((fp=fopen("eup.txt","r"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fscanf(fp,"%s %s %s %s %s %s %s\n",eup[i].num,eup[i].kind,eup[i].nam e,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);fclose(fp);}下面是程序运行的流程图。

实验室设备管理系统_C程序设计课程设计

实验室设备管理系统_C程序设计课程设计

*******************实践教案*******************兰州理工大学计算机与通信学院2013年春季学期C程序设计课程设计题目:实验设备管理系统专业班级:通信4班目录目录 (1)中文摘要 (2)1.课程设计目地 (3)2.程序设计思路 (3)3.功能模块图 (4)4.主函数模块流程 (4)5.详细设计 (5)6.程序运行结果 (11)7.总结 (15)8.致谢 (19)9.附录 (20)实验设备管理系统摘要实验室设备管理系统是典型地设备信息管理系统,要求能为学校实验室管理提供信息化动态化地管理,方便实验室设备管理工作,提高设备管理质量和使用效率.而且系统应符合设备管理地有关规定,包括新设备地申请,购买确认,新设备信息录入,旧设备维修和报废及用户管理等.能满足日常工作地基本需要,并达到操作过程中地直观,方便,实用,安全等有关要求.实验室设备管理系统是一个典型地信息管理系统,采用面向对象地分析方法,给出系统地基本结构、设计特色、设计模型及实现途径,并且对系统地开发技术进行研究。本系统是一个为适应对学校实验室设备管理地迫切需求而设计开发地软件系统.关键词:实验室设备、管理系统、结构体、文件、数组、函数1.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等.2.需求分析实验室设备信息用文件存储,提供文件地输入输出操作;要能够完成设备地录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备地查询可根据设备编号设备种类设备购入日期正常设备(未报废地)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择.整个系统可设计为实验设备信息输入模块实验设备信息修改模块实验设备分类统计模块实验设备查询模块和实验设备报废信息模块.建立实验设备信息结构体,结构体成员包括设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期.3.功能模块图主要功能:录入设备信息、修改设备信息、查询设备信息、按设备编号查询、按设备名称查询、对设备按种类进行分类统计、报废设备登记、报废设备统计.图1 实验室设备管理系统设计4.主函数模块流程模块流程图5.详细设计5.1声明函数int menu()。

C语言课程设计报告 实验设备管理系统设计

C语言课程设计报告  实验设备管理系统设计

C语言课程设计院系:姓名:学号:班号:指导教师:日期:目录一.题目要求 (1)二.需求分析 (1)三.总体设计 (1)四.详细设计 (1)五.完整程序 (12)六.上机操作 (21)七.结束语 (24)一.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。

试设计一实验设备信息管理系统,使之能提供以下功能: (1) 能够完成对设备的录入和修改 (2) 对设备进行分类统计 (3) 设备的查询二.需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。

三.总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四.详细设计1.主函数[流程图][程序]main() /*********************主函数***********************************/ {int n,w,t;for(t=0;t<1;t++) 1{do{puts("\t\t*******MENU*******\n\n");puts("\t\t 1.Enter new data");puts("\t\t 2.Addition data");puts("\t\t 3.Modify data");puts("\t\t 4.Statist ");puts("\t\t 5.Search");puts("\t\t 6.Exit");puts("\n\n\t\t*****************\n");printf("What do you want to do(1-6):");scanf("%d",&n);if(n<1||n>6) /*对选择的数字作出判断*/{ w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:t=enter();break; /*输入模块*/case 2:t=enter(); break; /*追加模块*/case 3:t=modifty();break; /*修改模块*/case 4:t=total();break; /*统计模块*/case 5:t=search();break; /*搜索模块*/case 6:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块[流程图][程序]/*********************输入模块*****************************/ 2 int enter() /*输入模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要输入的设备个数*/for(j=0;j<i;j++){printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/ {printf("Can not open file!\n");} 3fprintf(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.buyDa y,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(2)追加模块[流程图][程序]/*********************追加模块*****************************/int enter() /*追加模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要追加的设备个数*/for(j=0;j<i;j++) 4{printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/ {printf("Can not open file!\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.buyDa y,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c); 5if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(3)修改模块[需求分析]此模块可以根据客户需要对以记录在文件中的信息进行修改[流程图][程序]/*******************************修改模块*********************/int modifty() /*修改模块*/{EQ equ[50];char code[10];int i,j,c;FILE *fp;printf("*************************************\n");printf("Modifty for the equiment\n");printf("*************************************\n");printf("Please input the equipcode for modiftying\n");scanf("%s",code); /*输入要修改的设备编号*/printf("------------------------------------\n");if((fp=fopen("test.txt","r"))==NULL){ 6 printf("\nCan not open test!\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].bu yDay,&equ[i].scrap,&equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);if(strcmp(equ[i].equipCode,code)==0){printf("------------------\n");printf("Input new equipcode\n");scanf("%s",equ[i].equipCode);printf("Input new equiptype\n");scanf("%s",equ[i].equipType);printf("Input new equipname\n");scanf("%s",equ[i].equipName);printf("Input equipPrice\n");scanf("%f",&equ[i].equipPrice);printf("Input new buyYear\n");scanf("%d",&equ[i].buyYear);printf("Input new buyMonth\n");scanf("%d",&equ[i].buyMonth);printf("Input new buyDay\n");scanf("%d",&equ[i].buyDay);printf("Input new scrap\n");scanf("%d",&equ[i].scrap);printf("Input new scrapYear\n");scanf("%d",&equ[i].scrapYear);printf("Input new scrapMonth\n");scanf("%d",&equ[i].scrapMonth);printf("Input new scrapDay\n");scanf("%d",&equ[i].scrapDay);}} /*将修改后的信息写如文件中*/fclose(fp);j=i;if((fp=fopen("test.txt","w"))==NULL){printf("\nCan not open test!\n");} 7 for(i=0;i<j;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].buyDa y,equ[i].scrap,equ[i].scrapYear,equ[i].scrapMonth,equ[i].scrapDay);}fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(4)统计模块[需求分析]将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息[流程图][程序]int total(){int c;float sum=0;int count=0;float aver=0;char type[20];EQ equ;int i;FILE *fp;if((fp=fopen("test.txt","r"))==NULL){printf("\nWrong\n");} 8printf("please input equipType:\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.equi pPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYe ar,&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.equipP rice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ. scrapMonth,equ.scrapDay);if(strcmp(equ.equipType,typ e)==0){count++;sum+=equ.equipPrice;aver=sum/count;}}fclose(fp);printf("----------Statist--Result-----------");printf("\n\nthe number of this type is:%d",count);printf("\n\nthe total sum of price is:%f",sum);printf("\n\nthe aver of total price is:%f",aver);printf("\nPress any key to exit......");getch();printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(5)搜索模块9[需求分析]该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。

c语言实验设备管理系统

c语言实验设备管理系统

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:实验设备管理系统起迄日期:指导教师:日期: 2017年5月12日1.设计目的练习与巩固《C语言程序设计》理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。

掌握运用C语言独立地编写调试应用程序和进行其它相关设计的技能。

2.任务概述要求实验设备管理系统实现对实验设备基本信息(设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期等)的管理。

系统应给用户提供一个操作简便的人机界面,使用户可以通过菜单的方式来方便的调用提供的功能。

主要功能(1)完成对设备信息的录入函数(2)完成修改某个设备信息的函数(3)根据给定信息对设备进行分类统计(4)设备的破损耗费和遗损处理(5)设备的查询3 模块划分功能[1]:添加新的设备信息功能[2]: 统计设备数量功能[3]:查找符合条件的设备及其数量功能[4]:对设备信息按条件进行分类排序功能[5]:修改设备信息功能[6]:删除某条设备记录图3.1功能图图3.2 菜单图4 主要函数说明及其N-S录入设备信息的N-S 图,如下图所示 实验设备管理系统添加设备信修改设备信查询设备信删除设备信显示设备信统计设备信退出系统(1)查找search()(2)分类sort()按某种条目进行分类也是需要通过查找相同,但不同的是条目的具体内容是不确定的,只是把条目内容相同的部分进行排序使其归类在一起,使用了冒泡排序法。

由于是使用字符串,所以排序的依据是根据ASCII码顺序。

图4.5 分类N-S图图4.5 分类N-S图(3)删除delect()读取文件内容,但读写时跳过需要删除的行不读,然后把读取出的内容重新写入文件int i,j; char c[20];printf("\nenter you want delete name :\n");for(i=0;i<count;i++)if(strcmp(c,dev[i].devname)==0)Y Nfor(j=i;j<count-1;j++)dev[j]=dev[j+1];printf("\t\t\tyou had delete %s\n",c);图4.6 删除N-S图5 程序运行数据及其结果(1) 录入input()图5.1 显示内容界面图(2) 修改change()图5.2 修改界面图修改后显示图5.3 修改结果(3)删除delect()图5.4 删除界面删除后图5.5 删除结果(4)添加图5.6 添加前图5.7 添加后(5)查找check()图5.8 界面图5.9 查找结果(6)分类sort()图5.10 分类界面图5.11 分类结果6 课程设计心得这次课程设计遇到了很多问题,有的是文档格式的设置不符合要求,有的是编译的代码运行不出来,于是又翻出了上学期的C语言书籍温习有关知识。

C语言课程设计-实验室设备信息管理系统.

C语言课程设计-实验室设备信息管理系统.

二○一五~二○一六学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一五年十二月1..实验室设备信息管理系统功能(1). 每一条记录包括实验室的设备编号、设备名称、设备型号、设备价格、设备购买日期信息。

(2). 实验设备信息录入:可以一次完成诸多条记录的录入。

(3). 实验设备信息更改:可实现对实验设备信息更改的信息进行适当的修改。

(4). 报废设备信息删除:对实验损毁设备信息予以删除。

(5). 实验设备信息查询:本系统提供两种查询实验设备的方法:1.按器材名称查询.2.按器材编号查询.从而完成按实验设备的查找查找功能,并显示。

(6). 实验设备信息排序:根据实验设备的编号进行排序,以实现实验设备的有序全局查看。

实验设备信息显示功能:完成全部学生记录的显示。

(7). 简单帮助:提供实验室负责人简单的信息。

(8). 保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。

(9). 读取功能:将保存在文件中的学生记录读取出来。

(10). 有一个清晰美观界面来调用各个功能2.设计内容2.1 程序的总体设计整个系统除了主函数外,另外还有11个函数,实现以下功能:实验室设备录入功能、显示功能、查找功能、排序功能、读出与写入取功能。

各个函数的详细设计说明分别如下:2.2 数据结构使用C语言创建的结构体如下:typedef Equipment /*定义数据结构*/{char bianhao; //编号char name[20]; //名称char model[20]; //型号bnmchar price[20]; //价格char buy_date[20]; //购买日期};3 详细设计3.1实验设备管理系统主程序模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如图1所示。

通过switch进入分支结构从而调用执行不同的函数,以实现菜单选择的功能。

实验设备管理系统c语言版精选文档

实验设备管理系统c语言版精选文档

实验设备管理系统c语言版精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-4 .主要代码段分析(1).添加模块主要是实现设备的添加,输入添加的设备个数,然后用for循环语句,循环次数是你输入的设备个数。

循环输出设备的编号,种类名称,用fopen打开文件,w写方式实现首次添加。

int addition() /*添加模块*/{EquInfo news[50];int i,j,c;FILE *fp;system("cls");printf("你想输入多少个设备\n");scanf("%d",&i); /*输入要添加的设备个数*/for(j=0;j<i;j++){ printf("------------------\n");printf("输入设备编号\n");scanf("%s",&news[j].equipCode);printf("输入设备种类\n");scanf("%s",news[j].equipType);……if((fp=fopen("","w"))==NULL) /*打开文件,输入保存*/{printf("不能打开文件!\n");}for (j=0;j<i;j++){ fprintf(fp,"%s %s %s %f %s %d %s",news[j].equipCode,news[j].equipType,news[j].equipName,news[j].equip Price,news[j].buyDate,news[j].scrap,news[j].scrapDate); }fclose(fp);printf("\n-----------------------\n");printf("返回主菜单 \n");printf("1.是\n");printf("2.不,退出\n");scanf("%d",&c);if((fp=fopen("","a"))==NULL)quipCode,newequ[j].equipType,newequ[j].equipName,newequ[j].equip Price,newequ[j].buyDate,newequ[j].scrap,newequ[j].scrapDate);}fclose(fp);四、调试过程(1 .测试数据设计 2 .测试结果分析)(1)测试数据设计:进入主菜单:根据需求操作,按“1”添加信息,以便测试设备个数:2设备编号:1设备各类:abc设备名称:switch设备价格:90购买日期:是否报废:0报废日期:0(2)测试结果分析:1.主菜单函数:根据需求输入相应的操作主菜单2.添加模块:当输入1后,进入添加页面,对设备的各方面信息进行添加添加设备添加后文本中的数据3.修改模块:输入您需要修改的设备编号,如果输入的编号与查找不相同将真的提示返回菜单或退出,正确进入如下键面修改设备信息修改后文本中的信息4.追加模块:输入您需要追加的设备个数,进行设备信息的添加,进入如下所示追加设备追加后文件中的数据5.统计模块:输入设备类型,进行设备信息的统计,进入如下所示分类统计6.搜索模块:选择你需要搜索的方式,可以按编号搜索,也可以按设备名搜索,还可以按设备价格搜索,如下所示按编号搜索按价格搜索按设备名搜索7.退出模块:选择5直接退出系统退出五、总结1 .设计中遇到的问题及解决过程文本中会出现乱码,但不是所有数据都就乱码,而是文件是的其中某一项是乱码,应该不是fread与fprint的问题,后来发现我定义的是char字符串类型,但在输入数据时scanf("%d",&equ[i].buyDate);用的是%d的格式输入。

实验设备管理系统-c语言实现

实验设备管理系统-c语言实现

一、设计目的1.1 设计题目:设计实现一个实验设备管理系统。

实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

1.2 设计要求(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的破损耗费和遗损处理(4)设备的查询(5)采用二进制文件方式存储数据,系统以菜单方式工作1.3 系统功能需求分析系统功能需求:设备信息的录入、修改;设备分类统计;设备破损耗费和遗损处理;设备信息查询;二进制文件方式存储数据;菜单方式工作;用户操作流程:运行程序后会弹出菜单界面,根据菜单界面的提示选择需要完成的相应功能即可完成操作。

数据处理流程:通过input函数将用户输入的各信息以二进制文件方式存储数据,后续可根据需要调用change函数、sort函数、search函数以及del函数进行数据的相应处理,最后通过output函数实现数据的输出显示。

二、总体设计实验设备管理系统功能结构图如下所示:三、详细设计3.1 结构体struct equipment_infor//定义结构体包含各设备信息{char ID[20]; //设备编号int sort; //设备种类(1代表微机 2代表打印机 3代表扫描机)char name[20]; //设备名称float price; //设备价格char buy_date[20]; //设备购买日期int state; //设备状态(报废为1,未报废为0)char scrap_date[20]; //设备报废日期}device[NUM];定义结构体数组,其中包含设备所有信息,方便数据信息的录入、输出等。

3.2 主要函数3.2.1 void load()加载已有数据函数void load() //加载已有数据{count=0;FILE* fp_5=fopen("binary.txt","rb");if(fp_5==NULL){return;}for(int i=0;;i++,count++){if(feof(fp_5)!=0){count--;break;}fread(&device[i], sizeof(struct equipment_infor),1,fp_5);}fclose(fp_5);}此函数实现了加载已有信息的功能,能够使得下次运行时上次的数据得以保留,同时计算出了count的值,可提供后续函数for循环的循环条件,一举两得。

C语言实验室设备管理系统

C语言实验室设备管理系统

C语言程序设计报告1 课程设计题目:实验室设备管理里系统实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2 需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。

4 建立实验设备信息结构体结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。

5应用程序功能详细说明程序运行后进入管理系统,显示目录:添加记录、修改记录、显示记录、分类统计、查询记录(1)添加记录系统提示用户在原有的基础上录入新的设备信息。

流程图如下:(2)修改记录系统要求用户输入要修改的设备ID号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。

流程图如下:(3)显示记录无记录退出,有记录者按要求输出。

流程图如下:(4)统计分类若有资料可以统计,则按要求分类统计输出。

流程图如下:(5)查询记录若信息为空,则不能查询。

流程图如下:(6)结束语通过本次c语言的程序设计,我不仅提高巩固了c语言的基础,也初学习了编写一个实用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。

我相信经过努力后,我的编程能力一定会得到提高。

源程序代码清单:void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");equip=(Node*)malloc(sizeof(Node));equip->next=NULL;p=equip;fp=fopen("设备管理系统","wb+");q=(Node*)malloc(sizeof(Node));if(fread(q,sizeof(Node),1,fp)) /*将文件的内容放入接点中* /{q->next=NULL;p->next=q;p=q; /*将该接点挂入链表中*/}fclose(fp); /*关闭文件*/while(1){printf("********************目录***********************");printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类\n");printf(“\n5 查询记录\n”);printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: Add(equip); break; /*增加记录*/case 2: Modify(equip); break;/*修改记录*/case 3: Disp(equip); break;/*显示记录信息*/case 4: Tongji(equip); break;/*统计记录*/case 5:chaxun(equip);break;/*查询记录*/default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}}}Struct shebei{ char ID[10]; char name[15]; char kind[15]; char over[15]; char yesno[10]; char time[10]; char price[10];}void Add(Node *equip) /*添加记录*/{Node *p,*r,*s;char id[10]; /*先用于输入ID,也用于判断是否跳出循环*/r=equip;s=equip->next; /*使s为第一个有用的结点*/while(r->next!=NULL) /*这个循环的作用是使r为最后一个有用的结点*/r=r->next; /*将指针置于最末尾*/while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); /*申请空间*/strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。

C语言课程设计试验设备管理系统

C语言课程设计试验设备管理系统

C语言程序设计实习报告试验设备管理系统班级:姓名:学号:指导老师:一课程设计的目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。

二课程设计报告正文1 课程设计题目的原文;实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2 需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。

建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。

4 详细设计A 主函数(){*;*;;*p,*q;("\t\t\t\t设备管理系统\n");(*)(());;("设备管理系统","");(*)(());(((),1)) 将文件的内容放入接点中{>;>;; 将该接点挂入链表中}(); 关闭文件(1){("***********************目录("\n1添加记录\n");("\n2修改记录\n");("\n3显示记录\n");("\n4统计分类记录\n");("\n0**\n");("请输入你要操作的序号:");("");(){0: ("\n>>>>>>>>>>提示:已经退出系统!\n");1: (); ; 增加记录2: (); 修改记录3: (); 显示记录信息4: (); 统计记录: ("\n>>>>>>>>>>提示:输入错误!\n"); ;}}}B 各功能模块设计(1)输入模块{ [10]; [15]; [15]; [15]; [10]; [10];};(2)追加模块( *) 添加记录{*p,*r,*s;[10]; 先用于输入,也用于判断是否跳出循环;>; 使s为第一个有用的结点(>) 这个循环的作用是使r为最后一个有用的结点(1){(">>>>>>>>>>提示:输入0则返回主菜单!\n");("\n请你输入设备号:");("");((,"0")0) ;( *)(()); 申请空间(>);("\n请输入设备名称:");("">);("\n请输入设备种类:");("">);("\n请输入报废日期:");("">);("\n请输入设备是否报废:");("">);("\n请输入设备购买时间:");("">);("\n请输入设备价格:");("">);(">>>>>>>>>>提示:已经完成一条记录的添加。

C语言-实验室设备管理系统

C语言-实验室设备管理系统

精心整理C语言程序设计报告1 课程设计题目:实验室设备管理里系统实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2 需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。

主函数流程图:N+4 建立实验设备信息结构体 结构体成员包括设备编号 设备名称 部门编号 部门名称 设备价格 设备购买时间 是否报废 报废日期。

5应用程序功能详细说明程序运行后进入管理系统,显示目录:录入设备信息,修改设备信息,查询设备信息,统计设备信息,报废设备信息,退出录入设备信息 系统提示用户在原有的基础上录入新的设备信息。

流程图如下:录入设备信息修改设备信息查询设备信息统计设备信息报废设备信息退出设备管理系统设计开始 显示一系列功能选输入n,判断据n 值调用各功能模结束开始输入设备编号,并将(1)修改记录系统要求用户输入要修改的设备编号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。

流程图如下:开始判断是否有资料可以没有资料可以统计输入要统计的分类序按输入序号调用各功结束(2)显示记录无记录退出,有记录者按要求输出。

流程图如下:开(3) 统计分类 若有资料可以统计,则按要求分类统计输出。

流程图如下:(4) 查询记录 若信息为空,则不能查询。

C语言实验室设备管理系统

C语言实验室设备管理系统

减少内存占用:优 化数据结构和算法, 减少内存消耗
提高运行速度:采用 高效的算法和数据结 构,减少不必要的计 算和等待时间
增强可维护性:采 用模块化设计,方 便代码的修改和维 护
增加功能:根据实 际需求,增加必要 的功能,提高系统 的实用性和易用性
系统部署与维护
硬件准备:准备服务器、网络设备、存储设备等 软件安装:安装操作系统、数据库、C语言编译器等 系统配置:配置网络、存储、数据库等参数 测试与上线:进行系统测试,确保系统正常运行,正式上线使用
操作
系统测试与优化
定义与目的:对程序中的每个模块 进行单独测试,确保其功能正确性
测试用例设计:针对每个模块设计 测试用例,包括正常情况、异常情 况等
添加标题
添加标题
添加标题
添加标题
测试方法:白盒测试、黑盒测试、 灰盒测试等
测试结果分析:对测试结果进行统 计和分析,找出问题并进行修复
定义:将多个模块组合在一起进行测试,确保系统整体功能正常运行 目的:发现模块间接口问题,确保系统稳定性和可靠性 测试方法:采用黑盒测试、白盒测试等方法,模拟实际使用场景进行测试 测试用例设计:根据需求和功能设计测试用例,覆盖所有功能点和异常情况
设备管理功能: 实现设备的添加、 删除、修改和查 询等操作
设备状态监控功 能:实时监控设 备的运行状态, 及时发现故障并 报警
设备预约功能: 学生可以通过系 统预约设备,提 高设备使用效率
设备报修功能: 学生可以通过系 统报修设备故障, 方便管理员及时 处理
数据库设计:包 括表结构、字段 定义等
理效率。
系统特点:该系 统采用C语言开发, 具有高效、稳定、 易用等特点,能 够满足实验室设 备管理的需求。

实验室管理系统—C语言

实验室管理系统—C语言

西安郵電大学软件课程设计报告题目:实验室设备管理系统院系名称:电子工程学院专业名称:电子信息工程班级:1204班内序号:5学生姓名:诺贝尔杨时间:2013年3月18日至2013年3月29日1.课程设计目的实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

主要功能:1.录入设备信息2.修改设备信息3.查询设备信息(1)按设备编号查询(2)按设备名称查询4.对设备按种类进行分类统计5.报废设备登记。

6.报废设备统计。

2.设计思路需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。

整个系统可设计为实验设备信息输入模块实验设备信息修改模块实验设备分类统计模块实验设备查询模块和实验设备报废信息模块。

建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。

3.功能模块图5.程序代码#include""#include""#define null 0int t=0;int mmcsz=0;int mima;int menu();d);if(strcmp(sb[t].id,"0")==0) main();printf("\n请输入设备名称:");scanf("%s",sb[t].name);printf("\n请输入设备种类:");scanf("%s",sb[t].kind);printf("\n请输入报废日期:");scanf("%s",sb[t].over);printf("\n请输入设备是否报废,1、没报废,0、报废:"); scanf("%d",&sb[t].yesno);printf("\n请输入设备购买时间:");scanf("%s",sb[t].time);printf("\n请输入设备价格:");scanf("%s",sb[t].price);printf("提示:已经完成一条记录的添加。

c语言课程设计之实验设备管理系统

c语言课程设计之实验设备管理系统

目录目录.............................................................................................................................-1 - 一设计目的.................................................................................................................-2 - 二课程设计的内容.....................................................................................................-2 - 三课程设计的要求与数据.........................................................................................-2 - 四课程设计应完成的工作.........................................................................................-2 - 五总体设计(包含几大功能模块——流程图).....................................................-2 - 六详细设计(各功能模块的具体实现算法——流程图).....................................-3 -七调试分析(包含各模块的测试用例,及测试结果) (8)八总结.........................................................................................................................-17 - 九成员设计内容 (17)十参考资料.................................................................................................................-17 -一:设计目的练习与巩固《C语言程序设计》)理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。

实验室管理系统 C语言

实验室管理系统 C语言

*\n");
printf("\t\t\t* [0]----退出
*\n");
printf("\t\t\t*·*·*·*·*·*·*·*·*·*·*·*|\n");
scanf("%d",&choice);
8
getchar(); switch(choice)
{ case 0:menu();break; case 1:bf_dj();break; case 2:bf_tj();break; default:printf("输入无效请重新输入\n");bf(); break;
switch(x)
{
case 0:choose();break;
case 1:xg();break;
default:printf("输入无效,自动返回主菜单\n");choose();break;
}
}
}
}
void cx()//查询
{
int choice;
do
{
printf("\t\t\t----------------------------------\n");
printf("设备号 设备名称 设备种类 报废日期 是否报废 价格\n");
购买时间
printf("\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n",sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t] .yesno,sb[t].time,sb[t].price);
设备
设备
报废

C语言-实验设备管理系统

C语言-实验设备管理系统

实验设备管理系统一、设计内容与设计要求1.设计内容:通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。

实验设备信息包括:设备编号,设备种类,设备名称(如烧杯、酒精灯等),设备价格,设备购入日期,是否报废,报废日期等。

主要功能:1)、能够完成对设备的录入和修改2)、对设备进行分类统计3)、设备的破损耗费和遗损处理4)、设备的查询5)、将设备信息保存到文件中2.设计要求:1)、设计正确,方案合理。

2)、界面友好,使用方便。

3)、程序精炼,结构清晰。

4)、设计报告5000字以上,。

5)、上机演示。

#include "stdio.h"#include "stdlib.h"#include "string.h"struct shebei{char ID[10];char name[15];char kind[15];char over[15];char yesno[10];char time[10];char price[10];};typedef struct node{struct shebei data;struct node *next; //建立一个链表。

}Node;void Add(Node *equip) //添加记录{Node *p,*r,*s;char id[10]; //先用于输入ID,也用于判断是否跳出循环r=equip;s=equip->next; //使s为第一个有用的结点while(r->next!=NULL) //这个循环的作用是使r为最后一个有用的结点r=r->next; //将指针置于最末尾while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。

C语言 实验室设备管理系统

C语言 实验室设备管理系统
3 总体设计与模块的划分
整个系统可设计为实验设备信息输入模块 实验设备信息添加模块 实验设备信息修改模 块 实验设备分类统计模块和实验设备查询模块。
实验设备管理系统设计
实验 设备 信息 输入 模块
实验 设备 信息 添加 模块
实验 设备 信息 修改 模块
实验 设备 分内 统计 模块
实验 设备 查询 模块
(5) 查询记录 若信息为空,则不能查询。流程图如下: 开始
判断是否有资料为空 资料为空 跳出 输入要查询的分类序号 按输入序号调用各功能模块 函数
结束
4
(6)结束语
通过本次 c 语言的程序设计,我不仅提高巩固了 c 语言的基础,也初学习了编写一个实 用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。我相信经过努力后,我的编 程能力一定会得到提高。
C 语言程序设计报告
1 课程设计题目:实验室设备管理里系统
实验设备信息包括:设备编号、设备种类(如:微机 打印机 扫描仪 等等)、设备名称、 设备价格、设备购入日期、是否报废、报废日期等。试设计一实验设备信息管理系统,使之 能提供以下功能: (1)能够完成对设备的录入和修改 (2)对设备进行分类统计 (3)设备的查询
开始
输入 ID 号,并将指针指向最 末尾
依次输入设备机构体内容, 完成一条添加 Nhomakorabea录提示一完成一条记录添加
结束
2
(2) 修改记录 系统要求用户输入要修改的设备 ID 号,这时系统会显示设备的具体信息, 用户只需该设备新的信息按要求输入即可对信息进行修改。流程图如下: 开始 判断是否有资料可以统计分 类 没有资料可以统计 跳出 输入要统计的分类序号 按输入序号调用各功能模块 函数 结束
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
getchar();
break;
case 2:
printf("请输入设备名称:\n");
scanf("%s",name);
for(i=0;!feof(fp);i++)
{fscanf(fp,"%s %s %s %f %s %d %s ",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyDate,&equ.scrap,&equ.scrapDate);
if(strcmp(equ[i].equipCode,code)==0)//判断文件的数据与输入数是否匹配
{printf("------------------\n");
printf("输入新设备编号\n");
scanf("%s",equ[i].equipCode);
printf("输入新设备种类\n");}}/*将修改后的信息写入文件
Visual C++
三、内容与设计思想(1 .设计思路 2 .主要数据结构 3 .主要代码结构 4 .主要代码段分析 。 )
1 .设计思路
如下图所示
2 .主要数据结构
typedef struct EquInfo //定义结构体
{ char equipCode[10]; //编号
char equipType[20]; //种类
printf("输入设备种类\n");
scanf("%s",news[j].equipType);
……
if((fp=fopen("swy.txt","w"))==NULL)/*打开文件,输入保存*/
{printf("不能打开文件!\n");}
for (j=0;j<i;j++)
{fprintf(fp,"%s %s %s %f %s %d %s ",news[j].equipCode,news[j].equipType,news[j].equipName,news[j].equipPrice,news[j].buyDate,news[j].scrap,news[j].scrapDate);}
getchar();
break;
case 3:
printf("请输入设备价格:\n");
scanf("%f",&price);
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s %s %s %f %s %d %s ",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyDate,&equ.scrap,&eqite!\n");
fclose(fp); }
(3).统计模块
先输入设备类型,判断是否匹配,是的话输出ok,并把相应的内容输出,定义一个计数器count,每循环一次,自加1
int total()//统计模块
{
float sum=0;int count=0; float aver=0;char type[20]; EquInfo equ;
}
fclose(fp);
四、调试过程(1 .测试数据设计 2 .测试结果分析 )
(1)测试数据设计:
进入主菜单:根据需求操作,按“1”添加信息,以便测试
设备个数:2
设备编号:1
设备各类:abc
设备名称:switch
设备价格:90
购买日期:
是否报废:0
报废日期:0
(2)测试结果分析:
1.主菜单函数:根据需求输入相应的操作
FILE *fp;
system("cls");
printf("你想输入多少个设备?\n");
scanf("%d",&i);/*输入要添加的设备个数*/
for(j=0;j<i;j++)
{printf("------------------\n");
printf("输入设备编号\n");
scanf("%s",&news[j].equipCode);
char equipName[20]; //名称
float equipPrice; //价格
char buyDate[20]; //购买日期
int scrap; //是否报废
char scrapDate[20]; //报废日期
}EquInfo;
3 .主要代码结构
1.主函数
2.添加模块
3.修改模块
4.统计模块
count++;
sum+=equ.equipPrice;
aver=sum/count;
} }
fclose(fp);
printf("----------统计--返回结果-----------");
printf("\n\n这个类型的是:%d",count);
printf("\n\n统计的总价格:%f",sum);
if(strcmp(equ.equipCode,code)==0){
printf("\nequipCode,equipType,equipName,equipPrice,buyDate,scrap,ScrapDate\n");printf("\n%s,%s,%s,%f,%s,%d,%s\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyDate,equ.scrap,equ.scrapDate);}}
(2).修改模块
用for循环使用feof函数从文件头逐个读取文件字符直到文件结尾,其中用了strcmp函数,比较文件中的数据与输入数是否匹配,若是匹配,返回0,说明你输入的编号正确,键面进入请输入新的编号、种类、名称等,将修改后的信息写入文件中,成功后输出write。
int modifty()/*修改模块*/
5.搜索模块
4 .主要代码段分析
(1).添加模块
主要是实现设备的添加,输入添加的设备个数,然后用for循环语句,循环次数是你输入的设备个数。循环输出设备的编号,种类名称,用fopen打开文件,w写方式实现首次添加。
int addition()/*添加模块*/
{
EquInfo news[50];
int i,j,c;
fclose(fp);
printf("\n-----------------------\n");
printf("返回主菜单? \n");
printf("1.是\n");
printf("2.不,退出\n");
scanf("%d",&c);
if(c==1)return(-1);
if(c==2)return(0);}/*任务结束选择是返回主菜单还是跳出*/
{
if((fp=fopen("swy.txt","r"))==NULL)
{printf("\n不能打开文件!\n");}
for(i=0;!feof(fp);i++)//文件头逐个读取文件字符直到文件结尾
{
fscanf(fp,"%s %s %s %f %s %d %s ",equ[i].equipCode,equ[i].equipType,equ[i].equipName,&equ[i].equipPrice,&equ[i].buyDate,&equ[i].scrap,&equ[i].scrapDate);
实验室设备信息用文件存储,故要提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择总体设计
整个系统被设计为实验设备信息输入模块、实验设备信息添加模块、实验设备信息修改模块、实验设备分类统计模块和实验设备查询模块。
if(equ.equipPrice==price){printf("\nequipCode,equipType,equipName,equipPrice,buyDate,scrap,ScrapDate\n");
printf("\n%s,%s,%s,%f,%s,%d,%s\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyDate,equ.scrap,equ.scrapDate);
知识点
1.对于结构体数组的定义使用
2.指针变量的使用
3.以文件方式输入输出,熟练掌握文件的各种方式
4.对于循环的应用格式
5.一些函数的应用,如strcmp函数
总结:提高程序设计能力与课堂知识内容的应用,掌握程序设计的基本方法和调
试技能。对指针,数组,文件了解更加深刻。
二、使用环境(本次上机实践所使用的平台和相关软件。 )
主菜单
2.添加模块:当输入1后,进入添加页面,对设备的各方面信息进行添加
相关文档
最新文档