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

正文內容

算數表達式的求解課程設計報告-展示頁

2025-08-02 12:21本頁面
  

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