2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程設(shè)計(jì)</p><p>  計(jì)程車(chē)計(jì)價(jià)器設(shè)計(jì)(用計(jì)算機(jī)系統(tǒng)的輸入輸出設(shè)備完成)</p><p><b>  二O一O年九月</b></p><p><b>  目 錄</b></p><p>  摘要 ……………………………………………………

2、……………2</p><p>  1.設(shè)計(jì)的主要內(nèi)容和方案……………………………………………2</p><p>  2.任務(wù)分工 ……………………………………………………………3</p><p>  3.操作說(shuō)明 ……………………………………………………………3</p><p>  4.程序流程圖 …………………………………………………

3、………4</p><p>  4.1 主程序流程圖 ……………………………………………4</p><p>  4.2 路程計(jì)價(jià)與等待時(shí)間計(jì)價(jià)切換流程圖…………………………5</p><p>  4.3 路程計(jì)價(jià)流程圖 ……………………………………………6</p><p>  4.4 時(shí)間計(jì)價(jià)流程圖 ……………………………

4、………………6</p><p>  4.5 顯示程序流程圖 ……………………………………………6</p><p>  5. 總結(jié)與體會(huì) …………………………………………………………7</p><p>  5.1 呂天志的總結(jié)與體會(huì)……………………………………………7</p><p>  5.2 馮尚飛的總結(jié)與體會(huì)………………………………

5、……………8</p><p>  5.3 唐杰的總結(jié)與體會(huì) ……………………………………………9</p><p>  5.4 曠駒的總結(jié)與體會(huì) ……………………………………………10</p><p>  6.參考文獻(xiàn) ……………………………………………………………10</p><p>  7.程序清單 …………………………………………………

6、…………11</p><p>  出租車(chē)計(jì)價(jià)器的設(shè)計(jì)(用計(jì)算機(jī)系統(tǒng)的輸入輸出設(shè)備完成)</p><p>  摘 要:出租車(chē)計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車(chē)行業(yè)發(fā)展的重要標(biāo)志,是出租車(chē)中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車(chē)司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。因此,汽車(chē)計(jì)價(jià)器的研究也是十分有一個(gè)應(yīng)用價(jià)值的。學(xué)習(xí)了計(jì)算機(jī)硬件技術(shù)基礎(chǔ),我們對(duì)微機(jī)

7、原理有了初步了解,也能編程實(shí)現(xiàn)一些基本功能。我們根據(jù)計(jì)價(jià)器的設(shè)計(jì)要求,用計(jì)算機(jī)輸入輸出設(shè)備完成了出租車(chē)計(jì)價(jià)器的軟件設(shè)計(jì)。</p><p>  1 設(shè)計(jì)的主要內(nèi)容和方案</p><p>  分析任務(wù)要求,確定系統(tǒng)整體設(shè)計(jì)思路系統(tǒng)的設(shè)計(jì)方案</p><p>  1分析任務(wù)要求,確定系統(tǒng)整體設(shè)計(jì)思路</p><p>  方案一:用匯編語(yǔ)言實(shí)現(xiàn)<

8、;/p><p>  軟件設(shè)計(jì)分為五個(gè)模塊:主程序模塊、路程計(jì)價(jià)模塊、停車(chē)等待計(jì)價(jià)模塊、油耗計(jì)算及報(bào)警模塊、顯示模塊。</p><p>  在主程序中,通過(guò)設(shè)置相應(yīng)的中斷向量,調(diào)用相應(yīng)的中斷服務(wù)程序,完成相應(yīng)的計(jì)價(jià),調(diào)用相關(guān)顯示程序,完成計(jì)價(jià)器的最終顯示。路程計(jì)價(jià)模塊中,首先根據(jù)行車(chē)速度和行車(chē)時(shí)間計(jì)算出行車(chē)路程,其中,行車(chē)時(shí)間可以由計(jì)算機(jī)內(nèi)部的8254定時(shí)器通道0完成,然后根據(jù)路程和預(yù)先輸入的起

9、步價(jià)和每公里單價(jià)計(jì)算出價(jià)格。在計(jì)價(jià)過(guò)程中,若遇到停車(chē),但沒(méi)有停止計(jì)價(jià),則轉(zhuǎn)入停車(chē)等待計(jì)價(jià)模塊。在停車(chē)等待計(jì)價(jià)模塊中,根據(jù)等待時(shí)間及預(yù)設(shè)單價(jià),其中等待時(shí)間由8254定時(shí)器實(shí)現(xiàn),再計(jì)算出等待價(jià)格。在這個(gè)過(guò)程中,若車(chē)輛開(kāi)始行駛則轉(zhuǎn)入路程計(jì)價(jià)模塊。在油耗模塊中,根據(jù)行車(chē)路程和每公里油耗,計(jì)算相應(yīng)的剩余油量,當(dāng)油量一旦低于警戒值則發(fā)出報(bào)警信號(hào),油量為0時(shí)強(qiáng)制停車(chē)。</p><p>  方案二:用C語(yǔ)言實(shí)現(xiàn)</p>

