课输入 n 注:清屏返回主采单)命令?2课程号:1001绩:80绩:901001课程成绩已输入完成继续其他课程成绩输入 y课程号:1002绩:70绩:601002课程成绩已输入完成继续其他课程成绩输入 n 注:清屏返回主采单)命令?3绩:课程号:0001 成绩:90课程号:0002 成绩:60继续查询?n 注:清屏并返回主采单)命令?41原成绩: 90 成绩修改为:70继续修改 n命令:5 注:清屏并返回主采单)实验提示:1)清屏方法:包含头文件include ltstdlib.hgt 调用函数systemquotclsquot2)目的要求:本实验是较综合的实习,要求掌握结构体、指针、函数等基本知识,理解链6表的实现技术,理解模块化程序设计方法。
实验七:办公楼电梯运行系统实验内容:这是一个规模稍大的软件,它是要编写一个程序,模拟办公大楼中全部电梯的工作过程。
这个仿真程序可以用来改善大楼管理,它也可以看成是一种游戏程序。
下面让我们对这个系统作一个初步描述:办公大楼有二十层,每层有电梯,同时有步行楼梯;全楼有不多于10部电梯可同时供使用,电梯容量为24人,速度每上下一层需5秒,其运行状态可分:向上、向下、停止,当前乘客数,当前所在层数。
它设有一个“按钮数组”,例如第五层的按钮按下,意味着有乘客在第5层到达目标层,等等。
在楼的每一层,有当前电梯所在楼层显示,有按钮表示有人等待向上或向下,有若干人在等待,有若干电梯在本层停下,等等。
在大楼中(包括进出)的总人数不超过500人,每个人站在电梯前有个目标层,他有一个最大的忍受等待时间,因为他可以选择电梯或是步行走楼梯,等等。
若干假设:在每个时间段要进大楼的人数在024之间随机取值;用电梯的每个人的目标层在019之间取值;一个人在进电梯或改走楼梯之前的等待时间在818秒范围内随机发生;一个人到达目标层后第二次再乘电梯中间的工作时间在4068秒间随机取值。
以及其他假设。
总之,在我们设计仿真程序之前应对整个系统有个比较量化的了解,同时应对整个系统的几方面因素有一定的划分。
例如,可以把整个大楼视为系统的整体,在这个系统中运行的有不同类的对象:电梯、电梯集合、人、人的集合,楼层,楼层的集合,大楼。
每个对象有他的数据结构,及在此数据集上的操作(函数)。
运行效果:《办公楼电梯运行系统》Floor 4 5 3 5 7 4 1 09:-- : : : : : : : :8:-- : : : : : : : :7:-- : : : : Dn:1 : : :6:-D1 : : : : : : :5:-- : Up:11 : Up:5 : : :4:-- Up:9 : Up:4 : :3:-- Up:13 : :2:-- Up:15 :1:-- Up:130:U-3按任意键停止实验说明:第一行数字表当前电梯位置,第一列表楼层号及上下按钮是否亮,等待人数,中间区表各个电梯的运行状态(上/下、电梯中的人数)。
以下所附实验七源代码是采用面向对象的程序设计思想和事件驱动技术编程的,这是当代程序设计的基本方法,望同学们详细研究,好好体会。
附:实验六部分参考源代码// 。
。
。
// 中间的代码要求自己完成include quotstdafx.hquotinclude ltiostream.hgtinclude ltstdlib.hgt// 链表结构 head-gt-gtnext...data0-gtnextdata1-gtnext...datan-gthead7struct SCOREint courseIdint scoreSCORE pnextstruct STU_SCOREchar name16int stuIdSCORE scoreHead//学生课程成绩列表struct STU_SCORE pnextint mainMenuint stuRegSTU_SCORE pHeadint selCourseSTU_SCORE pHeadint inputDataSTU_SCORE pHeadint scoreSortSTU_SCORE pHeadint scoreQuerySTU_SCORE pHeadint modifySTU_SCORE pHeadenum MAIN_CMDREGSEL1INPUTQUERYMODIEXITint mainint argc char argvSTU_SCORE head STU_SCORE mallocsizeofSTU_SCOREhead-gtstuId-1head-gtpnextheadwhile1int cmdmainMenuswitchcmdcase REG:stuRegheadbreakcase SEL:selCourseheadbreakcase INPUT:inputDataheadbreakcase QUERY:scoreQueryheadbreakcase MODI:modifyheadbreakcase EXIT:8return 0return 0int mainMenusystemquotclsquotcoutltltquottt《学生成绩管理系统》nquotcoutltltquot tt0新生注册nquotcoutltltquot tt1选课登记nquotcoutltltquot tt2学生成绩输入nquotcoutltltquot tt3成绩查询nquotcoutltltquot tt4修改成绩nquotcoutltltquot tt5退出nquotcoutltltquot命令 quotint cmdcingtgtcmdreturn cmd//新生注册:建立学生信息链表,从键盘输入学生姓名学号,插入到链表中。
int stuRegSTU_SCORE pHeadcoutltltquot注意:新生注册学号不能重复!nquotstart:////。
。
。
。
。
。
//coutltltquot继续新的注册quotchar ccingtgtcifcycYgoto startreturn 0//学生选课int selCourseSTU_SCORE pHeadstart:int cidcoutltltquot课程号:quotcingtgtcidcoutltltquot输入选择该课程的学生学号nquotint stuIdcingtgtstuIdwhilestuIdgt0STU_SCORE pStupHead-gtpnext9whilepStupHead//链表已有记录ifpStu-gtstuIdstuId//有该学号bool befalseSCORE pcoursepStu-gtscoreHead-gtpnextwhilepcoursepStu-gtscoreHead//已有选课ifpcourse-gtcourseIdcidbetrue////已有该选课breakpcoursepcourse-gtpnextifbe //还没有选此课程SCORE pNewcourseSCORE mallocsizeofSCORE//// 。
。
。
。
。
。
插入到选课链的头节点后//pStupStu-gtpnextcingtgtstuIdint count0STU_SCORE pStupHead-gtpnextwhilepStupHead//链表已有记录SCORE pcoursepStu-gtscoreHead-gtpnextwhilepcoursepStu-gtscoreHeadifpcourse-gtcourseIdcidcountpcoursepcourse-gtpnextpStupStu-gtpnextcoutltltquot共有quotltltcountltltquot个学生选此课程nquotcoutltltquot继续新的选课输入quotchar ccingtgtcifcycYgoto startreturn 010//学生成绩输入int inputDataSTU_SCORE pStuHeadint countstart:count0coutltltquot课程号:quotint cidcingtgtcidSTU_SCORE pStupStuHead-gtpnextwhilepStupStuHead//if链表已有学生记录SCORE pcoursepStu-gtscoreHead-gtpnextwhilepcoursepStu-gtscoreHeadifpcourse-gtcourseIdcidcoutltltquot-gtstuIdltltquot 姓名:quotltltpStu-gtnamecoutltltquot 成绩:quotifpcourse-gtscoregt0coutltltquot已输入quotelsecingtgtpcourse-gtscorecountbreakpcoursepcourse-gtpnextpStupStu-gtpnextifcount0coutltltquot该课程无学生选!nquotelsecoutltltcidltltquot课程成绩已输入完成quotltltquotnquotcoutltltquot继续其他课程成绩输入quotchar ccingtgtcifcycYgoto startreturn 0//课程成绩查询int scoreQuerySTU_SCORE pStuHead////。
。
。
。
。
。
11//return 0//课程成绩修改modifySTU_SCORE pStuHead////。
。
。
。
。
。
//return 0附:实验七源代码////////////Ex7.cpp /////////////////include quotstdafx.hquotinclude quot大楼.hquotinclude quotTimer1.hquotint mainint argc char argviniTimerinitBuildertimerRunreturn 0///////////////////////////// stdafx.h ///////////////////////////////////// stdafx.h : include file for standard system include files// or project specific include files that are used frequently but// are changed infrequently//if definedAFX_STDAFX_H__EED464F0_F241_47EA_87DA_8C5457EE1D58__INCLUDED_define AFX_STDAFX_H__EED464F0_F241_47EA_87DA_8C5457E
上一篇:
Win7codecs_Win7专用解码包设置中英文对照
下一篇:
爱情只不过就是,爱与不爱