#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define pi 3.14159265358979323846264338327
#define MAX 20
#define e 2.71828
//加载进入计算器需要输入的指令
void InitNews()
{printf("**********************\n");printf("请选择你想要进入的模块:\n");printf("**********************\n");
}
//加法
void Sum(double x, double y)
{double result = x + y;printf("%.2lf+%.2lf=%.2lf\n", x, y, result); //保留两位小数printf("\n");
}
//减法
void Cut(double x, double y)
{double result = x - y;printf("%.2lf-%.2lf=%.2lf\n", x, y, result);
}
//乘法
void Multiply(double x, double y)
{double result = x * y;printf("%.2lf*%.2lf=%.2lf\n", x, y, result);
}
//除法
void Divide(double x, double y)
{double result = x / y;printf("%.2lf/%.2lf=%.2lf\n", x, y, result);
}
//计算sinx,也就是正弦函数
void CalculateSinx(double n)
{double s;s = sin(n * 2 * pi / 360);         //求n的sin()值,并返回给nprintf("sin %f = %.15lf\n", n, s); //输出
}
//计算cosx,也就是余弦函数
void CalculateCosx(double n)
{double c;c = cos(n * 2 * pi / 360);         //求n的cos()值,并返回给nprintf("cos %f = %.15lf\n", n, c); //输出
}
//计算tanx,也就是正切函数
void CalculateTanx(double n)
{double t;t = tan(n * 2 * pi / 360);         //求n的tan()值,并返回给nprintf("tan %f = %.15lf\n", n, t); //输出
}
//计算arcsin,反正弦函数
void CalculateArcSinx(double n)
{double t;t = asin(n);printf("arcsin %f = %.15lf\n", n, t); //输出
}
//计算arccos,反余弦函数
void CalculateArcCosx(double n)
{double t;t = acos(n);printf("acos %f = %.15lf\n", n, t); //输出
}
//计算arctan,反正切函数
void CalculateArcTanx(double n)
{double t;t = atan(n);printf("atan %f = %.15lf\n", n, t); //输出
}
//对数函数,Lnx 就是以e为低x的对数
void CalculateLnx()
{double n, res;scanf("%lf", &n);res = log(n);printf("以e为底%lf的对数是%.2lf\n", n, res);
}
//对数函数,log10(x)以10为底x的对数
void CalculateLogx()
{double n, res;scanf("%lf", &n);res = log10(n);printf("以10为底%lf的对数是%.2lf\n", n, res);
}
//计算e^x   e约等于:2.7182818
void CalculateEX()
{double n, res;scanf("%lf", &n);res = pow(e, n);printf("e^%f = %f\n", n, res);
}
//计算平方根,比如:4的平方跟是2
void CalculateSquareroot()
{double n, res;scanf("%lf", &n);res = sqrt(n);printf("%lf的平方根是%.2lf\n", n, res);
}
//计算x^y,就是x的y次方,比如2的2次方是4
void CalculateXY()
{double x, y, result;scanf("%lf %lf", &x, &y);result = pow(x, y);printf("x^y = %.2lf\n", result);
}
//基本四则运算  n为用户输入的指令
//n=1;做加法运算
//n=2;做减法运算
//n=3;做乘法运算
//n=4;做除法运算
void BasicOperations(int n)
{printf("请选择你想要计算的数字:\n");printf("\n");double x, y;scanf("%lf %lf", &x, &y);if (n == 1){Sum(x, y);}else if (n == 2){Cut(x, y);}else if (n == 3){Multiply(x, y);}else{Divide(x, y);}
}
//三角函数运算
void Triangulation(int n)
{printf("请选择你想要计算的数字:\n");double x;scanf("%lf", &x);if (n == 1){CalculateSinx(x);}else if (n == 2){CalculateCosx(x);}else if (n == 3){CalculateTanx(x);}else if (n == 4){CalculateArcSinx(x);}else if (n == 5){CalculateArcCosx(x);}else{CalculateArcTanx(x);}
}
//对数函数运算
void LogOperations(int n)
{printf("请选择你想要计算的数字:\n");if (n == 1){CalculateLnx();}else{CalculateLogx();}
}
//其它函数运算
void OtherOperations(int n)
{printf("请选择你想要计算的数字:\n");if (n == 1){CalculateEX();}else if (n == 2){CalculateSquareroot();}else{CalculateXY();}
}
int welecome()
{printf("您已进入计算器,欢迎使用!\n");printf("\n");printf("**********************************\n");printf("请输入对应编号,进入相应的运算模块!\n");printf("**********************************\n");printf("\n");printf("1:四则运算  2:三角运算  3:对数运算  4:其他运算\n"); //一共四种运算类型printf("\n");int ch;//接收用户输入的指令,进入相应的类型运算scanf("%d", &ch);//如果不在四种运算类型范围内,就返回错误代码0,并提示错误if (ch != 1 && ch != 2 && ch != 3 && ch != 4){return 0;}//如果指令为1,则进入基本类型运算,加减乘除if (ch == 1){printf("\n");printf("四则运算选择:\n");printf("\n");printf("1:加法\n");printf("2:减法\n");printf("3:乘法\n");printf("4:除法\n");printf("\n");InitNews();int n;scanf("%d", &n);//如果指令不对,返回错误代码0,提示错误信息if (n != 1 && n != 2 && n != 3 && n != 4){return 0;}//调用四则运算方法,并将用户输入的指令传入BasicOperations(n);}else if (ch == 2){printf("\n");printf("三角函数选择:\n");printf("\n");printf("1:sin(x)\n");printf("2:cos(x)\n");printf("3:tan(x)\n");printf("4:arcsin(x)\n");printf("5:arccos(x)\n");printf("6:arctan(x)\n");printf("\n");InitNews();int n;scanf("%d", &n);if (n != 1 && n != 2 && n != 3 && n != 4 && n != 5 && n != 6){return 0;}Triangulation(n);}else if (ch == 3){printf("\n");printf("对数函数选择:\n");printf("\n");printf("1:lnx\n");printf("2:lgx\n");printf("\n");InitNews();int n;scanf("%d", &n);if (n != 1 && n != 2){return 0;}LogOperations(n);}else{printf("\n");printf("其它函数选择:\n");printf("\n");printf("1:e^x\n");printf("2:平方根计算\n");printf("3:x^y\n");printf("\n");InitNews();int n;scanf("%d", &n);if (n != 1 && n != 2 && n != 3){return 0;}OtherOperations(n);}return 1;
}
int main()
{printf("请输入 1 进入计算器\n");int i, n;scanf("%d", &n);for (i = 0;; i++){if (n != 0){//调用提示信息函数,获取返回状态码//如果为0,则代表有误int result = welecome();if (result == 0){printf("指令有误!!!\n");printf("\n");}else{printf("计算结束!!!\n");printf("\n");}}printf("输入 0 退出计算\n");printf("输入 1 继续运算\n");scanf("%d", &n);if (n == 0){break;}else{continue;}}
}

c语言课程设计-计算器相关推荐

  1. c语言课程设计作业计算器图形界面,C语言课程设计--计算器(图形界面).doc

    C语言课程设计--计算器(图形界面) 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法----3,4 ...

  2. c语言课程设计计算器程序分析,c语言课程设计简单计算器程序..docx

    课程设计名称:C语言课程设计 课程设计题目: 简单计算器程序 TOC \o "1-5" \h \z \o "Current Document" 第1章需求分析1 ...

  3. c语言课程设计计算器软件,C语言课程设计简单计算器程序.docx

    课程设计名称: C 语言课程设计课程设计题目: 简单计算器程序 目录 第1章 需求分析 0 设计要求 0 任务 0 第2章 总体设计 1 TOC \o "1-5" \h \z \o ...

  4. 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...

    时间:2019-05-15 12:55:15 作者:admin 计算器实验报告 班级: 07计本(1)班 姓名: 王林 学号: 20706031047 指导老师: 韩静 一. 需求分析 (1)制作一个 ...

  5. c语言课程设计之简易计算器,简易计算器课程设计 帮忙写简单计算器课程设计...

    帮忙写简单计算器课程设计书繁华若真如一梦,过而无痕多好,人就不必失意,只当醉了一场,醒来仍过平淡的生活. 程序 #include #include //定义atlf函数 #include 简介下的 要 ...

  6. 已知稀疏多项式C语言版,一元稀疏多项式计算器C语言课程设计

    <一元稀疏多项式计算器C语言课程设计>由会员分享,可在线阅读,更多相关<一元稀疏多项式计算器C语言课程设计(26页珍藏版)>请在人人文库网上搜索. 1.学号2014-2015学 ...

  7. c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

    C语言课程设计--一个简易计算器的设计与实现 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法--- ...

  8. 简易计算机课程设计总结,C语言课程设计报告简单计算器程序

    C语言课程设计报告简单计算器程序 (26页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.9 积分 .课程设计名称:C语言课程设计课程设计题目:简单 ...

  9. 分数计算器设计C语言课程设计

    分数计算器设计C语言课程设计 1.问题描述 输入两个分数,能计算它们的加.减.乘.除的结果.并应用辗转相除法,对分子和分母进行约简,分母为1是直接显示整数结果. 2.功能要求 (1)输入/输出:输入两 ...

最新文章

  1. VS2005工程的Device右边内容为空问题
  2. SpringBoot中在配置文件中限制文件上传的大小
  3. canal mysql 数据同步
  4. [html] 你写一个页面需要多长时间?
  5. 算法的时间复杂度和空间复杂度的原理
  6. html地址--待更新
  7. java循环语句_循环你都学会了,那if不是so easy了嘛
  8. jetty java 工程_jetty启动java web工程报错
  9. Zabbix通过自动发现监控端口
  10. numpy: np.random.get_state()
  11. SpringMVC的RESTful(二)定制格式
  12. 微服务esb_深入理解微服务架构:银弹or焦油坑?
  13. nxlog管理配置linux,IIS服务器配置NXLog进行syslog转发(并解决GMT+8小时时差问题)...
  14. 多级小波分解网络:可解释的时间序列分析
  15. 先验 超验_先验 和 超验 名词解释
  16. 涉密计算机信息系统的安全审计,涉密计算机信息系统安全审计.doc
  17. 糟糕!我的服务器CPU被黑客挖矿了
  18. CSS初级教程(颜色、注释、选择器)【第一天】
  19. The Evils of Duplication
  20. linux lvm分区表丢失,重启系统后lvm分区没了,附带错误信息

热门文章

  1. /proc/sysrq-trigger详解
  2. jQuery获取建立唯一ID
  3. Python内置函数详解——总结篇
  4. 以梦为马之89c51单片机驱动lcd
  5. 换汤不换药--我看《Inception》(《盗梦空间》)
  6. 如何在Win10上安装WSA,用上安卓应用
  7. ADB使用总结(内附ADB push apk过程)
  8. ubuntu服务器怎么共享文件,Ubuntu怎么创建共享文件夹支持Windows访问?
  9. 小程序云函数调用云函数
  10. 3443. 学分绩点