10、;<p>  主要分為三個(gè)子程序模塊:初始化主程序、主體運(yùn)行子程序、示子程序。</p><p>  初始化包括各個(gè)變量的初始化定義、函數(shù)定義、從鍵盤(pán)接收字符,輸出提示字符提示從鍵盤(pán)輸入數(shù)據(jù)。主體部分包括路程計(jì)價(jià)模塊、停車(chē)等待計(jì)價(jià)模塊、油耗計(jì)算及報(bào)警模塊。路程計(jì)價(jià)模塊中,首先根據(jù)行車(chē)速度和行車(chē)時(shí)間計(jì)算出行車(chē)路程,其中,行車(chē)時(shí)間可以由計(jì)算機(jī)系統(tǒng)時(shí)間得到,然后根據(jù)路程和預(yù)先輸入的起步價(jià)和每公里單價(jià)計(jì)算出價(jià)

11、格。在計(jì)價(jià)過(guò)程中,若遇到停車(chē),但沒(méi)有停止計(jì)價(jià),則轉(zhuǎn)入停車(chē)等待計(jì)價(jià)模塊。在停車(chē)等待計(jì)價(jià)模塊中,根據(jù)等待時(shí)間及預(yù)設(shè)單價(jià),其中等待時(shí)間調(diào)用PC機(jī)系統(tǒng)時(shí)間計(jì)時(shí),每隔一分鐘一次單價(jià)。在這個(gè)過(guò)程中,若車(chē)輛開(kāi)始行駛則轉(zhuǎn)入路程計(jì)價(jià)模塊。在油耗模塊中,根據(jù)行車(chē)路程和每公里油耗,計(jì)算相應(yīng)的剩余油量,當(dāng)油量一旦低于警戒值則發(fā)出報(bào)警信號(hào),油量為0時(shí)強(qiáng)制停車(chē)。</p><p>  優(yōu)化功能:1顯示路程的單價(jià),符合明碼標(biāo)價(jià)的規(guī)定,可以讓消費(fèi)

12、者消費(fèi)得更明白。2設(shè)置了輸出背景,并且用不同的顏色顯示,使顯示界面更加友好。3一旦油量為0,從實(shí)際出發(fā),則強(qiáng)制停車(chē),并停止計(jì)價(jià)。</p><p>  根據(jù)小組討論和實(shí)踐驗(yàn)證分析,我們發(fā)現(xiàn)在用匯編語(yǔ)言進(jìn)行軟件設(shè)計(jì)時(shí),組員們普遍遇到了較大困難,對(duì)計(jì)算機(jī)內(nèi)部的中斷機(jī)制不清楚,只能運(yùn)用定時(shí)中斷,無(wú)法運(yùn)用軟件中斷,在處理數(shù)據(jù)時(shí)也遇到了較大困難。因此,我們?cè)谘芯苛擞?jì)價(jià)器硬件工作原理后,決定用C語(yǔ)言完成系統(tǒng)的軟件設(shè)計(jì)。<

13、/p><p><b>  2 任務(wù)分工</b></p><p>  根據(jù)總體設(shè)計(jì)方案,確定每位組員的詳細(xì)分工</p><p>  小組討論系統(tǒng)優(yōu)化功能設(shè)計(jì),完成總的軟件設(shè)計(jì),加入相關(guān)的優(yōu)化功能,小組成員共同完成最終程序的調(diào)試運(yùn)行,并根據(jù)運(yùn)行結(jié)果作出相應(yīng)的調(diào)整,完成設(shè)計(jì)任務(wù)。</p><p><b>  3 操作說(shuō)明

14、</b></p><p>  在程序開(kāi)始運(yùn)行后,系統(tǒng)的初始狀態(tài)是出租車(chē)停止,具體操作方式如下:</p><p><b>  按任意鍵啟動(dòng)系統(tǒng)</b></p><p>  設(shè)置3公里以內(nèi)的白天和晚上的價(jià)格</p><p>  設(shè)置3公里以外的白天和晚上的價(jià)格</p><p>  設(shè)置出租

15、車(chē)時(shí)速(0<V<1000)</p><p><b>  設(shè)置起初車(chē)內(nèi)油量</b></p><p><b>  設(shè)置每公里耗油量</b></p><p>  按任意鍵啟動(dòng)速度計(jì)價(jià)</p><p>  按q等待計(jì)時(shí),按s車(chē)啟動(dòng),按esc車(chē)停止計(jì)價(jià)。</p><p>&

16、lt;b>  4 程序流程圖</b></p><p><b>  主程序流程圖:</b></p><p><b>  否</b></p><p><b>  是</b></p><p>  是 否</p><p&

17、gt;<b>  否</b></p><p>  路程計(jì)價(jià)與等待時(shí)間計(jì)價(jià)切換流程圖</p><p><b>  是</b></p><p>  否 </p><p>  是 否</p><p><b>  路程計(jì)價(jià)

