版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
面試題系列講師:張孝祥—交通燈管理系統(tǒng)第一頁,共十二頁。對每個程序員來說,沒有學(xué)不會的技術(shù),只是沒有那么多的時間與精力!如果能用最少的時間學(xué)透自己想要的技術(shù),是程序員感到最幸福的事情!程序員要學(xué)的知識細(xì)節(jié)實在太多,程序員要把一個知識完全搞明白所走的彎路太多,一個程序員積累的知識量等到可以從容面對工作時,又發(fā)現(xiàn)自己的體力已經(jīng)被前些年的學(xué)習(xí)和摸索掏空和耗盡了!每個程序員都在經(jīng)歷這樣的輪回,程序員網(wǎng)校在想:“能否讓程序員的職業(yè)生涯更長些?程序員的工作變得輕松些?”如果要想讓程序員的工作變得簡單些,首先就應(yīng)該讓技術(shù)學(xué)習(xí)變得輕松!如果一個人把自己通過一年精心梳理出來的某個經(jīng)驗一針見血地用一個小時交給了其他的千萬人,其他人豈不節(jié)省了很多很多的寶貴時間嗎?如果有很多有經(jīng)驗的人士都來開放、交流、共享自己的經(jīng)驗,程序員的工作還會那么辛苦嗎?程序員網(wǎng)校必將精心制作每個技術(shù)點的文字與視頻教程,盡可能一針見血地講解清楚問題的本質(zhì)和最大限度地節(jié)省學(xué)習(xí)者的學(xué)習(xí)時間,讓程序員把富余的時間投入到工作和生活中去,為提高程序員的生活狀況盡最大努力!程序員網(wǎng)校的發(fā)展理念第二頁,共十二頁。背景介紹軟件開發(fā)公司現(xiàn)在都越來越精明和狡猾了,他們把日后工作中要解決的問題、并且是他們自己都很難解決的問題拿出來讓面試求職者去搞,不管面試求職者的水平怎樣,他們都說誰能搞定,誰就來上班,這樣至少求職者在進公司之前就已經(jīng)為公司做了貢獻(xiàn)。軟件公司這招夠狠、夠高!前一陣子的某一天中午,有一個學(xué)員打電話給我說:“他去國內(nèi)某大型的軟件外包公司應(yīng)聘了,要求的薪水是7k,該公司給了他一道面試題,就是要做一個模擬的交通燈管理系統(tǒng),并說公司外包了一個法國交通系統(tǒng)的項目,現(xiàn)在就是在替做這個交通系統(tǒng)的項目組招人,這個交通燈管理系統(tǒng)就是招聘進來的人上班后要開發(fā)的項目模型,如果他在家三天內(nèi)能夠做出來,他就可以入職上班了,并且他要求的薪水則不是任何問題,還可以更高一些。”這個同學(xué)做了兩天,感到很困難,于是打電話向我求助,我讓他把題目發(fā)到我的郵箱。晚上,又有一個學(xué)員給我打電話,說是去某公司面試了,該公司讓他做一個交通燈管理系統(tǒng),三天內(nèi)做出來就可以直接去上班,我馬上告訴他,已經(jīng)有一個同學(xué)先他一步來找我了,我只能滿足他們兩人中的一人,否則,他們就會出現(xiàn)答案雷同,最后對他們兩人都造成不利影響。后來,又有幾個學(xué)員拿著不同公司的面試題找我,題目如出一轍,都是公司要求把日后的項目拿回家做,什么時候做好就什么時候上班??磥硪院罂勘澄覀兊拿嬖噷毜鋪硗粨粽夜ぷ鞯姆绞皆絹碓嚼щy了,軟件公司把他們項目中的復(fù)雜問題拿出來讓面試者做,如果面試者正好是傳智播客的學(xué)員,他們必將求助于我們,我們這批老師也就順理成章地成為這些公司免費使用的超級勞工。第三頁,共十二頁。
交通燈管理系統(tǒng)的項目需求第四頁,共十二頁。
切不可空想,一定要畫圖!畫圖非常有助于理解和分析問題,你還有比畫圖更好的辦法嗎?第五頁,共十二頁。
面向?qū)ο蟮姆治雠c設(shè)計每條路線上都會出現(xiàn)多輛車,路線上要隨機增加新的車,在燈綠期間還要每秒鐘減少一輛車。設(shè)計一個Road類來表示路線,每個Road對象代表一條路線,總共有12條路線,即系統(tǒng)中總共要產(chǎn)生12個Road實例對象。每條路線上隨機增加新的車輛,增加到一個集合中保存。每條路線每隔一秒都會檢查控制本路線的燈是否為綠,是則將本路線保存車的集合中的第一輛車移除,即表示車穿過了路口。每條路線每隔一秒都會檢查控制本路線的燈是否為綠,一個燈由綠變紅時,應(yīng)該將下一個方向的燈變綠。設(shè)計一個Lamp類來表示一個交通燈,每個交通燈都維護一個狀態(tài):亮(綠)或不亮(紅),每個交通燈要有變亮和變黑的方法,并且能返回自己的亮黑狀態(tài)。總共有12條路線,所以,系統(tǒng)中總共要產(chǎn)生12個交通燈。右拐彎的路線本來不受燈的控制,但是為了讓程序采用統(tǒng)一的處理方式,故假設(shè)出有四個右拐彎的燈,只是這些燈為常亮狀態(tài),即永遠(yuǎn)不變黑。除了右拐彎方向的其他8條路線的燈,它們是兩兩成對的,可以歸為4組,所以,在編程處理時,只要從這4組中各取出一個燈,對這4個燈依次輪詢變亮,與這4個燈方向?qū)?yīng)的燈則隨之一同變化,因此Lamp類中要有一個變量來記住自己相反方向的燈,在一個Lamp對象的變亮和變黑方法中,將對應(yīng)方向的燈也變亮和變黑。每個燈變黑時,都伴隨者下一個燈的變亮,Lamp類中還用一個變量來記住自己的下一個燈。無論在程序的什么地方去獲得某個方向的燈時,每次獲得的都是同一個實例對象,所以Lamp類改用枚舉來做顯然具有很大的方便性,永遠(yuǎn)都只有代表12個方向的燈的實例對象。設(shè)計一個LampController類,它定時讓當(dāng)前的綠燈變紅。第六頁,共十二頁。
Road類的編寫每個Road對象都有一個name成員變量來代表方向,有一個vehicles成員變量來代表方向上的車輛集合。在Road對象的構(gòu)造方法中啟動一個線程每隔一個隨機的時間向vehicles集合中增加一輛車(用一個“路線名_id”形式的字符串進行表示)。在Road對象的構(gòu)造方法中啟動一個定時器,每隔一秒檢查該方向上的燈是否為綠,是則打印車輛集合和將集合中的第一輛車移除掉。第七頁,共十二頁。Lamp類的編寫系統(tǒng)中有12個方向上的燈,在程序的其他地方要根據(jù)燈的名稱就可以獲得對應(yīng)的燈的實例對象,綜合這些因素,將Lamp類用java5中的枚舉形式定義更為簡單。每個Lamp對象中的亮黑狀態(tài)用lighted變量表示,選用S2N、S2W、E2W、E2N這四個方向上的Lamp對象依次輪詢變亮,Lamp對象中還要有一個oppositeLampName變量來表示它們相反方向的燈,再用一個nextLampName變量來表示此燈變亮后的下一個變亮的燈。這三個變量用構(gòu)造方法的形式進行賦值,因為枚舉元素必須在定義之后引用,所以無法再構(gòu)造方法中彼此相互引用,所以,相反方向和下一個方向的燈用字符串形式表示。增加讓Lamp變亮和變黑的方法:light和blackOut,對于S2N、S2W、E2W、E2N這四個方向上的Lamp對象,這兩個方法內(nèi)部要讓相反方向的燈隨之變亮和變黑,blackOut方法還要讓下一個燈變亮。除了S2N、S2W、E2W、E2N這四個方向上的Lamp對象之外,其他方向上的Lamp對象的nextLampName和oppositeLampName屬性設(shè)置為null即可,并且S2N、S2W、E2W、E2N這四個方向上的Lamp對象的nextLampName和oppositeLampName屬性必須設(shè)置為null,以便防止light和blackOut進入死循環(huán)。第八頁,共十二頁。
LampController類的編寫整個系統(tǒng)中只能有一套交通燈控制系統(tǒng),所以,LampController類最好是設(shè)計成單例。LampController構(gòu)造方法中要設(shè)定第一個為綠的燈。LampController對象的start方法中將當(dāng)前燈變綠,然后啟動一個定時器,每隔10秒將當(dāng)前燈變紅和將下一個燈變綠。第九頁,共十二頁。
MainClass類的編寫用for循環(huán)創(chuàng)建出代表12條路線的對象。接著再獲得LampController對象并調(diào)用其start方法。第十頁,共十二頁。結(jié)束語
熱烈歡迎各軟件公司到傳智播客公司預(yù)定和招聘軟件開發(fā)人才!謝謝!第十一頁,共十二頁。內(nèi)容總結(jié)面試題系列。設(shè)計一個Road類來表示路線,每個Road對象代表一條路線,總共有12條路線,即系統(tǒng)中總共要產(chǎn)生12個Road實例對象。除了右拐彎方向的其他8條路線的燈,它們是兩兩成對的,可以歸為4組,所以,在編程處理時,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 占破道合同范本
- 代辦工作合同范例
- ppp顧問合同范例
- 寧波小型民宿施工方案
- 文旅市場需求分析與資源匹配策略
- 教師科研能力的提升策略
- 2025年銀行工作計劃策略行政工作計劃
- 廣東省深圳市龍崗區(qū)南灣校2025屆中考生物模試卷含解析
- 江蘇省無錫市江陰實驗中學(xué)2025屆中考生物全真模擬試卷含解析
- 冰雪經(jīng)濟中的科技創(chuàng)新與數(shù)字化應(yīng)用策略
- 高三開學(xué)收心班會課件
- 蒸汽換算計算表
- 人教版高中數(shù)學(xué)必修1全冊導(dǎo)學(xué)案
- 四年級計算題大全(列豎式計算,可打印)
- 科技計劃項目申報培訓(xùn)
- 591食堂不合格食品處置制度
- 國際金融課件(完整版)
- 導(dǎo)向標(biāo)識系統(tǒng)設(shè)計(一)課件
- 220t鍋爐課程設(shè)計 李學(xué)玉
- 全英文劇本 《劇院魅影》
- 北京城的中軸線PPT通用課件
評論
0/150
提交評論