freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]c程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)報(bào)告(已修改)

2025-04-23 22:23 本頁(yè)面
 

【正文】 C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目名稱(chēng):高級(jí)計(jì)算器設(shè)計(jì)與開(kāi)發(fā)專(zhuān)業(yè)班級(jí): 數(shù)學(xué)061 ;姓名: 馮 凱 ;學(xué)號(hào) 200612010115 實(shí)驗(yàn)起止日期:起于 2008 年 11 月1日止于 2008 年 12 月10日實(shí)驗(yàn)?zāi)康模? ++語(yǔ)言和利用數(shù)據(jù)結(jié)構(gòu)中的堆棧實(shí)現(xiàn)表達(dá)式的解析與計(jì)算。 ;學(xué)會(huì)編輯、編譯、運(yùn)行MFC應(yīng)用程序的基本 過(guò)程,并開(kāi)發(fā)一個(gè)可以進(jìn)行表達(dá)式運(yùn)算的高級(jí)計(jì)算器。 實(shí)驗(yàn)要求: 1. 能處理雙精度型數(shù)值的加、減、乘、除的表達(dá)式計(jì)算。 。開(kāi)發(fā)環(huán)境要求: 軟件環(huán)境:windows98/windowsXP/windows2000,Visual C++ 硬件環(huán)境:計(jì)算機(jī)(Pen4CPU, 256MRAM,60G以上硬盤(pán),輸入輸出設(shè)備)技術(shù)文檔要求:按照軟件工程技術(shù)文檔編寫(xiě)要求進(jìn)行。要求流程圖繪制規(guī)范,模塊功能描述清晰,數(shù)據(jù)字典齊全。實(shí)驗(yàn)內(nèi)容: 1 C++語(yǔ)言的順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),函數(shù),結(jié)構(gòu)體,指針。2 數(shù)據(jù)結(jié)構(gòu)中的堆棧存貯結(jié)構(gòu)及其操作的實(shí)現(xiàn)。實(shí)驗(yàn)具體方案:按照系統(tǒng)設(shè)計(jì)要求,用Visual C++設(shè)計(jì)和開(kāi)發(fā)一個(gè)MFC應(yīng)用程序高級(jí)計(jì)算器,提交由需求分析;系統(tǒng)設(shè)計(jì)說(shuō)明(包括主菜單、子菜單、模塊功能簡(jiǎn)介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖);系統(tǒng)技術(shù)文檔 (包括系統(tǒng)各模塊主要流程圖,軟件總體測(cè)試方案與測(cè)試記錄、局部測(cè)試方案與測(cè)試記錄、軟件調(diào)試和修改記錄、測(cè)試結(jié)論、運(yùn)行情況記錄),系統(tǒng)使用說(shuō)明書(shū),源程序代碼為附錄構(gòu)成的實(shí)驗(yàn)報(bào)告。需求分析: 普通的功能簡(jiǎn)單的僅能進(jìn)行四則運(yùn)算的計(jì)算工具已經(jīng)不能滿(mǎn)足需要,需要一種能進(jìn)行多種計(jì)算工具。而windows自帶的計(jì)算器不能處理表達(dá)式這是一個(gè)缺陷,為此開(kāi)發(fā)一個(gè)能處理表達(dá)式運(yùn)算的高級(jí)計(jì)算器是十分必要的,這為計(jì)算提高了更大的方便,可以大幅度提高計(jì)算效率。系統(tǒng)設(shè)計(jì)說(shuō)明:(包括主菜單、子菜單、模塊功能簡(jiǎn)介、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖) 主菜單主要包含: 操作說(shuō)明、相關(guān)主題、退出。 整個(gè)程序的模塊組成:(1) Windows基于對(duì)話(huà)框的資源文件模塊。(2) 動(dòng)態(tài)鏈接庫(kù)模塊,主要提供了表達(dá)式的解析與計(jì)算。(3) 其他功能模塊如開(kāi)平方,取平方,進(jìn)制轉(zhuǎn)換等。 數(shù)據(jù)字典 m_edit1 //編輯框變量,用于顯示輸入輸出 CString str1,str2,str3 ; //中間臨時(shí)字符串變量 char s[70],s2[70],buffer[20]。 //用于CString字符串的轉(zhuǎn)換以及將double型數(shù)據(jù)轉(zhuǎn) 換為CString型字符串。 stack //結(jié)構(gòu)體類(lèi)型 ElemType *stack。 //存棧元素 Int top //存棧頂元素的下標(biāo)位置 int MaxSiz //存stack數(shù)組長(zhǎng)度。 void Initiatestack(Stack amp。S) //堆棧的初始化 void Push(Stackamp。 S,ElemType item) // 進(jìn)入堆棧 ElemType Pop(Stackamp。 S) //刪除棧頂元素并以函數(shù)值返回 ElemType Peek(Stack amp。S) //返回當(dāng)前棧頂元素 int Precedence(char op) //運(yùn)算符優(yōu)先級(jí)的判別 int change(char* str1,char*str2) //將str1的中綴表達(dá)式轉(zhuǎn)換為str2中的后綴表達(dá) double pute(char *str) // 計(jì)算后綴表達(dá)式 double* tranfrom(double num,int r) //進(jìn)制轉(zhuǎn)換的子函數(shù) MessageBox(CString ) //用于彈出對(duì)話(huà)框,用于警告非法輸入 _T( ) //用于清空CString字符串 Str,Right(int n) //用于從右截取長(zhǎng)為n的字符串并賦給str Strtod(char *,char**) //用于將CString型字符串轉(zhuǎn)化為double型數(shù)據(jù) 計(jì) 算 器系統(tǒng)結(jié)構(gòu)圖: 主 菜 單主 控 面 板 進(jìn)制轉(zhuǎn)換 乘 法 除 法 減 法顯 示 框 加 法 開(kāi) 方 三角函數(shù) 對(duì) 數(shù) 數(shù) 字 鍵 Delete 系統(tǒng)技術(shù)文檔 (包括系統(tǒng)各模塊主要流程圖,軟件總體測(cè)試方案與測(cè)試記錄、局部測(cè)試方案與測(cè)試記錄、軟件調(diào)試和修改記錄、測(cè)試結(jié)論):進(jìn)制轉(zhuǎn)換流程圖: 開(kāi) 始 用要轉(zhuǎn)換的數(shù)字x除以基數(shù)r,所得余數(shù)yi并壓入棧中 依次彈出棧中的元素即為轉(zhuǎn)換好的r進(jìn)制數(shù)。算法結(jié)束 商為零 是 否 把商賦給當(dāng)前數(shù)值 x中綴表達(dá)式轉(zhuǎn)化為后綴表達(dá)式算法流程圖: 開(kāi) 始從左到右掃描中綴表達(dá)式str1,讀取字符 將其寫(xiě)入用于存儲(chǔ)后綴表達(dá)式的字符數(shù)組str2中 是數(shù)或小數(shù)點(diǎn) 是 將其壓入運(yùn)算符棧中,待以它開(kāi)始的括號(hào)表達(dá)式結(jié)束后出棧 否 是左括號(hào) 是 否 是繼續(xù)掃描中綴表達(dá)式字符串,直到遇見(jiàn)第一個(gè)右括號(hào) 運(yùn) 否 算 符 是 壓入運(yùn)算符棧中,待它后一個(gè)運(yùn)算對(duì)象從str1中寫(xiě)入到str2中后出棧,寫(xiě)入str2 該運(yùn)算符優(yōu)先級(jí) 大于棧 頂運(yùn)算符的優(yōu)先級(jí) 是 否 刪除棧頂元素并將其保存在后綴字符串str2中 刪除棧頂元素保存 對(duì)于新的棧頂元素 結(jié)束算法 否 棧為空 是計(jì)算后綴表達(dá)式流程圖: 開(kāi) 始 從左到右掃描后綴表達(dá)式str2,讀取字符 將其轉(zhuǎn)換為浮點(diǎn)數(shù)壓入堆棧中 該字符是數(shù)或小數(shù)點(diǎn) 是 否 是不作處理,繼續(xù)掃描 運(yùn) 算 符 是依次從棧中彈出兩個(gè)數(shù)與該運(yùn)算符做運(yùn)算,將運(yùn)算結(jié)果繼續(xù)壓入到棧中,繼續(xù)掃描字符串結(jié)束,當(dāng)前棧頂元素即為結(jié)果 字符串結(jié)尾符 是 否軟件總體測(cè)試方案:1 測(cè)試計(jì)算器能否處理表達(dá)式以及是否能得出正確結(jié)果。2 計(jì)算器對(duì)非法輸入的排錯(cuò)能力,主要有: 一個(gè)數(shù)中有多個(gè)小數(shù)點(diǎn) 一個(gè)表達(dá)式中有連續(xù)的運(yùn)算符3 被開(kāi)方數(shù)為負(fù)數(shù)時(shí)情況4 除數(shù)為0時(shí)的情況5 進(jìn)制數(shù)之間能否轉(zhuǎn)換6 進(jìn)制數(shù)是否可以當(dāng)做其他操作的運(yùn)算對(duì)象測(cè)試記錄:1在處理表達(dá)式運(yùn)算時(shí)對(duì)于正確的輸入可以得到滿(mǎn)意的結(jié)果2在輸入的數(shù)中有多個(gè)小數(shù)點(diǎn)時(shí)計(jì)算器仍進(jìn)行進(jìn)算不具備排錯(cuò)3除數(shù)為0時(shí)結(jié)果為被除數(shù)4當(dāng)有連續(xù)的運(yùn)算符時(shí)程序退出5被開(kāi)方數(shù)為負(fù)數(shù)時(shí)顯示為正數(shù)的開(kāi)放結(jié)果6進(jìn)制數(shù)之間轉(zhuǎn)換結(jié)果錯(cuò)誤局部測(cè)試方案:分為三個(gè)模塊獨(dú)立測(cè)試1 測(cè)試能否把一個(gè)中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式2 能否正確計(jì)算后綴表達(dá)式的值3 進(jìn)制轉(zhuǎn)換能否正常工作測(cè)試結(jié)果:1 子程序能正確轉(zhuǎn)換得到后綴表達(dá)式2 子程序可以進(jìn)行計(jì)算,但當(dāng)遇到非法輸入時(shí)程序自動(dòng)終止3 進(jìn)制轉(zhuǎn)換可以進(jìn)行,但遇到負(fù)數(shù)時(shí)轉(zhuǎn)換的結(jié)果每個(gè)數(shù)字前都有負(fù)號(hào)軟件調(diào)試和修改記錄:針對(duì)上述問(wèn)題對(duì)軟件進(jìn)行一些局部改動(dòng)。1 增加對(duì)小數(shù)點(diǎn)的計(jì)數(shù)器以此來(lái)解決小數(shù)點(diǎn)多余問(wèn)題2 每次輸入后先對(duì)表達(dá)式進(jìn)行排錯(cuò)掃描,一但發(fā)現(xiàn)非法輸入用對(duì)話(huà)框警示出錯(cuò)原因3 改進(jìn)計(jì)算模塊,當(dāng)除數(shù)為零時(shí)返回一個(gè)超越數(shù)作為信號(hào)來(lái)警示除數(shù)為零錯(cuò)誤4 改進(jìn)進(jìn)制轉(zhuǎn)換模塊,使能處理的數(shù)局限在整數(shù)集合上,不處理表達(dá)式5 對(duì)各個(gè)操作的操作對(duì)象進(jìn)行嚴(yán)格排查,增加排錯(cuò)功能模塊測(cè)試結(jié)果:各種問(wèn)題基本解決,但是對(duì)以操作符開(kāi)始的數(shù)字仍不能處理進(jìn)制轉(zhuǎn)換不能處理浮點(diǎn)數(shù)測(cè)試結(jié)論:經(jīng)過(guò)不斷地改進(jìn)與調(diào)試計(jì)算器基本上可以達(dá)到較高要求。計(jì)算器可以處理表達(dá)式運(yùn)算,可以進(jìn)行數(shù)制轉(zhuǎn)換,和一些常見(jiàn)的數(shù)學(xué)計(jì)算如開(kāi)方,取平方求對(duì)數(shù),正弦,余弦等。但是還有一些缺陷沒(méi)能解決,如進(jìn)制轉(zhuǎn)換不能處理浮點(diǎn)數(shù)的問(wèn)題還沒(méi)能夠解決。但從整體上已經(jīng)達(dá)到了要求可以進(jìn)行更高級(jí)的計(jì)算。系統(tǒng)運(yùn)行結(jié)果和記錄(軟件運(yùn)行界面圖、軟件運(yùn)行數(shù)據(jù)輸入界面圖、軟件運(yùn)行結(jié)果界面圖、運(yùn)行記錄)軟件界面圖輸入表達(dá)式:()*(+)/5 結(jié)果為:輸入:1/0輸入 1++2*3求余弦結(jié)果為:求二進(jìn)制結(jié)果為:將上面的二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制將上面二進(jìn)制數(shù)作為COS()的入口參數(shù)負(fù)數(shù)開(kāi)方點(diǎn)擊計(jì)算器操作說(shuō)明點(diǎn)擊關(guān)于主題系統(tǒng)使用說(shuō)明書(shū):1 在做有加減乘除的表達(dá)式時(shí)先輸入表達(dá)式再按 = 即可得出結(jié)果2 表達(dá)式中只能含有加減乘除這四種運(yùn)算,不能含有其他的操作如開(kāi)方,平方等。3 如果要進(jìn)行開(kāi)方、平方、取對(duì)數(shù)、正余弦、進(jìn)制轉(zhuǎn)換等操作時(shí),先輸入表達(dá)式再按相應(yīng)的按鍵即可得出結(jié)果。4 任何以符號(hào)開(kāi)頭的表達(dá)式參與運(yùn)算系統(tǒng)都會(huì)自動(dòng)終止,此時(shí)請(qǐng)重新運(yùn)行程序即可5 進(jìn)制轉(zhuǎn)換不可以處理浮點(diǎn)數(shù),只能處理一個(gè)整數(shù)6 程序使用了動(dòng)態(tài)鏈接庫(kù)技術(shù),運(yùn)行程序時(shí)必須將程序和動(dòng)態(tài)鏈接庫(kù)文件 放在同一個(gè)目錄下才可正常運(yùn)行。實(shí)驗(yàn)討論:該計(jì)算器的核心部分在于表達(dá)式的解析與計(jì)算上。本程序采用了堆棧來(lái)達(dá)到這一效果,但是并非這一種實(shí)現(xiàn)方法。如二叉樹(shù)也可以實(shí)現(xiàn)表達(dá)式的解析與計(jì)算。因此可以嘗試用樹(shù)來(lái)實(shí)現(xiàn)該計(jì)算器。程序功能是否還可以繼續(xù)增加?比如階乘運(yùn)算,進(jìn)制轉(zhuǎn)換可以處理浮點(diǎn)數(shù),可以進(jìn)行矩陣的加減乘除運(yùn)算,求函數(shù)的導(dǎo)數(shù)等一系列操作,這樣該計(jì)算器的級(jí)別將會(huì)更高。C++程序設(shè)計(jì)設(shè)計(jì)性實(shí)驗(yàn)收獲與總結(jié):通過(guò)此次課程設(shè)計(jì)使我的編程能力有了較大幅度的提高,在項(xiàng)目中成長(zhǎng)一點(diǎn)不錯(cuò)。雖然這算不上項(xiàng)目但它還是提供了一個(gè)實(shí)戰(zhàn)的機(jī)會(huì)。此外在這次訓(xùn)練中也學(xué)到了不少新的知識(shí)。以前總會(huì)用一個(gè)工程,現(xiàn)在可以用三個(gè)。懂得了什么是動(dòng)態(tài)鏈接庫(kù)技術(shù)以及使用意義?;旧险莆樟薓FC程序開(kāi)發(fā)的環(huán)節(jié)過(guò)程這對(duì)以后視窗編程有很大的幫助,在此基礎(chǔ)上可以自己開(kāi)方一些小程序,找到了自我提高的方法。此次編程也讓我對(duì)VisualC++編程有了新的認(rèn)識(shí),也讓我認(rèn)識(shí)到有很多知識(shí)還沒(méi)學(xué)到手至少目前應(yīng)該掌握Vi
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1