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

正文內(nèi)容

成績分析問題和全國交通咨詢模擬系統(tǒng)設(shè)計方案(已修改)

2025-05-05 02:49 本頁面
 

【正文】 成績分析問題和全國交通咨詢模擬系統(tǒng)設(shè)計方案一、設(shè)計內(nèi)容與設(shè)計要求(1)課題:中綴算術(shù)表達式求值(2)我們很早就學(xué)習(xí)如何書寫及計算表達式,諸如:8+5*(73)之類的表達式,先算括號內(nèi)的7減去3,得到4,然后再算5乘以4,得到20,再計算8加上20,得到28,因此該表達式的值為28。這是人們熟悉的運算規(guī)則額:有括號先算括號內(nèi);無括號時,先做乘除法,后做加減法;對于相同級別的運算按從左到右的次序運算。而計算機是如何實現(xiàn)表達式的計算的呢?應(yīng)用棧的相關(guān)知識,編程序?qū)崿F(xiàn)之。(3)設(shè)計思路:從鍵盤輸入中綴表達式,然后將中綴表達式轉(zhuǎn)換為后綴表達式,利用后綴表達式求值。要求以字符序列的形式從終端輸入語法正確的、不含變量的整數(shù)表達式,利用給定的算術(shù)符優(yōu)先關(guān)系,實現(xiàn)對算數(shù)四則混合運算表達式的求值,并演示在求值過程中運算符棧、操作符棧、輸入字符和主要操作的變化過程。二、需求分析a、程序功能該程序能從鍵盤從鍵盤輸入中綴表達式,然后將中綴表達式轉(zhuǎn)換為后綴表達式,利用后綴表達式求值。要求以字符序列的形式從終端輸入語法正確的、不含變量的整數(shù)表達式,利用給定的算術(shù)符優(yōu)先關(guān)系,實現(xiàn)對算數(shù)四則混合運算表達式的求值。(1)該程序?qū)Ρ磉_式進行求解,并對所求解的結(jié)果進行保存并附有查看功能。(2)在對表達式求解過程顯示棧的變化情況,并顯示表達式。b、輸入輸出的要求(1)從鍵盤輸入的表達式必須滿足程序所要求的。a:規(guī)定表達式的合法性,括號配對,不能出現(xiàn)“6++3”、“6+-3”等符號重疊的情況。b:表達式開頭只能是數(shù)字或“(”,表達式中只能有一個“=”。(2)要得到輸出結(jié)果,必須鍵入回車鍵,根據(jù)界面的提示,鍵入相應(yīng)的符號。此外本程序的運行平臺為Visual C++ 。三、概要設(shè)計本程序的數(shù)據(jù)結(jié)構(gòu)為棧。程序的主要模塊可以分為運算符棧,操作數(shù)棧,以及各類函數(shù)。其中本程序的設(shè)計思路及其各模塊的調(diào)用關(guān)系如下:(1)定義一個expression全局表達式結(jié)構(gòu)體expr[1000]存放計算過的表達式(expstr[MAXSIZE])和計算結(jié)果(result)、一個計量器(i)、一個表達式字符串、 一個操作碼棧和一個操作數(shù)棧;(2)把表達式字符串從頭到尾逐一掃描,將輸入的表達式進行語法檢查;(3)第一個字符只能是數(shù)字或“(”,最重一個字符只能是“=”;(4)表達式括號必須配對,中間不能出現(xiàn)“=”;(5)在“(”前面只能是“+、-、*、/、( ”,在“+、-、*、/、=、)”前面只能是數(shù)字或“)”;(6)把表達式字符串從頭到尾逐一掃描,直到表達式掃描完畢,操作碼棧為空;(7)把字符根據(jù)運算優(yōu)先級別選擇操作;(8)把表達式中的數(shù)值部分字符串轉(zhuǎn)成數(shù)值壓入操作數(shù)棧;(9)是“(”直接壓入到操作碼棧,級別比操作碼棧頂元素高的,把運算符壓入操作碼棧;(10)級別比操作碼棧低的,彈出操作碼棧的棧頂元素和操作數(shù)棧的兩個棧頂元素,進行運算后再壓入操作數(shù)棧;(11)是“)”,若操作碼棧頂是“(”,把彈出操作碼棧頂元素,否則“)”視為級別最低的元素,重復(fù)7;(12)最后計算出結(jié)果并將其存放在expr[i],計量器加1;(13)重復(fù)計算后,將結(jié)果保存在文件里,并統(tǒng)計計算次數(shù);(14)查看多次計算結(jié)果,以表形式輸出;(15)查看本次計算記錄,以表形式輸出;(16)清除計算記錄,重新計算;程序中應(yīng)主要包含下面幾個功能函數(shù):void initstack():初始化棧int make_str():語法檢查并計算int push_num(double num):將操作數(shù)入棧char procede(char top,char code):處理操作碼int change_opnd(int operate):將字符型操作碼轉(zhuǎn)換成優(yōu)先級int change_opnd(char code):將操作碼入棧char pop_opnd(opnd *op):將操作碼出棧int caculate(int cur_opnd):簡單計算+,,*,/double pop_num(num *nu):取出操作數(shù)四、詳細設(shè)計a、數(shù)據(jù)類型的定義操作碼棧定義為char型,操作數(shù)棧定義為double型,計算結(jié)果定義為double型;b:各模塊的類c代碼本程序的數(shù)據(jù)結(jié)構(gòu)為棧;1:操作碼棧的c代碼為:typedef struct//運算符棧的定義{ char code[MAXSIZE]。 int top。}opnd。//《——opnd棧操作——》:void initstack(opnd *op)//初始化棧{ optop=1。}int empty_opnd(opnd *op)//判空{(diào) if(optop==1) return 0。 else return 1。}int push_opnd(opnd *op,char co)//入棧{ if(optop==MAXSIZE1) { printf(The \opnd\ stack is full.)。 return 0。 } optop++。 opcode[optop]=co。 return 1。}char pop_opnd(opnd *op)//出棧{ char a=39。\039。 if(optop==1) { printf(error:The \opnd\ stack is empty.)。 return a。 } a=opcode[optop]。 optop。 return a。}char get_opnd(opnd *op)//查看棧頂{ char a=39。\039。 if(optop==1) { printf(error:The \opnd\ stack is empty.)。 return a。 } else return opcode[optop]。}char Disp_opnd(opnd *op)//輸出棧內(nèi)元素{ int i。 if(optop==1) { printf(運算符棧為空!\n)。 return 0。 } for(i=optop。i=0。i) printf(%c ,opcode[i])。 return 1。}2:操作數(shù)棧c代碼如下:typedef struct//操作數(shù)棧定義{ double date[MAXSIZE]。 int top。}num。//《——num棧操作——》:void initstack(num *nu){ nutop=1。}int empty_num(num *nu)//判空{(diào) if(nutop==1) return 0。 else return 1。}int push_num(num *nu,double da)//入棧{ if(nutop==MAXSIZE1) { printf(error:The \date\ stack is full.)。 return 0。 } nutop++。 nudate[nutop]=da。 return 1。}double pop_num(num *nu)//出棧{ double a=39。\039。 if(nutop==1) { printf(error:The \date\ stack is empty.)。 return a。 } a=nudate[nutop]。 nutop。 return a。}double get_num(num *nu)//查看棧頂{ if(nutop!=1) return nudate[nutop]。}double Disp_num(num *nu)//輸出棧內(nèi)元素{ int i。 if(nutop==1) { printf(數(shù)字棧為空!\n)。 return 0。 } for(i=nutop。i=0。i) printf(%f ,nudata[i])。 return 1。}c、程序函數(shù):主要函數(shù):void start(opnd *op,num *nu)//程序主菜單void start2(opnd *op,num *nu)//第二層計算選擇,子菜單void load()//顯示所有計算記錄void save()//保存計算結(jié)果void check()//顯
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1