18、流程圖:</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  否</b></p><p><b>  是</b></p><p><b>  時(shí)間

19、計(jì)價(jià)流程圖:</b></p><p><b>  否</b></p><p><b>  顯示程序流程圖:</b></p><p>  否 是</p><p><b>  5 總結(jié)與體會(huì)</b></p><p>  學(xué)習(xí)了計(jì)算

20、機(jī)硬件基礎(chǔ),我們了解了計(jì)算機(jī)內(nèi)部指令工作原理并學(xué)會(huì)了用匯編語(yǔ)言完成簡(jiǎn)單的程序設(shè)計(jì),同時(shí)也理解了高級(jí)語(yǔ)言是如何在計(jì)算機(jī)內(nèi)部實(shí)現(xiàn)的。經(jīng)過(guò)了硬件技術(shù)課程設(shè)計(jì)我們真正地學(xué)會(huì)了如何應(yīng)用應(yīng)用硬件技術(shù)完成簡(jiǎn)單地設(shè)計(jì)。</p><p>  拿到這個(gè)題目,出租車(chē)計(jì)價(jià)器的實(shí)現(xiàn),我大體想了一下設(shè)計(jì)思路。首先應(yīng)該調(diào)用系統(tǒng)時(shí)間判斷是白天還是晚上,進(jìn)而轉(zhuǎn)向不同的子程序,然后就是計(jì)價(jià)模塊,分兩部分,一部分是車(chē)在行駛時(shí)的計(jì)價(jià),另一部分時(shí)車(chē)停止時(shí)

21、的計(jì)價(jià),最后計(jì)算油耗并顯示相應(yīng)的內(nèi)容。于是便分配了每個(gè)組員的任務(wù)。我嘗試用匯編語(yǔ)言編寫(xiě)主程序,用計(jì)算機(jī)內(nèi)部的8254通道0作為定時(shí)器,定時(shí)一秒產(chǎn)生一次中斷,在中斷服務(wù)程序完成計(jì)價(jià),但怎樣判斷停車(chē)并產(chǎn)生中斷一時(shí)半伙搞不清楚,另外,數(shù)據(jù)的處理、顯示都有一定難度。鑒于此,我們小組討論決定用C語(yǔ)言完成程序的設(shè)計(jì)。用C語(yǔ)言編寫(xiě)程序不用考慮數(shù)據(jù)處理,顯示也簡(jiǎn)單得多,但需要我們查閱相關(guān)資料調(diào)用相關(guān)函數(shù)完成計(jì)時(shí)、計(jì)算、輸出等。在組員們完成子程序的設(shè)計(jì)時(shí)

22、,我面臨的問(wèn)題是如何把一塊塊子程序連接起來(lái),實(shí)現(xiàn)從輸入到輸出,再到定時(shí)計(jì)時(shí)等一系列工作,開(kāi)始沒(méi)能連續(xù)計(jì)算時(shí)間,導(dǎo)致了輸出只顯示當(dāng)前值,時(shí)間路程都是固定不變的,通過(guò)不斷地改正、調(diào)試,終于實(shí)現(xiàn)了部分基本功能。關(guān)于報(bào)警我們?cè)贑語(yǔ)言中嵌套了匯編,但并不成功,后來(lái)我們查資料用/a實(shí)現(xiàn)了報(bào)警功能。再加入行駛過(guò)程中改變速度我們也費(fèi)了一番周折,幾次調(diào)試都不成功,但最終經(jīng)過(guò)我們的努力</p><p>  計(jì)價(jià)器的設(shè)計(jì),題目看似簡(jiǎn)單

23、,思路也清楚,但真正在編程時(shí)我們遇到了許多困難,因?yàn)樵诰唧w實(shí)施時(shí)要考慮很多細(xì)節(jié)的處理問(wèn)題。通過(guò)此次課程設(shè)計(jì),我學(xué)會(huì)了如何分析實(shí)際問(wèn)題并編程實(shí)現(xiàn),學(xué)會(huì)了如何克服各種困難,學(xué)會(huì)了如何分工協(xié)作共同完成項(xiàng)目的設(shè)計(jì)實(shí)施。</p><p>  這次課程設(shè)計(jì)我組有4名成員,做的是出租車(chē)計(jì)價(jià)器的設(shè)計(jì)(用計(jì)算機(jī)系統(tǒng)的輸入輸出設(shè)備完成),我的任務(wù)是負(fù)責(zé)按車(chē)速計(jì)價(jià)程序的編寫(xiě)和部分報(bào)告的完成。</p><p> 

