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

正文內(nèi)容

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

2025-04-23 22:23 本頁面
 

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