c语言设备管理系统.docx

上传人:b****6 文档编号:16634985 上传时间:2023-07-15 格式:DOCX 页数:32 大小:69.94KB
下载 相关 举报
c语言设备管理系统.docx_第1页
第1页 / 共32页
c语言设备管理系统.docx_第2页
第2页 / 共32页
c语言设备管理系统.docx_第3页
第3页 / 共32页
c语言设备管理系统.docx_第4页
第4页 / 共32页
c语言设备管理系统.docx_第5页
第5页 / 共32页
c语言设备管理系统.docx_第6页
第6页 / 共32页
c语言设备管理系统.docx_第7页
第7页 / 共32页
c语言设备管理系统.docx_第8页
第8页 / 共32页
c语言设备管理系统.docx_第9页
第9页 / 共32页
c语言设备管理系统.docx_第10页
第10页 / 共32页
c语言设备管理系统.docx_第11页
第11页 / 共32页
c语言设备管理系统.docx_第12页
第12页 / 共32页
c语言设备管理系统.docx_第13页
第13页 / 共32页
c语言设备管理系统.docx_第14页
第14页 / 共32页
c语言设备管理系统.docx_第15页
第15页 / 共32页
c语言设备管理系统.docx_第16页
第16页 / 共32页
c语言设备管理系统.docx_第17页
第17页 / 共32页
c语言设备管理系统.docx_第18页
第18页 / 共32页
c语言设备管理系统.docx_第19页
第19页 / 共32页
c语言设备管理系统.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言设备管理系统.docx

《c语言设备管理系统.docx》由会员分享,可在线阅读,更多相关《c语言设备管理系统.docx(32页珍藏版)》请在冰点文库上搜索。

c语言设备管理系统.docx

c语言设备管理系统

 

课程设计说明书

 

学院、系:

 

专业:

 

学生姓名:

学号:

 

设计题目:

设备管理系统

 

起迄日

期:

指导教

师:

 

日期:

2021年5月12日

 

1设计目的

提高程序设计能力,检验课堂授课内容,掌握程序设计的根本方法和调试技术。

经过课程实

训,加深对结构化程序设计思想的理解,能对系统功能进行解析,并设计合理的模块化结构;进

一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程

序开发哪里,能运用合理的控制流编写清楚高效的程序;培养C语言可是运用与自学能力,加强

程序解析能力。

 

2任务归纳

功能:

设备管理系统应包括各种设备的全部信息,每台设备为一条记录〔同一时间同一部门购置的假设

干台相同设备可作为1条记录〕,包括设备号、设备名称、领用人、所属部门、数量、购置时

间、价格等。

能够显示和统计各种设备的信息。

?

?

分步推行:

1、初步完成整体设计,搭好框架,确定人机对话的界面,确定函数个数;?

2、完成最低要求:

建立一个文件,包括一个部门10台设备的信息,能对文件进行

补充、校正、删除,能统计全部设备的总价值。

?

3、进一步要求:

完成设备按种类、按所属部门进行统计。

 

3模块划分

系统可设计为:

实验设备信息写入模块

实验设备信息输出模块?

.

 

实验设备信息盘问模块

实验设备信息增加模块

实验设备信息删除模块

实验设备信息盘问模块

实验设备信息统计模块

结构体成员包括设备号,?

设备名称,?

设备领用人,?

设备所属部门,设备数量,设备购置时间,设

备价格?

 

4主要函数说明及其N-S图

 

设备管理系统

 

进入

实验

实验

实验

实验

?

实验

菜单

设备

设备

设备

设备

验设

设备

信息

信息

信息

信息

备信

信息

功能

写入

输出

查询

添加

息删

查询

模块

模块

模块

模块

除模

模块

选择

 

主函数流程图

 

输入数字number

Tnumber==1

F

chec()Tnumber==2

F

add()Tnumber==3

F

del()Tnumber==4F

alt()Tnumber==5F

count()Tnumber==0F

 

N-S图

 

盘问记录

开始

 

按要求查察记录

 

实验

设备

信息

统计

模块

 

退出系统

 

结束

 

读入/写入文件

开始

 

定义文件指针

 

判断文件可否

可存在

T

 

写入数据

 

关闭文件

 

结束

 

增加数据

 

开始

 

按要求输入信息

图完成一条记录的增加

 

可否连续输入

 

T

 

结束

 

F

 

创立一个文件

 

F

 

删除数据

开始

 

输入设备ID号

 

进行删除操作

 

结束

 

更正数据

 

开始

 

输入要更正的ID号

 

按要求更正数据

 

结束

 

统计数据

开始

 