24、 本來(lái)我們應(yīng)該用匯編去進(jìn)行編程,但根據(jù)小組討論和實(shí)踐驗(yàn)證分析,我們發(fā)現(xiàn)在用匯編語(yǔ)言進(jìn)行軟件設(shè)計(jì)時(shí),組員們普遍遇到了較大困難,對(duì)計(jì)算機(jī)內(nèi)部的中斷機(jī)制不清楚,只能運(yùn)用定時(shí)中斷,無(wú)法運(yùn)用軟件中斷,在處理數(shù)據(jù)時(shí)也遇到了較大困難。因此,我們?cè)谘芯苛擞?jì)價(jià)器硬件工作原理后,決定用C語(yǔ)言完成系統(tǒng)的軟件設(shè)計(jì)。</p><p>  我負(fù)責(zé)的部分本來(lái)比較簡(jiǎn)單,但具體操作的時(shí)候卻給了我不小的教訓(xùn)。編程的時(shí)候,我很快就把程序編好了,但當(dāng)我

25、把程序交給組長(zhǎng)運(yùn)行時(shí)他卻說(shuō)我的程序塊出現(xiàn)了問(wèn)題,輸入一個(gè)很小的時(shí)間卻有很高的價(jià)格。這下把又趕緊檢查,找了很長(zhǎng)時(shí)間還是不對(duì),就這樣兩天過(guò)去了,最后實(shí)在不行我去找認(rèn)識(shí)的一個(gè)編程比較好的同學(xué),我把大體內(nèi)容給他說(shuō)了一下,他開(kāi)始檢查我的程序,終于發(fā)現(xiàn)了錯(cuò)誤,原來(lái)我在算路程的時(shí)候沒(méi)把時(shí)間換成標(biāo)準(zhǔn)單位,忘了除3600。這本是一個(gè)很小的問(wèn)題但讓我感觸很多,其實(shí)很多人都很接近成功,而往往都是由于一點(diǎn)點(diǎn)小錯(cuò)誤而與成功失之交臂,這不得不讓人們感到惋惜,所以我

26、在以后的生活中會(huì)嚴(yán)格要求自己無(wú)論做什么事都嚴(yán)肅認(rèn)真。另外我的工作還有報(bào)告的完成,這一部分比較簡(jiǎn)單,我原本把大家的程序和感想總結(jié)在一塊就行了,但我不知怎么地完成以后卻忘記保存了,我趕緊又把大家的資料找回來(lái)重新做,幸虧大家的資料還在要不真不知道該怎么辦。</p><p>  就這樣我門(mén)的課程設(shè)計(jì)完成了,我做的并不像其他同學(xué)的那么難,需要差很多資料,但卻給了我不小的教訓(xùn),就拿忘保存這件事來(lái)說(shuō)吧,如果大家的資料沒(méi)備份我們

27、就得再做一遍,那樣既浪費(fèi)時(shí)間又降低了效率,再者現(xiàn)在只是個(gè)課程設(shè)計(jì),如果以后工作中把很重要的資料弄丟了,那樣后果會(huì)更嚴(yán)重,我真不敢再往下想了......</p><p>  不過(guò)這也給我一個(gè)提醒,無(wú)論干什么事都要有一個(gè)良好的習(xí)慣,做什么事不要急于求成要一絲不茍。另外我要考研,我想這會(huì)對(duì)我的考研有好處的,它會(huì)讓我在考研道路上減少曲折,也會(huì)讓我在以后的生活中減少波折......</p><p>

28、  計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程設(shè)計(jì)是本學(xué)期開(kāi)校第一個(gè)任務(wù),分組完成后每個(gè)人都承擔(dān)自己分內(nèi)之事,我們組的課程設(shè)計(jì)題目為:計(jì)程車(chē)計(jì)價(jià)設(shè)計(jì)(用計(jì)算機(jī)系統(tǒng)的輸入輸出設(shè)備完成),這個(gè)類(lèi)似現(xiàn)實(shí)的問(wèn)題確實(shí),有一定的難度,經(jīng)大家一并商量后,組長(zhǎng)呂天志分配給每個(gè)人任務(wù),其中我承擔(dān)的是:顯示當(dāng)前燃油量,車(chē)輛行進(jìn)過(guò)程中反映燃油的消耗,但燃油量低于警戒值時(shí)報(bào)警,以及畫(huà)各軟件模塊的流程圖。</p><p>  剛開(kāi)始我準(zhǔn)備用匯編語(yǔ)言編寫(xiě)程序,

29、但經(jīng)過(guò)吧一天的實(shí)踐后,發(fā)現(xiàn)比較復(fù)雜,后經(jīng)過(guò)大家商量決定用C語(yǔ)言編寫(xiě),看似短短的一句話,當(dāng)需要設(shè)計(jì)成程序后才知道,比較困難。程序語(yǔ)言不同于,一般的語(yǔ)言,太精煉,所以很容易忽略,整個(gè)過(guò)程中需要反復(fù)的編譯,找錯(cuò),其中過(guò)程,讓讓人郁悶,多方請(qǐng)教反復(fù)看書(shū)查閱資料最后寫(xiě)出了正確的程序。說(shuō)起來(lái)過(guò)程也是有些心酸,最后寫(xiě)出程序的一剎那,還是很有成就感的!在畫(huà)各軟件模塊的程序流程圖中困難很少,整個(gè)過(guò)程也很簡(jiǎn)單,我是在Word上畫(huà)的,整個(gè)過(guò)程比較輕松。<

