版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1/1數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_實驗報告(一)表達(dá)式求值(計算器)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計試驗報告起止時間:2023.12.28-2023.12.31
1、輸入:tan45
2、輸出:1
3、執(zhí)行結(jié)果:
:
設(shè)計過程中遇到的問題及解決方法:
問題:算數(shù)表達(dá)式以字符串輸入,操作數(shù)和操作符的提取;
解決方法:兩兩操作符之間如有數(shù)字將中間的數(shù)字提取強制轉(zhuǎn)換成double型;
附件:(程序源代碼)
#include
#include
#include
#include
#defineN100
#definepai3.1415926
typedefstructyxj
{
charoperat;
intrank;
}yxj;
typedefstructstr
{
chardata[N];
}zs;
voidsjhs(void)
{
chars[10],a[10];
doubley,x;
printf("請輸入(sincostan角度制)表達(dá)式:\n");
scanf("%s",s);
if(strstr(s,"sin")!=0)
{
inti=0,j=0;
while(s[i]!='\0')
{
if(s[i]>='0'
i++;
}
s[j]='\0';
x=atof(s);
y=sin(x*pai/180);
}
elseif(strstr(s,"cos")!=0)
{
inti=0,j=0;
while(s[i]!='\0')
{
if(s[i]>='0'
i++;
}
s[j]='\0';
x=atof(s);
y=cos(x*pai/180);
}
elseif(strstr(s,"tan")!=0)
{
inti=0,j=0;
while(s[i]!='\0')
{
if(s[i]>='0'
i++;
}
s[j]='\0';
x=atof(s);
y=tan(x*pai/180);
}
else
{
printf("格式錯誤\n");
return;
}
printf("%lf\n",y);
printf("*****1、連續(xù)*****\n");
printf("*****0、返回上一層*****\n");
scanf("%s",a);
if(strcmp(a,"0")==0)
return;
elseif(strcmp(a,"1")==0)
sjhs;
else
printf("沒有該選項\n");
}
voidszys(yxjmark)
{
yxjos[N];
chara[10];
charch;
doublens[N];
zszhan[20];
intnumb[N];
intLen,p=0,q=1,i,o=1,n=0;
chardata[N];
os[0]=mark[0];
ns[0]=0;
printf("請輸入算術(shù)(+-*/^)表達(dá)式(以=結(jié)束):\n");
scanf("%s",data);
if(strcmp(data,"+")==0||strcmp(data,"-")==0||strcmp(data,"*")==0||strcmp(data,"/")==0||strcmp(data,"^")==0||strcmp(data,"=")==0)
{
printf("格式錯誤\n");
return;
}
Len=strlen(data);
numb[0]=0;
for(i=0;i='0'
zhan[(p+k)/2].data[t]='\0';
if(zhan[(p+k)/2].data[0]!='\0')
ns[n++]=atof(zhan[(p+k)/2].data);
p++;
for(j=0;jos[o-1].rank
break;
}
else
{
doublenumb1,numb2,numb;
switch(ch=os[--o].operat)
{
case'+':
{
numb1=ns[--n];
numb2=ns[--n];
numb=numb1+numb2;
ns[n++]=numb;
break;
}
case'-':
{
numb1=ns[--n];
numb2=ns[--n];
numb=numb2-numb1;
ns[n++]=numb;
break;
}
case'*':
{
numb1=ns[--n];
numb2=ns[--n];
numb=numb2*numb1;
ns[n++]=numb;
break;
}
case'/':
{
numb1=ns[--n];
numb2=ns[--n];
if(numb1==0)
{
printf("無效操作\n");
return;
}
else
{
numb=numb2/numb1;
ns[n++]=numb;
}
break;
}
case'^':
{
numb1=ns[--n];
numb2=ns[--n];
numb=pow(numb2,numb1);
ns[n++]=numb;
break;
}
}
}
}
}
elseif(data[i]>='0'
elseif(data[i]=='.');
else
{
printf("格式錯誤,請重新輸入:\n");
szys(mark);
break;
}
}
printf("%lf\n",ns[0]);
printf("*****1、連續(xù)*****\n");
printf("*****0、返回上一層*****\n");
scanf("%s",
if(strcmp(a,"0")==0)
return;
elseif(strcmp(a,"1")==0)
szys(mark);
else
printf("沒有該選項\n");
}
intmain
{
yxjmark[9];
mark[0].operat='#';
mark[0].rank=-1;
mark[1].operat='+';
mark[1].rank=1;
mark[2].operat='-';
mark[2].rank=1;
mark[3].operat='*';
mark[3].rank=2;
mark[4].operat='/';
mark[4].rank=2;
mark[5].operat='(';
mark[5].rank=-1;
mark[6].operat=')';
mark[6].rank=-1;
mark[7].operat='=';
mark[7].rank=0;
mark[8].operat='^';
mark[8].rank=3;
while(1)
{
chari[10];
printf("*****1、四則運算計算器*****\n");
printf("*****2、三角函數(shù)計算器*****\n");
printf("*****0
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)大樓管樁施工合同
- 員工離職補償金協(xié)議書
- 學(xué)校擴建室外管網(wǎng)改造施工合同
- 電影院放映室安全門施工協(xié)議范文
- 鄭州別墅買賣合同要點解析
- 飛行員勞動合同簽訂流程
- 倉儲物流快遞租賃合同
- 區(qū)塊鏈產(chǎn)品技術(shù)協(xié)議管理辦法
- 風(fēng)力發(fā)電場防火門施工合同
- 生態(tài)公園綠化改造合同協(xié)議書
- 進入答辯環(huán)節(jié)的高職應(yīng)用技術(shù)推廣中心申報書(最終版)
- 高等數(shù)學(xué)(理工)Ι知到章節(jié)答案智慧樹2023年重慶科技學(xué)院
- 2023學(xué)年完整公開課版瑤族
- 高考模擬作文“同舟共濟渡難關(guān)團結(jié)合作創(chuàng)未來”導(dǎo)寫及范文
- 翻譯技術(shù)實踐知到章節(jié)答案智慧樹2023年山東師范大學(xué)
- 尾礦庫基本知識
- 三年級體質(zhì)健康數(shù)據(jù)
- 礦山企業(yè)新員工入職公司三級安全教育培訓(xùn)必備教材(全套)
- 感染性休克指南
- GB/T 32891.2-2019旋轉(zhuǎn)電機效率分級(IE代碼)第2部分:變速交流電動機
- 《煤炭企業(yè)發(fā)展的PEST分析報告(3500字)》
評論
0/150
提交評論