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分)。測試方須要提供加分理由。
相關文章
相關標籤/搜索