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

正文內(nèi)容

算數(shù)表達(dá)式的求解課程設(shè)計(jì)報(bào)告-展示頁

2024-09-07 22:22本頁面
  

【正文】 ede()函數(shù) 中定義兩個字符型參數(shù)變量 op 和 c,其中 op 表示棧頂運(yùn)算符, c表示當(dāng)前讀入運(yùn)算符,對于當(dāng)前運(yùn)算符是否入棧,進(jìn)行如下操作: 比較當(dāng)前運(yùn)算符和棧頂運(yùn)算符的優(yōu)先級的大?。? 如果當(dāng)前運(yùn)算符的優(yōu)先級大于棧頂運(yùn)算符的優(yōu)先級,即 opc。程序中需要建立兩個棧,一個棧用于寄存運(yùn)算符,另一 個則用于寄存操作數(shù)和計(jì)算結(jié)果,故需要建立兩個順序棧結(jié)構(gòu)類型。若讀入的字符為‘ 0’到‘ 9’之間的數(shù)字時(shí),用字符相減轉(zhuǎn)化為整型,然后將轉(zhuǎn)化后的整型再轉(zhuǎn)化為 ASCII的形式壓入操作數(shù)棧 opnd中。 ( 2)依次讀入表達(dá)式中每個字符,若為操作數(shù),則進(jìn) opnd棧;若是運(yùn)算符,則與 optr棧的棧頂運(yùn)算符比較優(yōu)先級后做相應(yīng)操作:若當(dāng)前操作符大于 optr棧的棧頂,則當(dāng)前操作符入棧;否則, opnd棧的棧頂元素、次棧頂元素出棧,同時(shí) optr棧的棧頂元素也出棧,形成運(yùn)算,并將結(jié)果壓入 opnd棧,直至整個表達(dá)式求值完畢(即 optr棧的棧頂元素和當(dāng)前讀入的字符均為“ ”)。 為實(shí)現(xiàn)算法的優(yōu)先級,設(shè)置兩個棧:一個稱為操作數(shù)棧 opnd,用以寄存操作數(shù)和運(yùn)算結(jié)果,另一個為操作符棧 optr,用以寄存 運(yùn)算符。由于運(yùn)算符有優(yōu)先級的高低,因此一個算數(shù)表達(dá)是不可能總是按順序執(zhí)行。 問題分析和任務(wù)定義 有題目可知,程序要求給定一算數(shù)表達(dá)式并計(jì)算最后的結(jié)果,我們知道,在高級語言中,任何一個表達(dá)式都是有操作數(shù)、運(yùn)算符和界限符組成。 合肥學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 課程設(shè)計(jì)報(bào)告 20 12 ~ 20 13 學(xué)年第 2 學(xué)期 課程 數(shù)據(jù)結(jié)構(gòu)與算法 課 程 設(shè) 計(jì) 名 稱 算數(shù)表達(dá)式的求解 學(xué) 生 姓 名 周麗娟 學(xué)號 1104012020 專 業(yè) 班 級 11 計(jì)本 3 班 指 導(dǎo) 教 師 李紅 20 13 年 3 月 【問題描述】 ( 算數(shù)表達(dá)式的求解) 給定一個算數(shù)表達(dá)式,通過程序求出最后的結(jié)果。 【 要求 】 從鍵盤輸入要求解的算術(shù)表達(dá)式; 采用棧結(jié)構(gòu)進(jìn)行算數(shù)表達(dá)式的求解過程; 能夠判斷算數(shù)表達(dá)式的正確與否; 對于錯誤 表達(dá)式給出提示; 對于正確表達(dá)時(shí)給出最后的結(jié)果。在計(jì)算過程中,還要考慮表達(dá)式中有無括號以及左右括號之分。 通過以上可知,可以用棧來實(shí)現(xiàn)運(yùn)算符的優(yōu)先級完成算術(shù)表達(dá)式的求解。 該算法的基本思想是: ( 1) 首先置操作數(shù)棧 opnd為空棧,表達(dá)式結(jié)束符“ ”為操作符棧 optr的棧底元素。 對于算術(shù)表達(dá)式的輸入,本程序采 用 gets()的方法讀入,將運(yùn)算符‘ +’,‘ ’,‘ *’,‘ /’,‘(’,‘)’,‘ ’存儲在數(shù)組中時(shí),定義表達(dá)式求解函數(shù),在函數(shù)中判斷讀入的字符,如果是運(yùn)算符,將這些字符入操作符 optr 棧,并比較優(yōu)先級,判斷是否運(yùn)算。 數(shù)據(jù)結(jié)構(gòu)的選擇和概要設(shè)計(jì) ( 1) 存儲結(jié)構(gòu)設(shè)計(jì) 本程序主要采用順序棧結(jié)構(gòu)類型( Stack)來存儲表達(dá)式計(jì)算中的數(shù)據(jù)。 ( 2) 算數(shù)優(yōu)先級設(shè)計(jì) 對一任意的表達(dá)式,由于表達(dá)式中運(yùn)算符的優(yōu)先級不同,可能會使表達(dá)式不按順序進(jìn)行計(jì)算。令函數(shù)返回值為 39。并將當(dāng)前運(yùn)算符進(jìn) optr棧。39。 如果當(dāng)前元素的優(yōu)先級等于棧頂運(yùn)算符的優(yōu)先級,即 op=c;令函數(shù) 的返回值為 39。此時(shí)界限符內(nèi)的表達(dá)式已計(jì)算完畢 。每個函數(shù)都有其相對應(yīng)的功能實(shí)現(xiàn)。 ○ 2 運(yùn)算符比較優(yōu)先級函數(shù) char Proceed(char op,char c)。 ○ 4 實(shí)現(xiàn)表達(dá)式的求值函數(shù) int EvalExpres(void)。 ○ 6 入棧函數(shù) void Push(Stack *s, int x)。 ○ 8 取棧頂元素函數(shù) int GetTop(Stack *s) 。 ○10主函數(shù) int main() 3)函數(shù)之間主要調(diào)用的關(guān)系圖 本程序主要包含 10個程序,各程序之間的關(guān)系如圖所示:(部分函數(shù)用以上的編號表示 ) 主程序模塊 計(jì)算模塊 順序棧操作模塊 ○ 1 ○ 2 ○ 3 ○ 5 ○ 6 ○ 7 ○ 8 ○ 9 圖 2:函數(shù)之間調(diào)用關(guān)系圖 詳細(xì)設(shè)計(jì)和編碼 ( 1)、結(jié)構(gòu)體類型的定義 typedef struct { int data[MAXSIZE]。 int base。 ( 2) 、全局變量定義 //以下為函數(shù)聲明 void InitStack(Stack *)。 //判空棧 void Push(Stack *, int )。//出棧 int GetTop(Stack *)。 // 計(jì)算結(jié)果 char Proceed(char ,char )。 //判斷輸入符 int EvalExpres(void)。 ( 3) 、系統(tǒng)主要子程序的詳細(xì)設(shè)計(jì) 1) 、 主函數(shù)模塊設(shè)計(jì) int main()//主函數(shù) { int v。 while(1) { Void main() Int EvalExpres(void) printf(\t************ 歡 迎 使 用 算 術(shù) 表 達(dá) 式 的 求 解 的 小 程 序************\n)。 printf(\t表達(dá)式的計(jì)算結(jié)果為 :%d,v)。n39。 do { scanf(%c,amp。 if(ch == 39。 || ch == 39。) exit(0)。\n39。 system(cls)。 } 在主函數(shù)中,設(shè)定用戶操作界面的形式,通過調(diào)用表達(dá)式求解的子函數(shù)實(shí)現(xiàn)算法所要實(shí)現(xiàn)的功能,然后通過 while()循環(huán)語句控制,可以實(shí)現(xiàn)多次調(diào)試。 int d1 = a。 //把字符 ab變?yōu)閷?yīng)數(shù)字 switch(a1) { case 39。:
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1