日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象初调用:foolish 电梯

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象初调用:foolish 电梯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本周我們完成的任務是傻瓜電梯的調度,對于那十分十分詳細的指導書,我感覺想要說明白題目要求,是做不到的,所以就把指導書貼出來給大家看了,,由于在下還不會網頁制作,只能通過百度網盤了,https://pan.baidu.com/s/12KLXnQa9ifh1hZQrvqhjAw/pdf爭取下次用網頁吧,雖然不知道什么時候才能學會。

看完題目我們開始分析吧,

從最直接的角度分析就是請求與調度的關系,直接點就是,發出請求,然后處理請求,將所有合法請求過程構成請求隊列,調度器處理一個請求就是根據當前電梯狀態發出一條指令,然后電梯運行該條指令,然后更新電梯的狀態,然后返回狀態只調度器,直到執行完最后一條指令。所以按照思想構造出五個類,但這次作業,在下并沒有完全按照要求寫,雖然是五個類,但是五個類的作用并不是完全按給出的建議。首先說一下幾個類的功能:

  • 輸入我們使用主類,雖然輸入是來自電梯類與樓層類,但是作為兩處輸入太過于麻煩,所以我們使用主類輸入
  • W_legal類,該類作為對于輸入的第一層判斷,也就是簡單的過濾一些不合法輸入
  • Demand類,該類也是作為對于輸入的判斷,將所有不合法的輸入過濾,得到是正確的請求隊列
  • Scheduler類,該類就調度器類,在該類中判斷是否是同質請求,同時時間與隊列是該類的關鍵的兩個屬性,時間用于判斷當前類的請求時間與當前時間的大小,請求隊列用于判斷是否執行結束
  • Elevator類,該類就是電梯類,接收來自調度器的指令,然后執行該指令,該類中的方法change()意思就是執行指令,然后改變電梯的運行狀態,然后返回狀態給調度類
  • 對于該想法,本來我也覺得天衣無縫,只可惜還是有漏網之魚,先列出自己的bug吧:

  • 對于輸入,我依舊采用了第一次作業方法,對輸入使用find(),錯誤……,導致只要存在符合條件的輸入就會執行,而忽略了必須是完全匹配的條件
  • 對于數字的判斷,題目的要求是4字節的整數,由于在java中是不存在unsigned類型的數據類型的,也就意味著,我們的數字最大位2^32-1,而不是2^31-1,所有數據類型要是long類型,我都是這么寫的,但是還是錯了,那么錯誤在哪里呢?本來在使用下面的這個方法時要注意一點時,一定要是有try catch,除非你事先確定了數據的位數
  • max = Long.parseLong("4294967295");

    ?

  • 對于自己想法的優化:

  • 最需要優化的地方當然是輸入,所以第三次作業在下重寫寫了一個輸入,具體見第三次作業,
  • 如果還有什么要優化的話那就是代碼風格吧
  • 為了紀念自己第一次使用面向對象的方法來實現這個作業,容我貼一點核心代碼

    request_new.request_old = legal_1.num;request_new.deal(); //得到一個隊列,隊列中是按時間順序的請求都是合法請求sche.request_n = request_new.request1;sche.fetch();while(sche.request_n[sche.i][0]!=0) {sche.state_c = elev.state;sche.stop_time = elev.st_time;sche.deal_t();elev.move = sche.instr_o;elev.change();sche.i++;}

    ?

    轉載于:https://www.cnblogs.com/wevolf/p/8682577.html

    總結

    以上是生活随笔為你收集整理的面向对象初调用:foolish 电梯的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。