电梯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

电梯V1.0的更多相关文章

  1. 学霸系统UI项目功能说明书 v1.0版本

    发布人员:软件工程实践小队. 发布内容:学霸系统UI项目说明书. 版本:学霸v1.0版本. 学霸系统UI项目说明书 v1.0版本分为以下部分: Part 1:用户须知: Part 2:功能实现: Pa ...

  2. Git异常:fatal: V1.0 cannot be resolved to branch.

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  3. 自己动手写计算器v1.0

    今天突发奇想,想着看了还几个设计模式了,倒不如写点东西来实践它们.发现计算器这种就比较合适,打算随着设计模式的学习,会对计算器不断的做改进. 包括功能的增加和算法的改进.初学者难免犯错,希望大家不吝指 ...

  4. ASP.NET Boilerplate终于发布v1.0了

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ABP经过2年多的开发,终于发布第一个主要版本了,谨此提醒ABP的使用者. ASP.N ...

  5. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  6. 图像处理工具V1.0

    图像处理工具V1.0(仿彗星图片处理工具.VS2015安装界面)----个人无聊作品 以下是界面: 部分代码一.(摘自网络----加水印代码): public static void ImageWat ...

  7. reGeorg v1.0内网流量转发

    reGeorg v1.0 git Usage $ reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u [-v] Socks server for reGeorg H ...

  8. 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞

      文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...

  9. 屏幕监视专家 v1.0 定时录制屏幕动画发送到指定邮箱

    ScreenWatcher v1.0功能:定时录制屏幕动画发送到指定邮箱,录制的动画为gif,可指定录制多长时间.指定几点直接开始录制,完全后台运行.作者:Bluefish 下载链接: http:// ...

随机推荐

  1. BZOJ 1208 宠物收养所 set+二分

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1208 题目大意: 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠 ...

  2. 网络嗅探与欺骗(第一二部分)非平台——P201421410029

    中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告   实验二 网络嗅探与欺骗     学生姓名 李政浩 年级 2014 区 ...

  3. 【转】Android Camera 相机开发详解

    在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口.Camera2在接口和架构上做了巨大的变动, 但是基于众所周知的原因,我们还必须基于 Android ...

  4. gettimeofday()函数来得到时间

    gettimeofday()函数的使用方法: 1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/tim ...

  5. springbatch入门练习(第一篇)

    先搞懂几个概念 Job Respository: 作业仓库,负责Job.Step执行过程中的状态保存 Job launcher: 作业调度器,提供执行Job的入口 Job:作业,由多个step组成,封 ...

  6. SQL Prompt 智能提示插件

    1.安装及破解参照地址:http://jingyan.baidu.com/article/a3a3f811da2b3a8da3eb8a4b.html 2.安装包下载: 1)下载 2)http://do ...

  7. OO第1~3次作业总结

    作业1——多项式运算 基于度量和类图分析设计 先看Metrics插件做出的复杂度分析: 乍一看没有红色报警,其实是因为选中某一行时会自动将该行改为黑色,无论之前是红色还是蓝色emmm 真正展开第一行时 ...

  8. MVC 在action拦截器中获取当前进入的控制器和aciton名

    我们在实现了action拦截器以后(继承至System.Web.Mvc.IActionFilter),需要在重写的方法OnActionExecuting中去获得当前进入的控制器和action名称,如何 ...

  9. odoo之自动生成编号问题

    单独的seq.xml文件 <?xml version="1.0" encoding="utf-8"?><openerp> <dat ...

  10. java的myeclipse,java页面改动默认的javadoc方法

    在项目中右键点击新建class文件,在弹出的框中选择"here" 勾上enable project specific settings 选择comments中的types然后点击e ...