(1)模拟某校五层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。五个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
(2)乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
(3)模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定的时间单位(简记为t),比如:
有人进出时,电梯每隔40t测试一次,若无人进出,则关门;
关门和开门各需要20t;
每个人进出电梯均需要25t;
如果电梯在某层静止时间超过300t,则驶回1层候命。
(4)按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。
.
├── Elevator.cpp
├── PB20020599_杨涛_lab01.pdf
├── Simulation.cpp
└── Simulation.h
详细报告在PB20020599_杨涛_lab01.pdf
中
文件树如上,Elevator.cpp是调用函数的main函数,Simulation.h和Simulation.cpp分别是各个函数的声明和实现
基于 Huffman 编码实现⼀个压缩器和解压缩器(其中 Huffman 编码以字节作为统计和编码的基本符号 单元),使其可以对任意的⽂件进⾏压缩和解压缩操作。针对编译⽣成的程序,要求压缩和解压缩部分 可以分别独⽴运⾏。具体要求为:
- 每次运⾏程序时,⽤⼾可以指定只压缩/只解压缩指定路径的⽂件。实现的时候不限制与⽤⼾的交
互⽅式,可供参考的⽅式包括但不限于
- 根据命令⾏参数指定功能(压缩/解压缩)和输⼊/输出⽂件路径
- GUI 界⾯
- 运⾏程序后由⽤⼾交互输⼊指定功能和路径
- 【CAUTION!】不被允许的交互⽅式: 通过修改源代码指定功能和⽂件路径
- 压缩时不需要指定解压⽂件的⽬标路径,解压缩时不需要指定压缩前原⽂件的路径,压缩后的⽂件 可以换到另⼀个位置再做解压缩
【实现可指定的任意基本符号单元⼤小的 Huffman 压缩/解压缩算法】 原先我们的 Huffman 编码是对原⽂件的每⼀个字节为基本的符号单位进⾏统计和编码,试修改你的压缩/解压缩器,使其可以指定基本符号单元的⼤小,以 0.5 个字节为其⼤小变化的粒度
当基本符号单元的⼤小不再是字节的时候,可能会出现原⽂件本⾝⼤小并⾮基本符号单元⼤小整数倍的情况,你需要在不改动算法核⼼的前提下解决这个问题,⼀种可能的解决⽅案是将原⽂件填充到合适的⼤小,并通过为压缩⽂件的头部增添额外的信息来让你在解压时可以去掉填充的那部分
.
├── Huffman.cpp:实现代码
├── Huffman.h:头文件声明
├── Makefile:Makefile
├── PB20020599_杨涛_lab02.pdf
└── main.cpp:主函数
其中详细的实验报告在PB20020599_杨涛_lab02.pdf
中