机房管理系统(共24页).doc

上传人:飞****2 文档编号:12317749 上传时间:2022-04-24 格式:DOC 页数:24 大小:1.03MB
返回 下载 相关 举报
机房管理系统(共24页).doc_第1页
第1页 / 共24页
机房管理系统(共24页).doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《机房管理系统(共24页).doc》由会员分享,可在线阅读,更多相关《机房管理系统(共24页).doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课 程 设 计 说 明 书课程名称: 高级语言程序设计 设计题目: 机房管理系统 院 部: 计算机科学与信息工程学院 学生姓名: 学 号: 专业班级: 物联网工程 指导教师: 周 晏 2015年 6月课 程 设 计 任 务 书设计题目机房管理系统学生姓名李文坡所在院部计算机科学与信息工程学院专业、班级物联网工程14-1设计要求:完成一个机房管理系统,具体要求如下: 1. 输入学生信息 2. 查询空机位 3. 查询上机情况 4. 修改上机信息 5. 删除上机信息 6. 显示学生上机费用 7. 显示所有上机信息 8.上课模式 9.退出学生应完成的工作:1. 学生应认真学习

2、参考程序,理解每个文件、每个函数以及各个变量的作用和意义。在此基础上进一步改进程序,最后正确地运行程序。2. 对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。测试时应注意对各种边缘情况进行测试。3. 完成课程设计报告。参考文献:1. 梁旭等 C程序设计课程设计 电子工业出版社 20112. 谭浩强 C程序设计(第四版) 清华大学出版社2010工作计划:1. 小组审题,查阅资料,进行设计前的必要资料准备(3天)。 2. 把程序完整运行出来(4天)。 3. 增加改进程序(3天)。 4. 写课程设计报告(3天)。 5. 提交课程设计报告及答辩(1天)任务下达日期:2

3、015 年 6 月 9 日 任务完成日期:2015 年 6 月 22 日指导教师(签名): 学生(签名):李文坡目 录专心-专注-专业机房管理系统一 前言设计以菜单方式工作的机房管理系统,主要包括六个模块,分别是上机者信息输入模块,上机者信息查询模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块。每个模块由组员相应完成。另外考虑到机房的特殊要求,新增一个上课模式,此模式功能是将所有机子开启,统一赋予上机者相关信息,避免管理员一个一个的给机子输入信息。二 需求分析1 要求(1)用C语言实现程序设计;(2)定义各个函数分别完成不同功能,如背景设计,判断等;

4、(3)画出查询空机号模块的流程图;(4)系统的各个功能用函数调用的形式实现;(5)界面友好(良好的人机互交),程序要有注释。2 任务(1)定义各类头文件,变量及宏定义;(2)写出详细设计过程;(3)改进或增加模块;(4)各个模块运行情况;(5)编写代码;(6)程序分析与调试。3 运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境(3)WINDOWS8/8.1系统4 开发工具C语言三 概要设计1 模块组成图。主要包括8个模块,分别是学生信息输入模块,空机号查询模块,查询上机情况模块,上机者信息修改模块,上机者信息删除模块,上机者上机费用计算模块,所有上机者信息显示模块

5、,上课模式模块。如图 3-1所示。图3-1 功能模块图2 空机号查询函数流程图。空机号检索是本程序的核心,本程序的其它几个模块皆是通过先对空机号的判断然后进行下去的(及先对StudentListtime的值进行0或1的判断)。例如“显示所有上机信息模块”,我们小组通过一个for循环语句,从机号079号逐一判断,符合条件则将其输出。而判断的标准就是if(StudentListi.time!=0)。如图3-2所示。图 3-2 空机号查询流程图四 详细设计在主函数之前,我们首先定义了一个结构体,同时进行了相关函数的声明。其中,结构体包括:姓名name,机号seat,学号stu_num,上机时间tim

6、e四个成员。在主函数中,我们定义了一个变量j,通过一个for循环语句,从j=0到j=80,分别给所有机子编号,同时给所有机子的上机时间赋以初值0,从而为空机号的检索以及下面各个模块顺利的连接编译做下铺垫。为美化菜单,我们加上相应的头文件#include,再加上相应的颜色函数:system( color 3A ),从而成功使系统界面背景颜色与字体分别变成紫色与绿色。代码如下。#include#include#include #define MaxSize 80struct student_info char name10; /姓名 int seat; /机号 long stu_num; /学号

