c语言设备管理系统.docx
- 文档编号:16634985
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:32
- 大小:69.94KB
c语言设备管理系统.docx
《c语言设备管理系统.docx》由会员分享,可在线阅读,更多相关《c语言设备管理系统.docx(32页珍藏版)》请在冰点文库上搜索。
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"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 设备管理 系统