代码仅供作业小组人员使用

以下链接为经小组成员完成改善得到的中间结果各版本

(终稿)C++实现科学计算器主函数代码(含调用函数)_m0_57453166的博客-CSDN博客

(初稿)C++实现科学计算器主函数代码(含调用函数)_Honeyseaaa的博客-CSDN博客

(非完成版)C++实现科学计算器主函数代码,(不含调用函数)_克蕾尔的博客-CSDN博客

#include<iostream>
#include<cmath>
#include <math.h>
using namespace std;void judge(double *p) {double h = *p;while (h > pow(10, 308)) {cout << "运算超限,请进入下一次运算" << endl;break;}
}int key1() {                                                            //三角函数预处理int k1;cout << "请问是否需要对该数字进行预处理,如不需要请输入0:" << endl;cout << "1.sin  2.cos  3.tan " << endl;cin >> k1;while (k1 != 1 && k1 != 2 && k1 != 3 && k1 != 0) {cout << "请重新输入" << endl;cin >> k1;}switch (k1) {case 1:return 1;break;case 2:return 2;break;case 3:return 3;break;default:return 0;break;}
}void key2(double* cal, int a) {double c = *cal;switch (a) {//所有涉及cal的都用c来表示case 1:cout << "sin" << c;c = sin(c);//sincbreak;case 2:cout << "cos" << c;c = cos(c);//coscbreak;case 3:cout << "tan" << c;c = tan(c);//tancbreak;case 0:c = c;cout << c;break;}*cal = c;
}int keys(double* cal) {int b1;double b2, c;c = *cal;cout << "请输入您所需要的运算符或运算方式前的编号,其中第8个是结束运算:" << endl;cout << "************************************" << endl;cout << "*   1. +   2. —   3. ×   4. ÷  *" << endl;cout << "*   5.n√   6. ^n   7.1/X   8. FIN *" << endl;cout << "************************************" << endl;cout << "注:第五,第六个运算方式中的n为你下一个输入的数字,第七个倒数运算为对前面运算的结果进行倒数运算" << endl;cin >> b1;while (b1 != 1 && b1 != 2 && b1 != 3 && b1 != 4 && b1 != 5 && b1 != 6 && b1 != 7 && b1 != 8) {cout << "请重新输入" << endl;cin >> b1;}if (b1 == 8) {*cal = c;return 1;}int a = key1();cout << "请输入下一个数:" << endl;cin >> b2;while (b1 != 8) {switch (b1) {case 1:cout << c;cout << " + ";key2(&b2, a);c += b2;judge(&c);cout << " = " << c;break;case 2:cout << c;cout << " - ";key2(&b2, a);c -= b2;judge(&c);cout << " = " << c;break;case 3:cout << c;cout << " × ";key2(&b2, a);c *= b2;judge(&c);cout << " = " << c;break;case 4:cout << c;cout << " ÷ ";key2(&b2, a);c /= b2;judge(&c);cout << " = " << c;break;case 5:cout << c;cout << "^(1/";key2(&b2, a);cout << ")";c = pow(c, 1 / b2);judge(&c);cout << " = " << c;break;case 6:cout << c;cout << "^" ;key2(&b2, a);c = pow(c, b2);judge(&c);cout << " = " << c;break;case 7:key2(&b2, a);cout << "/";cout << c;c = b2 / c;judge(&c);cout << " = " << c;break;default:break;}*cal = c;cout << endl;return 0;}return 0;
}int key3(double* p) {int b1;double b2, c;c = *p;cout << "请输入你所需要的运算符或运算方式前的编号,其中第8个是结束运算:" << endl;cout << "************************************" << endl;cout << "*   1. +   2. —   3. ×   4. ÷  *" << endl;cout << "*   5.n√   6. ^n   7.1/X   8. FIN *" << endl;cout << "************************************" << endl;cout << "注:第五,第六个运算方式中的n为你下一个输入的数字,第七个倒数运算为对前面运算的结果进行倒数运算" << endl;cin >> b1;while (b1 != 1 && b1 != 2 && b1 != 3 && b1 != 4 && b1 != 5 && b1 != 6 && b1 != 7 && b1 != 8) {cout << "请重新输入" << endl;cin >> b1;}if (b1 == 8) {*p = c;return 1;}cout << "请输入下一个数" << endl;cin >> b2;while (b2 > pow(10, 308) || b2 < pow(10, -308)) {cout << "输入超限,请重新输入" << endl;cin >> b2;}while (b1 != 8) {switch (b1) {case 1:cout << c;c += b2;cout << " + " << b2;judge(&c);cout << " = " << c;break;case 2:cout << c;c -= b2;cout << " - " << b2;judge(&c);cout << " = " << c;break;case 3:cout << c;c *= b2;cout << " × " << b2;judge(&c);cout << " = " << c;break;case 4:cout << c;c /= b2;cout << " ÷ " << b2;judge(&c);cout << " = " << c;break;case 5:cout << c;cout << "^(1/" << b2<<")";c = pow(c, 1 / b2);judge(&c);cout << " = " << c;break;case 6:cout << c;cout << "^" << b2;c = pow(c, b2);judge(&c);cout << " = " << c;break;case 7:cout << b2;cout << "/";cout << c;c = b2 / c;judge(&c); cout << " = " << c;break;default:break;}*p = c;cout << endl;return 0;}return 0;
}void abn(double* cal) {double p = *cal;int a = key1();cout << "请输入数字:" << endl;cin >> p;while (p > pow(10, 308)) {cout << "输入超限,请重新输入" << endl;cin >> p;}key2(&p, a);cout << " = ";cout << p << endl;int n = 0;while (n == 0) {n = keys(&p);}cout << p << endl;
}void nor(double* cal) {double p = *cal;cout << "请输入数字:" << endl;cin >> p;int n = 0;while (n == 0) {n = key3(&p);}cout << p << endl;
}int Narcissus(int n) {                                                  //判断水仙花数int a, b, c, m;a = n / 100;b = (n % 100) / 10;c = n % 10;m = a * a * a + b * b * b + c * c * c;if (n == m)cout << n << "是水仙花数" << endl;elsecout << n << "不是水仙花数" << endl;return 0;
}int Divisor(int a, int b) {                                             //计算最大公因数int x = 0;cout << "请输入您想要判断的第一个数:" << endl;cin >> a;cout << "请输入您想要判断的第二个数:" << endl;cin >> b;for (x = a; x >= 1; x--) {if (a % x == 0 && b % x == 0){cout << a << "和" << b << "的最大公因数是" << x << endl;break;}}return 0;
}int Multiple(int a, int b) {                                        //计算最小公倍数int y;cout << "请输入您想要判断的第一个数:" << endl;cin >> a;cout << "请输入您想要判断的第二个数:" << endl;cin >> b;for (y = a; y <= a * b; y++) {if (y % a == 0 && y % b == 0){cout << a << "和" << b << "的最小公倍数是" << y << endl;break;}}return 0;
}bool isPrime(int n) {                                                   //判断素数int i;if (n == 1) {return false;}else {for (i = 2; i <= sqrt(n); i++) {if ((n % i) == 0)return false;}}return true;
}void tools() {                                                          //工具int a;cout << "请选择您需要的工具" << endl;cout << "1. 水仙花数" << endl;cout << "2. 最大公因数" << endl;cout << "3. 最小公倍数" << endl;cout << "4. 素数" << endl;cout << "5. 阶乘(20以内)" << endl;cin >> a;int n = 0, m = 0;switch (a) {case 1:cout << "请输入您想要判断的数字(3位数):";cin >> n;while (n >= 1000 || n <= 100) {cout << "您的数值非法,请重新输入一个三位数" << endl;cin >> n;}Narcissus(n);break;case 2:Divisor(n, m);break;case 3:Multiple(n, m);break;case 4:bool isFlag;cout << "请输入您想要判断的数字:";cin >> n;isFlag = isPrime(n);if (isFlag) {cout << n << "是素数" << endl;}else {cout << n << "不是素数" << endl;}break;case 5:long long n;long long result = 1;cout << "请输入您想要计算的数字" << endl;cin >> n;while (n <=0 || n >=20) {cout << "您的数值非法,请重新输入" << endl;cin >> n;}for (int i = 1; i <= n; i++) {result *= i;}cout << n << "的阶乘为" << n << "!=" << result << endl;break;}
}void calculation() {                                                    //计算double cal = 0;cout << "如果您的运算涉及三角函数,请输入1,若不涉及,请输入2:" << endl;int b;cin >> b;while (b != 1 && b != 2) {cout << "请重新输入" << endl;cin >> b;}switch (b) {case 1:abn(&cal);break;case 2:nor(&cal);break;}
}int main() {                                                            //工具or计算while (1) {int a1 = 0;cout << "欢迎使用科学计算器!请选择您需要的功能" << endl;cout << "本计算器精确度最大到小数点后第五位" << endl;cout << "最大值为10^308,最小值为10^-308" << endl;cout << "1.工具" << endl;cout << "2.计算" << endl;cin >> a1;while (a1 != 1 && a1 != 2) {cout << "请重新输入" << endl;cin >> a1;}if (a1 == 1) {tools();}else if (a1 == 2) {calculation();}}
}

【优化版】(终稿)C++实现科学计算器主函数代码(含调用函数)相关推荐

  1. (终稿)C++实现科学计算器主函数代码(含调用函数)

    代码仅供作业小组人员使用 (非完成版)C++实现科学计算器主函数代码,(不含调用函数)_克蕾尔的博客-CSDN博客 (初稿)C++实现科学计算器主函数代码(含调用函数)_Honeyseaaa的博客-C ...

  2. calcbusiness使用教程_Calc Business v4.4.2高级特别版 一款专业的科学计算器

    前几天有小伙伴在文章处留言需要一款可以进行度分秒计算的科学计算器. 所以今天给大家带来的这款软件就是一款非常专业的科学计算器,不仅仅支持常规的运算,还支持计算复杂的函数和物理常数,里面具有数百种功能, ...

  3. (非完成版)C++实现科学计算器主函数代码,(不含调用函数)

    C++作业,为方便复制所以写了CSDN,匹配度仅供作业小组人员使用 #include<iostream> using namespace std;int key1() {int k1;co ...

  4. 函数调用通过函数名字符串调用函数【C语言版】

    在写这篇文章之前,xxx已经写过了几篇关于改函数调用主题的文章,想要了解的朋友可以去翻一下之前的文章 问题引入 在C中,函数先定义,后使用.举个简单的例子 /********************* ...

  5. 通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  6. c语言 怎么将字符串代入函数,通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  7. 科学计算机如何输入x的n次方,科学计算器使用-20210321170247.docx-原创力文档

    第一章科学计算器使用 第一节计算器下载与安装及标准型的界面打开简介 科学计算器在 华军软件园 > 教育教学 > 理科工具 > 科学计算器多功能版可下载安装. 科学计算器在计算机中本身 ...

  8. 科学计算机安卓图像,Plotter图形科学计算器

    Plotter图形科学计算器(Plotter)是一款手机图形计算器软件.Plotter图形科学计算器app支持多种函数以及常数用户可以使用此软件进行复杂数学公式的计算,还可以进行复杂的函数计算,操作简 ...

  9. 计算机应用基础知识doc,独家稿件:终稿[定稿]计算机应用基础知识全册教案.docOK版...

    <[定稿]计算机应用基础知识全册教案.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)[定稿]计算机应用基础知识全册教案.doc(OK版)>相关文档资源请在帮帮文库(w ...

最新文章

  1. 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析
  2. 帆软正则表达式定义规则
  3. 解决Please choose a writable location using the '-configuration' command line option
  4. 类装载器ClassLoader
  5. html动态网站维护页面
  6. sql 时态表的意义_在SQL Server 2016中拉伸时态历史记录表
  7. 增加限制模拟器2006-2-11
  8. 01 ZooKeeper初探
  9. Spring Boot集成Spring Data Reids和Spring Session实现Session共享(多个不同的应用共用一个Redis实例)...
  10. n的阶乘末尾含0的个数
  11. python编程语言一览_编程语言大汇总(Part Ⅰ)
  12. MSSQL父子关系表的SQL查询(SQL Query for Parent Child Relationship)
  13. [视频编码] BD-rate和BD-PSNR
  14. .db-shm和.db-wal文件
  15. C++入门学习:引用和常引用
  16. Python中记录程序运行时间
  17. vivo刷入鸿蒙,vivo鸿蒙系统刷机包
  18. 【OCR】文本检测方案 TextFuseNet解读
  19. Unix/Linux下的Curses库开发指南——第一章 Curses库开发简介
  20. JQuery播放暂停HTML视频

热门文章

  1. [小问题]Ubuntu 桌面无图标 右键不能用
  2. spring7大事务传播行为
  3. 个人经验:team leader需要做的事和需要具备的能力
  4. 【0527】身份鉴别技术
  5. 失业3个月终于上岸,分享几点经验:不要转行,不要一份简历通吃,要重复投简历,要主动降薪!...
  6. 网站打开速度对网站的影响!
  7. 【OpenGL】02 - OpenGL中的坐标系
  8. mac查看端口占用情况及释放端口
  9. mysql 哨兵模式_redis配置主从+sentine哨兵模式
  10. CentOS7修改SSH端口