C語言算數(shù)表達(dá)式求值課程設(shè)計(jì)報(bào)告計(jì)算機(jī)C++資料_第1頁
C語言算數(shù)表達(dá)式求值課程設(shè)計(jì)報(bào)告計(jì)算機(jī)C++資料_第2頁
C語言算數(shù)表達(dá)式求值課程設(shè)計(jì)報(bào)告計(jì)算機(jī)C++資料_第3頁
C語言算數(shù)表達(dá)式求值課程設(shè)計(jì)報(bào)告計(jì)算機(jī)C++資料_第4頁
C語言算數(shù)表達(dá)式求值課程設(shè)計(jì)報(bào)告計(jì)算機(jī)C++資料_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

se'-':i=1;break;case'*':i=2;br}//作只有加減乘除運(yùn)算的表達(dá)式求值Node*ComputeuctNodeyschar{charc;structNodese'-':i=1;break;case'*':i=2;br}//作只有加減乘除運(yùn)算的表達(dá)式求值Node*ComputeuctNodeyschar{charc;structNode){e=(CharNode*)malloc(sizeof(C-二.總體方案設(shè)計(jì)2三.詳細(xì)設(shè)計(jì)3四.程序的調(diào)試與運(yùn)行結(jié)果說明4五.課程設(shè)計(jì)總結(jié)5本課程設(shè)計(jì)是為了配合?數(shù)據(jù)構(gòu)造?課程的開設(shè),通過設(shè)計(jì)一個(gè)完ext->c;n=n->next->next;mincharj=3;break;case'#':j=4;break;}i:JiWei=8;max=56;break;case10:Jeak;case'/':i=3;break;case'#':.ext->c;n=n->next->next;mincharj=3;break;case'#':j=4;break;}i:JiWei=8;max=56;break;case10:Jeak;case'/':i=3;break;case'#':-1.要充分認(rèn)識課程設(shè)計(jì)對自己的重要性,認(rèn)真做好課程設(shè)計(jì)前的各項(xiàng)分工明確,但要保持聯(lián)系暢通,密切合作,培養(yǎng)良好的互相幫助和團(tuán)隊(duì)二總體方案設(shè)計(jì)1.使用雙鏈表的數(shù)據(jù)構(gòu)造表示數(shù)據(jù)的存儲,將用戶輸入的表ar,minchar)=='=')&&mark!=1){m=j=3;break;case'#':j=4;break;}iharNode));e->c='0';p=(CharNode須按時(shí),ar,minchar)=='=')&&mark!=1){m=j=3;break;case'#':j=4;break;}iharNode));e->c='0';p=(CharNode須按時(shí),按質(zhì),按量完成課程設(shè)計(jì)。6.小組成員之間,分工明確,-{}CharNode;{{}Node;{}Node_ys_char;數(shù)與運(yùn)算符已經(jīng)分開,將這個(gè)表達(dá)式的頭指針傳遞到我所編寫函數(shù)mark1=0;n=0;i=0;if(mark2==1)no有括號時(shí)調(diào)用四那么運(yùn)算函數(shù)直接計(jì)算。如果一開場輸入的表達(dá)式中(Node*p){intmark=0;Node*m,*n;c的優(yōu)先級高return'>';if(from[i][j]==mark1=0;n=0;i=0;if(mark2==1)no有括號時(shí)調(diào)用四那么運(yùn)算函數(shù)直接計(jì)算。如果一開場輸入的表達(dá)式中(Node*p){intmark=0;Node*m,*n;c的優(yōu)先級高return'>';if(from[i][j]==-Node*StackChange(CharNode*top,intm)Node*Compute(Node*p)Node*GetOutcome(Node*head)main〔〕理制轉(zhuǎn)化為10進(jìn)制作只有加減乘除運(yùn)算的表達(dá)式主要局部的詳細(xì)流程圖〕在編寫只有加減乘除的表達(dá)式求值的表達(dá)式求值時(shí),原始思想是用兩個(gè)指輸入表達(dá)式針分別指向相鄰的兩個(gè)運(yùn)算符,假設(shè)后者大,那么進(jìn)展后面運(yùn)算符的運(yùn)算,然輸入表達(dá)式后指針繼續(xù)后移,當(dāng)再次遇到的兩個(gè)運(yùn)算符,前者與后者相等,那么進(jìn)展前面運(yùn)算符的運(yùn)算;此算法思想錯(cuò)誤,導(dǎo)致計(jì)算6+2*3+1#結(jié)果正確,而當(dāng)計(jì)算特殊情況處理將數(shù)與運(yùn)算符分開;}Nodeyschar;三詳細(xì)設(shè)計(jì)我任務(wù)是整個(gè)程序的算法設(shè)數(shù)的圍;進(jìn)一步的設(shè)想:將數(shù)分段存儲,存動態(tài)分配,使其能進(jìn)展天=n->next->c;if((Precede(maxchawhile(q->c<=min){nodechar->nex;}Nodeyschar;三詳細(xì)設(shè)計(jì)我任務(wù)是整個(gè)程序的算法設(shè)數(shù)的圍;進(jìn)一步的設(shè)想:將數(shù)分段存儲,存動態(tài)分配,使其能進(jìn)展天=n->next->c;if((Precede(maxchawhile(q->c<=min){nodechar->nex-致結(jié)果錯(cuò)誤。后來將程序改為先進(jìn)展優(yōu)先級高的運(yùn)算符的運(yùn)算,當(dāng)優(yōu)先級相等時(shí),不計(jì)算。指針后移,當(dāng)遇到表達(dá)式完畢標(biāo)志時(shí),便將指針移到表達(dá)式的頭位置,此時(shí),判斷是否進(jìn)展運(yùn)算的條件發(fā)生變化,當(dāng)前后運(yùn)算符的優(yōu)先級相等時(shí),進(jìn)展前面運(yùn)算符的運(yùn)算;使得第一次將乘除運(yùn)算符運(yùn)算完,第二進(jìn)展只有五課程設(shè)計(jì)總結(jié)達(dá)式的輸入,得出了正確結(jié)果,但不排除還有某些漏洞使得一些特殊情況的表缺乏:結(jié)果都以10進(jìn)制形式表示,用戶不能改變;結(jié)果的10進(jìn)制形式不能超{}CharNode;{se'-':i=1;break;case'*':i=2;br'){p=k->next;q->next->c='#';R=next=nodechar;nodechar->nextc=進(jìn)一步的測試。特點(diǎn):本程序能進(jìn)展小數(shù)、以及2se'-':i=1;break;case'*':i=2;br'){p=k->next;q->next->c='#';R=next=nodechar;nodechar->nextc=進(jìn)一步的測試。特點(diǎn):本程序能進(jìn)展小數(shù)、以及2進(jìn)制、8進(jìn)制、1-{}Node;{}Node_ys_char;{{}{k=m;}}q=m->next;}if(q->next->c。二、需求分析本課程設(shè)計(jì)的課題為表達(dá)式求值,要求:1.用戶將者大,那么進(jìn)展后面運(yùn)算符的運(yùn)算,然后指針繼續(xù)后移,當(dāng)再次遇到k=m;}}q=m->next;}if(q->next->c。二、需求分析本課程設(shè)計(jì)的課題為表達(dá)式求值,要求:1.用戶將者大,那么進(jìn)展后面運(yùn)算符的運(yùn)算,然后指針繼續(xù)后移,當(dāng)再次遇到,次層括號..................每次找到括號的-}}{{p->next=q;}{e->next=p;nhead;}q=q->next;if(q->c<=min)情況作處理。3.將數(shù)與運(yùn)算符分開;4.nhead;}q=q->next;if(q->c<=min)情況作處理。3.將數(shù)與運(yùn)算符分開;4.依次找到表達(dá)式最層括號(p->next->c!='#'){maxchar=n->n*q,*R;Nodeyschar*m,*n,*t,*k;n=-p->next=q;}{{e->next=q;p->next=e;}{p->next=q;}}p=p->next;}//將數(shù)與運(yùn)算符分開,并將其他進(jìn)制轉(zhuǎn)化為10進(jìn)制Node*StackChange(CharNode*top,intm){CharNode*p,*q;儲字符的結(jié)點(diǎn)類型typedefstructCharNode{揮主觀能動性.結(jié)合課題儲字符的結(jié)點(diǎn)類型typedefstructCharNode{揮主觀能動性.結(jié)合課題,獨(dú)立思考,努力鉆研,勤于實(shí)踐,勇于創(chuàng)deyschar*)malloc(sizeof(Nodeys握數(shù)據(jù)構(gòu)造的應(yīng)用,算法的編寫,類C語言的算法轉(zhuǎn)換成C程序并用-Node*node,*head;Node_ys_char*node_char;{case2:max=50;case8:max=56;JiWei=10;max=97;JiWei=16;max=103;}{while((q->c>min)&&(q->c<max)||(q->c==46)){{mark_1=1;q=q->next;}表達(dá)式變?yōu)橐粋€(gè)普通的表達(dá)式,其中數(shù)與運(yùn)算符已經(jīng)分開,將這個(gè)表括起來〕,以及2進(jìn)制,8表達(dá)式變?yōu)橐粋€(gè)普通的表達(dá)式,其中數(shù)與運(yùn)算符已經(jīng)分開,將這個(gè)表括起來〕,以及2進(jìn)制,8進(jìn)制,10進(jìn)制,16進(jìn)制的數(shù)〔為減小[i]=q->c;q=q->next;i++;}}for(h=='>'||mark==1){switch(m->next-{q=q->next;}{q=q->next;}}{}{}node->n=x+y;mark_1=0;node_char->next=node;node_char->c=q->c;node->next=node_char;node_char->next_c=NULL;node_char->next=NULL;=='>'||mark==1){switch(m->next編..-case'*':j=2;break;case'/':har->next=NULL;}else{node->nexn;}if(Precede(maxchar,minchar)=='>'||mark==1){switch(m->next編..-case'*':j=2;break;case'/':har->next=NULL;}else{node->nexn;}if(Precede(maxchar,minchar)-{}q=q->next;while(q->c<=min){node_char->next_c=(Node_ys_char*)malloc(sizeof(Node_ys_char));node_char->next_c->c=q->c;q=q->next;//node->next=node_char;node_char=node_char->next_c;node_char->next_c=NULL;node_char->next=NULL;}{node->next=node_char;node_char->next_c=NULL;node_char->next=NULL;}{head=node;mark_2=1;}}型typedefstructNode.可修編..-{long=0;break;case'-':j=1;break;.型typedefstructNode.可修編..-{long=0;break;case'-':j=1;break;.可修;p->next->c='#';returntop;}//將儲圍〕;2.輸入的數(shù)可以為小數(shù)〔為減小難度,小數(shù)的整數(shù)與小數(shù)-}Node*Compute(Node*p){Node*m,*n;charmax_char,min_char;m=n=p;{max_char=n->next->c;n=n->next->next;min_char=n->next->c;{m=n;}{switch(m->next->c){case'+':m->n=m->n+n->n;break;case'-':m->n=m->n-n->n;break;case'*':m->n=m->n*n->n;break;case'/':m->n=m->n/n->n;break;}m->next=n->next;n=m;}{m=n=p;mark=1;=n-1;h>=0;h--){x=(a[n-h-1]-48)畢標(biāo)志時(shí),便將指針移到表達(dá)式的頭位置,此時(shí),判斷是否進(jìn)展運(yùn)算.5〕+3#=n-1;h>=0;h--){x=(a[n-h-1]-48)畢標(biāo)志時(shí),便將指針移到表達(dá)式的頭位置,此時(shí),判斷是否進(jìn)展運(yùn)算.5〕+3#,第三次.可修編..-替換后為0.5+3#,當(dāng)沒eak;case'/':i=3;break;case'#':-}}}Node*GetOutcome(Node*head){p=q=head;{{m=q->next;k=m;}elseif(q->next->next_c==NULL)q=q->next->next;{m=q->next->next_c;{k=m;}while(m->next_c!=NULL){m=m->next_c;m=q->next->nextc;k=q->next;//t輸入表達(dá)式,并對特殊情況做處理CharNode*CreatRngdoublen;structNodeyschar*nexuctNodeyschar{charc;structNodem=q->next->nextc;k=q->next;//t輸入表達(dá)式,并對特殊情況做處理CharNode*CreatRngdoublen;structNodeyschar*nexuctNodeyschar{charc;structNode-{k=m;}}q=m->next;}{n=q->next;}}{p=k->next;R=Compute(p);t->next_c=NULL;R->next=n->next_c;GetOutcome(head);}{R=Compute(head);}}{運(yùn)算五課程設(shè)計(jì)總結(jié)進(jìn)過調(diào)試程序能得出大多數(shù)表達(dá)式的正確結(jié)果,文數(shù)字運(yùn)算;錄入其他的運(yùn)算符例如指數(shù)運(yùn)算,開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論