c语言设备管理系统Word文档下载推荐.docx
《c语言设备管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言设备管理系统Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
实验设备信息输出模块
.
实验设备信息查询模块
实验设备信息添加模块
实验设备信息删除模块
实验设备信息统计模块
结构体成员包括设备号,
设备名称,
设备领用人,
设备所属部门,设备数量,设备购买时间,设备价格
。
4主要函数说明及其N-S图
4.1主函数流程图
输入数字number
Tnumber==1F
chec()Tnumber==2F
add()Tnumber==3F
del()Tnumber==4F
alt()Tnumber==5F
count()Tnumber==0F
退出系统
4.2N-S图
4.3查询记录
图4.3
4.4读入/写入文件
图4.4
4.5添加数据
图4.5
4.6删除数据
图4.6
4.7修改数据
图4.7
4.8统计数据
图4.8
5程序运行数据及其结果
图5.1进入界面
图5.2菜单&
功能选择
图5.3添加数据
图5.4查看数据
图5.5删除数据
图5.6修改数据
图5.7统计数据
6课程设计心得
经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。
在大一下学期C语言实训中,不仅有网上已有成果的借鉴与分析,以及向同学的请教,还有相关资料的查阅,既加深了自身能力的认知与对自己不足的体会,也优化了和同学的关系,真可谓一举两得。
同时还得出一个结论:
亲身下河知深浅,亲口尝梨知酸甜!
作为一名软件工程的学生,平时在电脑跟前敲代码的过程是必需的,谁也躲不了,一份努力,一份收获,同时,学习C语言需要细密又严谨的思维,良好的操作习惯,这样才有可能在编程的道路上百尺竿头更进一步!
也希望各位老师、身边的同学监督,更需要自己的积极自省。
期待三年后一个成熟优秀的自己!
附录:
#include<
stdio.h>
stdlib.h>
conio.h>
string.h>
voidmenu();
//功能选择
voidadd();
//添加信息
voiddel();
//删除信息
voidalt();
//修改信息
voidchec();
//查看信息
voidcount();
//统计信息
voidread();
//读取文件
voidwrite();
//写入文件
structarray
{
charano[20],aname[20],aowner[20],aapartment[20],aamount[20],atime[20],aprice[20];
intdel;
//判断是否删除,值为0为未删除,1为已删除
}a[20];
intNo,sum;
intmain()
{
system("
modeconcols=145lines=35"
);
puts("
\n\n\n\n\n\n\n\n\n\n\n\n\n<
<
欢迎使用设备管理系统!
>
"
getchar();
read();
//实现文件读进内存
menu();
//实现功能选择
write();
//实现信息写入文件
return0;
}
voidmenu()
cls"
inta;
\n\n\n\n\n\n<
请选择需要的功能:
1.查看设备信息\n2.添加设备信息\n3.删除设备信息\n4.修改设备信息\n5.统计设备信息\n0.退出系统"
printf("
\t\t请选择你的功能(选择0~5)[]\b\b"
scanf("
%d"
&
a);
switch(a)
{
case0:
return;
case1:
chec();
break;
case2:
add();
case3:
del();
case4:
alt();
case5:
count();
default:
printf("
信息有误!
请检查后重新输入\n"
}
voidread()
No=0;
FILE*fp=fopen("
D:
\\infor.txt"
"
r+"
//读写功能
if(fp==NULL)
fp=fopen("
w+"
//若没有则创建一个txt
fclose(fp);
inti;
for(i=0;
!
feof(fp);
i++)
fread(&
a[i],sizeof(structarray),1,fp);
//一次读取一个
No++;
No=No-1;
fclose(fp);
voidwrite()
for(i=0;
i<
No;
if(!
a[i].del)
fwrite(&
voidchec()
设备号设备名称领用人所属部门数量购买时间价格\n"
if(a[i].del==0)
printf("
%8s%20s%20s%20s%20s%20s%20s\n"
a[i].ano,a[i].aname,a[i].aowner,a[i].aapartment,a[i].aamount,a[i].atime,a[i].aprice);
voidadd()
chars;
请输入要添加的设备号:
\n"
scanf("
%s"
a[No].ano);
请输入要添加的设备名称:
a[No].aname);
请输入要添加的设备领用人:
a[No].aowner);
请输入要添加的设备的所属部门:
a[No].aapartment);
请输入要添加的设备数量:
a[No].aamount);
请输入要添加的设备购买时间:
a[No].atime);
请输入要添加的设备价格:
a[No].aprice);
a[No].del=0;
No+=1;
请问是否继续添加?
(Y/N)(不区分大小写)\n"
while
(1)
getchar();
gets(&
s);
if(s=='
Y'
||s=='
N'
y'
n'
)
break;
else{
puts("
按任意键重新输入!
getchar();
}
if(s=='
add();
elseif(s=='
system("
voiddel()
charch[20],s;
请输入要删除的设备编号:
(0键返回菜单栏)\n"
%4d%20s%20s%20s%20s%20s%20s%20s\n"
i+1,a[i].ano,a[i].aname,a[i].aowner,a[i].aapartment,a[i].aamount,a[i].atime,a[i].aprice);
ch);
i=atoi(ch);
if(i>
=1&
&
i<
=No)
elseif(i==0)
return;
elseputs("
a[i-1].del=1;
是否继续删除?
del();
voidalt()
chars,ch[20];
inti,j;
请输入修改的设备的编号:
=No)break;
elseif(i==0)return;
if(a[i-1].del==1)
printf("
该设备已被删除!
return;
请输入您要修改的内容的编号:
\n1.设备号\n2.设备名称\n3.领用人\n4.所属部门\n5.数量\n6.购买时间\n7.价格\n0.返回菜单栏\n"
j=atoi(ch);
if(j>
j<
=7)
{
}
请输入要修改的信息:
switch(j)
case1:
{scanf("
a[i-1].ano);
a[i-1].aname);
case3:
a[i-1].aowner);
a[i-1].aapartment);
case5:
a[i-1].aamount);
case6:
a[i-1].atime);
case7:
a[i-1].aprice);
是否继续修改?
//获取回车
//获取s
alt();
voidcount()
charch[20],temp[20],s;
inti,j,n;
sum=0;
请选择统计方式:
\n1.所有设备的总价值。
\n2.设备所属部门。
\n3.设备种类。
\n0.返回菜单栏\n"
=3)
elseif(j==0)
{
for(i=0;
{
if(a[i].del==0)
sum=atoi(a[i].aprice)*atoi(a[i].aamount)+sum;
}
printf("
当前设备的总价值为%d。
sum);
break;
}
设备所属部门统计结果为:
\n所属部门数量总价值\n"
sum=0;
n=0;
strcpy(temp,a[i].aapartment);
//将可变的数组a[i]复制到temp数组中
for(j=0;
j<
j++)
{
if(strcmp(temp,a[j].aapartment)==0&
i>
j)
break;
elseif(strcmp(temp,a[j].aapartment)==0&
j&
a[j].del==0)
{
sum=sum+atoi(a[j].aamount)*atoi(a[j].aprice);
n=n+atoi(a[j].aamount);
}
}
if(strcmp(temp,a[j].aapartment)==0&
continue;
{sum=sum+atoi(a[i].aamount)*atoi(a[i].aprice);
n=n+atoi(a[i].aamount);
if(sum==0)
printf("
%20s%20d%20d\n"
a[i].aapartment,n,sum);
设备种类统计结果为:
\n设备名数量总价值\n"
strcpy(temp,a[i].aname);
if(strcmp(temp,a[j].aname)==0&
elseif(strcmp(temp,a[j].aname)==0&
{
}
if(strcmp(temp,a[j].aname)==0&
a[i].aname,n,sum);
请问是否继续统计?
)break;
检查后重新输入\n"
count();