30、;/p><p>  整個(gè)課程設(shè)計(jì)中遇到的問(wèn)題都是在完成程序設(shè)計(jì)中的,寫(xiě)出來(lái)的程序雖然不多但是耗費(fèi)了不少周折,在編寫(xiě)程序中,有些數(shù)據(jù)課程設(shè)計(jì)題目上并未給出,我們商量后決定采用一個(gè)合理的數(shù)據(jù),全組統(tǒng)一,如余油量少于2時(shí)報(bào)警等。完成設(shè)計(jì)后我回過(guò)頭看看,又加深了對(duì)c語(yǔ)言的了解,熟悉了它的應(yīng)用,當(dāng)然過(guò)程中也翻閱了很多參考資料,如程序設(shè)計(jì)技術(shù)及實(shí)驗(yàn)指導(dǎo)書(shū),計(jì)算機(jī)硬件技術(shù)基礎(chǔ)及實(shí)驗(yàn)指導(dǎo)書(shū)等。</p><p>

31、;  簡(jiǎn)單回顧這個(gè)過(guò)程,時(shí)間雖然短暫但是我們也從中學(xué)到了不少東西,凡事多商量,一個(gè)人的思維難免有局限性,一種方法走不通,趕快換路,時(shí)間很重要,分工合作互相幫助,明確任務(wù)詳細(xì)計(jì)劃,并按照計(jì)劃確定任務(wù)步驟一步步的攻克難題。我們同樣學(xué)會(huì)了一些把文字轉(zhuǎn)換為我們實(shí)際設(shè)計(jì)時(shí)所用語(yǔ)言的能力。再設(shè)計(jì)過(guò)程中大家齊心協(xié)力,最后將各自的子程序合并在一起,由組長(zhǎng)整合后,我們的程序最終正確的運(yùn)行,這里包含大家的兩周勞動(dòng),增強(qiáng)了我們的自信。</p>

32、<p>  這次關(guān)于計(jì)程車(chē)計(jì)價(jià)器的設(shè)計(jì)任務(wù)相對(duì)來(lái)說(shuō),比較繁瑣,我們一共花費(fèi)了一周左右的時(shí)間,每個(gè)人都積極動(dòng)手和思考,團(tuán)結(jié)得比較融洽,我們還把這個(gè)設(shè)計(jì)詳細(xì)地進(jìn)行了分工。每個(gè)人負(fù)責(zé)不同的一小塊。</p><p>  由于計(jì)價(jià)器可以說(shuō)是相對(duì)來(lái)說(shuō)比較智能的器件,因?yàn)樗挠?jì)價(jià)需要按照路程,時(shí)間的差異收費(fèi)不同,一般情況下它有個(gè)起步價(jià),一般設(shè)置在3公里范圍內(nèi),然后超過(guò)3公里了就按照每公里的單價(jià)收費(fèi)。這種情況比較普遍。

33、但是遇到路上堵車(chē)的情況,也就是出租車(chē)沒(méi)有走,但是同樣要計(jì)費(fèi),這種計(jì)費(fèi)方式就是按照時(shí)間進(jìn)行計(jì)費(fèi),也就是說(shuō)每隔一段時(shí)間,計(jì)價(jià)器計(jì)價(jià)結(jié)果增加一次單價(jià)。出租車(chē)的啟動(dòng)或者靜止應(yīng)該是計(jì)價(jià)器自己進(jìn)行分析,有必要設(shè)置一個(gè)傳感器。如果沒(méi)有設(shè)置傳感器,則需要人為的進(jìn)行計(jì)價(jià)調(diào)整,那樣相對(duì)來(lái)說(shuō)比較麻煩。然而更過(guò)時(shí)候,白天的收費(fèi)標(biāo)準(zhǔn)和晚間的收費(fèi)標(biāo)準(zhǔn)不同,晚上的收費(fèi)按照晚上的起步價(jià)和晚間美公里單價(jià)計(jì)算。比如說(shuō)晚上10點(diǎn)過(guò)后到早上7點(diǎn)之間這段時(shí)間里面。這種不需要計(jì)價(jià)

