一.设计内容
二.设计要求
(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代表有人上机,及不为空机号。
本程序通过定义结构体,包括姓名[name],机号[seat],学号[stu_num],上机时间[time]四个成员。具体如下;
Struct student_info{char name[10];
                int  seat;
                  Long stu_num;
                int time;}
四:流程图
层次模块图
   
空机号查询N—S图
     
空机号检索是本程序的核心,本程序的其它几个模块皆是通过先对空机号的判断然后进行下去的(及先对StudentList[time]的值进行0或1的判断)。例如“显示所有上机信息模块”,我们小组通过一个for循环语句,从机号0—79号逐一判断,符合条件则将其输出。而判断的标准就是if(StudentList[i].time!=0)。N—S图如下所示:
               
其它模块类似,流程图省略。
五:主函数及功能菜单说明
在主函数之前,我们首先定义了一个结构体,同时进行了相关函数的声明。其中,结构体包括:姓名[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 "),从而成功使系统界面背景颜与字体分别变成紫与绿。
系统菜单界面截图
六:各模块简要说明
学生信息输入模块
学生信息输入模块是本系统的第一个模块,亦是本系统尤为关键的一个模块。下面的模块能够正常运行,皆离不开这一模块。
c++课程设计报告结合主函数,我们在输入上机者信息时,我们通过对 StudentList[i].time进行0或1的判断,对整个机房进行一个空机号的检索,检查是否有空机号,有则执行输入功能,无则输出“机房已满”信息。当然,管理员亦能先执行第二个模块:空机号检索模块,先检索出空机,再让上机者选择机号上机。
空机号查询模块
详见上文流程图部分的介绍。
查询、修改、删除、显示上机信息模块
这四个模块采用的设计思路基本一致,皆通过对StudentList[i].time的值进行0或1的判断,达到功能的实现。例如:查询上机信息模块。在此模块中,设计者通过一个if的判断语句(即:if(StudentList[i].time!=0) ),对管理员所输入机号进行一个是否为空机号的判断,若检测到所输机号是空机号(即:StudentList[i].time=0)时,则不输出相关信息 ,反之,
输出相关上机者信息。
显示上机费用模块
此模块采用的是时间乘上每单位时间的费用的计费方式来进行计费的。在本系统中,我们规定每小时上机费用是2元,通过调用在“学生信息输入模块”中所输入的上机时间(即:StudentList[i].time)乘上此费用,从而得到上机者上机费用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。