-
大小: 330KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-10
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
利用棧求表達(dá)式課程設(shè)計(jì)一:設(shè)計(jì)目的
利用棧求表達(dá)式的值,可供小學(xué)生使用,并能給出分?jǐn)?shù),并且可以給出評(píng)價(jià)。
二:設(shè)計(jì)要求
建立試題庫(kù)文件,隨機(jī)產(chǎn)生n個(gè)題目;題目涉及加減乘除,帶括號(hào)的混合運(yùn)算;隨時(shí)可以退出;保留歷史分?jǐn)?shù)能回顧歷史,給出與歷史的分?jǐn)?shù)的比較后的評(píng)價(jià)。
三:設(shè)計(jì)思想
首先建立三個(gè)文件,分別為shitiku.txt,markrec.txt,n_rec.txt。其中shitiku.txt中存放試題;markrec.txt存放歷史分?jǐn)?shù);n_rec.txt存放總共測(cè)試次數(shù)。

代碼片段和文件信息
?#include?
#include?
#include?
#include?
#define?STACK_INIT_SIZE?100
#define?STACKINCREMENT?10
#define?OK?0
#define?ERROR?1
typedef?struct?shiti??????????????
{//定義表達(dá)式
????char?a[20];??????????/*存放表達(dá)式*/
????long?result;??????????/*存放用戶輸入的答案*/
}xuanti;
typedef?struct?SqStack1??????????
{?//建立數(shù)字棧
????int?*base;
????int?*top;
????int?stacksize;
}SqStack1;?
typedef?struct?SqStack2??????????
{//建立運(yùn)算符棧
????char?*base;
????char?*top;
????int?stacksize;
}SqStack2;??
void?page_title()??????????
{//建立菜單
????printf(“\t>>>?數(shù)學(xué)習(xí)題庫(kù)<<<\n\n“);
????printf(“?\t?---?主菜單?---\n\n“);
????printf(“\t1?開(kāi)始測(cè)試\n“);
????printf(“\t2?查看歷史分?jǐn)?shù)記錄\n“);
printf(“\t3?增加問(wèn)題\n“);
????printf(“\t0?退出\n“);
????printf(“\t******************\n“);
}
void?return_confirm()????????????????????????
{//按任意鍵返回菜單
?????printf(“\n按任意鍵返回?!……\n“);
?????getch();
}
void?IntInitStack(SqStack1?*S1)????????????
{//數(shù)字棧初始化
????S1->base=(int?*)malloc(STACK_INIT_SIZE*sizeof(int));
????if(!S1->base)
????????exit(ERROR);
????S1->top=S1->base;
????S1->stacksize=STACK_INIT_SIZE;
}
void?CharInitStack(SqStack2?*S2)????????????
{//運(yùn)算符棧初始化
????S2->base=(char?*)malloc(STACK_INIT_SIZE*sizeof(char));
????if(!S2->base)
???????exit(0);
????S2->top=S2->base;
????S2->stacksize=STACK_INIT_SIZE;
}
long?IntGetTop(SqStack1?*S1)??????????????
{?//取數(shù)字棧棧頂元素
????long?e1;
????if((*S1).top==(*S1).base)?
????????return?0;
????e1=*(--(*S1).top);
????return?e1;
}
char?CharGetTop(SqStack2?*S2)????????????
{?//取運(yùn)算符棧棧頂元素
????char?e2;
????if((*S2).top==(*S2).base)?
????????return?0;
????e2=*(--(*S2).top);
????return?e2;
}
int?IntPush(SqStack1?*S1int?e1)/*入棧*/
{
????*(*S1).top++=e1;
????return?OK;
}
int?CharPush(SqStack2?*S2char?e2)/*入棧*/
{
????*(*S2).top++=e2;
????return?1;
}
int?IntPop(SqStack1?*S1)/*出棧*/
{
????int?e1;
????if((*S1).top==(*S1).base)
???return?0;
????e1=*--(*S1).top;
????return?e1;
}
char?CharPop(SqStack2?*S2)/*出棧*/
{
????char?e2;
????if((*S2).top==(*S2).base)
????????return?0;
????e2=*--(*S2).top;
????return?e2;
}
?????????????
char?Precede(char?achar?b)??????????????????
{//運(yùn)算符優(yōu)先級(jí)比較
????int?ij;
??char?Table[8][8]={‘?‘‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘#‘?????
????????????????????‘+‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
????????????????????‘-‘‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘
????????????????????‘*‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
????????????????????‘/‘‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘
????????????????????‘(‘‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘?‘
????????????????????‘)‘‘>‘‘>‘‘>‘‘>‘‘?‘‘>‘‘>‘
????????????????????‘#‘‘<‘‘<‘‘<‘‘<‘‘<‘‘?‘‘=‘
???????????????????};??????/*運(yùn)算符優(yōu)先級(jí)表格*/??
????for(i=0;i<8;i++)???/*縱坐標(biāo)尋找*/
????????if(Table[0][i]==a)??????????
????????????break;
????for(j=0;j<8;j++)????/*橫坐標(biāo)尋找*/
????????if(Table[j][0]==b)
????????????break;
????return?Table[j][i];??/*返回比較結(jié)果*/
}
int?Operate(int?achar?thetaint?b)?????
{?//計(jì)算表達(dá)式值:主要是將大的表達(dá)式轉(zhuǎn)化為小的表達(dá)式進(jìn)行逐步求值
????int?c;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????545??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.dsw
?????文件??????33792??2009-07-20?08:58??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.ncb
?????文件??????12514??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.cpp
?????文件???????1339??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.plg
?????文件??????????5??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\N_REC.txt
?????文件????????552??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\SHITIKU.txt
?????文件?????????40??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\markrec.txt
?????文件??????48640??2009-07-20?08:58??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.opt
?????文件???????4332??2009-07-20?08:58??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\liyongzhan.dsp
?????文件??????33792??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\vc60.idb
?????文件??????45056??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\vc60.pdb
?????文件?????228000??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\liyongzhan.pch
?????文件??????33531??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\liyongzhan.obj
?????文件?????229832??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\liyongzhan.ilk
?????文件?????192612??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\liyongzhan.exe
?????文件?????443392??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\liyongzhan.pdb
?????文件??????????5??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\N_REC.txt
?????文件????????552??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\SHITIKU.txt
?????文件?????????40??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug\markrec.txt
?????文件??????????5??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序\N_REC.txt
?????文件?????????40??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序\markrec.txt
?????文件?????192612??2009-07-20?08:50??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序\liyongzhan.exe
?????文件????????552??2009-07-20?08:37??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序\SHITIKU.txt
?????文件??????12513??2011-06-24?10:02??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序\liyongzhan.cpp
?????文件?????125952??2011-12-22?19:32??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告.doc
?????目錄??????????0??2009-07-20?08:58??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值\Debug
?????目錄??????????0??2009-07-20?09:02??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)\源程序
?????目錄??????????0??2009-07-20?08:58??利用棧求表達(dá)式課程設(shè)計(jì)\利用棧求表達(dá)式值
?????目錄??????????0??2009-07-20?08:59??利用棧求表達(dá)式課程設(shè)計(jì)\報(bào)告書(shū)
?????目錄??????????0??2009-07-20?08:53??利用棧求表達(dá)式課程設(shè)計(jì)
............此處省略3個(gè)文件信息
評(píng)論
共有 條評(píng)論