Permalink
Browse files

修改并补完了一部分注释

  • Loading branch information...
1 parent b9b9dd7 commit 31cf8fa1918f40ab9129ad5a9223ce907d26889e Mystery committed Oct 21, 2012
View
@@ -5,13 +5,13 @@ class Controller
{
public:
static void Fcfs(); /* FCFS 算法 */
-
+
static void Scan(); /* Scan 算法 */
-
+
static void CostFLow(); /* CostFlow 算法 */
- static void PickUp(); /* 这个叫什么名字 = = */
-
+ static void PickUp(); /* PickUp 算法 */
+
/* 在这里补充更多算法 */
};
#endif /* defined(__EleEmu__controller__) */
View
@@ -13,68 +13,68 @@ class Elevator
int pos;
double fpos;
bool doorStatus; /* 0: close, 1: open, 2: in toggle door */
-
+
int toggleDoorCounter; /* 计算开/关门已花费时间,用以控制门的状态过渡 */
-
+
static int timeToggleDoor; /* 开/关门所需时间 */
-
+
static int timeMove; /* 电梯移动所需时间 */
-
+
static int capacity; /* 电梯最大容量 */
-
+
static int throughput; /* 所有电梯总吞吐量 */
-
+
char dir; /* 电梯运动方向 */
-
+
static double acceleration; /* 电梯加速度 */
-
+
std::list<Passenger*> passengers; /* 电梯内乘客 */
-
+
std::list<Instruction*> instructions; /* 电梯现有指令栈 */
double speed; /* 电梯速度,用于绘制图形界面 */
-
+
void Letout(); /* 让乘客离开 */
-
+
void Letin(int cancelCode); /* 让乘客进入 */
-
+
void OpenDoor(); /* 电梯开门 */
-
+
void CloseDoor(); /* 电梯关门 */
static int defaultDir; /* 电梯默认接客方向 */
public:
- Elevator(); /* Constructor */
-
+ Elevator(); /* 构造函数 */
+
void LetThemMove(); /* 让电梯里的人响应 Move 事件 */
-
+
int Get_pos(); /* 获得当前所在位置 */
-
+
double Get_fpos(); /* 获得所在浮点数位置,用于打印图形界面 */
-
+
int Get_nPassenger(); /* 获得现有乘客数 */
char Dir(); /* 获得方向: ^: upwards, v: downwards, -: stopping */
-
+
void ToggleDoor(); /* 开/门 */
-
+
void Move(); /* 电梯依据指令栈顶移动,否则按照随即下客顺序移动 */
-
+
void AsciiMove();
-
+
void PushInst(Instruction*); /* 添加指令 */
-
+
std::list<Instruction*> *Get_inst(); /* 得到指令栈的指针 */
-
+
static int AverThrput(); /* 计算并返回平均吞吐(averThroughput) */
-
+
static int Get_capacity(); /* 获得最大乘客量 */
-
+
static void Set_defaultDir(int dir); /* 设置默认行进方向 */
-
+
static int Get_defaultDir(); /* 获得默认行进方向 */
};
typedef std::vector<Elevator*>::iterator EleIter;
-#endif
+#endif
View
@@ -9,26 +9,26 @@
class Emulator
{
-
+
public:
Emulator();
-
- static int dual; /* dual: Time consumed with the whole duration */
-
- static int nElevator; /* Total number of all elevators */
-
- static int UNIT_TIME; /* Unit time is set to time consumed by moving elevator up or down a floor */
-
- static vector<Elevator*> elevators; /* All the elevators functioning */
-
- static double lambda; /* Poiss process parameter lambda */
-
- static Floor floors[30]; /* Floors */
-
- static int nFloor; /* Total number of all floors */
-
+
+ static int dual; /* 整个过程花费的时间 */
+
+ static int nElevator; /* 电梯总数 */
+
+ static int UNIT_TIME; /* 电梯上下一层所花的时间设定为单位时间 UNIT_TIME*/
+
+ static vector<Elevator*> elevators; /* 所有的电梯 */
+
+ static double lambda; /* 泊松随机数生成的参数lambda */
+
+ static Floor floors[30]; /* 楼层 */
+
+ static int nFloor; /* 总楼层数 */
+
static string elevatorType;
-
+
static list<Order*> orders;
};
View
@@ -11,43 +11,43 @@ class Floor
friend class Emulator;
private:
list<Passenger*> passengers; /* 楼层乘客 */
-
+
list<Passenger*> inPassengers; /* 将来还未到的乘客 */
-
+
list<Passenger*> outPassengers; /* 离开楼层的乘客 */
-
+
Order* upOrder; /* 楼层向上的请求,相当于按下的向上按钮 */
-
+
Order* downOrder; /* 楼层的向下请求,相当于按下的向下按钮 */
public:
- Floor(); /* Construct funtion */
-
- void PushPassenger(Passenger *p); /* Let a new passenger p comes in */
-
- void AsciiPushPassenger(Passenger* pass); /* Push passenger function for ascii */
-
- int Get_nPassenger(); /* Get totalnum of passengers on a floor */
-
- Passenger *PopPassenger(); /* Pop and return the frontmost passenger from queue */
-
- Passenger *FrontPassenger(); /* Get passenger at the front of the queue(list) */
-
- void LetThemWait(); /* Let passengers wait for one unit time */
-
- bool Ordered(); /* Return true if floor has order an elevator */
-
+ Floor(); /* 构造函数 */
+
+ void PushPassenger(Passenger *p); /* 让一个新乘客p进入楼层 */
+
+ void AsciiPushPassenger(Passenger* pass); /* 为ASCII界面设计的新乘客进入函数 */
+
+ int Get_nPassenger(); /* 获得该层乘客总量 */
+
+ Passenger *PopPassenger(); /* 获得队首的乘客并使之出队 */
+
+ Passenger *FrontPassenger(); /* 获得队首乘客 */
+
+ void LetThemWait(); /* 让乘客等一个单位时间 */
+
+ bool Ordered(); /* 如果该层请求了电梯则返回true */
+
void Set_downOrder(Order* order); /* 设置下楼的请求 */
-
+
void Set_upOrder(Order* order); /* 设置向上的请求 */
-
+
bool UpOrdered(); /* 返回向上按钮是否被按(是否有向上请求) */
-
+
bool DownOrdered(); /* 返回向下按钮是否被按(是否有向下请求) */
-
+
void CancelOrder(char dir); /* 取消 dir 方向的请求 */
-
+
void CheckOrder(); /* 楼层检查是否有乘客要去某方向,但是这个方向的按钮没有被按,如果有这种情况,就让该乘客请求一部电梯 */
-
+
void PushOutPassengers(Passenger* pass);
};
-#endif
+#endif
View
@@ -8,67 +8,67 @@ class Passenger
{
private:
int timeWait; /* 每个乘客等待时间 */
-
+
int timeMove; /* 在电梯中运动时间 */
-
+
int from; /* 出发地 */
-
+
int to; /* 目的地 */
-
+
double fpos; /* 浮点数位置 */
-
+
int status; /* 标示乘客的状态
* 1. 还未到楼层
* 2. 在楼层等待,或在电梯
* 3. 正在离开楼层
*/
-
+
static int total; /* 总乘客数 */
-
+
static int maxWaitTime; /* 最大等待时间 */
-
+
static int minWaitTime; /* 最小等待时间 */
-
+
static int totalWaitTime; /* 总等待时间 */
-
+
static int maxDuration; /* 最大过程时间 */
-
+
static int minDuration; /* 最小过程时间 */
-
+
static int totalDuration; /* 总过程时间 */
-
+
static int nCompleteDuration; /* 完成的载客过程的数目 */
public:
-
- Passenger(int from_, int to_); /* Construct a passenfer from `from_` to `to_` */
-
- int Get_from(); /* Where the passenger from */
-
- int Get_to(); /* Where the passenger goes to */
-
- void Wait(int t = 1); /* Wait for t unit time */
-
- bool Move(int t = 1); /* Move for t unit time */
-
- static int Total(); /* Total number of all passengers */
-
- static int MaxWaitTime(); /* Max wait time of all passengers */
-
- static int MinWaitTime(); /* Min wait time of all passengers */
-
- static int AverWaitTime(); /* Average wait time for all passengers */
-
- static int MaxDuration(); /* Max Duration of all passengers */
-
- static int MinDuration(); /* Min Duration of all passengers */
-
- static int AverDuration(); /* Average Duration of all passengers */
-
- void Arrive(); /* Function to be called when passenger arrive dest */
-
+
+ Passenger(int from_, int to_); /* 构造一个从`from_`出发到`to_`的乘客 */
+
+ int Get_from(); /* 获得乘客来自的楼层 */
+
+ int Get_to(); /* 获得乘客去往的楼层 */
+
+ void Wait(int t = 1); /* 等待t个单位时间 */
+
+ bool Move(int t = 1); /* 移动t个单位时间 */
+
+ static int Total(); /* 乘客总数 */
+
+ static int MaxWaitTime(); /* 所有乘客中的最长等待时间 */
+
+ static int MinWaitTime(); /* 所有乘客中的最短等待时间 */
+
+ static int AverWaitTime(); /* 所有乘客的平均等待时间 */
+
+ static int MaxDuration(); /* 所有乘客中的最长乘坐时间 */
+
+ static int MinDuration(); /* 所有乘客中的最短乘坐时间 */
+
+ static int AverDuration(); /* 所有乘客的平均乘坐时间 */
+
+ void Arrive(); /* 乘客到达目的地时执行的函数 */
+
void MakeAnOrder(); /* 乘客按下电梯按钮,每层楼有两个按钮,乘客将根据目的地选择,以按下了乘客所需
* 按钮时乘客不会再按 */
-
+
double Get_fpos(); /* 获得乘客的浮点数位置,用作图形界面中来客和离客的过程 */
};
-#endif
+#endif
View
@@ -1,26 +1,27 @@
+/* 此文件用于生成泊松随机数 */
#include "../Headers/internlib.h"
-/* Private function: Generates random float number between a and b */
+/* 私有函数: 生成大小在a与b之间的随机浮点数 */
double Rand(double a, double b)
{
return a + (b - a)*rand()/(RAND_MAX + 1.0);
}
-/*
- * PARAMS:
- * lambda: the parameter lambda in a Poiss Distribution(the average occurance of a event)
- * RETURN:
- * generates one ramdom number, and the sequence of these numbers is obay Poiss Distribution
+/*
+ * 参数值:
+ * lambda: 泊松分布中的参数lambda(一个事件的平均发生率)
+ * 返回值:
+ * x:生成随机数,并且这些数的序列满足泊松分布
*/
int PoissRand(double lambda) {
int x = -1;
double logNegLamb = -lambda;
double logRand = 0;
-
+
do {
logRand += log(Rand(0, 1));
x++;
} while (logRand >= logNegLamb);
-
+
return x;
}
Oops, something went wrong.

0 comments on commit 31cf8fa

Please sign in to comment.