7、int time; /上机时间 StudentListMaxSize;void Insert();void Empty();void Search();void Update();void Delete();void Dispallmoney();void Show();void Class();int main() int i,j;system(color 3A); /字体和背景颜色 for(j=0;j80;j+) StudentListj.time=0; /给所有机子上机时间赋值为0,代表空机 StudentListj.seat=j; /给所有机子编号 printf(ttt*nn);/显示

8、一个简易菜单 printf(ttt 欢迎使用机房管理系统nn); printf(ttt*nn); do printf(n); printf(ttt1-输入学生信息(Insert)n); printf(ttt2-查询空机位(Empty)n); printf(ttt3-查询上机情况(Search)n); printf(ttt4-修改上机信息(Update)n); printf(ttt5-删除上机信息(Delete)n); printf(ttt6-显示学生上机费用(Dispallmoney)n); printf(ttt7-显示所有上机信息(Show)n); printf(ttt8-上课模式(Clas

9、s)n); printf(ttt9-退出(Exit)n);学生信息输入模块和空机号查询模块学生信息输入模块是本系统的第一个模块,亦是本系统尤为关键的一个模块。下面的模块能够正常运行,皆离不开这一模块。结合主函数,我们在输入上机者信息时,我们通过对 StudentListi.time进行0或1的判断,对整个机房进行一个空机号的检索,检查是否有空机号,有则执行输入功能,无则输出“机房已满”信息。代码如下。 int i,k=0; for(i=0;i=80) printf(请输入小于80的整数);return; if(StudentListi.time!=0) printf(已经有人正在操作此机:);

10、return; printf(请输入上机者姓名:); scanf(%s,StudentListi.name); printf(请输入上机者学号:); scanf(%ld,&StudentListi.stu_num); printf(请输入上机时间:); scanf(%d,&StudentListi.time);查询、修改、删除、显示上机信息模块这四个模块采用的设计思路基本一致,皆通过对StudentListi.time的值进行0或1的判断,达到功能的实现。例如:查询上机信息模块。在此模块中,设计者通过一个if的判断语句(即:if(StudentListi.time!=0) ),对管理员所输入机

11、号进行一个是否为空机号的判断,若检测到所输机号是空机号(即:StudentListi.time=0)时,则不输出相关信息 ,反之,输出相关上机者信息。代码如下。void Empty() int i,k=0; printf(空机号为:n); for(i=0;i80;i+) /检测空机号并将其输出 if(StudentListi.time=0) printf(%dt,i); k=1; if(k=0) printf(无空机位!);return;void Search()int i; printf(请输入要查询的机号:); scanf(%d,&i); if(StudentListi.time!=0)

12、/判断标准,检索到则输出 printf(姓名:%st,StudentListi.name); printf(学号:%ldt,StudentListi.stu_num); printf(上机时间:%dt,StudentListi.time); else printf(没有查询到!);void Update()int i; printf(请输入要修改数据的机号:); scanf(%d,&i); if(StudentListi.time!=0) /判断标准,检索到则输出 printf(请输入姓名:); scanf(%s,StudentListi.name); printf(请输入学号:); scan

13、f(%ld,&StudentListi.stu_num); printf(请输入上机时间:); scanf(%d,&StudentListi.time); else printf(没有查询到可以修改的数据!);void Delete()int i; printf(请输入要删除信息的机号:); scanf(%d,&i); if(StudentListi.time=0) printf(无需修改!); StudentListi.time=0; strcpy(StudentListi.name,);显示上机费用模块此模块采用的是时间乘上每单位时间的费用的计费方式来进行计费的。在本系统中,我们规定每小时

14、上机费用是2元,通过调用在“学生信息输入模块”中所输入的上机时间(即:StudentListi.time)乘上此费用,从而得到上机者上机费用。代码如下。void Dispallmoney()int i,money; printf(请输入结账机号:); scanf(%d,&i); money=2*StudentListi.time;/计费采用公式:时间*每次的费用,简单计算 printf(您的上机费用为:%d,money);五 改进或增加功能模块说明上课模式模块此模块为本系统新增模块,是根据机房某些时候的特殊需要设计的,旨在能够方便管理员一次性输入数据。而为达到这一功能,我们采用了一个for循环