选择统计方式

 

显示统计结果

 

结束

5程序运行数据及其结果

 

图进入界面

 

图菜单&功能选择

 

图增加数据

 

图查察数据

 

图删除数据

 

图更正数据

 

图统计数据

 

6课程设计心得

经历了大一上半学期C语言课程,C语言笔试,C语言机试的“浸礼〞,让我对C语言的有了进一

步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感觉深

深的愧疚,对不起老师,对不起父亲母亲,更对不起自己,同时为自己将来毕业后的命运感觉一份担忧。

在大一下学期C语言实训中,不但有网上已有成就的借鉴与解析,以及向同学的请教,还有相关资料

的查阅,既加深了自己能力的认知与对自己缺乏的领悟,也优化了和同学的关系,真可谓两全其美。

同时还得出一个结论:

亲身下河知深浅,亲口尝梨知酸甜!

作为一名软件工程的学生,平时在电脑跟

前敲代码的过程是必需的,谁也躲不了,一份努力,一份收获,同时,学习C语言需要精细又慎重的

思想,优秀的操作习惯,这样才有可能在编程的道路上百尺竿头更进一步!

也希望各位老师、身边的

同学督查,更需要自己的积极自省。

希望三年后一个成熟优秀的自己!

 

附录:

#include<>

#include<>

#include<>

#include<>

voidmenu();看设备信息\n2.增加设备信息\n

 

3.

删除设备信息\n

4.

更正设备信息\n

5.

统计设备信息\n

0.

退出系统");

