c语言设备标准管理系统.doc
《c语言设备标准管理系统.doc》由会员分享,可在线阅读,更多相关《c语言设备标准管理系统.doc(21页珍藏版)》请在咨信网上搜索。
课程设计说明书 学 院、系: 专 业: 学 生 姓 名: 学 号: 设 计 题 目: 设备管理系统 起 迄 日 期: 指 导 教 师: 日期: 5月12日 1 设计目标 提升程序设计能力,检验课堂教学内容,掌握程序设计基础方法和调试技能。经过课程实训,加深对结构化程序设计思想了解,能对系统功效进行分析,并设计合理模块化结构;深入掌握C语言中关键数据结构;掌握并熟练利用指针,链表,结构体和文件等结构;提升程序开发哪里,能利用合理控制流编写清楚高效程序;培养C语言只是利用和自学能力,加强程序分析能力。 2 任务概述 功效:设备管理系统应包含多种设备全部信息,每台设备为一条统计(同一时间同一部门购置若干台相同设备可作为1条统计),包含设备号、设备名称、领用人、所属部门、数量、购置时间、价格等。能够显示和统计多种设备信息。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、完成最低要求:建立一个文件,包含一个部门10台设备信息,能对文件进行 补充、修订、删除,能统计全部设备总价值。 3、深入要求:完成设备按种类、按所属部门进行统计。 3 模块划分 系统可设计为: 试验设备信息写入模块 试验设备信息输出模块 . 试验设备信息查询模块 试验设备信息添加模块 试验设备信息删除模块 试验设备信息查询模块 试验设备信息统计模块 结构体组员包含设备号, 设备名称, 设备领用人, 设备所属部门 ,设备数量 ,设备购置时间, 设备价格 。 4 关键函数说明及其N-S图 设备管理系统 试验设备信息统计模块 试验设备信息添加模块 试验设备信息查询模块 试验设备信息删除模块 进入菜单 功效选择 试验设备信息查询模块 试验设备信息输出模块 试验设备信息写入模块 4.1 主函数步骤图 输入数字number T number==1 F chec() T number==2 F add() T number==3 F del() T number==4 F alt() T number==5 F count() T number==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.4 查看数据 图5.5 删除数据 图5.6 修改数据 图5.7 统计数据 6 课程设计心得 经历了大一上半学期C语言课程,C语言笔试,C语言机试“洗礼”,让我对C语言有了深入认识,深深认识到自己学习还不够,平时敲代码也太少,作为一名软件工程学生,感到深深愧疚,对不起老师,对不起父母,更对不起自己,同时为自己未来毕业后命运感到一份担忧。在大一下学期C语言实训中,不仅有网上已经有结果借鉴和分析,和向同学请教,还有相关资料查阅,既加深了本身能力认知和对自己不足体会,也优化了和同学关系,真可谓一举两得。同时还得出一个结论:亲身下河知深浅,亲口尝梨知酸甜!作为一名软件工程学生,平时在电脑跟前敲代码过程是必需,谁也躲不了,一份努力,一份收获,同时,学习C语言需要细密又严谨思维,良好操作习惯,这么才有可能在编程道路上百尺竿头更深入!也期望各位老师、身边同学监督,更需要自己主动自省。期待三年后一个成熟优异自己! 附录: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void menu(); //功效选择 void add(); //添加信息 void del(); //删除信息 void alt(); //修改信息 void chec(); //查看信息 void count(); //统计信息 void read(); //读取文件 void write(); //写入文件 struct array { char ano[20],aname[20],aowner[20],aapartment[20],aamount[20],atime[20],aprice[20]; int del; //判定是否删除,值为0为未删除,1为已删除 } a[20]; int No,sum; int main() { system("mode con cols=145 lines=35"); puts("\n\n\n\n\n\n\n\n\n\n\n\n\n <<<<<<欢迎使用设备管理系统!>>>>>>"); getchar(); read(); //实现文件读进内存 menu(); //实现功效选择 write(); //实现信息写入文件 return 0; } void menu() { system("cls"); int a; puts("\n\n\n\n\n\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<请选择需要功效:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); puts(" 1.查看设备信息\n 2.添加设备信息\n 3.删除设备信息\n 4.修改设备信息\n 5.统计设备信息\n 0.退出系统"); printf("\t\t请选择你功效(选择0~5)[ ]\b\b"); scanf("%d",&a); switch (a) { case 0:return; case 1:chec();break; case 2:add();break; case 3:del();break; 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(&a[i],sizeof(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 (!a[i].del) fwrite(&a[i],sizeof(struct array),1,fp); fclose(fp); } void chec() { int i; printf(" 设备号 设备名称 领用人 所属部门 数量 购置时间 价格\n"); for(i=0;i<No;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].aapartment,a[i].aamount,a[i].atime,a[i].aprice); } getchar(); getchar(); menu(); } void add() { char s; 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(); else if(s=='N'||s=='n') system("cls"); menu(); } void del() { char ch[20],s; int i; printf("请输入要删除设备编号:(0键返回菜单栏)\n"); printf(" 设备号 设备名称 领用人 所属部门 数量 购置时间 价格\n"); for(i=0;i<No;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].aapartment,a[i].aamount,a[i].atime,a[i].aprice); } while (1) { scanf("%s",ch); i=atoi(ch); if (i>=1 && i<=No) break; else if(i==0) return; else puts("信息有误!请检验后重新输入\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; else puts("信息有误!请检验后重新输入\n"); } if(s=='Y'||s=='y') del(); else if(s=='N'||s=='n') system("cls"); menu(); } void alt() { char s,ch[20]; int i,j; printf("请输入修改设备编号:\n"); printf(" 设备号 设备名称 领用人 所属部门 数量 购置时间 价格\n"); for(i=0;i<No;i++) { printf("%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); } while (1) { scanf("%s",ch); i=atoi(ch); if (i>=1 && i<=No)break; else if(i==0)return; else puts("信息有误!请检验后重新输入\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; else if(i==0) { return; } else puts("信息有误!请检验后重新输入\n"); } printf("请输入要修改信息:\n"); switch (j) { case 1: {scanf("%s",a[i-1].ano); break;} case 2: {scanf("%s",a[i-1].aname); break;} case 3: {scanf("%s",a[i-1].aowner); break;} case 4: {scanf("%s",a[i-1].aapartment); break;} case 5: {scanf("%s",a[i-1].aamount); break;} case 6: {scanf("%s",a[i-1].atime); break;} case 7: {scanf("%s",a[i-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') alt(); else if(s=='N'||s=='n') system("cls"); menu(); } void count() { char ch[20],temp[20],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 puts("信息有误!请检验后重新输入\n"); } switch (j) { case 1: { for(i=0;i<No;i++) { if(a[i].del==0) sum=atoi(a[i].aprice)*atoi(a[i].aamount)+sum; } printf("目前设备总价值为%d。\n",sum); break; } case 2: { printf("设备所属部门统计结果为:\n 所属部门 数量 总价值\n"); for(i=0;i<No;i++) { sum=0; n=0; strcpy(temp,a[i].aapartment); //将可变数组a[i] 复制到temp数组中 for(j=0;j<No;j++) { if(strcmp(temp,a[j].aapartment)==0&&i>j) break; else if(strcmp(temp,a[j].aapartment)==0&&i<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&&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; } case 3: { printf("设备种类统计结果为:\n 设备名 数量 总价值\n"); for(i=0;i<No;i++) { sum=0; n=0; strcpy(temp,a[i].aname); for(j=0;j<No;j++) { if(strcmp(temp,a[j].aname)==0&&i>j) break; else if(strcmp(temp,a[j].aname)==0&&i<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].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; else puts("信息有误!检验后重新输入\n"); } if(s=='Y'||s=='y') count(); else if(s=='N'||s=='n') system("cls"); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 设备 标准 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文