15、语句,从0号机一直到79号机统一赋上相同的上机时间,学号。代码如下。void Class() int i,n; printf(请输入上课时间:n); scanf(%d,&n); for(i=0;i80;i+) /给所有机子上机时间统一赋值,所有机子开启 StudentListi.time=n; StudentListi.stu_num=0; strcpy(StudentListi.name,); 六 程序测试1 测试系统能否正确显示菜单界面执行程序后,显示本系统的界面,进行模块选择,如图3-3所示。图 3-3 模式选择界面2 测试输入信息模块能否正确输入信息该模块能正常输入信息,如图3-4所示

16、。 图 3-4 信息输入 3 测试查询空机位模块是否正常查询空机位模块正常,如图3-5所示。图 3-5 空机位查询 4 测试查询上机情况模块是否正常上机情况模块正常,如图3-6所示。图 3-6 上机情况5 测试修改上机信息模块是否正常修改上机信息模块正常,如图3-7所示。图 3-7 修改信息6 测试删除信息模块是否正常删除信息模块正常,如图3-8所示。图 3-8 删除信息7 测试显示学生上机费用模块是否正常 学生上机费用模块正常,如图3-9所示。图 3-9 上机费用8 测试显示所有上机信息模块是否正常显示所有上机信息模块正常,如图3-10,3-11,3-12,3-13所示。图 3-10 上机信

17、息图 3-11 上机信息图 3-12 上机信息图 3-13 上机信息8 测试上课模块是否正常上课模块正常,如图3-14,3-15,3-16,3-17,3-18所示。图 3-14 上课模块图 3-15 上课模块图 3-16 上课模块图 3-17 上课模块图 3-18 上课模块9 测试退出模块是否正常退出模块正常,如图3-19所示。图 3-19 退出模块七 课程设计总结C语言程序这门课,虽然到现在已经告一段落,不过现在回想,觉得经过两个学期的学习,自己的确学到了不少东西,不过依然只是个入门者,以后还得靠自己继续学习,加强。这次C语言课程设计,困难之处就是如何利用“结构体”。说句实话,在我开始着手准

18、备之时连结构体都弄不清楚,因为压根就没学会此部分。但在自己查阅相关书籍以及上网搜索后,我终于在最后用结构体完成了此次课程设计。此次的课程设计所编写的程序的核心就是空机号的判断,及上文所提到的StudentListj.time值的判断。(Studenti.time=0表示空机号,等于1则表示非空极号,有人正在操作此机)。重要之处还有“显示所有上机信息模块”,就是通过一个for循环语句,通过逐一检查,遇到符合条件的则将其输出。而判断标准就是Studenti.time的值为零则不输出,不为零则将其输出。由于在这次C语言课程设计中,我可谓经历了一次“自学大作战”,因此我也逐渐感受到了自学的妙处,我想这

19、必将会对我今后的学习产生一定的积极影响。例如在我基本完成设计之后,我觉得主界面不够美观,是否可以改进一下呢?于是我通过上网查阅了相关的资料,发现我其实可以给主界面以及字体加点背景颜色,而这项工作也并不是很难,只需要调用库函数中的颜色函数。于是我在主函数中加上System(color 3A),并加上相应的头文件#include。于是我就成功实现了这一功能,给该程序主界面赋上了湖蓝色背景,字体也变为了淡绿色。在课程设计中,收获知识,提高能力的同时,我也学到了很多人生哲理,懂得怎样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中如何去克服心理上的不良情绪,因此在以后的生活和学习过程中,我一定会

20、把课程设计的精神带到生活中,不畏艰难,勇往直前!八 致 谢 经过两个多星期的努力,终于把本程序改写出来,在这期间要感谢各同学对我帮助和支持,同时也感谢程序老师对我的教导。九 参考文献1 梁旭等 C程序设计课程设计 电子工业出版社 2011.2 谭浩强 C程序设计(第四版) 清华大学出版社2010.3 张福祥. C语言程序设计M. 辽宁大学出版社,2008.14 张福祥,王萌C语言程序设计习题解答与实验实训M沈阳:辽宁大学出版社,20085 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁道出版社,2008十 源程序#include#include#include #define MaxSiz

