版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE1課程設(shè)計(jì)報(bào)告書《C++程序設(shè)計(jì)》課程設(shè)計(jì)學(xué)院專業(yè)數(shù)學(xué)與應(yīng)用數(shù)學(xué)(統(tǒng)計(jì)方向)教師評(píng)語(yǔ)教師簽名:日期:成績(jī)?cè)u(píng)定備注
基于記錄的應(yīng)用程序設(shè)計(jì)一、選題背景本課題應(yīng)解決的主要問(wèn)題:編寫一個(gè)應(yīng)用程序?qū)崿F(xiàn)程序化教學(xué)應(yīng)達(dá)到的技術(shù)要求:該程序可以完成以下功能:向?qū)W生提問(wèn)題;從學(xué)生處獲得答案;根據(jù)學(xué)生的答案繼續(xù)選擇下一個(gè)問(wèn)題。本設(shè)計(jì)的指導(dǎo)思想:在程序中表示教學(xué)課程所需的信息;在設(shè)計(jì)階段,設(shè)計(jì)一個(gè)合適的數(shù)據(jù)結(jié)構(gòu);將數(shù)據(jù)文件使用的外部表示轉(zhuǎn)換為程序內(nèi)部表示;編寫程序?qū)?nèi)部數(shù)據(jù)庫(kù)進(jìn)行操作。二、方案論證(概要設(shè)計(jì))設(shè)計(jì)原理(理念):在老師所給的參考數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及函數(shù)原型設(shè)計(jì)的基礎(chǔ)上,略加修飾,填充函數(shù)原型的內(nèi)部結(jié)構(gòu),使得函數(shù)具備所需要的功能,最終能使程序?qū)崿F(xiàn)程序化教學(xué)。例如:voidReadQuestionText(ifstream&infile,questionT*q)這個(gè)函數(shù)將問(wèn)題的文本讀入問(wèn)題數(shù)據(jù)結(jié)構(gòu),這必須由調(diào)用才可分配。這個(gè)問(wèn)題文本結(jié)束的標(biāo)志是EndMarker,即“”的標(biāo)記。voidReadAnswers(ifstream&infile,questionT*q)這個(gè)函數(shù)將問(wèn)題答案的文本讀入答案數(shù)據(jù)結(jié)構(gòu)。voidAskQuestion(intnum)這個(gè)函數(shù)用于提出問(wèn)題。voidWriteQuestionText(questionT*q)這個(gè)函數(shù)根據(jù)問(wèn)題序號(hào)顯示問(wèn)題題目?jī)?nèi)容。voidFindWriteAnswer(stringans,questionT*q)這個(gè)函數(shù)用于查找與輸入答案匹配的內(nèi)容。三、過(guò)程論述(詳細(xì)設(shè)計(jì))1.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)*類型名:answerT,這個(gè)結(jié)構(gòu)提供空間給每個(gè)問(wèn)題可能的答案structanswerT{stringans;intnextq;};定義answerT為結(jié)構(gòu)體類型,其中包括一個(gè)字符串變量ans和一個(gè)整型變量nextq,而ans用于儲(chǔ)存一個(gè)問(wèn)題的一個(gè)答案,nextq用于儲(chǔ)存下一個(gè)問(wèn)題的題號(hào)。nextq的儲(chǔ)存示意圖……ans的儲(chǔ)存示意圖*類型名:questionT,這個(gè)結(jié)構(gòu)提供空間給問(wèn)題和相應(yīng)的答案structquestionT{stringqtext[MaxLinesPerQuestion+1];answerTanswers[MaxAnswersPerQuestion];intnAnswers;intlinenumber;};定義questionT為結(jié)構(gòu)體類型,其中包括字符串?dāng)?shù)組qtext[]、屬于answerT類型的數(shù)組answers[]、整形變量nAnswers和linenumber,而qtext[]用于儲(chǔ)存一個(gè)問(wèn)題的文本,answers[]用于儲(chǔ)存一個(gè)問(wèn)題的每一個(gè)答案,nAnswers用于儲(chǔ)存一個(gè)問(wèn)題相應(yīng)答案的個(gè)數(shù),linenumber用于儲(chǔ)存每個(gè)問(wèn)題所占行數(shù)的行號(hào)?!瞡行好吧共n行好吧共n個(gè)qtext[n]的儲(chǔ)存示意圖共n個(gè)answers[m]的儲(chǔ)存示意圖………………共m個(gè)answerT類型的結(jié)構(gòu)體共m個(gè)answerT類型的結(jié)構(gòu)體共m個(gè)類型為answerT的結(jié)構(gòu)體共m個(gè)類型為answerT的結(jié)構(gòu)體nAnswers的儲(chǔ)存示意圖Linenumber的儲(chǔ)存示意圖*類型名:courseDB,這個(gè)結(jié)構(gòu)提供空間給文件主題和問(wèn)題structcourseDB{stringtitle;questionTquestions[MaxQuestions+1];};定義courseDB為結(jié)構(gòu)體類型,其中包括字符串變量title和屬于questionT類型的數(shù)組questons,而title用于儲(chǔ)存題目文本,questions[]用于儲(chǔ)存問(wèn)題和相應(yīng)的答案。………courseDB的儲(chǔ)存示意圖questions[N]的儲(chǔ)存示意圖……有有MaxAnswersPerQuestion個(gè)類型為answerT的結(jié)構(gòu)體有N個(gè)類型為questionT的結(jié)構(gòu)體有N個(gè)類型為questionT的結(jié)構(gòu)體………………有MaxAnswersPerQuestion個(gè)類型為answerT的結(jié)構(gòu)體有MaxAnswersPerQuestion個(gè)類型為answerT的結(jié)構(gòu)體…………外部數(shù)據(jù)文件的格式說(shuō)明c++程序設(shè)計(jì)復(fù)習(xí)1c++程序設(shè)計(jì)復(fù)習(xí)1復(fù)習(xí)int或bool類型?輸入:int/bool請(qǐng)選擇:int:2bool:102判斷題:int可以有小數(shù)部分。請(qǐng)輸入:(對(duì)/錯(cuò))對(duì):3錯(cuò):53答錯(cuò)了!浮點(diǎn)數(shù)有小數(shù)部分,整數(shù)沒(méi)有。判斷題:int可以取負(fù)值。請(qǐng)輸入:(對(duì)\錯(cuò))對(duì):5錯(cuò):44答錯(cuò)了!你必須再?gòu)?fù)習(xí)一下課本。要重新測(cè)試嗎?(是/否)是:1否:-1說(shuō)明:如左圖所示,首行為文本題目(盡量控制在一行內(nèi)且不能出現(xiàn)空格,否則會(huì)出現(xiàn)問(wèn)題),其次是問(wèn)題的布局,每一個(gè)問(wèn)題的首行為問(wèn)題的序號(hào)1、2、3、……,接著換行寫入問(wèn)題的主要內(nèi)容,問(wèn)題完畢后,換行,以“”為標(biāo)志,劃分問(wèn)題內(nèi)容文本與程序執(zhí)行文本,寫入每一個(gè)正確答案之后以“:”分隔(注意:此處的冒號(hào)是英文的冒號(hào)而非中文的冒號(hào)),寫入下一題的題號(hào),再換行。直至將每一個(gè)問(wèn)題文本寫入后,增添最后一個(gè)問(wèn)題,且對(duì)于最后一個(gè)問(wèn)題“”以上的內(nèi)容要提示操作者是否重新測(cè)試,“”以下的內(nèi)容為:是:1否:-1在輸完文本后,最后要空留一行,即按一下回車鍵3.函數(shù)設(shè)計(jì)說(shuō)明:*函數(shù)原型:voidReadQuestionText(infile,question);函數(shù)功能:這個(gè)函數(shù)將問(wèn)題的文本讀入問(wèn)題數(shù)據(jù)結(jié)構(gòu),記錄問(wèn)題文本所占用的行數(shù)。這個(gè)問(wèn)題文本結(jié)束的標(biāo)志是EndMarker,即“”的標(biāo)記。函數(shù)算法描述:先定義ch為字符串變量,再?gòu)奈募凶x取一行數(shù)據(jù)儲(chǔ)存于字符串變量ch中,如若ch不等于結(jié)束標(biāo)志“”且不是空行,則使問(wèn)題文本行數(shù)增加1,最后可得問(wèn)題文本所占用的總行數(shù)。*函數(shù)原型:voidReadAnswers(ifstream&infile,questionT*q)函數(shù)功能:這個(gè)函數(shù)將問(wèn)題答案的文本及其相應(yīng)的題號(hào)讀入答案數(shù)據(jù)結(jié)構(gòu)。函數(shù)算法描述:在分界符“”后,用q->answers[++(q->nAnswers)].ans數(shù)組分別將各個(gè)答案儲(chǔ)存起來(lái),再以答案后的“:”為標(biāo)志,用q->answers[q->nAnswers].nextq數(shù)組將其后的題號(hào)存儲(chǔ)起來(lái)。*函數(shù)原型:voidWriteQuestionText(questionT*q)函數(shù)功能:這個(gè)函數(shù)根據(jù)問(wèn)題序號(hào)顯示問(wèn)題題目?jī)?nèi)容函數(shù)算法描述:通過(guò)循環(huán),將每一個(gè)問(wèn)題的文本一行行地輸出。*函數(shù)原型:intFindWriteAnswer(stringans,questionT*q,intnum)函數(shù)功能:這個(gè)函數(shù)用于查找并返回與答案匹配的相應(yīng)的題號(hào)。函數(shù)算法描述:從主調(diào)函數(shù)中,傳入?yún)?shù)ans、結(jié)構(gòu)體questionT的地址和題號(hào)num,通過(guò)循環(huán),倘若輸入的答案與所給答案相同,則返回相應(yīng)答案的下一題題號(hào),倘若不相同,則返回原題號(hào)num。*函數(shù)原型:voidAskQuestion(intnum)函數(shù)功能:這個(gè)函數(shù)用于提出問(wèn)題,這必須由調(diào)用才可分配,無(wú)返回值。函數(shù)算法描述:通過(guò)循環(huán),調(diào)用WriteQuestionText函數(shù)輸出問(wèn)題,再由測(cè)試者從函數(shù)中輸入答案,再調(diào)用FindWriteAnswer函數(shù)返回下一題題號(hào)賦值于num,如果num的值為下一題號(hào),則再次執(zhí)行循環(huán),如果num的值為-1,則跳出循環(huán)。四、結(jié)果分析1.測(cè)試方法:先輸入文件名(文件名后需添加“.dat”),再按回車鍵則如圖顯示: 再按題目指示輸入答案:如果輸錯(cuò)答案,程序會(huì)把題目重新顯示并要求再次輸入:當(dāng)全部題目完成后,程序會(huì)問(wèn)是否重新測(cè)試,若輸入是,則返回第一題重新測(cè)試:若輸入否,則結(jié)束程序:2.調(diào)試過(guò)程總結(jié):*編譯時(shí)遇到的主要典型錯(cuò)誤:編程時(shí)循環(huán)范圍掌握不當(dāng),導(dǎo)致達(dá)不到原有目的,甚至陷入死循環(huán)。解決方案:重新思考,適當(dāng)控制循環(huán)范圍,使循環(huán)能夠順利跳出。*連接時(shí)遇到的主要典型錯(cuò)誤:文件名輸入錯(cuò)誤,少輸入了“.dat”。解決方案:補(bǔ)充“.dat”即可。*編譯和連接都成功,但結(jié)果不對(duì)時(shí),主要典型錯(cuò)誤:當(dāng)在某個(gè)問(wèn)題里輸入了與所供選答案都不同時(shí),程序會(huì)直接跳出循環(huán),結(jié)束程序,而不是重新問(wèn)問(wèn)題。解決方案:修改循環(huán)中的某個(gè)函數(shù)的返
溫馨提示
- 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ù)網(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年度木材砍伐與采伐許可合同范本4篇
- 二零二五年度出租車股份收購(gòu)與品牌戰(zhàn)略實(shí)施合同3篇
- 2025年度智慧城市建設(shè)項(xiàng)目市場(chǎng)調(diào)研合同范本4篇
- 二零二五年度電梯工程環(huán)保驗(yàn)收與咨詢服務(wù)合同2篇
- 2025年度農(nóng)村自建房買賣合同范本2篇
- 2025年度個(gè)人信用貸款合同模板16篇
- 2025版農(nóng)戶土地承包流轉(zhuǎn)合同附農(nóng)產(chǎn)品品牌建設(shè)合作條款范本4篇
- 二零二五年度畜牧業(yè)科技創(chuàng)新成果轉(zhuǎn)化合同4篇
- 2025年度荒山林業(yè)種植承包項(xiàng)目合同4篇
- 2025年度新能源產(chǎn)業(yè)關(guān)鍵技術(shù)合作開發(fā)合同4篇
- 發(fā)電機(jī)停電故障應(yīng)急預(yù)案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 社會(huì)組織等級(jí)評(píng)估報(bào)告模板
- GB/T 12173-2008礦用一般型電氣設(shè)備
- 2023年1月浙江高考英語(yǔ)聽力試題及答案(含MP3+錄音原文)
- 新媒體研究方法教學(xué)ppt課件(完整版)
- 2020新版?zhèn)€人征信報(bào)告模板
- 東芝空調(diào)維修故障代碼匯總
- 工藝管道儀表流程圖(共68頁(yè)).ppt
評(píng)論
0/150
提交評(píng)論