资源简介
用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
- 上一篇:神经网络实现异或问题
- 下一篇:数据结构课程设计\\算术表达式求解
相关资源
- linux平台下C语言实现一个简单的http
- DAC8831 MSP430 c语言控制程序
- linux下的C语言POSIX正则表达式头文件和
- 基于C语言的AT指令代码实现
- C语言版的AT24C01~AT24C256的读写程序
- LDPC的C语言实现
- 后缀表达式求值c语言版
- linux环境下C语言实现图片的socket传输
- des算法的c语言实现c源代码
- C语言 地图染色 非递归 源代码
- C语言实现英汉、汉英词典功能
- 最新华为C语言编程规范
- c语言编程中点画线法
- LDPC算法C语言实现
- 学生信息管理系统c语言
- RSA加密算法c语言
- 个人账户管理系统修改版C语言版
- FFT C语言实现
- 基于c语言的多人聊天室系统
- 维吉尼亚密码的加密和解密C语言实现
- 循环赛问题c语言代码
- C语言实现socket服务端和客户端
- 单处理器系统的进程调度+操作系统(
- C语言实现链表通讯录
- 求有向图所有顶点的出度与入度
- 用C8051F单片机写的中断控制程序C语言
- 课程设计 电梯模拟 c++语言
- 纯C语言写的打字母游戏
- 模拟Unix文件系统C语言版
- 控制走黑白线的寻迹小车c语言程序
评论
共有 条评论