21、e 80struct student_info char name10; /姓名 int seat; /机号 long stu_num; /学号 int time; /上机时间 StudentListMaxSize;void Insert();void Empty();void Search();void Update();void Delete();void Dispallmoney();void Show();void Class();int main() int i,j;system(color 3A); /字体和背景颜色 for(j=0;j80;j+) StudentListj.tim

22、e=0; /给所有机子上机时间赋值为0,代表空机 StudentListj.seat=j; /给所有机子编号 printf(ttt*nn);/显示一个简易菜单 printf(ttt 欢迎使用机房管理系统nn); printf(ttt*nn); do printf(n); printf(ttt1-输入学生信息(Insert)n); printf(ttt2-查询空机位(Empty)n); printf(ttt3-查询上机情况(Search)n); printf(ttt4-修改上机信息(Update)n); printf(ttt5-删除上机信息(Delete)n); printf(ttt6-显示学生

23、上机费用(Dispallmoney)n); printf(ttt7-显示所有上机信息(Show)n); printf(ttt8-上课模式(Class)n); printf(ttt9-退出(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(); brea

24、k; 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) printf(请输入小于80的整数);return; if(StudentListi.time!=0) printf(已经有人正在操作此机:);return; pr

25、intf(请输入上机者姓名:); scanf(%s,StudentListi.name); printf(请输入上机者学号:); scanf(%ld,&StudentListi.stu_num); printf(请输入上机时间:); scanf(%d,&StudentListi.time);void Empty() int i,k=0; printf(空机号为:n); for(i=0;i80;i+) /检测空机号并将其输出 if(StudentListi.time=0) printf(%dt,i); k=1; if(k=0) printf(无空机位!);return;void Search()

26、int i; printf(请输入要查询的机号:); scanf(%d,&i); if(StudentListi.time!=0) /判断标准,检索到则输出 printf(姓名:%st,StudentListi.name); printf(学号:%ldt,StudentListi.stu_num); printf(上机时间:%dt,StudentListi.time); else printf(没有查询到!);void Update()int i; printf(请输入要修改数据的机号:); scanf(%d,&i); if(StudentListi.time!=0) /判断标准,检索到则输出

27、 printf(请输入姓名:); scanf(%s,StudentListi.name); printf(请输入学号:); scanf(%ld,&StudentListi.stu_num); printf(请输入上机时间:); scanf(%d,&StudentListi.time); else printf(没有查询到可以修改的数据!);void Delete()int i; printf(请输入要删除信息的机号:); scanf(%d,&i); if(StudentListi.time=0) printf(无需修改!); StudentListi.time=0; strcpy(Studen

28、tListi.name,);void Dispallmoney()int i,money; printf(请输入结账机号:); scanf(%d,&i); money=2*StudentListi.time;/计费采用公式:时间*每次的费用,简单计算 printf(您的上机费用为:%d,money);void Show()int i; printf(n); printf(机号t姓名t学号tt上机时间n); for(i=0;i80;i+) if(StudentListi.time!=0) /判断标准,检索到则输出 printf(%dt,StudentListi.seat); printf(%st

29、,StudentListi.name); printf(%ldtt,StudentListi.stu_num); printf(%dn,StudentListi.time); void Class() int i,n; printf(请输入上课时间:n); scanf(%d,&n); for(i=0;i80;i+) /给所有机子上机时间统一赋值,所有机子开启 StudentListi.time=n; StudentListi.stu_num=0; strcpy(StudentListi.name,); 指导教师评语:1、课程设计报告:a、内容: 不完整 完整 详细 b、方案设计: 较差 合理 非常合理c、实现: 未实现 部分实现 全部实现 d、文档格式: 不规范 基本规范 规范 2、出勤: 全勤 缺勤 次3、上机测试: a、未能完全理解题目,测试情况较差 b、部分理解题目,部分测试情况正确 c、理解题目较清楚,测试情况基本正确 d、理解题目透彻,测试情况正确 课程设计报告成绩: ,占总成绩比例: 40% 课程设计其它环节成绩:环节名称: 出勤 ,成绩: ,占总成绩比例: 20% 环节名称: 上机测试 ,成绩: ,占总成绩比例: 40% 总 成 绩: 指导教师签字:年 月 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