c语言程序课程设计实验设备管理系统.docx
《c语言程序课程设计实验设备管理系统.docx》由会员分享,可在线阅读,更多相关《c语言程序课程设计实验设备管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
![c语言程序课程设计实验设备管理系统.docx](https://file1.bdocx.com/fileroot1/2022-10/13/6178f48a-0c7b-46b3-9595-6477b40924b1/6178f48a-0c7b-46b3-9595-6477b40924b11.gif)
c语言程序课程设计实验设备管理系统
课程设计报告书
实验设备管理系统
班级:
学号:
9
姓名:
指导教师:
二零一零年七月十五号
课程设计报告内容
1.选择题目
题目:
实验设备管理系统
2.内容摘要
摘要:
实验室设备管理系统是典型的设备信息管理系统,要求能为学校实验室管理提供信息化动态化的管理,方便实验室设备管理工作,提高设备管理质量和使用效率。
而且系统应符合设备管理的有关规定,包括新设备的申请、购买确认、新设备信息录入、旧设备维修和报废及用户管理等。
能满足日常工作的基本需要,并达到操作过程中的直观、方便、实用、安全等有关要求。
实验室设备管理系统是一个典型的信息管理系统,采用面向对象的分析方法,给出系统的基本结构、设计特色、设计模型及实现途径,并且对系统的开发技术进行研究。本系统是一个为适应对学校实验室设备管理的迫切需求而设计开发的软件系统。
3.索引关键词
关键词:
结构体、文件、数组、函数
4.目录
●目录……………………………………………………………
●题目要求………………………………………………………3
●设计思想……………………………………………………3-4
●系统完成及功能………………………………………………4
●界面设计……………………………………………………4-5
●核心算法及说明………………………………………….5-11
●结论…………………………………………………………11
●考资料………………………………………………………12
●后记…………………………………………………………12
●附录………………………………………………………12-13
5.正文
包括课程设计的要求,设计思想,系统完成的功能,及界面设计,核心算法及说明,和结论几部分,正文必须从页首开始。
课程设计题目要求
实验设备信息包括:
设备编号,设备种类(如:
微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
主要功能:
1、能够完成对设备的录入和修改
2、对设备进行分类统计
3、设备的破损耗费和遗损处理
4、设备的查询
要求:
使用二进制文件方式存储数据,系统以菜单方式工作
设计思想
第一,应该具有自动初始化的功能。
实际网络中被管设备数量巨大,通常能达到百位量级,如果初始化时需要管理员手动输入所有被管设备的基本信息,这是一个相当枯燥漫长的过程,会大大降低系统的实用性。
第二,在长时间的运行过程中,系统数据要与实际设备配置保持一致。
实际网络中变化是经常发生的,包括网络的拓扑、设备的配置等都会为了运行的需求而经常变化。
那么,最好能让系统中的数据能自动更新,而不需要每次改变实际网络配置后,还需要管理员手动更新。
第三,操作简单直观,不依赖于太多的专业知识。
无论是信息的展示,还是可以进行的操作,希望都能以简单的页面元素来表达,管理员通过简单的点击、选择等操作就能完成大部分管理任务。
为弥补手工管理设备信息造成的资源共享困难、管理手续繁琐等问题,设备管理系统应能够满足设备信息共享的需求,方便快捷的得到所需要的信息,对实验室的帮助很大。
系统功能如图所示,其主要功能包括:
设备的录入和修改、对设备进行分类统计、设备的破损耗费和遗损处理、设备的查询。
界面设计
5.5核心算法:
设备结构体
structshebei
{
charno[10];//编号
charkind[10];//设备种类
charname[10];//设备名称
floatprice;//价格
chartime[10];//日期
intbao;//是否报废
chartime1[10];//报废日期
intpo;//是否破损
floatprice1;//破损花费
charway[10];//处理方式
};
structdata
{
intcount;//当前设备数组中设备的个数
structshebeishe[MAX];//设备数组
}dd;
将数据从结构体数组保存到文件中
voidsave_data()
{
FILE*fp;
inti,k;
k=dd.count;
at","wb");
fwrite(&k,sizeof(int),1,fp);
for(i=0;ifwrite(&dd.she[i],sizeof(structshebei),1,fp);
fclose(fp);
}
将数据从文件读到结构体数组中
voidread_data()
{
FILE*fp;
inti,k;
structshebeist;
k=0;
if(access("c:
/dada.dat",0)==-1)//如果文件不存在
{
fp=fopen("c:
/dada.dat","wb");
fwrite(&k,sizeof(int),1,fp);
fclose(fp);
}
fp=fopen("c:
/dada.dat","rb");
fread(&k,sizeof(int),1,fp);
dd.count=k;
for(i=0;i{
fread(&st,sizeof(structshebei),1,fp);
strcpy(dd.she[i].name,st.name);
strcpy(dd.she[i].no,st.no);
strcpy(dd.she[i].kind,st.kind);
dd.she[i].price=st.price;
strcpy(dd.she[i].time,st.time);
dd.she[i].bao=st.bao;
dd.she[i].po=st.po;
strcpy(dd.she[i].time1,st.time1);
strcpy(dd.she[i].way,st.way);
dd.she[i].price1=st.price1;
}
fclose(fp);
}
按回车后回到主菜单
voidto_menu()
{
charc1,c2;
printf("\n\n\n按回车键返回主菜单...");
scanf("%c%c",&c1,&c2);
menu();
}
查看所有设备信息
voidview_data()
{
inti;
printf("编号\t种类\t名称\t价格\t购入日期\t报废状态(0-报废,1-未报废)\t破损状态(0-破损,1-未破损)");
printf("\n-------------------------------------------------------------------\n");
for(i=0;i
{
printf("%s\t%s\t%s\t%.2f\t%s\t%d\t%d\n",dd.she[i].no,dd.she[i].kind,dd.she[i].name,dd.she[i].price,dd.she[i].time,dd.she[i].bao,dd.she[i].po);
if(dd.she[i].bao==0)printf("该设备报废日期:
%s\t",dd.she[i].time1);
if(dd.she[i].po==0)printf("该设备破损花费:
%.2f\t",dd.she[i].price1);
if(dd.she[i].bao==0||dd.she[i].po==0)printf("该设备处理方式为:
%s\n",dd.she[i].way);
}
}
输入设备记录
voidadd_data()
{
structshebeist;
intb;
inti,j,k;
while
(1)
{
j=0;
printf("\n请输入设备信息:
\n");
printf("编号\t种类\t名称\t价格\t购入日期\t");
printf("\n---------------------------------------------------------------\n");
scanf("%s%s%s%f%s",st.no,st.kind,st.name,&st.price,st.time);
for(i=0;i
if(strcmp(dd.she[i].no,st.no)==0)
{
j=1;
printf("输入的设备编号有重复,请重新输入!
");
break;
}
if(j==1)continue;
if(j==0)
{
k=dd.count;
strcpy(dd.she[k].name,st.name);
strcpy(dd.she[k].no,st.no);
strcpy(dd.she[k].kind,st.kind);
dd.she[k].price=st.price;
strcpy(dd.she[k].time,st.time);
dd.she[k].bao=1;
dd.she[k].po=1;
dd.count++;
}
printf("\n\n继续添加设备信息[1-yes0-no]:
");
scanf("%d",&b);
if(b==0)break;
}
save_data();
}
编辑设备报废与破损记录
voidedit_data()
{
inti,k;
charno[10],time1[10],way[10];intbao,po;floatprice1;
printf("\n请输入要编辑设备的编号:
");
scanf("%s",no);
k=-1;
for(i=0;i
{
if(strcmp(dd.she[i].no,no)==0)
{
k=i;
break;
}
}
if(k==-1)
{
printf("\n\n没有找到该设备(编号-%s)!
",no);
}
else
{
printf("\n名称:
%s,编号:
%s,种类:
%s,价格:
%.2f,购入日期:
%s",dd.she[k].name,dd.she[k].no,dd.she[k].kind,dd.she[k].price,dd.she[k].time);
printf("\n设备报废与否记录:
");
printf("\n设备状态(0-报废,1-未报废):
");
scanf("%d",&bao);
dd.she[k].bao=bao;
if(bao==0)
{
printf("\n报废日期:
");
scanf("%s",time1);
strcpy(dd.she[k].time1,time1);
}
if(bao==1)
{
printf("\n设备破损状态:
(0-破损,1-未破损)");
scanf("%d",&po);
dd.she[k].po=po;
if(po==0)
{
printf("\n破损耗费:
");
scanf("%f",&price1);
dd.she[k].price1=price1;
}
}
if(bao==0||po==0)
{
print