printf("\t\t

请选择你的功能〔选择

0~5〕[]\b\b");

scanf("%d",&a);

switch(a)

{

case0:

return;

case1:

chec();break;

case2:

add();break;

case3:

del();break;

case4:

alt();break;

case5:

count();break;

default:

printf("信息有误!

请检查后重新输入\n");

}

 

}

voidread()

{

No=0;

FILE*fp=fopen("D:

\\","r+");el)

fwrite(&a[i],sizeof(structarray),1,fp);

fclose(fp);

}

voidchec()

{

inti;

printf("

 

设备号

 

设备名称

 

领用人

 

所属部门

数量

购置时间

价格

\n");

for(i=0;i

 

{

 

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].aapartmen

t,a[i].aamount,a[i].atime,a[i].aprice);

 

}

getchar();

getchar();

menu();

 

}

voidadd()

{

chars;

 

printf("请输入要增加的设备号:

\n");

scanf("%s",a[No].ano);

printf("请输入要增加的设备名称:

\n");

scanf("%s",a[No].aname);

printf("请输入要增加的设备领用人:

\n");

scanf("%s",a[No].aowner);

printf("请输入要增加的设备的所属部门:

\n");

scanf("%s",a[No].aapartment);

printf("请输入要增加的设备数量:

\n");

scanf("%s",a[No].aamount);

printf("请输入要增加的设备购置时间:

\n");

scanf("%s",a[No].atime);

printf("请输入要增加的设备价格:

\n");

scanf("%s",a[No].aprice);

a[No].del=0;

No+=1;

printf("请问可否连续增加〔Y/N〕〔不划分大小写〕\n");

while

(1)

{

 

getchar();

gets(&s);

if(s=='Y'||s=='N'||s=='y'||s=='n')

 

break;

else{

puts("信息有误!

请检查后重新输入\n");

puts("按任意键重新输入!

");

getchar();

getchar();

getchar();

}

}

if(s=='Y'||s=='y')

add();

elseif(s=='N'||s=='n')

system("cls");

menu();

}

voiddel()

{

charch[20],s;

inti;

printf("

请输入要删除的设备编号:

〔0键返回菜单栏〕

\n");

printf("

设备号

设备名称

领用人

所属部门

数量

购置时间

价格\n");

for(i=0;i

{

if(a[i].del==0)

 

printf("%4d%20s%20s%20s%20s%20s%20s%20s\n",i+1,a[i].ano,a[i].aname,a[i].aowner,a[i].a

apartment,a[i].aamount,a[i].atime,a[i].aprice);

 

}

while

(1)

{

 

scanf("%s",ch);

i=atoi(ch);

if(i>=1&&i<=No)break;

elseif(i==0)

return;

elseputs("信息有误!

请检查后重新输入\n");

}

a[i-1].del=1;

printf("可否连续删除〔Y/N〕〔不划分大小写〕\n");

while

(1)

{

getchar();

gets(&s);

if(s=='Y'||s=='N'||s=='y'||s=='n')break;

elseputs("信息有误!

请检查后重新输入\n");

}

if(s=='Y'||s=='y')

del();

elseif(s=='N'||s=='n')

system("cls");

menu();

}

voidalt()

{

chars,ch[20];

 

inti,j;

printf("请输入更正的设备的编号:

\n");

printf("

设备号

设备名称

领用人

所属部门

数量

购置时间

价格\n");

for(i=0;i

 

{

 

printf("%4d%20s%20s%20s%20s%20s%20s%20s\n",i+1,a[i].ano,a[i].aname,a[i].aowner,a[i].a

apartment,a[i].aamount,a[i].atime,a[i].aprice);

}

while

(1)

{

scanf("%s",ch);

i=atoi(ch);

if(i>=1&&i<=No)break;elseif(i==0)return;

elseputs("信息有误!

请检查后重新输入\n");

}

if(a[i-1].del==1)

{

printf("该设备已被删除!

\n");

return;

}

printf("请输入您要更正的内容的编号:

\n1.设备号\n2.设备名称\n3.领用人\n4.所属部门\n5.数

量\n6.购置时间\n7.价格\n0.返回菜单栏\n");while

(1)

{

scanf("%s",ch);j=atoi(ch);

if(j>=1&&j<=7)break;

 

elseif(i==0)

{

return;

 

}

elseputs("信息有误!

请检查后重新输入\n");

}

printf("请输入要更正的信息:

\n");

switch(j)

{

case1:

{scanf("%s",a[i-1].ano);

break;}

case2:

{scanf("%s",a[i-1].aname);

break;}

case3:

{scanf("%s",a[i-1].aowner);

break;}

case4:

{scanf("%s",a[i-1].aapartment);

break;}

case5:

{scanf("%s",a[i-1].aamount);

break;}

case6:

{scanf("%s",a[i-1].atime);

break;}

case7:

{scanf("%s",a[i-1].aprice);

break;}

 

}

printf("

 

可否连续更正〔

Y/N〕〔不划分大小写〕

\n");

while

(1)

 

{

getchar();

有设备的总价值。

\n2.

设备所属部门。

\n3.

设备种类。

\n0.

返回菜单栏

\n");

while

(1)

{

scanf("%s",ch);

j=atoi(ch);

if(j>=1&&j<=3)break;

elseif(j==0)

{

return;

}

elseputs("信息有误!

请检查后重新输入\n");

}

switch(j)

{

case1:

{

for(i=0;i

{

if(a[i].del==0)

sum=atoi(a[i].aprice)*atoi(a[i].aamount)+sum;

}

printf("当前设备的总价值为%d。

\n",sum);

break;

}

case2:

 

{

 

总价值

printf("设备所属部门统计结果为:

\n");

for(i=0;i

\n

 

所属部门

 

数量

{

sum=0;

n=0;

strcpy(temp,a[i].aapartment);apartment)==0&&i>j)

break;

elseif(strcmp(temp,a[j].aapartment)==0&&i

{

sum=sum+atoi(a[j].aamount)*atoi(a[j].aprice);

n=n+atoi(a[j].aamount);

}

}

if(strcmp(temp,a[j].aapartment)==0&&i>j)

continue;

if(a[i].del==0)

{sum=sum+atoi(a[i].aamount)*atoi(a[i].aprice);

n=n+atoi(a[i].aamount);

}

if(sum==0)

continue;

printf("%20s%20d%20d\n",a[i].aapartment,n,sum);

}

break;

}

case3:

{

 

总价值

printf("

\n");

 

设备种类统计结果为:

\n

 

设备名

 

数量

 

for(i=0;i

{

sum=0;

 

n=0;

strcpy(temp,a[i].aname);

for(j=0;j

{

if(strcmp(temp,a[j].aname)==0&&i>j)

break;

elseif(strcmp(temp,a[j].aname)==0&&i

{

sum=sum+atoi(a[j].aamount)*atoi(a[j].aprice);

n=n+atoi(a[j].aamount);

}

}

if(strcmp(temp,a[j].aname)==0&&i>j)

continue;

if(a[i].del==0)

{sum=sum+atoi(a[i].aamount)*atoi(a[i].aprice);n=n+atoi(a[i].aamount);

}

if(sum==0)

continue;

printf("%20s%20d%20d\n",a[i].aname,n,sum);

}

break;

}

}

printf("请问可否连续统计〔Y/N〕〔不划分大小写〕\n");

while

(1)

 

{

getchar();

gets(&s);

 

if(s=='Y'||s=='N'||s=='y'||s=='n')break;

elseputs("信息有误!

检查后重新输入\n");

}

if(s=='Y'||s=='y')

count();

elseif(s=='N'||s=='n')

system("cls");

}

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2