您好,欢迎访问三七文档
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:设备管理系统起迄日期:指导教师:日期:2017年5月12日1设计目的提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构;进一步掌握C语言中的重要数据结构;掌握并熟练运用指针,链表,结构体和文件等结构;提高程序开发哪里,能运用合理的控制流编写清晰高效的程序;培养C语言只是运用与自学能力,加强程序分析能力。2任务概述功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。3、进一步要求:完成设备按种类、按所属部门进行统计。3模块划分系统可设计为:实验设备信息写入模块实验设备信息输出模块.实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块结构体成员包括设备号,设备名称,设备领用人,设备所属部门,设备数量,设备购买时间,设备价格。4主要函数说明及其N-S图4.1主函数流程图输入数字numberTnumber==1Fchec()Tnumber==2Fadd()Tnumber==3Fdel()Tnumber==4Falt()Tnumber==5Fcount()Tnumber==0F退出系统4.2N-S图4.3查询记录图4.3设备管理系统进入菜单功能选择实验设备信息写入模块实验设备信息输出模块实验设备信息查询模块实验设备信息添加模块实验设备信息删除模块实验设备信息查询模块实验设备信息统计模块开始按要求查看记录结束4.4读入/写入文件图4.44.5添加数据图4.5开始定义文件指针判断文件是否可存在?写入数据关闭文件结束开始按要求输入信息完成一条记录的添加是否继续输入?结束创建一个文件TFTF4.6删除数据图4.64.7修改数据图4.74.8统计数据图4.8输入设备ID号进行删除操作结束开始输入要修改的ID号按要求修改数据结束开始选择统计方式显示统计结果结束开始5程序运行数据及其结果图5.1进入界面图5.2菜单&功能选择图5.3添加数据图5.4查看数据图5.5删除数据图5.6修改数据图5.7统计数据6课程设计心得经历了大一上半学期C语言课程,C语言笔试,C语言机试的“洗礼”,让我对C语言的有了进一步的认识,深深认识到自己学习的还不够,平时敲的代码也太少,作为一名软件工程的学生,感到深深的愧疚,对不起老师,对不起父母,更对不起自己,同时为自己将来毕业后的命运感到一份担忧。在大一下学期C语言实训中,不仅有网上已有成果的借鉴与分析,以及向同学的请教,还有相关资料的查阅,既加深了自身能力的认知与对自己不足的体会,也优化了和同学的关系,真可谓一举两得。同时还得出一个结论:亲身下河知深浅,亲口尝梨知酸甜!作为一名软件工程的学生,平时在电脑跟前敲代码的过程是必需的,谁也躲不了,一份努力,一份收获,同时,学习C语言需要细密又严谨的思维,良好的操作习惯,这样才有可能在编程的道路上百尺竿头更进一步!也希望各位老师、身边的同学监督,更需要自己的积极自省。期待三年后一个成熟优秀的自己!附录:#includestdio.h#includestdlib.h#includeconio.h#includestring.hvoidmenu();//功能选择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(){system(cls);inta;puts(\n\n\n\n\n\n请选择需要的功能:);puts(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();break;case3:del();break;case4:alt();break;case5:count();break;default:printf(信息有误!请检查后重新输入\n);}}voidread(){No=0;FILE*fp=fopen(D:\\infor.txt,r+);//读写功能if(fp==NULL){fp=fopen(D:\\infor.txt,w+);//若没有则创建一个txtfclose(fp);}inti;for(i=0;!feof(fp);i++){fread(&a[i],sizeof(structarray),1,fp);//一次读取一个No++;}No=No-1;fclose(fp);}voidwrite(){inti;FILE*fp=fopen(D:\\infor.txt,w+);for(i=0;iNo;i++)if(!a[i].del)fwrite(&a[i],sizeof(structarray),1,fp);fclose(fp);}voidchec(){inti;printf(设备号设备名称领用人所属部门数量购买时间价格\n);for(i=0;iNo;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();}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;iNo;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;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;iNo;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;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:{s
本文标题:c语言设备管理系统
链接地址:https://www.777doc.com/doc-5361859 .html