电梯V1.0

GitHub仓库地址

Problem

一栋3层的大楼(楼层编号0-2),设有一台无限载重的电梯,初始时电梯停在0层。电梯移动1层的耗时为1,在某一层停靠的耗时为1(时间初始为0)。电梯不允许未仆先知,必须在时间到了之后才能开始响应这条请求。
为了使得电梯完成接送所有乘客的运行时间最短,请你编写一个程序来进行电梯调度。

输入
输入文件的文件名为 input.txt ,其中:第一行为一个非负整数N,代表乘客的请求数量;接下来N行,描述了这N个请求的信息,格式为请求时刻 起始楼层数 去往楼层。
保证请求时刻是递增的,且同一时刻同一楼层只会有一名乘客发出请求(也即不会出现同时且同楼层的多行输入)。

/input example/
2
0 1 2
1 2 1

输出
输出调度决策,输出文件的文件名为output.txt,其中:每一行的输出格式为时刻 停靠楼层。(初始时停在0层的状态不输出)
注意:“时刻”指的是在某层楼停靠的时刻,且不算入在该层的停靠时间。

/onput example/
1 1
3 2
5 1

1.在这个项目里添加一个Elevator类,用来描述电梯。
2.在这个项目里新建一个cpp文件,在其main里面读取文件输入、创建Elevator对象以及输出等等。(本次作业旨在熟悉c++的类和对象以及文件读写,可暂不考虑调度算法)
3.随笔内附上类图


思考过程

提示:本文针对的是我对这题的思考过程,思路不止一种。

和寒假的电梯相比,居然简单了不少(黑人问号.jpg)???反正就是楼层变少了,要考虑的情况应该是比寒假作业要更少的,唯一的难度就是请求数量为未知(这点只要动态申请内存就可以了,记得delete)。寒假代码的完成度只要稍微移植改造应该能应付这种题目,所以也就偷了个懒(寒假电梯思路链接)。但是想着不能就这么水掉啊,就试着将原本的struct结构改成了class结构,但是一路上遇见了很多疑惑的问题。

成员private后,究竟如何使外部程序方便的访问类成员?
对象该如何拆解和组合?
如何让类结构简单易懂且方便使用?

不仅是对一些基础概念模糊不清导致移植的时候对一些非常低级的问题困惑不已,甚至由于寒假代码非常差劲的代码风格导致一个月不看几乎忘了各个函数的作用,一度导致程序移植上出现了N多麻烦。
还得更加把劲学习提高啊


程序概览

文件信息

代码名 长度 bug数量 花费时间
elevactor.h 140行 2个 大约3h
main.cpp 50行 1个 大约30min

类图

  


PTA作业

  

  


END

最新文章

  1. 【11-23】mysql学习笔记02
  2. C#使用Quartz.NET详细讲解
  3. sparksql udf的运用----scala及python版(2016年7月17日前完成)
  4. [javaweb]Java过滤器与包装设计模式的实用案例.
  5. javascript语句——表达式语句、块语句、空语句和声明语句
  6. Java 测试代码模板
  7. public && protected && private
  8. CodeMap
  9. JS 字符串转日期格式 日期格式化字符串
  10. iis 重启 (三种方法)
  11. RFM模型——构建数据库营销的商业战役!(转)
  12. Linux中nginx手动安装
  13. CC2650LaunchPad 运行contiki hello-world示例程序
  14. 实现PC视频播放最强画质教程( Potplayer播放器+MADVR插件)【转】
  15. python中元组、列表、字典、集合知识
  16. Egg.js
  17. openCV 3.0 Ubuntu下编译问题
  18. JavaIO流——简单对文件的写入及读取(一)
  19. Java 多个文件压缩下载
  20. ByteToByte64String、Base64StringToBytes

热门文章

  1. 《python源代码剖析》笔记 python环境初始化
  2. BZOJ2115:[WC2011] Xor(线性基)
  3. [TJOI2013]拯救小矮人
  4. lambda函数详解
  5. WorldWind源码剖析系列:星球球体的加载与渲染
  6. eclipse 格式化快捷键(Ctrl+shift+f)不起作用的解决办法
  7. POJ 1094 Sorting It All Out(拓扑排序+判环+拓扑路径唯一性确定)
  8. Oracle 批量修改某个用户下表的表空间
  9. ABAP error:CONVT_NO_NUMBER
  10. Exp7 网络欺诈技术防范