當前位置:首頁 » 編程語言 » c語言計算器程序報告
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言計算器程序報告

發布時間: 2022-04-25 16:47:51

⑴ 用c語言編寫一個簡單計算器程序

#include<stdio.h>//計算器

voidmenu()//自定義的菜單界面

printf("--------------------\n");

printf("請輸入你的選擇\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//計算結果存放在nun

intselect=0;//選擇的選項存放在select

do//do-while先執行再判斷循環條件,即可實現重復計算功能

menu();//列印出菜單界面

scanf("%d",&select);//輸入你的選項

printf("請輸入計算值:");

scanf("%d%d",&i,&j);//輸入要計算的數值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//實現加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//實現減法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//實現乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//實現除法功能

break;

default:

printf("輸入有誤重新選擇");

break;

}while(select);

return0;

運行結果:

(1)c語言計算器程序報告擴展閱讀:

return表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。

return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

⑵ 如何用c語言寫計算器程序

計算器要求如下:1)
設計一面向對象的類,含有加、減、乘、除運算及開平方等功能的函數。
2)
設計加、減、乘、除運算及求平方根的函數。
3)
設計實現四則混合運算的函數。
4)
設計測試函數。
要求是
完善計算器程序,改為可對實數操作。
完善程序,改為多個操作數基本四則運算,遇到0為止。
增加函數,完成四則混合運算,增加相應的主菜單選項。
添加語句,使四則運算具有測試功能。
可擴充其功能。

⑶ c語言設計一個簡單的計算器程序

#include<stdio.h>//計算器

voidmenu()//自定義的菜單界面

printf("--------------------\n");

printf("請輸入你的選擇\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//計算結果存放在nun

intselect=0;//選擇的選項存放在select

do//do-while先執行再判斷循環條件,即可實現重復計算功能

menu();//列印出菜單界面

scanf("%d",&select);//輸入你的選項

printf("請輸入計算值:");

scanf("%d%d",&i,&j);//輸入要計算的數值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//實現加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//實現減法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//實現乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//實現除法功能

break;

default:

printf("輸入有誤重新選擇");

break;

}while(select);

return0;

運行結果:

(3)c語言計算器程序報告擴展閱讀:

return表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。

return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

⑷ C語言計算器程序

