C语言科学计算器(国外英文资料).doc
文本预览下载声明
C语言科学计算器(国外英文资料)
/ /计算器。cpp:定义控制台应用程序的入口点。
/ /
# include“stdafx.h”
# include stdio . h
# include stdlib.h
# include math.h
# include string.h
#定义大小100
#定义了0 / /左括号
#定义正确的1 / /右括号
#定义添加2 / /加
#定义子3 / /减
#定义mul 4 / /乘
#定义div 5 / /除
#定义罪6 / /罪恶
#定义输出电容7 / / cos
#定义鞣料8 / /棕褐色
#定义战俘9 / /乘方
#定义整数10 / /整数
#定义双打11 / /浮点数
#定义3.141592653579π
typedef struct dat
{
双的;
双ima;
字符标志;
struct dat *下;
} dat;
typedef struct num
{
双的;
双ima;
全国矿工工会};
字符输入(大小);
dat中缀(大小);
num数量(大小);
char(大小)运行;
int错误= 0;
int len len2;
无效输入(空白)
{
int我;
for(i = 0;i = 100;i + +)
{
中缀[我]。下面是[i + 1];
}
(输入);
len = strlen(输入);
}
int jisuan(char ope,int k)
{
num temp1,temp2;
开关(开放)
{
案例添加:
{
数量(k - 2)。实=数字[k - 1]。实+数[k - 2].实数;
数量(k - 2)。ima = number[k - 1]。ima + number[k - 2]. ima;
k,;
}
打破;
子:
{
数量(k - 2)。实=数字[k - 1]。实+数[k - 2].实数;
数量(k - 2)。ima = number[k - 1]。ima + number[k - 2]. ima;
k,;
}
打破;
案例mul:
{
temp1 = number[k - 1];
temp2 = number[k - 2];
数量(k - 2)。真正的= temp1.real * temp2。真正的- temp1.ima * temp2.ima;
数量(k - 2)。ima = temp1.real * temp2。ima + temp1.ima * temp2.real;
k,;
}
打破;
案例div:
{
temp1 = number[k - 1];
temp2 = number[k - 2];
数量(k - 2)。真正的=(temp1.real * temp2。真实+ temp1 . ima * temp2 . ima)/(temp2 . real - temp2)。真正+ temp2.ima * temp2.ima);
数量(k - 2)。ima =(temp1.real * temp2。这是我的第一个故事。真正+ temp2.ima * temp2.ima);
k,;
}
案例的罪:数量(k - 1)。实= sin(数字[k - 1])。真正的*π/ 180);断裂;
案例输出电容:数量(k - 1)。实= cos(数字[k - 1])真正的*π/ 180);断裂;
案例鞣料:数量(k - 1)。实= tan(数字[k - 1])。真正的*π/ 180);断裂;
案例战俘:数量(k - 2)。实= pow(数字[k - 2])。真实的(整数)数字[k - 1]. real);
}
返回k;
}
无效的公式(空白)
{
输入();
int i = 0,j = 0,点= 0,s = 1;
双重temp1 = 0,temp2 = 0;
/ /变量定义
for(i = 0;i = len;i + +)
{
if(输入[i] = 48 input[i] = 57)
{
如果(点= = 0)
{
temp1 = temp1 * 10 +(输入[i]- 48);
}
其他的
{
temp2 = temp2 +(双)(输入[我]- 48)/(战俘(10.0 s));
}
中缀[j]。真实= temp1 + temp2;
如果(中缀[j]。标志!= z )
{
如果(temp2 = = 0)
中缀[j]。符号=整数;
其他的
中缀[j]。符号=双打;
}
}
else if(输入[i]= = )。
{
点= 1;
}
else if(输入[i]= i )
{
temp1 = 0;
temp2 = 0;
点= 0;
中缀(j2)。ima =中缀[j].real;
中缀[j]。真正的= 0;
+ +;
}
else if(输入
显示全部