#include

#include

#include

#include

using namespace std;

enum types { DELIMITER = 1, VARIABLE, NUMBER};//定义枚举类型把DELIMITER初试化为1后面

//的相应的是前面值+1

class parser

{

char *exp_ptr; // 定义一个指向表达式的指针

char token[80]; // 存储表达式中的字符变量

char tok_type; // 存储具体是什么类型

void eval_exp2(double &result);

void eval_exp3(double &result);

void eval_exp4(double &result);

void eval_exp5(double &result);

void eval_exp6(double &result);

void atom(double &result);

void get_token();

void serror(int error);

int isdelim(char c);

public:

parser();

double eval_exp(char *exp);

};

parser::parser()

{

cout<

cout<

cout<

cout << "\t在运算过程中,输入字母N或n 回车,结束程序运行\n\n";

cout<

exp_ptr = NULL;//把exp_ptr的指针初始化为空

}

// 方法eval_exp的具体实现过程

double parser::eval_exp(char *exp)

{

double result;

exp_ptr = exp;//把传递过来的参数exp赋给exp_ptr

get_token();

if(!*token)

{

serror(2); //输出没有任何表达式的错误信息

return 0.0;

}

eval_exp2(result);

if(*token) serror(0); // last token must be null

return result;

}

// 两个变量字符是加或者减操作

void parser::eval_exp2(double &result)

{

register char op;

double temp;

eval_exp3(result);

while((op = *token) == '+' || op == '-')

{

get_token();

eval_exp3(temp);

switch(op)

{

case '-':

{

result = result - temp;

break;

}

case '+':

{

result = result + temp;

break;

}

}

}

}

// 两个变量是乘或者除操作 或者是取余

void parser::eval_exp3(double &result)

{

register char op;

double temp;

eval_exp4(result);

while((op = *token) == '*' || op == '/' || op == '%')

{

get_token();

eval_exp4(temp);

switch(op)

{

case '*':

result = result * temp;

break;

case '/':

result = result / temp;

break;

case '%':

result = (int) result % (int) temp;

break;

}

}

}

// 进行^运算

void parser::eval_exp4(double &result)

