版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)程序設(shè)計(jì)課程實(shí)踐任務(wù)書中南大學(xué)交通運(yùn)輸工程學(xué)院CAD/CAM教研室課程設(shè)計(jì)是C/C+語言教學(xué)中,一個(gè)重要的實(shí)踐環(huán)節(jié)。一般來講,課程設(shè)計(jì)應(yīng)該比課程教學(xué)實(shí)驗(yàn)復(fù)雜一些,要求所涉及的內(nèi)容應(yīng)該有一定的深度和廣度,并更加接近現(xiàn)實(shí)應(yīng)用。通過課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問題、編程和動(dòng)手能力,最終目標(biāo)是想通過這種形式,幫助學(xué)生系統(tǒng)掌握該門課程的主要內(nèi)容,更好地完成教學(xué)任務(wù)。本任務(wù)書簡要介紹C/C+語言課程設(shè)計(jì)的要求,并給出設(shè)計(jì)題目及其預(yù)期目標(biāo)。1 課程設(shè)計(jì)目標(biāo)使學(xué)生綜合使用所學(xué)過的C/C+語言程序設(shè)計(jì)知識(shí),掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本思路和方法,利用所學(xué)的基本知識(shí)和技能,發(fā)揮自學(xué)能力和查找資料的能力,
2、解決稍微復(fù)雜的結(jié)構(gòu)化程序設(shè)計(jì)問題,加深對(duì)所學(xué)知識(shí)的理解與掌握,增強(qiáng)學(xué)生利用自己所學(xué)知識(shí)解決實(shí)際問題的能力,為以后的程序開發(fā)打下基礎(chǔ)。課程設(shè)計(jì)的目的和要求: 1、使學(xué)生鞏固和加強(qiáng)C語言程序設(shè)計(jì)課程的理論知識(shí)。2、使學(xué)生掌握C/C+語言的基本概念、語法、語義和數(shù)據(jù)類型的使用特點(diǎn)。3、使學(xué)生掌握C/C+語言程序設(shè)計(jì)的方法及編程技巧,能正確使用C/C+語言編寫程序。4、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程設(shè)計(jì)的思想和方法;學(xué)會(huì)利用流程圖或N-S圖表示算法。5、使學(xué)生掌握調(diào)試程序的基本方法及上機(jī)操作方法。6、掌握書寫程設(shè)計(jì)開發(fā)文檔的能力,使學(xué)生學(xué)會(huì)撰寫課程設(shè)計(jì)總結(jié)報(bào)告。課程設(shè)計(jì)的思想和方法還可以作為學(xué)生做畢業(yè)論文時(shí)
3、的參考資料。7、通過查閱手冊和文獻(xiàn)資料,培養(yǎng)學(xué)生獨(dú)立分析問題和解決問題的能力。為學(xué)生做畢業(yè)設(shè)計(jì)打好基礎(chǔ)。8、初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法:結(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋知識(shí)點(diǎn),又接近工程實(shí)際需要。通過激發(fā)學(xué)習(xí)興趣,調(diào)動(dòng)學(xué)生主動(dòng)學(xué)習(xí)的積極性,并引導(dǎo)他們根據(jù)實(shí)際編程要求,訓(xùn)練自己實(shí)際分析 問題的能力及編程能力,并養(yǎng)成良好的編程習(xí)慣。9、培養(yǎng)學(xué)生的創(chuàng)新能力和創(chuàng)新思維。學(xué)生可以根據(jù)指導(dǎo)書和相關(guān)文獻(xiàn)上的參考算法,自己設(shè)計(jì)出相應(yīng)的應(yīng)用程序。10、培養(yǎng)學(xué)生良好的程序設(shè)計(jì)風(fēng)格。在實(shí)際編程中,為了提高編程質(zhì)量,對(duì)空行、空格和注釋均有要求。學(xué)生在課程設(shè)計(jì)書寫代碼時(shí),應(yīng)該嚴(yán)格按要求處理,以便建立良好
4、的程序設(shè)計(jì)風(fēng)格。2 課程設(shè)計(jì)內(nèi)容2.1 設(shè)計(jì)環(huán)境編譯器為Visual C+ 6.0及以上版本2.2 基本要求1. 每個(gè)班分為15個(gè)組,每組2人。每組一題。每組成員分工合作完成一個(gè)課程設(shè)計(jì),每組2人進(jìn)行任務(wù)分工。則上每組題目不能重復(fù)。如重復(fù)需經(jīng)指導(dǎo)老師批準(zhǔn)。2. 要求利用結(jié)構(gòu)化程序設(shè)計(jì)方法以及C/C+的編程思想來完成系統(tǒng)的設(shè)計(jì)。3. 數(shù)據(jù)使用數(shù)組、結(jié)構(gòu)體、鏈表等均可,鍵盤操作或鼠標(biāo)操作均可,設(shè)計(jì)必要的界面、菜單、文件操作。4. 模塊化程序設(shè)計(jì):要求在設(shè)計(jì)的過程中,按功能定義函數(shù)或書寫多個(gè)文件,進(jìn)行模塊化設(shè)計(jì),各個(gè)功能模塊用函數(shù)的形式來實(shí)現(xiàn)。5. 學(xué)生所選課題必須上機(jī)通過,并獲得滿意的結(jié)果。6.
5、程序書寫風(fēng)格:鋸齒型書寫格式。2.3 設(shè)計(jì)步驟1、根據(jù)問題描述,設(shè)計(jì)數(shù)據(jù)存儲(chǔ)方式; 2、分析系統(tǒng)功能,劃分功能模塊,確定各模塊函數(shù)名稱;3、主程序算法設(shè)計(jì)和各模塊算法設(shè)計(jì);4、編程實(shí)現(xiàn);5、調(diào)試和測試;6、完成設(shè)計(jì)文檔和設(shè)計(jì)說明書。2.4 課程設(shè)計(jì)報(bào)告的要求1、需求分析描述問題。簡述課題要解決的問題是什么,有什么要求和限制條件。2、總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖、流程圖)3、詳細(xì)設(shè)計(jì)(模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等)4、調(diào)試與測試:調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施5、測試結(jié)果,用幾組測試數(shù)據(jù)進(jìn)行測試算法設(shè)計(jì)的正確性。6、源程
6、序清單和結(jié)果:源程序要加注釋。結(jié)果要包括測試數(shù)據(jù)和運(yùn)行結(jié)果。2.5時(shí)間安排1. 準(zhǔn)備階段(時(shí)間:一天)明確設(shè)計(jì)任務(wù)、理清思路、制定計(jì)劃、整理設(shè)計(jì)步驟。備注:以上內(nèi)容可集體討論。2. 功能模塊劃分(時(shí)間:二天)理清程序的總體流程,根據(jù)需要進(jìn)行功能模塊(函數(shù))劃分,定義各函數(shù)原型及功能。備注:以上內(nèi)容可集體討論。3. 程序的設(shè)計(jì)、調(diào)試階段(時(shí)間:六天)設(shè)計(jì)各功能模塊處理流程、獨(dú)立設(shè)計(jì)和調(diào)試程序,并不斷按要求完善程序功能。備注:以上內(nèi)容必須單獨(dú)完成。4. 提交程序設(shè)計(jì)說明書和源代碼打印件,面試(時(shí)間:一天) 2.6 設(shè)計(jì)題目1、學(xué)生綜合測評(píng)系統(tǒng)設(shè)計(jì)開發(fā)每個(gè)學(xué)生的信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)
7、系電話、語文、數(shù)學(xué)、外語三門單科成績、考試平均成績、考試名次、同學(xué)互評(píng)分、品德成績、任課教師評(píng)分、綜合測評(píng)總分、綜合測評(píng)名次。考試平均成績、同學(xué)互評(píng)分、品德成績、任課教師評(píng)分分別占綜合測評(píng)總分的60%,10%,10%,20%。具體實(shí)現(xiàn)如下功能:A、學(xué)生信息處理(1) 輸入學(xué)生信息、學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話,按學(xué)號(hào)以小到大的順序存入文件中。提示:學(xué)生信息可先輸入到數(shù)組中,排序后可寫到文件中。(2) 插入(修改)同學(xué)信息提示:先輸入將插入的同學(xué)信息,然后再打開源文件并建立新文件,把源文件和輸入的信息合并到新文件中(保持按學(xué)號(hào)有序)若存在該同學(xué)則將新記錄內(nèi)容替換源內(nèi)容,(3) 刪除同學(xué)信
8、息:提示:輸入將刪除同學(xué)號(hào),讀出該同學(xué)信息,要求對(duì)此進(jìn)行確認(rèn),以決定是否刪除將刪除后的信息寫到文件中。(4) 瀏覽學(xué)生信息:提示:打開文件,顯示該文件的學(xué)生信息。B、學(xué)生數(shù)據(jù)處理:(1) 按考試科目錄入學(xué)生成績并且按公式:考試成績(語文+數(shù)學(xué)+外語)/3 計(jì)算考試成績,并計(jì)算考試名次,提示:先把學(xué)生信息讀入數(shù)組,然后按提示輸入每科成績,計(jì)算考試成績,求出名次,最后把學(xué)生記錄寫入一個(gè)文件中。(2) 學(xué)生測評(píng)數(shù)據(jù)輸入并計(jì)算綜合測評(píng)總分及名次。提示:綜合測評(píng)總分(考試成績)*0.6+(同學(xué)互評(píng)分)*0.1+品德成績*0.1+任課老師評(píng)分*0.2。(3) 學(xué)生數(shù)據(jù)管理提示:輸入學(xué)號(hào),讀出并顯示該同學(xué)信
9、息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 學(xué)生數(shù)據(jù)查詢:提示:輸入學(xué)號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。C、學(xué)生綜合信息輸出提示:輸出學(xué)生信息到屏幕。2、圖書管理系統(tǒng)設(shè)計(jì)開發(fā)主要包括管理圖書的庫存信息、每一本書的借閱信息以及每一個(gè)人的借書信息。每一種圖書的庫存信息包括編號(hào)、書名、作者、出版社、出版日期、金額、類別、總?cè)霂鞌?shù)量、當(dāng)前庫存量、已借出本數(shù)等。每一本被借閱的書都包括如下信息:編號(hào)、書名、金額、借書證號(hào)、借書日期、到期日期、罰款金額等。每一個(gè)人的借書信息包括借書證號(hào)、姓名、班級(jí)、學(xué)號(hào)等。系統(tǒng)功能包括以下方面:A、借閱資料管理要求把書籍、期刊、報(bào)刊分類管理,這樣的話操作會(huì)更加靈活
10、和方便,可以隨時(shí)對(duì)其相關(guān)資料進(jìn)行添加、刪除、修改、查詢等操作。B、借閱管理 (1) 借出操作 (2) 還書操作 (3) 續(xù)借處理提示:以上處理需要互相配合以及賠、罰款金額的編輯等操作完成圖書借還業(yè)務(wù)的各種登記。例如:讀者還書時(shí)不僅更新圖書的庫存信息,還應(yīng)該自動(dòng)計(jì)算該書應(yīng)罰款金額。并顯示該讀者所有至當(dāng)日內(nèi)到期未還書信息。C、讀者管理讀者等級(jí):對(duì)借閱讀者進(jìn)行分類處理,例如可分為教師和學(xué)生兩類。并定義每類讀者的可借書數(shù)量和相關(guān)的借閱時(shí)間等信息。讀者管理:對(duì)讀者信息可以錄入,并且可對(duì)讀者進(jìn)行掛失或注銷、查詢等服務(wù)的作業(yè)
11、。D、統(tǒng)計(jì)分析 隨時(shí)可以進(jìn)行統(tǒng)計(jì)分析,以便及時(shí)了解當(dāng)前的借閱情況和相關(guān)的資料狀態(tài),統(tǒng)計(jì)分析包括借閱排行榜、資料狀態(tài)統(tǒng)計(jì)和借閱統(tǒng)計(jì)、顯示所有至當(dāng)日內(nèi)到期未還書信息等功能分析。E 系統(tǒng)參數(shù)設(shè)置:可以設(shè)置相關(guān)的罰款金額,最多借閱天數(shù)等系統(tǒng)服務(wù)器參數(shù)。3、教師工資管理系統(tǒng)設(shè)計(jì)開發(fā)每個(gè)教師的信息為:教師號(hào)、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補(bǔ)貼、應(yīng)發(fā)工資、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金、合計(jì)扣款、實(shí)發(fā)工資。注:應(yīng)發(fā)工資=基本工資+津貼+生活補(bǔ)貼;合計(jì)扣款=電話費(fèi)+水電費(fèi)+房租+所得稅+衛(wèi)生費(fèi)+公積金;實(shí)發(fā)工資=應(yīng)發(fā)工資 合計(jì)扣款。具體實(shí)現(xiàn)如
12、下功能:A、教師信息處理(1) 輸入教師信息(2) 插入(修改)教師信息:(3) 刪除教師信息:(4) 瀏覽教師信息:提示:具體功能及操作參考題1。B、教師數(shù)據(jù)處理:(1) 按教師號(hào)錄入教師基本工資、津貼、生活補(bǔ)貼、電話費(fèi)、水電費(fèi)、房租、所得稅、衛(wèi)生費(fèi)、公積金等基本數(shù)據(jù)。(2) 教師實(shí)發(fā)工資、應(yīng)發(fā)工資、合計(jì)扣款計(jì)算。提示:計(jì)算規(guī)則如題目。(3) 教師數(shù)據(jù)管理提示:輸入教師號(hào),讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信息到屏幕。4、教師工作量管理系統(tǒng)設(shè)計(jì)開發(fā)計(jì)算每個(gè)
13、老師在一個(gè)學(xué)期中所教課程的總工作量。(教師單個(gè)教學(xué)任務(wù)的信息為:教師號(hào)、姓名、性別、職稱、認(rèn)教課程、班級(jí)、班級(jí)數(shù)目、理論課時(shí)、實(shí)驗(yàn)課時(shí)、單個(gè)教學(xué)任務(wù)總課時(shí))。具體實(shí)現(xiàn)如下功能:A、教師信息處理(1) 輸入教師授課教學(xué)信息,包括教師號(hào)、姓名、性別、職稱、認(rèn)教課程、班級(jí)、班級(jí)數(shù)目、理論課時(shí)、實(shí)驗(yàn)課時(shí)。(2) 插入(修改)教師授課教學(xué)信息:(3) 刪除教師授課教學(xué)信息:(4) 瀏覽教師授課教學(xué)信息:B、教師工作量數(shù)據(jù)處理:(1) 計(jì)算單個(gè)教學(xué)任務(wù)總課時(shí)。計(jì)算原則如下表:班級(jí)數(shù)目單個(gè)教學(xué)任務(wù)總課時(shí)21.5*(理論課時(shí)+實(shí)驗(yàn)課時(shí))32*(理論課時(shí)+實(shí)驗(yàn)課時(shí))>=42.5*(理論課時(shí)+實(shí)驗(yàn)課時(shí))(2
14、) 計(jì)算一個(gè)教師一個(gè)學(xué)期總的教學(xué)工作量??偟慕虒W(xué)工作量=所有單個(gè)教學(xué)任務(wù)總課時(shí)之和。(3) 教師數(shù)據(jù)查詢:提示:輸入教師號(hào)或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。C、教師綜合信息輸出提示:輸出教師信息到屏幕。5、學(xué)校人事管理系統(tǒng)設(shè)計(jì)開發(fā)設(shè)計(jì)開發(fā)一個(gè)學(xué)校人事管理系統(tǒng),要求如下:某學(xué)校,主要人員有:在職人員(行政人員、教師、一般員工)、退休人員、返聘人員和臨時(shí)工?,F(xiàn)在,需要存儲(chǔ)這些人員的人事檔案信息:編號(hào)、姓名、性別、年齡、職務(wù)、職稱、政治面貌、最高學(xué)歷、任職時(shí)間、來院時(shí)間。具體實(shí)現(xiàn)如下功能: 1) 添加刪除功能:能根據(jù)學(xué)院人事的變動(dòng)情況,添加刪除記錄;2) 查詢功能:能根據(jù)編號(hào)和姓名進(jìn)行查詢
15、;3) 編輯功能(高級(jí)):根據(jù)查詢對(duì)相應(yīng)的記錄進(jìn)行修改,并存儲(chǔ);4) 統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)(在職人數(shù)、黨員人數(shù)、女工人數(shù)、高學(xué)歷高職稱人數(shù));5) 保存功能:能對(duì)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲(chǔ),要求重載插入和提取符以完成數(shù)據(jù)的保存和打開。6) 人員編號(hào)在生成人員信息時(shí)同時(shí)生成,每輸入一個(gè)人員信息編號(hào)順序加1。 6、飛機(jī)訂票系統(tǒng)設(shè)計(jì)開發(fā)假定民航機(jī)場共有n個(gè)航班,每個(gè)航班有一航班號(hào)、確定的航線(起始站、終點(diǎn)站)、確定的飛行時(shí)間(星期幾)和一定的成員訂額。試設(shè)計(jì)一民航訂票系統(tǒng),使之能提供下列服務(wù):1) 航班信息錄入功能(航班信息用文件保存)2) 航班信息瀏覽功能3) 查詢航線:(至少一種
16、查詢方式)4) 按航班號(hào)查詢5) 按終點(diǎn)站查詢6) 承辦訂票和退票業(yè)務(wù)7、學(xué)生選修課程系統(tǒng)設(shè)計(jì)假定有n門課程,每門課程有課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計(jì)一選修課程系統(tǒng),使之能提供以下功能:課程信息錄入功能(課程信息用文件保存)輸入課程信息瀏覽功能輸出查詢功能:(至少一種查詢方式)算法按學(xué)分查詢按課程性質(zhì)查詢學(xué)生選修課程8、銷售管理系統(tǒng)設(shè)計(jì)開發(fā)某公司有四個(gè)銷售員(編號(hào):1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號(hào):1-5)。每個(gè)銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容: 1)銷售
17、員的代號(hào)2)產(chǎn)品的代號(hào)3)這種產(chǎn)品的當(dāng)天的銷售額 每位銷售員每天可能上繳0-5張便條。假設(shè),收集到了上個(gè)月的所有便條,編寫一個(gè)處理系統(tǒng),讀取上個(gè)月的銷售情況(自己設(shè)定),進(jìn)行如下處理。1)計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷售額。 2)按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號(hào))3)統(tǒng)計(jì)每種產(chǎn)品的總銷售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷售額) 4)輸出統(tǒng)計(jì)報(bào)表 銷售統(tǒng)計(jì)報(bào)表 產(chǎn)品代號(hào) 銷售之和 銷售員代號(hào) 1 2 3 4 5 1 2 3 4 每種產(chǎn)品之和 總和9、車票管理系統(tǒng)設(shè)計(jì)開發(fā)一車站每天有n個(gè)發(fā)車班次,每個(gè)班次都有一班次號(hào)(1、2、3n),固定的發(fā)車時(shí)間,
18、固定的路線(起始站、終點(diǎn)站),大致的行車時(shí)間,固定的額定載客量。如班次 發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間 額定載量 已定票人數(shù)1 8:00 上海南 杭州 2 45 302 6:30 嘉興 杭州 0.5 40 403 7:00 嘉興 杭州 0.5 40 204 10:00 嘉興 杭州 0.5 40 2用C設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)如下功能要求:(1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù)(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過了某班次的發(fā)車時(shí)間,則顯示“此班已發(fā)出”的提示信息)。(3)查詢路線:可按班次號(hào)查詢 ,可按終點(diǎn)站查詢(4)售票和退票功能 A:當(dāng)查詢出已
19、定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,自動(dòng)更新已售票人數(shù)B:退票時(shí),輸入退票的班次,當(dāng)本班車未發(fā)出時(shí)才能退票,自動(dòng)更新已售票人數(shù)10、保安值班安排系統(tǒng)設(shè)計(jì)開發(fā)某公司有7名保安人員:趙、錢、孫、李、周、吳、陳。由于工作需要進(jìn)行輪休制度,一星期中每人休息一天。預(yù)先讓每一個(gè)人選擇自己認(rèn)為合適的休息日。請(qǐng)編制一程序,打印輪休的所有可能方案。當(dāng)然使每個(gè)人都滿意,例如每人選擇的休息日如下: 趙:星期二、星期四 錢:星期一、星期六 孫:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吳:星期二、星期五 陳:星期三、星期六、星期日11、簡單圖形處理系統(tǒng)設(shè)計(jì)開發(fā)設(shè)某圖形處理程序只考慮
20、點(diǎn)、直線、圓三種基本圖形。對(duì)于點(diǎn),給出點(diǎn)的橫縱坐標(biāo);對(duì)于直線,給出直線方程ax+by+c0的三個(gè)系數(shù)a,b,c;對(duì)于圓,給出圓心坐標(biāo)和半徑。試說明圖形的幾何形狀類型,并編寫輸入和輸出圖形數(shù)據(jù)、求兩點(diǎn)矩離、求兩直線交點(diǎn)、 已知點(diǎn)和半徑形成圓、已知兩點(diǎn)形成直線等函數(shù)。12、模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)開發(fā)要求: 能模擬機(jī)械鐘表行走,還要準(zhǔn)確地利用數(shù)字顯示日期和時(shí)間,在屏幕上顯示一個(gè)活動(dòng)時(shí)鐘,按任意鍵時(shí)程序退出。13、皇后問題程序設(shè)計(jì)開發(fā)在國際象棋中,能否在空棋盤上擺放八個(gè)皇后,并使其中任意兩個(gè)皇后不能在同一行或同一列或同一對(duì)角線上,并編寫完整的擺放八皇后問題的程序。要求:第一個(gè)皇后的起始位置由鍵盤輸入,國
21、際象棋的棋盤為8*8的方格。14、算術(shù)計(jì)算器設(shè)計(jì)開發(fā)功能要求:程序首先顯示計(jì)算器界面,并等待用戶輸入一個(gè)算術(shù)計(jì)算式(見圖1所示)。假如用戶輸入22+1<CR>,程序?qū)⒃谟?jì)算器的顯示屏上輸出計(jì)算結(jié)果(見圖2所示)。如果輸入錯(cuò)誤,顯示input error!。圖1 圖2計(jì)算器的界面程序已經(jīng)提供:(可訪問#include <stdio.h>#include <conio.h>void main() float a,b; char c; clrscr(); gotoxy(1,2); printf("諛哪哪哪哪哪哪哪哪哪哪哪哪縗n"); print
22、f("? 砛n"); printf("媚哪哪哪哪哪哪哪哪哪哪哪哪碶n"); printf("? 1 2 3 + - 砛n"); printf("? 砛n"); printf("? 4 5 6 * / 砛n"); printf("? 砛n"); printf("? 7 8 9 = x1b 砛n"); printf("? 砛n"); printf("? 0 . End 砛n"); printf("濫哪哪哪哪哪哪
23、哪哪哪哪哪哪賊n"); gotoxy(2,3); /following codes get user's input and complete the calculation /add your codes down here! /add your codes up here! 計(jì)算器1實(shí)現(xiàn)提示:l 讀懂并掌握顯示計(jì)算器界面的程序l 獲取用戶輸入的算式只需利用”%f%c%f”調(diào)用scanf函數(shù)就可以。其中%c用來獲取運(yùn)算符+,-,*,/,%f用來獲取運(yùn)算數(shù)。l 利用if語句或switch語句區(qū)分 +,-,*,/ 的不同情況進(jìn)行運(yùn)算輸出。l 在屏幕的指定位置輸出利用gotoxy
24、() 和cprintf函數(shù)實(shí)現(xiàn)。包含在conio.h頭文件中。1) 在算術(shù)計(jì)算器1的基礎(chǔ)上,實(shí)現(xiàn)算術(shù)計(jì)算器2。功能說明:算術(shù)計(jì)算器1一次只能執(zhí)行一次計(jì)算,算術(shù)計(jì)算器2要求實(shí)現(xiàn)可以多次響應(yīng)用戶的計(jì)算請(qǐng)求。當(dāng)用戶輸入一個(gè)算式后,計(jì)算器顯示計(jì)算結(jié)果,同時(shí)屏幕項(xiàng)部顯示:continue? 如果用戶此時(shí)按Y鍵,則繼續(xù)輸入下一個(gè)算式,否則,程序終止。計(jì)算器2實(shí)現(xiàn)提示:l 在“計(jì)算器1”的主要算法外層套一個(gè)循環(huán)語句l 在循環(huán)體內(nèi),顯示完計(jì)算結(jié)果后調(diào)用getch函數(shù),如果它的返回值不是y或Y,則跳出循環(huán),程序終止。2) 在算術(shù)計(jì)算器2的基礎(chǔ)上,實(shí)現(xiàn)算術(shù)計(jì)算器3。功能說明:算術(shù)計(jì)算器3不盲目等待用戶輸入,而是當(dāng)
25、用戶沒有輸入時(shí),計(jì)算器頂部顯示一串閃爍的文本“This is a simple calculator!”, 并且這串文本一會(huì)兒變成紅色,一會(huì)兒變成綠色。當(dāng)用戶按鍵時(shí),這串文本不再閃爍。 如果用戶按下End鍵,程序終止;否則程序接受用戶輸入的算式,并顯示計(jì)算結(jié)果。 顯示完計(jì)算結(jié)果后,程序繼續(xù)閃爍言文本 “This is a simple calculator!”,等待用戶輸入下一個(gè)算式或按End鍵退出。3) 計(jì)算器3實(shí)現(xiàn)提示:l 程序在調(diào)用scanf函數(shù)之前,必須先檢測是否有鍵被按下。l 顯示閃爍文本的算法如圖3所示。l 檢測是否有鍵按下,需要調(diào)用kbhit()庫函數(shù)。kbhit的原數(shù)原型: i
26、nt kbhit(void); kbhit函數(shù)功能:檢測是否有鍵按下,如果有,則返回非0值(即真),否則返回0(即假)。 調(diào)用kbhit()函數(shù)的源程序必須包含conio.h文件。l 具有延時(shí)功能的函數(shù)是delay(unsigned milliseconds)。 包含在dos.h頭文件中。Delay()函數(shù)的功能是:將程序掛起milliseconds毫秒,即程序暫停或延時(shí)milliseconds毫秒。l 當(dāng)kbhit函數(shù)返回非0時(shí),還要檢測是否是End鍵。這需要調(diào)用bioskey庫函數(shù)。但參數(shù)必須是1,不能是0。因?yàn)閎ioskey(1)雖然返回用戶所按鍵值,但沒有接受鍵盤輸入,不會(huì)影響其它函數(shù)
27、(如scanf函數(shù))接受有效輸入。l END的鍵值定義為: #define END 0X4F00l bioskey(1)判斷是否是END的用法: if (bioskey(1)= =END) 相關(guān)操作 15、流星雨模擬程序的設(shè)計(jì)開發(fā)程序模擬一組流星飛向地面的情景。地面用多行#來表示,流星用大寫字母不表示。程序產(chǎn)生一組流星(比如10個(gè)),從屏幕頂部下降飛向地面。一組流星中,每個(gè)流星的字符顏色是隨機(jī)的,下降的位置是隨機(jī)的,下降的速度也是隨機(jī)的。一個(gè)流星下落只能去掉一個(gè)#號(hào),當(dāng)最后一行地面有#被去掉時(shí),程序終止。實(shí)現(xiàn)提示:l 程序在下降過程中,程序必須知道流星的字符、顏色、位置、速度,因此程序需要定義
28、以下幾個(gè)數(shù)組變量:存放流星字符的數(shù)組,存放流星字符顏色的數(shù)組,存放流星行位置的數(shù)組,存放流星列位置的數(shù)組,存放流星下降速度的數(shù)組。l 可定義二維數(shù)組screen表示地面和天空,此數(shù)組是一個(gè)24行81列的字符數(shù)組。上面的行表示天空,數(shù)組單元的值是空格;最下面的幾行(如5行)表示地面,數(shù)組單元的值是#;整個(gè)屏幕的大小是80*25,即25行80列, 為了在輸出最后一行時(shí)不換行滾屏,程序只能利用上面的24行空間。把數(shù)組定義成81列的目的是,每行的最后字符賦值成0,就可以按照字符串的方式輸出每行文本了。l 程序首先輸出地面和天空,即輸出定義的二維數(shù)組screen中的字符串,前19行是空行,后5行是#號(hào)。
29、這樣screen2481的字符矩陣就與整個(gè)屏幕對(duì)應(yīng)起來。l 然后隨時(shí)機(jī)產(chǎn)生一組流星數(shù)據(jù),包括字符、顏色、位置和速度。速度用一次下降多少行來表示,最大的速度是4。由于要隨機(jī)產(chǎn)生這些數(shù)據(jù),因此需要調(diào)用random函數(shù)。l random函數(shù)的原型是 int random(int num); 這個(gè)函數(shù)產(chǎn)生一個(gè)0num-1之間的一個(gè)隨機(jī)數(shù)。 流星字符可以這樣產(chǎn)生:random(26)+A; 流星字符的顏色可以這樣產(chǎn)生:random(16)+1;流星下降的位置可以這樣產(chǎn)生:random(4)+1;流星的行位置一開始都是1; 流星的列位置可以這樣產(chǎn)生:random(80)+1;但要保證所有流星的列位置不能相同(設(shè)計(jì)一個(gè)算法來判斷)。 調(diào)用random之前,用randomize()庫函數(shù)進(jìn)行初始化。 兩個(gè)庫函數(shù)都在stdlib.h文件中。l 每個(gè)流星按照自己的速度下落,所謂的下落就是逐行移動(dòng)流星字符: 在下一行新的位置上顯示流星字符,在原來的位置上顯示空格以便擦除流星字符,然后再延遲等待幾十毫秒。這樣循環(huán)往復(fù)就構(gòu)成了流星下落的動(dòng)畫。 但要注意,流星的速度各不相同,而一次下落多行的流星也要逐行下落。l 如果流星的新位置所對(duì)應(yīng)的screen的單元格的值是#,則表示撞到了地面。 這種情況下在流星的新位置上輸出空格,擦除#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年航天設(shè)備維護(hù)與管理指南
- 高中數(shù)學(xué)教學(xué)中數(shù)學(xué)建模思想的實(shí)踐課題報(bào)告教學(xué)研究課題報(bào)告
- 全民健康安全無風(fēng)險(xiǎn)聲明書(3篇)
- 汽車維修企業(yè)ISO認(rèn)證指南(標(biāo)準(zhǔn)版)
- 初中體育教學(xué)中運(yùn)動(dòng)數(shù)據(jù)分析與個(gè)性化訓(xùn)練方案的課題報(bào)告教學(xué)研究課題報(bào)告
- 企業(yè)視覺形象構(gòu)建保障責(zé)任書3篇
- 工程項(xiàng)目招標(biāo)與合同管理規(guī)范
- 金融風(fēng)險(xiǎn)管理規(guī)范(標(biāo)準(zhǔn)版)
- 建設(shè)項(xiàng)目運(yùn)營維護(hù)責(zé)任承諾函(9篇)
- 市場調(diào)研與數(shù)據(jù)分析操作指南
- 2024年安徽理工大學(xué)馬克思主義基本原理概論期末考試模擬試卷
- 2025年醫(yī)院檢驗(yàn)科主任年終述職報(bào)告
- 2025年中考跨學(xué)科案例分析模擬卷一(含解析)
- 2025-2026學(xué)年人教版(簡譜)(新教材)初中音樂七年級(jí)(上冊)期末測試卷附答案(共三套)
- 2025年大學(xué)(森林保護(hù))森林病理學(xué)期末試題及答案
- (南開中學(xué))重慶市高2026屆高三第五次質(zhì)量檢測物理試卷(含答案詳解)
- 骨質(zhì)疏松骨折課件
- 2025年水利工程質(zhì)量檢測員考試(金屬結(jié)構(gòu))經(jīng)典試題及答案
- 2025寧夏賀蘭工業(yè)園區(qū)管委會(huì)招聘40人筆試備考試題及答案解析
- 透析充分性及評(píng)估
- 糖尿病足病新進(jìn)展課件
評(píng)論
0/150
提交評(píng)論