C语言课程设计报告——机房管理系统.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 机房 管理 系统
- 资源描述:
-
. . 目录 一. 设计容 二. 设计要求 〔1〕题目要求 〔2〕输入/输出要求 三. 整体设计思路 四. 流程图 〔1〕层次模块图 〔2〕空机号查询N—S图 五.主函数及功能菜单说明 六.各模块简要说明 七.心得体会 附录 一. 源程序代码 二. 各模块运行结果截图 一:设计容 题目:机房管理系统 设计机房管理系统,要求由菜单进展管理。 〔1〕上机前先检查是否有空机位,有那么将其显示出,无那么提示无空位。 〔2〕还有空位置时,运行进入,并记录下位置号以及序号,与上机时间。 〔3〕可对上机者上机信息进展查询,修改与删除。 〔4〕设计相关模块,显示上机者的上机费用。 〔5〕显示所有上机者的上机信息。 二:设计要求 题目要求: (1) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进展的操作工程。 (2) 要求以上功能分别用函数实现。 输入/输出要求: (1) 应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作工程。进入每个操作后,根据程序的提示输入相应的信息。 (2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据容、格式及完毕方式等。 三:整体设计思路 在设计该程序时,要将系统的不同功能分成各个模块。每个模块由一个函数定义,整个程序由函数调用来实现。每个模块是一个子函数,由一个主函数调用各个子函数。在定义子函数时,根据不同的功能选择不同的语句,如需要使用循环时可以用“do……while〞来实现;需要使用选择时可以用“switch〞或“if〞语句来实现等。 设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。每个模块由组员相应完成。另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋上上机者相关信息,防止管理员一个一个的给机子输入信息。 本系统程序关键在于一个空机位的检索,亦是本程序核心之所在。本程序是通过给StudentList[time]赋值为0或1分别实现空机号的判断。0代表无人上机,及为空机号,反之1代表有人上机,及不为空机号。 本程序通过定义构造体,包括XX[name],机号[seat],学号[stu_num],上机时间[time]四个成员。具体如下; Struct student_info{char name[10]; int seat; Long stu_num; int time;} 四:流程图 层次模块图 主菜单 退出系统 上课模式模块 显示所有上机信息模块 显示上机费用模块 删除上机信息模块 修改上机信息模块 查询上机情况模块 空机号查询模块 学生信息输入模块 空机号查询N—S图 i=0,k=0 for(i=0;i<80;i++) StudentList[i].time==0 Y N 输出i; Y k==0 N K=1 输出 “无空机位〞 空机号检索是本程序的核心,本程序的其它几个模块皆是通过先对空机号的判断然后进展下去的〔及先对StudentList[time]的值进展0或1的判断〕。例如“显示所有上机信息模块〞,我们小组通过一个for循环语句,从机号0—79号逐一判断,符合条件那么将其输出。而判断的标准就是if(StudentList[i].time!=0)。N—S图如下所示: i=0 for(i=0;i<80;i++) StudentList[i].time!=0 Y N 输出上机信息 不输出 其它模块类似,流程图省略。 五:主函数及功能菜单说明 在主函数之前,我们首先定义了一个构造体,同时进展了相关函数的声明。其中,构造体包括:XX[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选择语句并结合do……while循环的方法,通过人为的输入来实现菜单的操作。为美化菜单,我们加上相应的头文件#include<stdlib.h>,再加上相应的颜色函数:system( "color 5A "),从而成功使系统界面背景颜色与字体分别变成紫色与绿色。 系统菜单界面截图 六:各模块简要说明 学生信息输入模块 学生信息输入模块是本系统的第一个模块,亦是本系统尤为关键的一个模块。下面的模块能够正常运行,皆离不开这一模块。 结合主函数,我们在输入上机者信息时,我们通过对 StudentList[i].time进展0或1的判断,对整个机房进展一个空机号的检索,检查是否有空机号,有那么执行输入功能,无那么输出“机房已满〞信息。当然,管理员亦能先执行第二个模块:空机号检索模块,先检索出空机,再让上机者选择机号上机。 空机号查询模块 详见上文流程图局部的介绍。 查询、修改、删除、显示上机信息模块 这四个模块采用的设计思路根本一致,皆通过对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; strcpy(StudentList[i].name,""); } 七:心得体会 C语言程序设计是本学期才开的课,虽然到现在已经告一段落,不过现在回想,觉得经过大半个学期的学习,自己确实学到了不少东西,不过依然只是个入门者,经后还得靠自己继续学习,加强。 这次C语言课程设计,在我们小组开场准备时,大家几乎都是一头雾水,尤其是我这个当组长的,更是不知该如何给小组成员分配任务,这也是我遇到的第一个难题。后来在学习函数并且与其它小组讨论之后,渐渐有了眉目。于是我决定按功能模块给小组成员分配任务,我们这个小组根本上是一人负责一个模块,而我在负责“删除上机信息模块〞的同时,也担负起主函数与连接各个模块的任务。在这个过程中我于是遇到了第二个困难。 这第二个困难就是如何利用“构造体〞。说句实话,在我们小组开场着手准备之时连构造体都弄不清楚,因为压根就还没学到此局部。但在自己查阅相关书籍以及与同学讨论再加上后来教师在“构造体〞一章中的讲解,我们终于在最后用构造体完成了此次课程设计。 此次的课程设计之所以能够顺利完成也离不开组员之间的团结协作。比方在此次课程设计中,起初大家都不知道该如何将各个局部连接起来,也就是说该如何选取一个统一的判断标准。后来在经过组员的讨论并亲自实践调试之后,大家得到了一致的意见。从本系统源程序代码中可以大家可以发现,我们小组所编写的程序的核心就是空机号的判断,及上文所提到的StudentList[j].time值的判断。(Student[i].time==0表示空机号,等于1那么表示非空极号,有人正在操作此机〕。于是在接下来的模块编写时,我们小组成员都严格的统一遵照此规定完成了接下来的任务。例如“显示所有上机信息模块〞,我们小组就是通过一个for循环语句,通过逐一检查,遇到符合条件的那么将其输出。而我们的判断标准就是Student[i].time的值为零那么不输出,不为零那么将其输出。 因为在这次C语言课程设计中,我们小组可谓经历了一次“自学大作战〞,因此我们也逐渐感受到了自学的妙处,我想这必将会对我今后的学习产生一定的积极影响。例如在我们小组根本完成设计之后,我们觉得主界面不够美观,是否可以改进一下呢?于是我们通过上网查阅了相关的资料,发现我们其实可以给主界面以及字体加点背景颜色,而这项工作也并不是很难,只需要调用库函数中的颜色函数。于是我们在主函数中加上System〔"color 0A"),并加上相应的头文件#include<stdlib.h>。于是我们就成功实现了这一功能,给该程序主界面赋上了紫色,字体也变为了绿色。 在课程设计中,收获知识,提高能力的同时,我也学到了很多人生哲理,懂得怎样去制定方案,怎么样去实现这个方案,并掌握了在执行过程中如何去抑制心理上的不良情绪,因此在以后的生活和学习过程中,我一定会把课程设计的精神带到生活中,不畏困难,勇往直前! 附录 一:源程序代码 #include<stdio.h> #include<string.h> #include<stdlib.h> #define MaxSize 80 struct student_info { char name[10]; //XX int seat; //机号 long stu_num; //学号 int time; //上机时间 }StudentList[MaxSize]; void Insert(); void Empty(); void Search(); void Update(); void Delete(); void Dispallmoney(); void Show(); void Class(); int main() { int i,j; system("color 5A"); //字体和背景颜色 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"); printf("\t\t\t9------退出〔Exit〕\n"); scanf("%d",&i); //承受用户的选择 switch(i) {case 1:Insert(); //调用学生信息输入函数 break; case 2:Empty(); //调用空机号检索函数 break; case 3:Search(); //调用上机信息查询函数 break ; case 4:Update(); //调用上机信息修改函数 break; case 5:Delete(); break; case 6:Dispallmoney(); //调用计费函数 break; case 7:Show(); //调用上机信息全显示函数 break; case 8:Class(); //调用机房上课模式函数 break; case 9:break; default:printf("错误选择!请重选");break; } }while(i!=9); return 0; } void Insert() { int i,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("请输入上机者XX:"); scanf("%s",StudentList[i].name); printf("请输入上机者学号:"); scanf("%ld",&StudentList[i].stu_num); printf("请输入上机时间:"); scanf("%d",&StudentList[i].time); } void Empty() { int i,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;} } void Search() {int i; printf("请输入要查询的机号:"); scanf("%d",&i); if(StudentList[i].time!=0) //判断标准,检索到那么输出 {printf("XX:%s\t",StudentList[i].name); printf("学号:%ld\t",StudentList[i].stu_num); printf("上机时间:%d\t",StudentList[i].time); } else printf("没有查询到!"); } void Update() {int i; printf("请输入要修改数据的机号:"); scanf("%d",&i); if(StudentList[i].time!=0) //判断标准,检索到那么输出 { printf("请输入XX:"); scanf("%s",StudentList[i].name); printf("请输入学号:"); scanf("%ld",&StudentList[i].stu_num); printf("请输入上机时间:"); scanf("%d",&StudentList[i].time); } else printf("没有查询到可以修改的数据!"); } void Delete() {int i; printf("请输入要删除信息的机号:"); scanf("%d",&i); if(StudentList[i].time==0) printf("无需修改!"); StudentList[i].time=0; strcpy(StudentList[i].name,""); } void Dispallmoney() {int i,money; printf("请输入结账机号:"); scanf("%d",&i); money=2*StudentList[i].time;//计费采用公式:时间*每次的费用,简单计算 printf("您的上机费用为:%d",money);} void Show() {int i; printf("\n"); printf("机号\tXX\t学号\t\t上机时间\n"); for(i=0;i<80;i++) if(StudentList[i].time!=0) //判断标准,检索到那么输出 {printf("%d\t",StudentList[i].seat); printf("%s\t",StudentList[i].name); printf("%ld\t\t",StudentList[i].stu_num); printf("%d\n",StudentList[i].time); } } void Class() { int i,n; printf("请输入上课时间:\n"); scanf("%d",&n); for(i=0;i<80;i++) //给所有机子上机时间统一赋值,所有机子开启 { StudentList[i].time=n; StudentList[i].stu_num=0; strcpy(StudentList[i].name,""); } } 二:各模块运行结果截图 1.主菜单界面 2.学生信息输入界面 3. 空机号查询界面 〔注意:Mike所上的12号机已经没有显示。〕 4. 查询上机信息界面 5. 修改上机信息界面 〔注意:从所截图中可看出12号机信息已经修改成功。〕 6. 删除上机信息界面 〔注意:从所截图中可看出12号机信息已经成功删除。〕 7. 显示学生上机费用界面 8. 显示所有上机信息界面 9. 上课模式界面 〔注意:从截图中可以看出机房成功开启上课模式。〕 . .word.zl.展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




C语言课程设计报告——机房管理系统.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4517752.html