{

double temp, ex;

register int t;

eval_exp5(result);

if(*token== '^')

{

get_token();

eval_exp4(temp);

科学计算器 c语言源代码,科学计算器C语言代码相关推荐

  1. c语言源代码万年历,万年历-C语言源代码.pdf

    万年历-C语言源代码 #include #include #include #define str " SUN MON TUE WED THU FRI SAT " void men ...

  2. 数字华容道c语言源代码,vue数字华容道游戏代码

    使用方法: 1.head引入css文件 html,body,div{ margin: 0; padding: 0; } #app{ width: 400px; height: 422px; margi ...

  3. 随机森林c语言编程,一种基于随机森林的C语言源代码静态评分方法与流程

    本发明涉及评分领域及机器学习领域,它特别涉及一种基于随机森林的c语言源代码静态评分的构建方法. 背景技术: c语言源代码静态评分是指对根据一定的题目描述做出解答的c语言源代码进行评分.目前,主要流行的 ...

  4. linux 计算器 c语言,大神教你如何用C语言实现科学计算器

    原标题:大神教你如何用C语言实现科学计算器 用C实现的科学计算器 使用C语言写的科学计算器,可以实现四则运算.三角函数运算.指对数运算:优先级正确:能智能屏蔽空格,能识别输入错误和运算错误,能实现继续 ...

  5. 科学计算机求角度数,科学计算器算角度

    『壹』 科学计算器如何算角度 1.首先,打开计算器. 『贰』 科学计算器怎么输入"角度" [在Deg模式下(SHIFTMODE 3)] 输入0.585 『叁』 怎样用计算器 arc ...

  6. 用于科学计算机的计算器特点是什么,科学计算器有哪些功能

    科学计算器有哪些功能 科学计算器支持显示24位数字,支持运算优先选择模式.进制转换功能.标准数学函数.百分比计算.方根计算.对数.次方.记忆等等功能.下面,小编就为大家讲讲科学计算器的功能,快来看看吧 ...

  7. 手写计算器java_可编程科学计算器app

    可编程科学计算器app是一款功能超级强大的科学计算器,它通过自建程序解决很多工程测算的问题!欢迎有需要的朋友在芒果下载站下载体验! 可编程科学计算器app官方介绍 程序开发科学计算器是一个和Matla ...

  8. 科学计算机自动显示小数,卡西欧计算器FX-82MS怎么能让计算器永久显示小数计数而不是科学技术法啊?好烦啊,每次都是显示科学技术法,我试过SHI...

    题目: 卡西欧计算器FX-82MS怎么能让计算器永久显示小数计数而不是科学技术法啊?好烦啊,每次都是显示科学技术法,我试过SHIFT+MODE+2了啊,屏幕显示MODE CLEAR 0然后要我输入东西 ...

  9. 为什么我手机的科学计算机算的不对,手机计算器出错,原因竟是人性化设计

    原标题:手机计算器出错,原因竟是人性化设计 近日,一则"手机计算器全线阵亡"的消息登上各大热搜榜.不少网友发现自己手机的计算器出现了一个错误:在手机计算器中输入"10%+ ...

  10. 用科学计算机怎么计算指数,科学计算器e的幂次方怎么算 科学计算器怎么进行指数计算,我想算e的...

    科学计算器e的幂次方怎么算 科学计算器e的幂次方怎么算 π还好!],但Exp键却是计算10^x的[画蛇添足,应该有个计算e^x的Exp键,要人工输入e的近似数值.718281828→x^y→n[具体数 ...

最新文章

  1. python多元线性回归模型_python – 使用Tensorflow的多元线性回归模型
  2. mui后端开发php,PHP解决mui中ajax的跨域问题
  3. python扫描端口脚本_Python端口扫描简单程序
  4. 浅谈对5G核心网演进方向的几点展望
  5. JMeter之JMS接口测试
  6. Win8 IIS 安装和部署网站问题
  7. 「BZOJ1095」[ZJOI2007] Hide 捉迷藏
  8. Tensorflow Lite人体姿势跟踪功能上线:基于PosNet的实时人体姿态估计
  9. 无法从elasticsearch节点检索版本信息_【Elasticsearch 7 搜索之路】(一)什么是 Elasticsearch?...
  10. java连接虚拟机hadoop_本地eclipse java api连接远程虚拟机HBase
  11. is和as在类型转换时的性能差异
  12. Windows XP 所提供的键盘快捷键
  13. 常用集合(ArrayList、Hashset、HashMap)的用法(会一直更新)
  14. 计算机网络-详细版-王道
  15. 大话USB驱动之基础概念
  16. php 爬虫检查,php判断是否是爬虫访问
  17. 计算机在线使用高级,2017高会《职称计算机》Internet应用:Internet高级选项
  18. chrome主页被修改(Google Chrome主页被hao123劫持解决办法)
  19. 什么镜头最适合拍风景_外出旅游,用什么镜头拍风光照比较好?
  20. android profile 打包_Android 利用 Managed Profile 确保兼容性

热门文章

  1. ubuntu 使用gspca安装摄像头
  2. c++实现秒数转化为天数,小时,分钟,秒
  3. 通过哈希MD5实现加密(python3.X)
  4. linux中定义用户账户的文件为,Linux中用户和组中认证库和解析库的文件格式以及默认参数定义文件...
  5. Linux系统之下的基本gdb调试
  6. OpenCasCade中一个V3d_Viewer对应多个示例窗口V3d_View
  7. nodeJS 视频教程
  8. WCF技术内幕之面向服务
  9. WinForm(一) WinForm入门与基本控件使用
  10. 极品飞车8 免CD补丁 CDKEY生成器