




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计说明书学 院、系:专 业:学 生 姓 名:学 号:设 计 题 目:设备管理系统 起 迄 日 期:指 导 教 师:日期: 2017年5月12日1 设计目的 提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。2 任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部
2、门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。 分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。 3、进一步要求:完成设备按种类、按所属部门进行统计。3 模块划分 系统可设计为:实验设备信息写入模块实验设备信息输出模块 .实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息
3、统计模块结构体成员包括设备号, 设备名称, 设备领用人, 设备所属部门 ,设备数量 ,设备购买时间, 设备价格 。4 主要函数说明及其N-S图设备管理系统实验设备信息统计模块实验设备信息添加模块实验设备信息查询模块 实验设备信息删除模块进入菜单功能选择实验设备信息查询模块实验设备信息输出模块实验设备信息写入模块 4.1 主函数流程图 输入数字numberT number=1 Fchec() T number=2 F add() T number=3 Fdel() T number=4 Falt() T number=5 Fcount() T n
4、umber=0 F 退出系统 4.2 N-S图 开始4.3查询记录按要求查看记录 图4.3 结束 开始4.4读入/写入文件定义文件指针F判断文件是否可存在?创建一个文件 T 图4.4 写入数据 关闭文件 结束4.5添加数据 开始按要求输入信息 完成一条记录的添加 图4.5 F是否继续输入? T 结束 开始4.6删除数据 输入设备ID号 进行删除操作 图4.6 结束4.7修改数据 开始 输入要修改的ID号 图4.7 按要求修改数据 结束 开始4.8统计数据 选择统计方式 图4.8 显示统计结果 结束5 程序运行数据及其结果 图5.1 进入界面 图5.2菜单&功能选择图5.3 添加数据 图
5、5.4 查看数据 图5.5 删除数据 图5.6 修改数据 图5.7 统计数据6 课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。在大一下学期C语言实训中,不仅有网上已有成果的借鉴与分析,以及向同学的请教,还有相关资料的查阅,既加深了自身能力的认知与对自己不足的体会,也优化了和同学的关系,真可谓一举两得。同时还得出一个结论:亲身下河知深浅,亲口尝梨知酸甜!作为一名软件工程的
6、学生,平时在电脑跟前敲代码的过程是必需的,谁也躲不了,一份努力,一份收获,同时,学习语言需要细密又严谨的思维,良好的操作习惯,这样才有可能在编程的道路上百尺竿头更进一步!也希望各位老师、身边的同学监督,更需要自己的积极自省。期待三年后一个成熟优秀的自己!附录:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void menu(); /功能选择void add(); /添加信息void del(); /删除信息void alt(); /修改信息voi
7、d chec(); /查看信息void count(); /统计信息void read(); /读取文件void write(); /写入文件struct array char ano20,aname20,aowner20,aapartment20,aamount20,atime20,aprice20; int del; /判断是否删除,值为0为未删除,1为已删除 a20;int No,sum;int main() system("mode con cols=145 lines=35"); puts("nnnnnnnnnnnnn <<<<&
8、lt;<欢迎使用设备管理系统!>>>>>>"); getchar(); read(); /实现文件读进内存 menu(); /实现功能选择 write(); /实现信息写入文件 return 0;void menu()system("cls");int a; puts("nnnnnn<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&
9、lt;<<<<<<<<<<<<<请选择需要的功能:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10、>>>>>>>>>>>>>>>"); puts(" 1.查看设备信息n 2.添加设备信息n 3.删除设备信息n 4.修改设备信息n 5.统计设备信息n 0.退出系统"); printf("tt请选择你的功能(选择05) bb");scanf("%d",&a); switch (a) case 0:return; case 1:chec();break; case 2:add();break;case 3:del();break;
11、 case 4:alt();break;case 5:count();break;default:printf("信息有误!请检查后重新输入n"); void read() No=0; FILE *fp=fopen("D:infor.txt","r+"); /读写功能 if(fp=NULL)fp=fopen("D:infor.txt","w+"); /若没有则创建一个txt fclose(fp); int i; for(i=0;!feof(fp);i+) fread(&ai,sizeof
12、(struct array),1,fp); /一次读取一个 No+;No=No-1; fclose(fp);void write() int i; FILE *fp=fopen("D:infor.txt","w+"); for (i=0;i<No;i+) if (!ai.del) fwrite(&ai,sizeof(struct array),1,fp); fclose(fp);void chec()int i;printf(" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<N
13、o;i+)if(ai.del=0)printf("%8s%20s%20s%20s%20s%20s%20sn",ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);getchar();getchar();menu();void add()char s;printf("请输入要添加的设备号:n");scanf("%s",aNo.ano);printf("请输入要添加的设备名称:n");scanf("%s",aN
14、o.aname);printf("请输入要添加的设备领用人:n"); scanf("%s",aNo.aowner);printf("请输入要添加的设备的所属部门:n"); scanf("%s",aNo.aapartment);printf("请输入要添加的设备数量:n"); scanf("%s",aNo.aamount);printf("请输入要添加的设备购买时间:n");scanf("%s",aNo.atime);printf(&qu
15、ot;请输入要添加的设备价格:n");scanf("%s",aNo.aprice);aNo.del=0;No+=1;printf("请问是否继续添加?(Y/N)(不区分大小写)n");while (1)getchar();gets(&s);if (s='Y'|s='N'|s='y'|s='n')break;elseputs("信息有误!请检查后重新输入n");puts("按任意键重新输入!");getchar();getchar();
16、getchar(); if(s='Y'|s='y')add();else if(s='N'|s='n')system("cls");menu();void del()char ch20,s;int i;printf("请输入要删除的设备编号:(0键返回菜单栏)n");printf(" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<No;i+)if(ai.del=0)printf("%4d%20s%20s%20s%20s
17、%20s%20s%20sn",i+1,ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=No)break;else if(i=0)return;else puts("信息有误!请检查后重新输入n");ai-1.del=1;printf("是否继续删除?(Y/N)(不区分大小写)n");while (1)get
18、char();gets(&s);if (s='Y'|s='N'|s='y'|s='n')break;else puts("信息有误!请检查后重新输入n");if(s='Y'|s='y')del();else if(s='N'|s='n')system("cls");menu(); void alt()char s,ch20;int i,j;printf("请输入修改的设备的编号:n");printf(
19、" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<No;i+)printf("%4d%20s%20s%20s%20s%20s%20s%20sn",i+1,ai.ano,ai.aname,ai.aowner,ai.aapartment,ai.aamount,ai.atime,ai.aprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=No)break;else if(i=0)return;else put
20、s("信息有误!请检查后重新输入n");if(ai-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;else if(i=0)return;else puts("信息有误!请检查后重新输入n&
21、quot;);printf("请输入要修改的信息:n");switch (j) case 1:scanf("%s",ai-1.ano);break; case 2:scanf("%s",ai-1.aname);break; case 3:scanf("%s",ai-1.aowner);break; case 4:scanf("%s",ai-1.aapartment);break; case 5:scanf("%s",ai-1.aamount);break;case 6:sca
22、nf("%s",ai-1.atime);break;case 7:scanf("%s",ai-1.aprice);break; printf("是否继续修改?(Y/N)(不区分大小写)n");while (1)getchar(); /获取回车 gets(&s); /获取s if (s='Y'|s='N'|s='y'|s='n')break;else puts("信息有误!请检查后重新输入n");if(s='Y'|s='y
23、')alt();else if(s='N'|s='n')system("cls");menu();void count()char ch20,temp20,s;int i,j,n;sum=0;printf("请选择统计方式:n1.所有设备的总价值。n2.设备所属部门。n3.设备种类。n0.返回菜单栏n");while (1)scanf("%s",ch);j=atoi(ch);if (j>=1 && j<=3)break;else if(j=0)return;else
24、puts("信息有误!请检查后重新输入n");switch (j) case 1:for(i=0;i<No;i+)if(ai.del=0)sum=atoi(ai.aprice)*atoi(ai.aamount)+sum;printf("当前设备的总价值为%d。n",sum);break; case 2:printf("设备所属部门统计结果为:n 所属部门 数量 总价值n");for(i=0;i<No;i+)sum=0;n=0;strcpy(temp,ai.aapartment); /将可变的数组ai 复制到temp数组中
25、for(j=0;j<No;j+)if(strcmp(temp,aj.aapartment)=0&&i>j)break;else if(strcmp(temp,aj.aapartment)=0&&i<j&&aj.del=0)sum=sum+atoi(aj.aamount)*atoi(aj.aprice);n=n+atoi(aj.aamount);if(strcmp(temp,aj.aapartment)=0&&i>j)continue;if(ai.del=0)sum=sum+atoi(ai.aamount)*atoi(ai.aprice);n=n+atoi(ai.aamount);if(sum=0)continu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【假期提升】五升六语文暑假作业(七)-人教部编版(含答案含解析)
- 紧急任务 面试题及答案
- 2025年军队文职人员招聘之军队文职法学考前冲刺模拟试卷A卷含答案
- 2019-2025年消防设施操作员之消防设备中级技能题库综合试卷A卷附答案
- 遗产继承房产过户合同
- 汽车运输合同协议书
- 语言学与文化差异阅读理解题
- 信息技术支持下的农业智能生产合作协议
- 陕西省渭南市富平县2024-2025学年八年级上学期期末生物学试题(含答案)
- 湖南省新高考教研联盟2024-2025学年高三下学期一模联考地理试题(含答案)
- 河南省创新发展联盟2023-2024学年高一下学期3月月考化学试题(解析版)
- 农村自建房包工包料施工合同
- 《铁路职业道德》课件-第6章 铁路职业道德修养
- 中考心理减压辅导 中考前心理健康教育主题班会
- 小学四年级心理健康教育课
- 【上市公司的财务风险的分析和防范:以三只松鼠为例10000字(论文)】
- 部编版小学语文四年级下册教师教学用书(教学参考)完整版
- 幼儿园消防安全知识竞赛试题及答案
- 莫高窟群文阅读教学设计
- 乐理视唱练耳简明教程课后习题答案
- 2023年10月自考试题02398土力学及地基基础
评论
0/150
提交评论