34、器自己感應(yīng),如果把它設(shè)計(jì)成計(jì)價(jià)器自動(dòng)調(diào)節(jié)收費(fèi)標(biāo)準(zhǔn),會(huì)產(chǎn)生一些沒(méi)必要的錯(cuò)誤,至少在時(shí)間上存在差異,比如快幾分鐘或者慢幾分鐘。我覺(jué)得人為地調(diào)整收費(fèi)情況比較好。</p><p>  這次設(shè)計(jì)任務(wù)中我主要是負(fù)責(zé)停車(chē)停車(chē)等待時(shí)的計(jì)價(jià)程序,也就是堵車(chē)或者等待乘客的時(shí)候所需要的程序,屬于一個(gè)子模塊。這個(gè)部分相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,而且內(nèi)容上不是很繁瑣。在設(shè)計(jì)該段程序之前我首先列出了程序流程圖。在此用文字作簡(jiǎn)單的描述,首先是程序開(kāi)始(

35、指等待的時(shí)候,即開(kāi)始等待),通過(guò)程序計(jì)算出時(shí)間,根據(jù)時(shí)間增加單價(jià),然后考慮等待時(shí)間是否結(jié)束了(也就是說(shuō)預(yù)先設(shè)置的開(kāi)關(guān)鍵S是否按下),若是,則程序結(jié)束,顯示出來(lái)。如果不是,那么需要回到第一步,繼續(xù)這個(gè)程序,直到等待時(shí)間結(jié)束為止。</p><p>  通過(guò)這次課程設(shè)計(jì),我學(xué)到了很多東西,。鍛煉了自己的動(dòng)手能力,積極查閱資料的動(dòng)力,以及思考能力。為今后投入工作打下了一個(gè)堅(jiān)實(shí)的基礎(chǔ)。同時(shí)更重要的是這次設(shè)計(jì)室分小組進(jìn)行的,

36、每個(gè)小組幾個(gè)成員一起探討,共同努力,提高了團(tuán)隊(duì)的意識(shí)。</p><p><b>  6 參考文獻(xiàn)</b></p><p>  [1].熊壯、陳策主編.程序設(shè)計(jì)技術(shù).重慶大學(xué)出版社</p><p>  [2].卜艷萍、周偉主編. 匯編語(yǔ)言程序設(shè)計(jì)教程. 清華大學(xué)出版社</p><p>  [3]. 徐愛(ài)蕓、向華主編. 匯編

37、語(yǔ)言程序設(shè)計(jì)教程與實(shí)驗(yàn). 清華大學(xué)出版社</p><p>  [4].黃勤、高富強(qiáng)主編.計(jì)算機(jī)硬件技術(shù)基礎(chǔ)實(shí)驗(yàn)教程.重慶大學(xué)出版社</p><p><b>  7 附錄</b></p><p><b>  程序清單</b></p><p>  #include <stdio.h><

38、/p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #include <time.h></p><p>  #include <conio.h></p><p>  #include <

39、;graphics.h></p><p>  double temp,V,oil,oil_used,price_day,price_night,price_day3,price_night3;</p><p>  char reset[256];</p><p>  int st[256],R,t,X,Y,x,y;</p><p>  

40、clock_t start, finish; </p><p>  double price,distance,delay_min,delay_sec;</p><p>  char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri"

41、,"Sat"},*endptr; </p><p>  time_t timep; </p><p>  struct tm *p; </p><p>  const char tips1[256]="重置速度的提示:",tips2[256]="r=重新設(shè)置速度;c=取消設(shè)置;回車(chē)=速度設(shè)置完成;整數(shù) 且

42、 0<V<1000";</p><p>  float H, S, L;</p><p>  // sampal : 8 10 1.2 1.8 300 4 10</p><p>  bool getkey()</p><p><b>  {</b></p><p>  if

43、( kbhit( ) )</p><p><b>  {</b></p><p><b>  char ch;</b></p><p>  ch=getch();</p><p><b>  st[ch]++;</b></p><p>  if (ch=

44、='c'){st['c']=st['r']=0;reset[0]='\0';R=0;}</p><p>  if (st['r']>0 && ch >='0' && ch<='9')</p><p><b>  {<

45、;/b></p><p>  reset[R++]=ch;</p><p>  reset[R]='\0';</p><p><b>  }</b></p><p>  if (st['r']>0 && ch==8)</p><p>&l

46、t;b>  {</b></p><p>  reset[--R]='\0';</p><p><b>  }</b></p><p>  if (ch==13)</p><p><b>  {</b></p><p>  st[13]=st[

47、'r']=0;</p><p>  if (strtod(reset,&endptr)<1000)</p><p>  V=strtod(reset,&endptr);</p><p>  R=0;reset[0]='\0';</p><p><b>  }</b>&

48、lt;/p><p>  // 畫(huà)漸變的天空(通過(guò)亮度逐漸增加)</p><p>  H = 190;// 色相</p><p>  S = (float)1.4;// 飽和度</p><p>  L = 0.85f;// 亮度</p><p>  for(y = 300; y < 600; y+

49、+)</p><p><b>  {</b></p><p>  L += 0.0005f;</p><p>  setcolor( HSLtoRGB(H, S, L) );</p><p>  line(0, y, 799, y);</p><p><b>  }</b>&

50、lt;/p><p>  return true;</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  void init()</p><p><b>