請仔細看輸入方法,別輸錯了,要不然答案不正確的[原創]函數型計算器(VC++6.0,win32 console)/*---------------------------------------
函數型計算器(VC++6.0,Win32 Console)
程序由 yu_hua 於2007-07-27設計完成
功能:目前提供了10多個常用數學函數:
⑴正弦sin ⑵餘弦cos ⑶正切tan
⑷開平方sqrt ⑸反正弦arcsin
⑹反餘弦arccos ⑺反正切arctan
⑻常用對數lg ⑼自然對數ln
⑽e指數exp ⑾乘冪函數∧
用法:如果要求2的32次冪,可以打入
2^32<回車>如果要求30度角的正切可
鍵入tan(Pi/6)<回車>注意不能打入:
tan(30)<Enter>如果要求1.23弧度的
正弦,有幾種方法都有效:
sin(1.23)<Enter>
sin 1.23 <Enter>
sin1.23 <Enter>
如果驗證正餘弦的平方和公式,可打入
sin(1.23)^2+cos(1.23)^2 <Enter>或
sin1.23^2+cos1.23^2 <Enter>此外兩
函數表達式連在一起,自動理解為相乘
如:sin1.23cos0.77+cos1.23sin0.77
就等價於
sin(1.23)*cos(0.77)+cos(1.23)*sin(0.77)
當然你還可以依據三角變換,再用
sin(1.23+0.77)也即sin2驗證一下。
本計算器充分考慮了運算符的優先順序
因此諸如:2+3*4^2 實際上相當於:
2+(3*(4*4))另外函數名前面如果是
數字,那麼自動認為二者相乘.同理,
如果某數的右側是左括弧,則自動
認為該數與括弧項之間隱含一乘號。
如:3sin1.2^2+5cos2.1^2 相當於
3*sin2(1.2)+5*cos2(2.1) 又如:
4(3-2(sqrt5-1)+ln2)+lg5 相當於
4*(3-2*(√5 -1)+loge(2))+log10(5)
此外,本計算器提供了圓周率 Pi
鍵入字母時不區分大小寫,以方便使用。
----------------------------------------*/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <cmath>
using namespace std;const char Tab=0x9;
const int DIGIT=1;double fun(double x,char op[],int *iop)
{
while(op[*iop-1]<32) //本行使得函數嵌套調用時不必加括弧
// 如 arc sin(sin(1.234)) 只需鍵入arc sin sin 1.234<Enter>
switch(op[*iop-1])
{
case 7: x=sin(x); (*iop)--;break;
case 8: x=cos(x); (*iop)--;break;
case 9: x=tan(x); (*iop)--;break;
case 10: x=sqrt(x); (*iop)--;break;
case 11: x=asin(x); (*iop)--;break;
case 12: x=acos(x); (*iop)--;break;
case 13: x=atan(x); (*iop)--;break;
case 14: x=log10(x);(*iop)--;break;
case 15: x=log(x); (*iop)--;break;
case 16: x=exp(x); (*iop)--;break;
}
return x;
}double calc(char *expr,char **addr)
{
static deep; //遞歸深度
static char *fname[]={ "sin","cos","tan","sqrt",
"arcsin","arccos","arctan","lg","ln","exp",NULL};
double ST[10]={0.0}; //數字棧
char op[10]={'+'}; //運算符棧
char c,*rexp,*pp,*pf;
int ist=1,iop=1,last;
if(!deep)
{
pp=pf=expr;
do
{
c = *pp++;
if(c!=' '&& c!=Tab)
*pf++ = c;
}
while(c!='\0');
}
pp=expr;
if((c=*pp)=='-'||c=='+')
{
op[0] = c;
pp++;
}
last = !DIGIT;
while((c=*pp)!='\0')
{
if(c=='(')//左圓括弧
{
deep++;
ST[ist++]=calc(++pp,addr);
deep--;
ST[ist-1]=fun(ST[ist-1],op,&iop);
pp = *addr;
last = DIGIT;
if(*pp == '('||isalpha(*pp) && strnicmp(pp,"Pi",2))
{ ////目的是:當右圓括弧的
op[iop++]='*'; ////右惻為左圓括弧或函數
last = !DIGIT; ////名字時,默認其為乘法
c = op[--iop]; /////////////////////////////
goto operate ; /////////////////////////////
}
}
else if(c==')')//右圓括弧
{
pp++;
break;
}
else if(isalpha(c))
{
if(!strnicmp(pp,"Pi",2))
{
if(last==DIGIT){cout<< "π左側遇)" <<endl;exit(1);}
ST[ist++]=3.14159265358979323846;
ST[ist-1]=fun(ST[ist-1],op,&iop);
pp += 2;
last = DIGIT;
if(!strnicmp(pp,"Pi",2)){cout<< "兩個π相連" <<endl;exit(2);}
if(*pp=='('){cout<< "π右側遇(" <<endl;exit(3);}
}
else
{
for(int i=0; (pf=fname[i])!=NULL; i++)
if(!strnicmp(pp,pf,strlen(pf)))break;
if(pf!=NULL)
{
op[iop++] = 07+i;
pp += strlen(pf);
}
else {cout<< "陌生函數名" <<endl;exit(4);}
}
}
else if(c=='+'||c=='-'||c=='*'||c=='/'||c=='^')
{
char cc;
if(last != DIGIT){cout<< "運算符粘連" <<endl;exit(5);}
pp++;
if(c=='+'||c=='-')
{
do
{
cc = op[--iop];
--ist;
switch(cc)
{
case '+': ST[ist-1] += ST[ist];break;
case '-': ST[ist-1] -= ST[ist];break;
case '*': ST[ist-1] *= ST[ist];break;
case '/': ST[ist-1] /= ST[ist];break;
case '^': ST[ist-1] = pow(ST[ist-1],ST[ist]);break;
}
}
while(iop);
op[iop++] = c;
}
else if(c=='*'||c=='/')
{
operate: cc = op[iop-1];
if(cc=='+'||cc=='-')
{
op[iop++] = c;
}
else
{
--ist;
op[iop-1] = c;
switch(cc)
{
case '*': ST[ist-1] *= ST[ist];break;
case '/': ST[ist-1] /= ST[ist];break;
case '^': ST[ist-1] = pow(ST[ist-1],ST[ist]);break;
}
}
}
else
{
cc = op[iop-1];
if(cc=='^'){cout<< "乘冪符連用" <<endl;exit(6);}
op[iop++] = c;
}
last = !DIGIT;
}
else
{
if(last == DIGIT){cout<< "兩數字粘連" <<endl;exit(7);}
ST[ist++]=strtod(pp,&rexp);
ST[ist-1]=fun(ST[ist-1],op,&iop);
if(pp == rexp){cout<< "非法字元" <<endl;exit(8);}
pp = rexp;
last = DIGIT;
if(*pp == '('||isalpha(*pp))
{
op[iop++]='*';
last = !DIGIT;
c = op[--iop]; /////////////////////////////
goto operate ; /////////////////////////////
}
}
}
*addr=pp;
if(iop>=ist){cout<< "表達式有誤" <<endl;exit(9);}
while(iop)
{
--ist;
switch(op[--iop])
{
case '+': ST[ist-1] += ST[ist];break;
case '-': ST[ist-1] -= ST[ist];break;
case '*': ST[ist-1] *= ST[ist];break;
case '/': ST[ist-1] /= ST[ist];break;
case '^': ST[ist-1] = pow(ST[ist-1],ST[ist]);break;
}
}
return ST[0];
}int main()
{
char s[128],*end;
system("chcp 936"); //中文代碼頁
while(1)
{
cout << "請輸入表達式:";
cin.getline(s,128);
cout << setprecision(17) << calc(s,&end) << endl;
}
return 0;

⑸ 急求c語言數據結構簡單計算器實驗報告!!!

似乎不全面啊!
當年上學的時候編過,優先順序比較沒這么簡單!

⑹ 用C語言做一個簡單的計算器程序要求如圖

#include<stdio.h>
intmain()
{
charjudge,oper;
doublea,b,result;
printf("是
否需要計算,輸入Y或y表示需要,輸入N或n表示不需要 ");
judge=getchar();
while(judge!='N'&&judge!='n')
{
if(judge=='Y'||judge=='y')
{
printf("請輸入需要計算的兩個數,空格分開 ");
scanf("%lf%lf",&a,&b);
while(getchar()!=' ');
printf("請輸入操作符 ");
oper=getchar();
switch(oper)
{
case'+':
result=a+b;
break;
case'-':
result=a-b;
break;
case'*':
result=a*b;
break;
case'/':
if(b==0)
break;
else
{
result=a/b;
break;
}
default:
printf("錯誤的操作符 ");
break;
}
if(b==0&&oper=='/')
{
printf("除法中除數不可為0 ");
}
elseif(oper=='+'||oper=='-'||oper=='*'||oper=='/')
{

printf("結果約為%.2lf ",result);
}
printf("是否需要計算,輸入Y或y表示需要,輸入N或n表示不需要 ");
while(getchar()!=' ');
judge=getchar();
}
else
{
printf("您輸入的不是Y,y,N,n中的字元,請重新輸入,Y或y表示需要計算,N或n表示不需要 ");
while(getchar()!=' ');
judge=getchar();
}
}
while(getchar()!=' ');
printf("程序結束,ENTER關閉程序 ");
getchar();
return0;
}

格式可能有點亂,粘貼過來後格式丟失了

⑺ 大一c語言編程實現計算器功能實驗報告

#include"stdio.h"
intmain()
{
inta,b,c;
do
{
system("cls");
printf("計算器菜單 ");
printf("======================== ");
printf("1:計算a+b ");
printf("2:計算a-b ");
printf("3:計算a*b ");
printf("4:計算a/b ");
printf("5:計算a%b ");
printf("0:退出 ");
printf("請選擇(0-5):");
scanf("%d",&c);
if(c!=0)
{
printf("請輸入a:");
scanf("%d",&a);
printf("請輸入b:");
scanf("%d",&b);
switch(c)
{
case1:printf("a+b=%d",a+b);break;
case2:printf("a-b=%d",a-b);break;
case3:printf("a*b=%d",a*b);break;
case4:printf("a/b=%d",a/b);break;
case5:printf("a%b=%d",a%b);break;
default:break;
}
printf(" 按任意鍵繼續......");
getch();
}
}
while(c!=0);
return0;
}

⑻ c語言程序設計計算器

#include
void main()
{
float a,b;
char d;
printf("請輸入兩個數a,b:");
scanf("%f,%f"&a,&b);
printf("請輸入符號d");
scanf("%c",d);
switch(d)
{
case'+':printf("%f\n,a+b);break;
case'-':printf("%f\n,a-b);break;
case'*':printf("%f\n,a*b);break;
case'/':printf("%f\n,a/b);break;
default:printf("input error\n");
}
}

⑼ C語言編寫簡易計算器程序

C語言編寫計算器

  • 我們可以用printf和scanf函數輸出結果和獲取用戶的輸入。需要<stdio.h>頭文件。scanf函數在讀取數據的時候不需要再一行上輸入每個數據,只要數據和數據之間留出空白就可以了。先聲明兩個變數number1和number2,operation變數用來存儲運算符。用scanf函數獲取這兩個數字和運算符。分別用%lf %c %lf

⑽ C語言 要求編寫一個簡單計算器的程序

#include<stdio.h>
voidmain(){floatx,y,z;charc;
scanf("%f%c%f",&x,&c,&y);
switch(c){
case'+':z=x+y;break;
case'-':z=x-y;break;
case'*':z=x*y;break;
case'/':z=(y==0)?(0):(x/y);break;
default:z=0;break;
}
printf("%f%c%f=%f ",x,c,y,z);
}