结对成员:杨鹏飞(193) 邓嘉(164)
老师给定的电梯调度程序是一个C#命令行程序,其中电梯调度算法是第一次结对编程时我们自己编写的。
由于程序运行时会打印电梯调度的相关信息,于是我想到了利用这些信息作为UI的驱动(如下图)。
不过对于几乎没有编写GUI界面经验的我来说,一个静态的UI界面就是一个非常大的挑战,更别说是一个动态演示电梯调度的UI程序了。
经过一番查询,发现可以利用管道来获取命令行程序的标准输入与输出,可是用什么程序来编写呢?这可难倒了我,后来综合考虑到管道实现、文本处理及UI设计,选择了使用Python这门脚本语言来完成UI程序,其中采用的UI库为安装Python 3.3.0时自带的tkinter。
由于动画式的演示实现起来相对困难,所以决定只展示每部电梯在每一个时刻(Tick)的运行状况,包括高度、楼层、电梯中的人数和已送达人数。
下面说明一下实现的具体过程。实现环境:Windows7 SP1 + Python 3.3.0
1、利用tkinter搭建界面。
首先需要调用tkinter模块:
from tkinter import *
然后绘制界面,电梯部分的代码省略:
app =Tk()
app.title("电梯调度演示 V1.0.0.093 BUAA SCSE")
app.geometry('500x350')
Label(app,text="请输入Loader目录下的电梯xml文件:").pack()
elev=Entry(app)
elev.pack()
Label(app,text="请输入Loader目录下的乘客xml文件:").pack(