51、  {</b></p><p>  R=0;reset[0]='\0';</p><p>  price=distance=0;</p><p>  delay_min=delay_sec=0;</p><p>  printf("please press any key to start the sys

52、tem...\n");</p><p>  while(!kbhit());</p><p><b>  getch();</b></p><p>  system("cls");</p><p>  printf("please set the price before 3 km

53、 in day and night ...\n");</p><p>  scanf("%lf%lf",&price_day,&price_night);</p><p>  system("cls");</p><p>  printf("please set the price more

54、 than 3 km in day and night ...\n");</p><p>  scanf("%lf%lf",&price_day3,&price_night3);</p><p>  system("cls");</p><p>  printf("please set th

55、e speed V km/h ...\n");</p><p>  scanf("%lf",&V);</p><p>  system("cls");</p><p>  printf("please set the oil mass ...\n");</p><p&g

56、t;  scanf("%lf",&oil);</p><p>  system("cls");</p><p>  printf("please set the oil used per 100km ...\n");</p><p>  scanf("%lf",&oil_

57、used);</p><p>  system("cls");</p><p>  printf("please press any key to start the taxi...\n");</p><p>  while(!kbhit());</p><p><b>  getch();&

58、lt;/b></p><p>  //LOGFONT f;</p><p>  //getfont(&f);// 獲取當(dāng)前字體設(shè)置</p><p>  //f.lfHeight = 30;// 設(shè)置字體高度為 48(包含行距)</p><p>  //strcpy(f.lfFaceName, &

59、quot;黑體");// 設(shè)置字體為“黑體”</p><p>  //f.lfQuality = ANTIALIASED_QUALITY;// 設(shè)置輸出效果為抗鋸齒 </p><p>  //setfont(&f);// 設(shè)置字體樣式</p><p>  initgraph(800, 600);// 設(shè)置屏幕

60、尺寸</p><p>  X=20;Y=10;</p><p>  setfont(24, 12, "黑體");// 設(shè)置字體</p><p>  // 畫(huà)漸變的天空(通過(guò)亮度逐漸增加)</p><p>  H = 190;// 色相</p><p>  S = (float)1.4;// 飽

61、和度</p><p>  L = 0.7f;// 亮度</p><p>  for(y = 0; y < 600; y++)</p><p><b>  {</b></p><p>  L += 0.0005f;</p><p>  setcolor( HSLtoRGB(H, S, L)

62、);</p><p>  line(0, y, 799, y);</p><p><b>  }</b></p><p>  start=clock();</p><p>  memset(st,0,sizeof(st));</p><p>  setcolor(0xFCFCFC);//

63、WHITE</p><p>  outtextxy(X,Y,tips1);</p><p>  outtextxy(X,Y+30,tips2);</p><p>  outtextxy(X,Y+60,"press ESC to leave the car...");</p><p>  outtextxy(X,Y+90,&

64、quot;press q to stop the car...");</p><p>  outtextxy(X,Y+120,"press s to start the car...");</p><p><b>  }</b></p><p>  void out()</p><p>&l

65、t;b>  {</b></p><p>  char temp[256],str[256];</p><p>  setcolor(0xA8A800);//CYAN</p><p>  strcpy(str,"當(dāng)前時(shí)間 ");</p><p>  ultoa(1900+p->tm_year

66、,temp,10); </p><p>  strcpy(str,temp);</p><p>  strcat(str,"/");</p><p>  ultoa(1+p->tm_mon,temp,10); </p><p>  strcat(str,temp);</p><p>  str

67、cat(str,"/");</p><p>  ultoa(p->tm_mday,temp,10); </p><p>  strcat(str,temp);</p><p>  strcat(str," ");</p><p>  strcat(str,wday[p->tm_wday])

68、;</p><p>  strcat(str," ");</p><p>  ultoa(p->tm_hour,temp,10); </p><p>  strcat(str,temp);</p><p>  strcat(str,":");</p><p>  ultoa

69、(p->tm_min,temp,10); </p><p>  strcat(str,temp);</p><p>  strcat(str,":");</p><p>  ultoa(p->tm_sec,temp,10); </p><p>  strcat(str,temp);</p><

70、;p>  outtextxy(X,Y+170,str);</p><p>  setcolor(0x00A800);//GREEN</p><p>  if (p->tm_hour>=7 && p->tm_hour<=22)</p><p><b>  {</b></p>&

71、lt;p>  strcpy(str,"起步價(jià)格 ");</p><p>  ultoa(int(price_day),temp,10);</p><p>  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int(price

72、_day*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+210,str);</p><p>  strcpy(str,"每公里單價(jià) ");</p><p>  ultoa(int(price_day3),temp,10);</

73、p><p>  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int(price_day3*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y

74、+240,str);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  strcpy(str,"起步價(jià)格 ");</p><p>  ul

75、toa(int(price_night),temp,10);</p><p>  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int(price_night*10)%10,temp,10);</p><p>  strcat(str,temp);

76、</p><p>  outtextxy(X,Y+210,str);</p><p>  strcpy(str,"每公里單價(jià) ");</p><p>  ultoa(int(price_night3),temp,10);</p><p>  strcat(str,temp);</p><p>  s

