资源简介

用c语言写的的一个电梯仿真系统,实现了图形模拟,比较完善。

资源截图

代码片段和文件信息

#include 
#include  
#include 
#include 
#include  
#include

/*键盘扫描码*/
#define VK_DOWN 0x5000
#define VK_UP 0x4800
#define VK_ESC 0x011b
#define VK_ENTER 0x1c0d

/*主键盘数字*/
#define VK_1 0x0231
#define VK_2 0x0332
#define VK_3 0x0433
#define VK_4 0x0534
#define VK_5 0x0635
#define VK_6 0x0736
#define VK_7 0x0837
#define VK_8 0x0938
#define VK_9 0x0a39
#define VK_0 0x0b30


#define TIMER 0x1c
#define __CPPARGS


#define MAX_FLOOR_NUM 10
#define ELEVATOR_LIMIT_NUM 25

/*电梯运行状态  */
#define UP 0
#define DOWN 1
#define WAIT 2

enum   BOOL   {FALSETRUE};
/*电梯的数据结构*/
typedef struct elevator{
  int state;         /*电梯的状态*/
  int current;       /*电梯目前所处楼层*/
  int destination;   /*电梯的目标楼层*/
  int num;           /*电梯内人数*/
}Elevator;

Elevator elevator;             /*定义一个电梯*/
int callIn[MAX_FLOOR_NUM][2];/*记录每层呼叫电梯的人数0位向上,1位向下 */
int callOut[MAX_FLOOR_NUM];  /*记录每层下去的人数  */
enum   BOOL light[MAX_FLOOR_NUM][2];

enum BOOL flag;

enum BOOL flagUp;
enum BOOL flagDown;

int TimerCounter=0                                             /* 计时变量,每秒钟增加1 */
     floor=1keycalling=1up_or_down=UPwaittime=20 total=0
     x=270
     y=52
     x0=365
     y0=50
     bx=315
     by=40
     ex=345
     ey=80;

  /*   指向原来时钟中断处理过程入口的中断处理函数指针(句柄)   */   
  void   interrupt   (   *oldhandler)();   
  /*   新的时钟中断处理函数   */   
  void   interrupt   newhandler(   )   
  {   
  /*   increase   the   global   counter   */   
  TimerCounter++;   
  /*   call   the   old   routine   */   
  oldhandler();   
  }   
  /*   设置新的时钟中断处理过程   */   
  void   SetTimer(void   interrupt   (*IntProc)())   
  {   
  oldhandler=getvect(TIMER);   
  disable();   /*   设置新的时钟中断处理过程时,禁止所有中断   */   
  setvect(TIMERIntProc);   
  enable();   /*   开启中断   */   
  }   
  /*   恢复原有的时钟中断处理过程   */   
  void   KillTimer()   
  {   
  disable();   
  setvect(TIMERoldhandler);   
  enable();   
  }   

void graph_mode()   /*图形模式初始化函数*/
{
  int driver=VGAmode=VGAHIg_error;
  initgraph(&driver&mode““);
  g_error=graphresult();
  if(graphresult()<0)
   {  printf(“initgraph error:%s\n“grapherrormsg(g_error));
      exit(1);
   }
}


void instruction()
{
   int up=30down=31up_arrow=24down_arrow=25;
   setcolor(12);
   settextstyle(302);
   outtextxy(20010“Elevator Imitated Program“);
   setcolor(WHITE);
   settextstyle(001);
   rectangle(2060170340);
   setcolor(12);
   outtextxy(5068“INSTRUCTION“);
   setcolor(YELLOW);
   outtextxy(3083&up);
   outtextxy(3090&down);
   setcolor(3);
   outtextxy(4288“button outside“);
   setcolor(WHITE);
   circle(321105);
   setfillstyle(1GREEN);
   floodfill(32110WHITE);
   setcolor(3);
   outtextxy(42108“button inside“);
   setcolor(YELLOW);
   outtextxy(30125“use bioskey:“);
   setcolor(12);
   outtextxy(30140&up_arrow);
   outtextxy(30160&down_ar

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34746  2010-05-21 15:20  可执行文件\LI490B~1.EXE

     文件       8249  2010-05-21 15:20  可执行文件\LI490B~1.OBJ

     文件       5363  1989-05-11 02:01  可执行文件\Egavga.bgi

     文件       6253  1988-08-29 02:00  可执行文件\Cga.bgi

     文件      16244  2010-05-21 15:20  代码\lift_simulation-5.c

     目录          0  2010-05-21 15:53  可执行文件

     目录          0  2010-05-21 15:50  代码

----------- ---------  ---------- -----  ----

                70855                    7


评论

共有 条评论