1. 程式人生 > >【2017級面向對象程序設計】作業三

【2017級面向對象程序設計】作業三

函數 虛擬機 數據 出現 是否 運行 收集 c++調用lua 條件

gtihub

實現方法

  • 代碼構成:主函數,加上類電梯,加上結構體乘客,加上lua腳本3個。
  • 基本思路:
    • 運行前:
      • 輸入數據。
      • 啟動lua虛擬機。
    • 運行時:
      • 檢查請求:檢查有沒有新的請求,有則放入總請求向量中。
      • 同步:將新的請求同步到每個電梯的請求向量中,並判斷是否可以前往該請求樓層,標記不能前往的乘客。
      • 判斷進出:判斷乘客是否可以、願意進出電梯,並標記這些乘客。
      • 同步:將乘客狀態與其他電梯同步。
      • 輸出:輸出電梯停靠樓層。
      • 調用:調用腳本函數對下一步移動方向進行處理。
      • 移動:電梯移動。
      • 完成判定:判斷是否完成。
    • 運行後:
      • 關閉lua虛擬機。
      • 將輸出分文件。
  • 難點:在完成作業的時候遇到了以下難點。
    • c++調用lua函數。
    • 將輸出分文件。
    • 乘客請求的收集。
  • bug:
    • auto用於for循環裏只是便利,容器的一個鏡像,不會改變容器的值。
    • lua語法一直錯誤。
    • 結束運行條件出現錯誤。

c的實現

  • 我覺得把我的電梯類改成結構體,自己寫一個向量,然後改一下輸出就是c的實現了。

【2017級面向對象程序設計】作業三