77、trcat(str,".");</p><p>  ultoa(int(price_night3*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+240,str);</p><p><b>  }</b><

78、/p><p>  setcolor(0xA800A8);//MAGENTA</p><p>  strcpy(str,"當(dāng)前速度 ");</p><p>  ultoa(int(V),temp,10);</p><p>  strcat(str,temp);</p><p>  strcat(

79、str,".");</p><p>  ultoa(int(V*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+270,str);</p><p>  setcolor(0x5454FC);//LIGHTRED</p&

80、gt;<p>  strcpy(str,"當(dāng)前價(jià)格 ");</p><p>  ultoa(int(price),temp,10);</p><p>  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int(pri

81、ce*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+300,str);</p><p>  strcpy(str,"當(dāng)前里程 ");</p><p>  ultoa(int(distance),temp,10);</p>

82、<p>  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int(distance*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+330,st

83、r);</p><p>  setcolor(0x54FCFC);//YELLOW</p><p>  strcpy(str,"等待時(shí)間 ");</p><p>  ultoa(delay_min,temp,10);</p><p>  if (delay_min<10)strcat(str,"0

84、");</p><p>  strcat(str,temp);</p><p>  strcat(str,":");</p><p>  ultoa(delay_sec,temp,10);</p><p>  if (delay_sec<10)strcat(str,"0");</p

85、><p>  strcat(str,temp);</p><p>  outtextxy(X,Y+360,str);</p><p>  strcpy(str,"剩余油量 ");</p><p>  ultoa(int(oil-distance/100*oil_used),temp,10);</p><p&

86、gt;  strcat(str,temp);</p><p>  strcat(str,".");</p><p>  ultoa(int((oil-distance/100*oil_used)*10)%10,temp,10);</p><p>  strcat(str,temp);</p><p>  outtextxy

87、(X,Y+390,str);</p><p>  if (oil-distance/100*oil_used <= 0.1 )</p><p><b>  {</b></p><p><b>  V=0;</b></p><p>  setcolor(RED);</p><

88、p>  outtextxy(X,Y+430,"油已耗盡 無(wú)法繼續(xù)行駛!");</p><p><b>  }</b></p><p>  else if (oil-distance/100*oil_used < 2 )</p><p><b>  {</b></p><p

89、>  setcolor(RED);</p><p>  outtextxy(X,Y+430,"油快耗盡!");</p><p>  printf("\a");</p><p><b>  }</b></p><p>  if (st['r']>0)<

90、;/p><p><b>  {</b></p><p>  setcolor(LIGHTBLUE);</p><p>  strcpy(str,"重置速度: V = ");</p><p>  strcat(str,reset);</p><p>  outtextxy(X,Y+4

91、70,str);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void run()</p><p><b>  {</b></p><p>  while(st[27]==0 &&

92、oil-distance/100*oil_used>0.1)//未按下ESC</p><p><b>  {</b></p><p>  time(&timep); </p><p>  p=localtime(&timep); </p><p>  t=p->tm_sec;<

93、/p><p>  finish=clock();</p><p>  distance+=(double)(finish - start) / CLOCKS_PER_SEC*V/3600;//得到里程</p><p>  if (distance<=3)</p><p><b>  {</b></p>

94、<p>  if (p->tm_hour>=7 && p->tm_hour<=22)</p><p>  price=price_day;</p><p>  else price=price_night;</p><p><b>  }</b></p><p><

95、;b>  else</b></p><p><b>  {</b></p><p>  if (p->tm_hour>=7 && p->tm_hour<=22)</p><p>  price=price_day+price_day3*(distance-3);</p>&

96、lt;p>  else price=price_night+price_night3*(distance-3);</p><p><b>  }</b></p><p>  start=finish;</p><p>  out();//輸出當(dāng)前狀態(tài)</p><p>  if (get

97、key())//獲取當(dāng)前鍵盤(pán)狀態(tài)</p><p><b>  {</b></p><p>  if (st['q']>0)</p><p><b>  {</b></p><p><b>  temp=V;</b><

98、/p><p><b>  V=0;</b></p><p>  st['s']=0;</p><p>  while(st[27]==0 && st['s']==0)</p><p><b>  {</b></p><p>  ti

99、me(&timep); </p><p>  p=localtime(&timep); </p><p>  t=p->tm_sec;</p><p>  finish=clock();</p><p>  delay_sec+=(double)(finish - start) / CLOCKS_PER_SEC;<

100、;/p><p>  if (delay_sec>=60)</p><p><b>  {</b></p><p>  delay_sec-=60;</p><p>  delay_min++;</p><p>  price+=delay_min;</p><p><

101、;b>  }</b></p><p><b>  getkey();</b></p><p><b>  out();</b></p><p>  start=finish;</p><p><b>  }</b></p><p>&l

102、t;b>  V=temp;</b></p><p>  st['q']=0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><

103、;b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  init();//初始化</p><p>  run();//主體運(yùn)行</p><p>  closegraph(); /

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論