Permalink
Browse files

ascii 界面说明

  • Loading branch information...
1 parent 3d949d5 commit 5e4da16cb89bf3ceac7f0be5e625d4048e27192b @ranxian committed Oct 15, 2012
Showing with 51 additions and 4 deletions.
  1. +1 −1 Docs/API-说明.md
  2. +44 −0 Docs/ASCII界面说明.md
  3. +6 −3 Sources/ascii.cpp
View
@@ -75,7 +75,7 @@ class Instruction
{
public:
Instruction(int dest_, int dirCode_) : dest(dest_), dirCode(dirCode_){};
- int dest; // 目的地
+ int dest; // 目的地
int dirCode; // 电梯行进过程中可接受请求的方向
};
```
View
@@ -0,0 +1,44 @@
+为了方便大家编译和调试,推出了 ascii 版的模拟系统,该系统与 Qt 界面的系统类似,每 1 单位时间刷新一场景,
+现在的单位时间是 0.2 秒。由于调用的是 Linux/Gnu 系操作系统的 clear 和 sleep 函数,因此 windows 系统
+下无法正常的工作,见谅(或者谁有空写一下。。)。
+
+在此将关于 ascii 界面程序的编译和算法设计相关事项阐述一下:
+
+###编译和运行
+
+编译直接在根目录下 `$ make` 就行了,会生成一个叫做 `ascii` 的可执行文件。这个程序的主函数在 Sources/ascii.cpp 中,从主函数中可以见到,为了方便,楼层数固定为 10,电梯固定为 4 架,泊松参数为 0.02, 程序持续 100 个单位时间,在没有命令行参数的情况下,运行程序还要求输入算法的名字。如果需要指定参数可以用命令行参数指定 `./ascii 10 4 0.02 100 FCFS`。不过。。。这个功能还没做。。先忍一忍或者谁写一下。。
+
+###插入算法
+插入算法的顺序的基本方法还是和本目录下的《API-说明》中叙述的一样,只是为了配合 main 函数,需要在 Sources/ascii.cpp 中添加一个分支。
+
+具体的步骤是
+
+* 按照《API-说明》完成算法设计
+*`Sources/ascii.cpp` 中的 `Control()` 函数中增添分支,代码片段如下,相信看注释就懂了
+
+```
+void Control() {
+ if (Emulator::elevatorType == "PFCFS") {
+ Controller::Fcfs();
+ } /* else if (Emulator::elevatorType == "costflow") {
+ /* Controller::costflow();
+ /*
+ /* } */
+}
+```
+* 更新 Makefile
+
+打开根目录下的 Makefile
+
+```
+ascii: Sources/ascii.cpp Sources/elevator.cpp Sources/emulator.cpp Sources/fcfs.cpp Sources/passenger.cpp \
+ Sources/floor.cpp Sources/PoissRand.cpp Headers/controller.h Headers/elevator.h \
+ Headers/emulator.h Headers/fcfs.h Headers/floor.h Headers/instruction.h Headers/models.h Headers/internlib.h \
+ Headers/passenger.h Headers/PoissRand.h Sources/order.cpp Sources/Print.cpp /* 在这里添加新创建的文件, 如 xx_algorithm.cpp */
+
+ $(CC) $(CFLAGS) $(LIBS) -o ascii Sources/ascii.cpp Sources/elevator.cpp Sources/emulator.cpp Sources/fcfs.cpp Sources/passenger.cpp \
+ Sources/floor.cpp Sources/PoissRand.cpp Sources/order.cpp Sources/Print.cpp
+ /* 在这里添加新创建的需要编译和链接的文件, 如 xx_algorithm.cpp */
+```
+
+* `$ make`, 执行,就能够看见输出了~
View
@@ -46,7 +46,10 @@ void Born() {
void Control() {
if (Emulator::elevatorType == "PFCFS") {
Controller::Fcfs();
- }
+ } /* else if (Emulator::elevatorType == "costflow") {
+ /* Controller::costflow();
+ /*
+ /* } */
}
void Move() {
@@ -75,9 +78,9 @@ int main(int argc, char *argv[])
/* Set runtime parameters */
Emulator::nFloor = 10;
- Emulator::lambda = 0.1;
+ Emulator::lambda = 0.02;
Emulator::nElevator = 4;
- Emulator::elevatorType = "PFCFS";
+ cin >> Emulator::elevatorType;
/* Initialize elevators */
for(int i = 0; i < Emulator::nElevator; i++) {

0 comments on commit 5e4da16

Please sign in to comment.