2017级面向对象程序设计 做业一

Deadline:2018.04.22 22:00 pmhtml

1、MOOC在线课程学习

课程地址:http://www.icourse163.org/course/PKU-1002029030
学习前两章内容(从C到C++、类和对象基础),并完成相应的章节测验,而后将课程进度截图上传到蓝墨云班课c++

2、Pintia题目集

做业地址:https://pintia.cn/problem-sets/985353690216259584/problemsgit

3、电梯调度编程题

通过了寒假的两次编程训练,你们大多对于电梯调度已有了本身的思路,但同窗们的代码还是C语言面向过程的风格。从本次做业开始,咱们将以面向对象程序设计的角度,从新思考这个问题。github

题目重述

注意:本次题目需求与寒假时有所不一样!算法

一栋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.新建一个C++项目(名字取为Elevator-scheduling)。测试

2.在这个项目里添加一个Elevator类,用来描述电梯。设计

该类的成员变量和成员函数以下:(做为参考)

member:

  • queue < int > destinationQueue; //目的地队列
  • int currentFloor; //当前位置
  • int indicator; //运行方向

function:

  • goToFloor() //前往队列首的楼层
  • stop() //停靠在当前楼层
  • updateDestinationQueue() //更新目的地队列

5.在这个项目里新建一个cpp文件,在其main里面读取文件输入、建立Elevator对象以及输出等等。(本次做业旨在熟悉c++的类和对象以及文件读写可暂不考虑调度算法

6.写一篇随笔,附上类图,并描述整个过程当中碰到的全部困难(卡在哪些地方),以及解决的过程。要求在博客开头贴出项目的github地址。
(类图可参考北航同窗的优秀做业:http://www.cnblogs.com/HansBug/p/8694939.html

测试说明

本次代码依然须要上传Github。代码必须遵循必定的代码规范,要有注释,可读性尽量好。

提交到Github上的项目均须要创建一个名字为BIN的文件夹,里面必须含有可执行文件(以exe为后缀),相关的依赖库,以及输入和输出文件。请注意如下两点:

  • 确保可执行文件的文件名为 elevator.exe,确保输入和输出文件的文件名为input.txt和output.txt。(注意:输入输出文件都须要采用相对地址,也即./output.txt
  • 一个示例组织目录以下所示(仅为示例,命名、文件数量等未必须要遵照):
/ Elevator-scheduling
         / main.cpp
         / elevator.cpp
         / elevator.h  
         ...
     / BIN
         / elevator.exe
         / input.txt
         / output.txt
         / Lib.dll (exe运行须要的动态连接库文件,能够没有)

注意:在下一次的做业中,将引入匿名互测

互测规则以下:

  1. 每人有初始分数10分,由测试同窗在此基础上对被测方作出相应的加减分。
  2. 测试方对被测代码运行测试用例,测出一个bug扣1分,本身得到1分(被测方最多扣至0分,测试方最多加到满分15分)。测试方须要提供hack用例。
  3. 若是代码规范有值得称道的地方,加分(最多不超过5分)。测试方须要提供加分理由。
相关文章
相关标签/搜索