简易计算器(新版本)

新增功能,实时说明,可以求平方根,并且可以让结果变成整型。

代码如下:

#include<iostream>

using namespace std;

void main();

void shuoming()

{

cout << "当符号为n时退出,为q时清空" << endl;

cout << "输入n退出,输入q清空" << endl;

cout << "输入c查看上一次结果" << endl;

cout << "输入h求平方根" << endl;

cout << "输入z去掉小数点后面的数字" << endl;

system("pause");

system("cls");

main();

}

float result_arr[2] = { 0 }; // 存放两次结果的数组

int arr_index = 0; // 当前存放结果的数组索引

void show_results()

{

cout << "上一次计算结果是: " << result_arr[1] << endl;

system("pause");

}

void sssm()

{

cout << "-----------------" << endl;

cout << "| 1、+加法 |" << endl;

cout << "-----------------" << endl;

cout << "| 2、-减法 |" << endl;

cout << "-----------------" << endl;

cout << "| 3、*乘法 |" << endl;

cout << "-----------------" << endl;

cout << "| 4、/除法 |" << endl;

cout << "-----------------" << endl;

cout << "| 5、^平方 |" << endl;

cout << "-----------------" << endl;

cout << "| 6、h开方 |" << endl;

cout << "------------------------------------" << endl;

cout << "| 7、c是查看上一次结果 |" << endl;

cout << "------------------------------------" << endl;

cout << "| 8、z是去掉小数点后面的数字 |" << endl;

cout << "------------------------------------" << endl;

}void main()

{

float num1 = 0, num2 = 0, final;

char fh = 0;

char select=0;

cout << "欢迎使用简易计算器" << endl;

cout << "-----------------" << endl;

cout << "| 1、进入 |" << endl;

cout << "------------------" << endl;

cout << "| 2、说明 |" << endl;

cout << "-----------------" << endl;

cin >> select;

if (select == '1')

{

system("cls");

cout << "请输入" << endl;

sssm();

goto Z;

}

else

shuoming();

Z: cin >> num1;

cin >> fh;

int a = 0;

double result;

while (fh != 'n')

{

switch (fh)

{

case'+':cin >> num2; final = num1 + num2; break;

case'-':cin >> num2; final = num1 - num2; break;

case'*':cin >> num2; final = num1 * num2; break;

case'/':cin >> num2; final = num1 / num2; a = num1 - (num2 * static_cast<int>(num1 / num2)); break;

case'^':final = num1 * num1; break;

case'~':cin >> num2; final = num1; for (int i = num2; i > 1; i--) { final = num1 * final; } break;

case'c': show_results(); cout<<"请输入是否要调用上一次结果(y/n):"<<endl;cin>>select;if(select=='y')final=result_arr[1];break; // 查看之前的结果

case 'h':if (num1 < 0)cout << "负数没有平方根!" << endl; else final = sqrt(num1); break;

case'z':goto a1;

default:cout << "请重新输入" << endl; break;

}

system("cls");

if (a != 0)

{

a1: int final1 = final;

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

printf("|结果是%d····%d|\n", final1, a);

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

sssm();

final = final1;

a = 0;

result_arr[arr_index % 2] = final; // 存放结果到数组中

arr_index++;

}

else

{

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

printf("|结果是%.2f\t|\n", final);

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

sssm();

result_arr[arr_index % 2] = final; // 存放结果到数组中

arr_index++;

}

a: cin >> fh;

if (fh == 'q')

{

printf("已清空\n");

goto Z;

}

else

{

num1 = final;

continue;

}

}

}

相关推荐
coding随想10 分钟前
JavaScript中的BOM:Window对象全解析
开发语言·javascript·ecmascript
凌肖战30 分钟前
力扣网编程55题:跳跃游戏之逆向思维
算法·leetcode
念九_ysl44 分钟前
Java 使用 OpenHTMLToPDF + Batik 将含 SVG 遮罩的 HTML 转为 PDF 的完整实践
java·开发语言·pdf
yaoxin5211231 小时前
124. Java 泛型 - 有界类型参数
java·开发语言
liulilittle1 小时前
深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
开发语言·网络·c++·tcp/ip·智能路由器·tcp·通信
88号技师1 小时前
2025年6月一区-田忌赛马优化算法Tianji’s horse racing optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
勤奋的知更鸟1 小时前
Java 编程之模板方法模式
java·开发语言·模板方法模式
ゞ 正在缓冲99%…2 小时前
leetcode918.环形子数组的最大和
数据结构·算法·leetcode·动态规划
十年编程老舅2 小时前
跨越十年的C++演进:C++20新特性全解析
c++·c++11·c++20·c++14·c++23·c++17·c++新特性
上单带刀不带妹2 小时前
手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
开发语言·前端·javascript·vue.js·前端框架