版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..目录一.设计内容二.设计要求(1)题目要求(2)输入/输出要求三.整体设计思路四.流程图(1)层次模块图(2)空机号查问N—S图五.主函数及功能菜单说明六.各模块简要说明七.心得领会附录一.源程序代码二.各模块运转结果截图word教育资料..一:设计内容题目:机房管理系统设计机房管理系统,要求由菜单进行管理。1)上机前先检查能否有空机位,有则将其显示出,无则提示无空位。2)还有空地点时,运转进入,并记录下地点号以及序号,与上机时间。3)可对上机者上机信息进行查问,改正与删除。4)设计有关模块,显示上机者的上机花费。5)显示全部上机者的上机信息。二:设计要求题目要求:(1)为各项操作功能设计一个菜单。应用程序运转后,先显示这个菜单,而后用户经过菜单项选择希望进行的操作项目。(2)要求以上功能分别用函数实现。输入/输出要求:(1)应用程序运转后,先显示一个菜单,而后用户依据需要选择相应的操作项目。进入每个操作后,依据程序的提示输入相应的信息。(2)要求用户输入数据时,要给出清楚、明确的提示信息,包含输入的数据内容、格式及结束方式等。三:整体设计思路在设计该程序时,要将系统的不一样功能分红各个模块。每个模块由一个函数word教育资料..定义,整个程序由函数调用来实现。每个模块是一个子函数,由一个主函数调用各个子函数。在定义子函数时,依据不一样的功能选择不一样的语句,如需要使用循环时能够用“dowhile”来实现;需要使用选择时能够用“switch”或“if”语句来实现等。设计以菜单方式工作的机房管理系统,主要包含六个模块,分别是上机者信息输入模块,上机者信息查问模块,上机者信息改正模块,上机者信息删除模块,上机者上机花费计算模块,全部上机者信息显示模块。每个模块由组员相应达成。其他考虑到机房的特别要求,新增一个上课模式,此模式功能是将全部机子开启,一致赋上上机者有关信息,防范管理员一个一个的给机子输入信息。本系统程序要点在于一个空机位的检索,亦是本程序核心之所在。本程序是经过给StudentList[time]赋值为0或1分别实现空机号的判断。0代表无人上机,及为空机号,反之1代表有人上机,及不为空机号。本程序经过定义构造体,包含姓名[name],机号[seat],学号[stu_num],上机时间[time]四个成员。详细以下;Structstudent_info{charname[10];intseat;Longstu_num;inttime;}word教育资料..四:流程图层次模块图主菜单学空查修删显显上退生机询改除示示课出信号上上上上所模系息查机机机机有式统输询情信信费上模入模况息息用机块模块模模模模信块块块块块息模块空机号查问N—S图i=0,k=0for(i=0;i<80;i++)StudentList[i].time==0YN输出i;Yk==0K=1输出“无空机位”
N空机号检索是本程序的核心,本程序的其他几个模块皆是经过先对空机号的判毅而后进行下去的(及先对StudentList[time]的值进行0或1的判断)。例如“显示全部上机信息模块”,我们小组经过一个for循环语句,从机号0—79号逐个判断,符合条件则将其输出。而判断的标准就是if(StudentList[i].time!=0)。N—S图以下所示:word教育资料..i=0for(i=0;i<80;i++)StudentList[i].time!=0YN输出上机信息不输出其他模块近似,流程图省略。五:主函数及功能菜单说明在主函数以前,我们第一定义了一个构造体,同时进行了有关函数的申明。此中,构造体包含:姓名[name],机号[seat],学号[stu_num],上机时间[time]四个成员。在主函数中,我们定义了一个变量j,经过一个for循环语句,从j=0到j=80,分别给全部机子编号,同时给全部机子的上机时间赋以初值0,即:for(j=0;j<80;j++){StudentList[j].time=0;StudentList[j].seat=j;}从而为空机号的检索以及下边各个模块顺利的连结编译做下铺垫。而功能菜单的实现,我们采纳的是switch选择语句并联合dowhile循环的方法,经过人为的输入来实现菜单的操作。为美化菜单,我们加上相应的头文件#include<stdlib.h>,再加上相应的颜色函数:system("color5A"),word教育资料..从而成功使系统界面背景颜色与字体分别变为紫色与绿色。系统菜单界面截图六:各模块简要说明学生信息输入模块学生信息输入模块是本系统的第一个模块,亦是本系统尤其要点的一个模块。下边的模块能够正常运转,皆离不开这一模块。联合主函数,我们在输入上机者信息时,我们经过对StudentList[i].time进行0或1的判断,对整个机房进行一个空机号的检索,检查能否有空机号,有则履行输入功能,无则输出“机房已满”信息。自然,管理员亦能先履行第二个模块:空机号检索模块,先检索出空机,再让上机者选择机号上机。空机号查问模块详见上文流程图部分的介绍。查问、改正、删除、显示上机信息模块word教育资料..这四个模块采纳的设计思路基本一致,皆经过对StudentList[i].time的值进行0或1的判断,达到功能的实现。比方:查问上机信息模块。在此模块中,设计者经过一个if的判断语句(即:if(StudentList[i].time!=0)),对管理员所输入机号进行一个能否为空机号的判断,若检测到所输机号是空机号(即:StudentList[i].time=0)时,则不输出有关信息,反之,输出有关上机者信息。显示上机花费模块此模块采纳的是时间乘上每单位时间的花费的计费方式来进行计费的。在本系统中,我们规定每小时上机花费是2元,经过调用在“学生信息输入模块”中所输入的上机时间(即:StudentList[i].time)乘上此花费,从而获得上机者上机花费。上课模式模块此模块为本系统新增模块,是依据机房某些时候的特别需要设计的,旨在能够方便管理员一次性输入数据。而为达到这一功能,我们采纳了一个for循环语句,从0号机向来到79号机一致赋上同样的上机时间,学号。For循环语句如下:for(i=0;i<80;i++){StudentList[i].time=n;StudentList[i].stu_num=0;word教育资料..strcpy(StudentList[i].name,"");}七:心得领会C语言程序设计是本学期才开的课,固然到此刻已经告一段落,可是此刻回想,感觉经过大部分个学期的学习,自己的确学到了许多东西,可是依旧不过个入门者,经后还得靠自己连续学习,增强。此次C语言课程设计,在我们小组开始准备时,大家几乎都是一头雾水,尤其是我这个当组长的,更是不知该如何给小构成员分派任务,这也是我碰到的第一个难题。此后在学习函数而且与其他小组谈论以后,逐渐有了眉目。于是我决定按功能模块给小构成员分派任务,我们这个小组基本上是一人负责一个模块,而我在负责“删除上机信息模块”的同时,也担负起主函数与连结各个模块的任务。在这个过程中我于是碰到了第二个困难。这第二个困难就是如何利用“构造体”。说句真话,在我们小组开始着手准备之时连构造体都弄不清楚,由于压根就还没学到此部分。但在自己查阅有关书籍以及与同学谈论再加上此后老师在“构造体”一章中的解说,我们终于在最后用构造体达成了此次课程设计。此次的课程设计之所以能够顺利达成也离不开组员之间的团结协作。比方在此次课程设计中,开初大家都不知道该如何将各个部分连结起来,也就是说该如何采纳一个一致的判断标准。此后在经过组员的谈论并亲身实践调试以后,大家获得了一致的建议。从本系统源程序代码中能够大家能够发现,我们小组所编写的程序的核心就是空机号的判断,及上文所提到的StudentList[j].time值的判断。(Student[i].time==0表示空机号,等于1则表示非空极号,有人正在操作word教育资料..此机)。于是在接下来的模块编写时,我们小构成员都严格的一致依照此规定完成了接下来的任务。比方“显示全部上机信息模块”,我们小组就是经过一个for循环语句,经过逐个检查,碰到符合条件的则将其输出。而我们的判断标准就是Student[i].time的值为零则不输出,不为零则将其输出。由于在此次C语言课程设计中,我们小组堪称经历了一次“自学大作战”,所以我们也逐渐感觉到了自学的妙处,我想这势必会对我此后的学习产生必定的踊跃影响。比方在我们小组基本达成设计以后,我们感觉主界面不够雅观,能否能够改良一下呢?于是我们经过上网查阅了有关的资料,发现我们其实能够给主界面以及字体加点背景颜色,而这项工作也其实不是很难,只要要调用库函数中的颜色函数。于是我们在主函数中加上System("color0A"),并加上相应的头文件#include<stdlib.h>。于是我们就成功实现了这一功能,给该程序主界面赋上了紫色,字体也变为了绿色。在课程设计中,收获知识,提升能力的同时,我也学到了好多人生真理,懂得如何去拟定计划,怎么样去实现这个计划,并掌握了在履行过程中如何去战胜心理上的不良情绪,所以在此后的生活和学习过程中,我必定会把课程设计的精神带到生活中,不畏困难,一往无前!word教育资料..附录一:源程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMaxSize80structstudent_info{charname[10];//姓名intseat;//机号longstu_num;//学号inttime;//上机时间}StudentList[MaxSize];voidInsert( );voidEmpty( );voidSearch( );voidUpdate( );voidDelete( );voidDispallmoney( );voidShow( );voidClass( );intmain( )word教育资料..{inti,j;system("color5A");//字体和背景颜色for(j=0;j<80;j++){StudentList[j].time=0;//给全部机子上机时间赋值为0,代表空机StudentList[j].seat=j;//给全部机子编号}printf("\t\t\t*****************************\n\n");//显示一个简单菜单printf("\t\t\t欢迎使用机房管理系统\n\n");printf("\t\t\t*****************************\n\n");do{printf("\n");printf("\t\t\t1------输入学生信息(Insert)\n");printf("\t\t\t2------查问空机位(Empty)\n");printf("\t\t\t3------查问上机状况(Search)\n");printf("\t\t\t4------改正上机信息(Update)\n");printf("\t\t\t5------删除上机信息(Delete)\n");printf("\t\t\t6------显示学生上机花费(Dispallmoney)\n");printf("\t\t\t7------显示全部上机信息(Show)\n");printf("\t\t\t8------上课模式(Class)\n");word教育资料..printf("\t\t\t9------退出(Exit)\n");scanf("%d",&i);//接受用户的选择switch(i){case1:Insert( );//调用学生信息输入函数break;case2:Empty( );//调用空机号检索函数break;case3:Search( );//调用上机信息查问函数break;case4:Update( );//调用上机信息改正函数break;case5:Delete( );break;case6:Dispallmoney( );//调用计费函数break;case7:Show( );//调用上机信息全显示函数break;case8:Class( );//调用机房上课模式函数break;case9:break;default:printf("错误选择!请重选");break;}word教育资料..}while(i!=9);return0;}voidInsert( ){inti,k=0;for(i=0;i<80;i++){if(StudentList[i].time==0)//检测机房能否有空机位k=1;}if(k==0){printf("机房已满!");return;}printf("请输入机号:");scanf("%d",&i);if(i>=80){printf("请输入小于80的整数");return;}if(StudentList[i].time!=0){printf("已经有人正在操作此机:");return;}printf("请输入上机者姓名:");word教育资料..scanf("%s",StudentList[i].name);printf("请输入上机者学号:");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时间:");scanf("%d",&StudentList[i].time);}voidEmpty( ){inti,k=0;printf("空机号为:\n");for(i=0;i<80;i++)//检测空机号并将其输出{if(StudentList[i].time==0){printf("%d\t",i);k=1;}}if(k==0){printf("无空机位!");return;}}word教育资料..voidSearch( ){inti;printf("请输入要查问的机号:");scanf("%d",&i);if(StudentList[i].time!=0)//判断标准,检索到则输出{printf("姓名:%s\t",StudentList[i].name);printf("学号:%ld\t",StudentList[i].stu_num);printf("上机时间:%d\t",StudentList[i].time);}elseprintf("没有查问到!");}voidUpdate( ){inti;printf("请输入要改正数据的机号:");scanf("%d",&i);if(StudentList[i].time!=0)//判断标准,检索到则输出word教育资料..{printf("请输入姓名:");scanf("%s",StudentList[i].name);printf("请输入学号:");scanf("%ld",&StudentList[i].stu_num);printf("请输入上机时间:");scanf("%d",&StudentList[i].time);}elseprintf("没有查问到能够改正的数据!");}voidDelete( ){inti;printf("请输入要删除信息的机号:");scanf("%d",&i);if(StudentList[i].time==0)printf("无需改正!");StudentList[i].time=0;strcpy(StudentList[i].name,"");word教育资料..}voidDispallmoney( ){inti,money;printf("请输入结账机号:");scanf("%d",&i);money=2*StudentList[i].time;//计费采纳公式:时间*每次的花费,简单计算printf("您的上机花
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44898-2024基本公共服务均等化评价通则
- 六下语文第九课教学课件教学课件教学
- 2024年度美发店财务管理合同
- 2024年度版权转让合同转让标的及转让价格
- 2024年度成都软件开发项目合作运营合同
- 《食物营养与健康》课件
- 2024年度股权转让合同:某互联网公司5%股权转让
- 2024年度美容院设备采购合同
- 2024年度融资租赁合同修改要点2篇
- 2024年度广告代理合同:广告主甲方与广告代理乙方关于广告业务代理
- 2024秋初中化学九年级上册教学设计(教案)跨学科实践活动5
- 【教案】流体压强与流速的关系(教学设计)人教版物理八年级下学期
- 定制旅游行业市场深度分析报告
- 历史人教部编版七年级(上册)3.10秦末农民大起义2024版新教材
- 《寂静的春天》参考课件8
- Unit 6 Is he your grandpa?第一课时(教学设计+素材)-2023-2024学年译林版(三起)(2024)英语三年级上册
- Unit 2 Section B (1a-1d)教学设计 2023-2024学年人教版英语七年级上册
- 2024年新冀教版一年级上册数学课件 我上学了 2分享幼儿园生活
- 强度计算.结构分析:屈曲分析的有限元方法
- 事业单位考试题库:公文写作能力测试试题及答案
- WAT电性参数介绍-2022年学习资料
评论
0/150
提交评论