C++简易计算器的实现

  • Post author:
  • Post category:其他



定义:

计算器是近代人发明的可以进行数字运算的机器。

也就是说,计算器不等同于算盘,前者能自行运算,后者只能简便计算过程,在古代,人们发明了许多计算工具,如算筹、算盘、计算尺等,随着社会的发展和科技的进步,计算工具也经历了由简单到复杂,由低级向高级的发展变化。进入20世纪后,人们发明了计算器。计算器的出现解决了很多比较复杂的计算问题。计算器的使用非常简单,

它的运算规则是从左往右算,输入数据后可以一眨眼就得出结果

计算器不局限与四则运算,还可以进行如开方,对数,三角函数之类的复杂运算,更有甚者,可以进行
\sum

\prod

\bigcap
之类,或矩阵运算了。

今天,让我们来用C++编写简易计算器。


代码1:

#include<iostream>
using namespace std;


int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}
int m(int num1, int num2)
{
	int sum = num1 - num2;
	return sum;
}
int time(int num1, int num2)
{
	int sum = num1 * num2;
	return sum;
}
int chu(int num1, int num2)
{
	int sum = num1 / num2;
	return sum;
}
int mod(int num1, int num2)
{
	int sum = num1 % num2;
	return sum;
}

int main()
{
	system("color 2E");
	float a, b,d;
	short c;
	printf("欢迎使用计算器,该计算器只支持整数输出\n");
	printf("加请按1,减请按2,乘请按3,除请按4,取余数请按5\n");
    u:
	cout << "请输入两个数" <<endl;
	cin >> a
	>> b;
	cout << "请输入运算类型:" << endl;
	cin >> c;
	switch (c)
	{
	case 1:
			d = add(a, b);
			break;
	case 2:
			d = m(a, b);
			break;
	case 3:
			d = time(a, b);
			break;
	case 4:
			d = chu(a, b);
			break;
	case 5:
			d = mod(a, b);
			break;
		default:
			break;
	}
	if ((a + b) > 32677 && (a - b) < -32678)
		cout << "溢出警报\a" << endl;
	else
	cout << d << endl;

	goto u;
}

这个计算器有诸多限制,它只能进行五种运算(还不能处理浮点),容易溢出,所以我做了改进。


代码2:

#include<cstdio>
#include<iostream>
using namespace std;

int main()
{
	system("color 2E");
	int a, b;
	char ch;
y:
	cout << "请输入算式:" << endl;
	cin>>a
		>>ch
		>>b;
	if (ch != '+' && ch != '-' && ch != '*' && ch != '/' && ch != '%')
	{
		printf("Error\n");
	}
	else
	{
		cout<< a<<" " << ch <<" "<<b << " = ";
	}
	switch (ch)
	{
	case '+':
	{
		cout << a + b << endl;
		break;
	}
	case '-':
	{
		cout  << a - b << endl;
		break;
	}
	case '*': 
	{
		cout << a * b << endl;
		break;
	}
	case '/': 
	{
		cout << a / b << endl;
		break;
	}
	case '%':
	{
		cout << a % b << endl;
		break; 
	}
	}
	goto y;
}

好用一点,可以输出算式了。

最后一点,无论什么计算器,如果要进行大于结果
2^{32}
的运算或超过15位有效数字的浮点运算,需要

高精度算法

,详见:


https://blog.csdn.net/u011386173/article/details/109912035?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166477380516782395356593%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166477380516782395356593&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-109912035-null-null.142^v51^control,201^v3^control_2&utm_term=%E9%AB%98%E7%B2%BE%E5%BA%A6%E8%AE%A1%E7%AE%97&spm=1018.2226.3001.4187

谢谢。



版权声明:本文为wmwmwmwmwm1234原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。