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

正文內(nèi)容

成績(jī)分析問(wèn)題和全國(guó)交通咨詢(xún)模擬系統(tǒng)設(shè)計(jì)方案-wenkub

2023-05-08 02:49:03 本頁(yè)面
 

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