4F0_F241_47EA_87DA_8C5457EE1D58__INCLUDED_define AFX_STDAFX_H__EED464F0_F241_47EA_87DA_8C5457EE1D58__INCLUDED_if _MSC_VER gt 1000pragma onceendif // _MSC_VER gt 1000// TODO: reference additional headers your program requires hereinclude ltstdio.hgtinclude ltstdlib.hgtinclude lttime.hgtinclude ltassert.hgt//AFX_INSERT_LOCATION12// Microsoft Visual C will insert additional declarations immediately before theprevious line.endif// definedAFX_STDAFX_H__EED464F0_F241_47EA_87DA_8C5457EE1D58__INCLUDED_///////////////////////////Timer1.h //////////////////////////////////ifndef _TIMER1_Hdefine _TIMER1_Hinclude lttime.hgttypedef void TimerHandlevoid sinktime_t t //定时器时间到事件处理函数说明extern int donevoid iniTimer //初始化定时器void timerRun //定时器运行//创建定时器,返回定时器ID,sink:接收定时器事件的对象int setTimervoid sinkint dtTimerHandle timerHandleFuncint killTimer int TimerID //删除定时器endif///////////////////////////大楼.h//////////////////////ifndef _BUILDING_Hdefine _BUILDING_Hinclude quot模拟.hquotinclude quot人.hquotinclude quot电梯.hquotstruct Floorbool up //上按钮bool down //下按钮PersonNode pWaiting //等电梯人列表PersonNode pInFloor //在本楼办公人员列表struct BuildingFloor floorsMAXFLOORSElevator elevatorsMAXELEVSPersonNode ptookStair //走楼人列表int totalPeople //楼内总人数int timerIDvoid initBuildervoid PushFloorButtonPersonNode void waitElevbool waitPersonNode onevoid takeStairbool goPersonNode one13void intoOfficebool workPersonNode onevoid OnElevStopedElevator elevint floorextern Building buildingendif////////////////////电梯.h////////////////////////////////////////ifndef _ELEV_Hdefine _ELEV_Henum DirectionDOWN-1NODIRECTION0UP1struct PersonNodestruct Elevatorint elevNumber//本电梯号int floorNumber//当前楼层号bool runing//是否正在Direction dirbool buttonsMAXFLOORS//电梯内按钮int timerIDPersonNode inListtypedef void ElevArrivedHandle void sinkElevator elevvoid PushCloseElevator elevbool RequestDnElevator elevbool RequestUpElevator elevbool RequestOpenElevator elevvoid RunElevator elevvoid OnArrivedElevator pendif//////////////////模拟.h////////////////////////////////////////ifndef _SIMULATION_Hdefine _SIMULATION_Hdefine MAXELEVS 7 //电梯数define MAXFLOORS 20 //楼层数define MAXPERSONS 500 //最多人数define CAPACITY 24 //电梯容量define TRAVELTINE 2 //层间运行时间define MAXWAITTIME 5TRAVELTINE //最大等待时间int NewPersons //每次进入大楼人数int BusinessT //连续工作时间int WaitingForElevT //可等待时间int DestFloor //确定目标层14endif///////////////////////人.h///////////////////////////ifndef _PERSON_Hdefine _PERSON_H//include quot电梯.hquot//include quot大楼.hquotstruct Elevatorenum PersonState waitingForElev//等待电梯elevNowIn //在电梯中officeIn // 在办公takingStairs //走楼梯outsidestruct PersonNodePersonState stateint floorNowOn//所在楼层int destination//目标楼层int timeID//PersonNode nextvoid EnterBuildingPersonNode p //进入大楼void OnElevtArrivedElevator elevPersonNode passengers //passenger电梯到达了void OnElevtComeElevatorelevPersonNode waitPerson //waitPerson电梯到了void OnTimervoid persontime_t t //person定时到了bool IntoElevbool inPersonNode oneElevator elev//进出电梯PersonNode delPersonPersonNode headPersonNode one //从队列删除onePersonNode addPersonPersonNode headPersonNode one //one加入到队列int getPersonNumPersonNode headendif///////////////////////Timer1.cpp///////////////////////////////////include quotstdafx.hquotinclude lttime.hgtinclude ltconio.hgtinclude ltstdlib.hgtinclude quotTimer1.hquotint TIMERNUM3 //定时器数int done0struct STimer15int timerIDvoid sinkTimerHandle OnTimer //obj对象的函数int isUsingclock_t startTlong dtSTimer timers//TIMERNUMvoid iniTimertimersSTimer mallocTIMERNUMsizeofSTimerint ifori0iltTIMERNUMitimersi.isUsing0void timerRunint ichar c0clock_t currTwhileccurrT clockfori0iltTIMERNUMiiftimersi.isUsingclock_t endTtimersi.startTtimersi.dtifcurrTgtendTtimersi.OnTimertimersi.sinktimeNULLtimersi.startTcurrTc_kbhitint killTimer int TimerID ifTimerIDgt0 ampamp TimerID ltTIMERNUMtimersTimerID-1.isUsing0return TimerID16return 0int setTimervoid sink1int dtTime.
上一篇:
Win7codecs_Win7专用解码包设置中英文对照
下一篇:
澳大利亚留学生英语会计案例分析报告:Blue Moon case study