C程序设计实验设备管理系统设计Word文件下载.docx
《C程序设计实验设备管理系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《C程序设计实验设备管理系统设计Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
CharequipName[20];
//设备名称
floatequipPrice;
//设备价格
charbuyDate[20];
//设备购入日期
intscrap;
//是否报废,0表示没有报废,1表示报废
charscrapDate[20];
//报废日期
}EquInfo;
(1)实验设备信息输入模块把实验设备基本信息写入实验设备信息文件。
(2)实验设备信息添加模块添加设备时,把添加的设备基本信息采用追加的方式写入设备信息文件。
(3)实验设备信息修改模块修改设备信息,则需要读文件,判断信息是否是要修改的设备的信息,如果是,修改,重新写入文件;
否则直接重新写入文件。
(4)实验设备分类统计模块根据给定的分类标准(设备种类、设备名、设备购入日期)对文件的记录进行排序,排序方法可以选择冒泡、插入、选择等方法。
然后采用查找算法查找同类设备,采用基本的数学运算即可统计同类设备的相关信息,比如数量、价钱等。
(5)实验设备查询模块通过菜单选择查询方式,提供按设备编号、设备种类、设备名称、设备购入日期和设备状态为正常(scrap字段值为0)这些查询方式查询。
采用基本查找算法即可。
源程序:
#include<
stdio.h>
stdlib.h>
#include"
conio.h"
typedefstructequipmentInfo
{charequipCode[10];
charequipType[20];
charequipName[20];
intequipPrice;
EquInfohead[100];
intn=0;
/**************************************向文件中输入数据******************************/
intcmp(constvoid*a,constvoid*b)
{
returnstrcmp((*(EquInfo*)a).equipType,(*(EquInfo*)b).equipType);
}
input()
inti,a;
system("
cls"
);
printf("
你要输入的设备数:
"
scanf("
%d"
&
n);
while(n<
1)
{
system("
printf("
你输入的数据有误,请重新输入:
\n"
scanf("
}
for(i=0;
i<
n;
i++)
设备编号:
%s"
head[i].equipCode);
设备总类:
head[i].equipType);
设备名称:
head[i].equipName);
设备价格:
head[i].equipPrice);
设备购入日期:
head[i].buyDate);
设备是否报废:
1.是0.不是:
"
head[i].scrap);
报废日期:
没有报废填“空”:
head[i].scrapDate);
input_2();
1.输入2.追加3.排序4查询5.统计6.修改7.退出\n"
请输入你要选择的操作:
a);
while(a<
1||a>
7)
\n请输入你要选择的操作:
if(a==1)input();
if(a==2)add();
if(a==3)sort();
if(a==4)serach();
if(a==5)stats();
if(a==6)modify();
if(a==7)exit(0);
/****************************************输入的数据存入文件****************************/
input_2()
FILE*fp;
inti;
if((fp=fopen("
file2.txt"
"
w"
))==NULL)
Cannotopenthefile!
return;
{
if(fwrite(&
head[i],sizeof(EquInfo),1,fp)!
=1)
printf("
Fileerror!
}
fclose(fp);
/******************************************追加信息****************************************/
add()
intk,i,a;
输入你要追加的设备数:
k);
while(k<
for(i=n;
n+k;
input_3(k);
/********************************************追加信息写入文件
********************************/
input_3(intk)
a"
if(fwrite(&
n=n+k;
/************************************排序**********************************/
sort()
intk,a;
按1.设备总类排序2.设备名3.设备购入日期:
1||k>
3)
按1.设备总类排序2.设备名3.设备购入日期排序:
if(k==1)sort_1();
if(k==2)sort_2();
if(k==3)sort_3();
sort_1()
inti=0,j,k,s=0;
EquInfotemp,*b;
b=(EquInfo*)malloc(sizeof(EquInfo)*100);
memset(b,0,100*sizeof(EquInfo));
r"
while(!
(feof(fp)))
fread(&
b[s],sizeof(EquInfo),1,fp);
s++;
fclose(fp);
qsort(b,s,sizeof(b[0]),cmp);
printf
("
-----------------------------------------------------------------------------\n"
编号总类名称价格购入日期是否报废报废日期
for(i=1;
s;
%s\t"
b[i].equipCode);
b[i].equipType);
b[i].equipName);
%d\t"
b[i].equipPrice);
b[i].buyDate);
%d\t"
b[i].scrap);
b[i].scrapDate);
\n\n"
sort_2()
s-1;
k=i;
for(j=i+1;
j<
j++)
if(strcmp(b[k].equipName,b[j].equipName)>
0)
k=j;
if(k!
=i)
{temp=b[i];
b[i]=b[k];
b[k]=temp;
sort_3()
if(strcmp(b[k].buyDate,b[j].buyDate)>
/**********************************设备查询********************************/
serach()
查询1.编号2.总类3.名称4.购入日期5.状态:
5)
if(k==1)serach_1();
if(k==2)serach_2();
if(k==3)serach_3();
if(k==4)serach_4();
if(k==5)serach_5();
serach_1()
inti=0,d=0,s=0;
EquInfom,*b;
你要查询的设备编号是:
m.equipCode);
if(strcmp(b[i].equipCode,m.equipCode)==0)
printf
编号总类名称价格购入日期是否报废报
废日期\n"
d++;
if(d==0)
没有你要查询的设备号\n\n"
serach_2()
你要查询的设备总类是:
m.equipTy