c++练习—实现简单的4则运算
#pragma once
class Counter
{
public:
void setExp(const char* exp);//设置表达式
void cleanExp(); //清除表达式
void countExp();//计算表达式
int reExp();//返回结果 private:
char m_exp[];
int m_Num1;
int m_Num2;
int sum;
void sub(int n);//整理表达式,分离两个两个运算数
};
counter类 counter.h
counter.cpp
#include "Counter.h"
#include <string.h>
#include <stdlib.h>
void Counter::setExp(const char* exp)
{
strcpy_s(m_exp, , exp);
}
void Counter::sub(int n)
{
char num1[];
char num2[];
int len=strlen(m_exp);
for (int i=;i<len;i++)
{
if (i<n)
{
num1[i] = m_exp[i];
}
if (i>n)
{
num2[i - n-] = m_exp[i];
}
}
m_Num1 = atoi(num1);
m_Num2 = atoi(num2);
}
void Counter::cleanExp()
{
strcpy_s(m_exp, , );
}
void Counter::countExp()
{
for (int i=;i<;i++)
{
switch (m_exp[i])
{
case '+':
{
sub(i);
sum = m_Num1 + m_Num2;
}break;
case '-': {
sub(i);
sum = m_Num1 - m_Num2;
} break;
case '*': {
sub(i);
sum = m_Num1 * m_Num2;
} break;
case '/': {
sub(i);
sum = m_Num1 / m_Num2;
} break;
default:
break;
}
}
}
int Counter::reExp()
{
return sum;
}
测试test.cpp
#include <iostream>
#include <stdio.h>
#include "Counter.h"
int main()
{
Counter count;
char str[20];
printf("请输入所需要计算的表达式:");
scanf_s("%s",str,20);
count.setExp(str);
count.countExp();
std::cout << "结果为:"<<count.reExp() << std::endl;
}
//我处理的太麻烦了在键入表达式阶段可以scanf_s("%d%c%d",&a,b,&c).直接用三个变量接收,再处理就简单了。
//数据的计算我全是用int型所以不会有小数产生, 不想3/2=1的可以把数据类型换成double。
c++练习—实现简单的4则运算的更多相关文章
- 简单的新手加法运算(基于Struts2)
软件151 王帅 在搭好框架的前提下,首先编写action.java文件: import com.opensymphony.xwork2.ActionSupport; public class Us ...
- 使用redux简单的实现加法运算(简单的状态改变)
描述该做啥?(action)!具体怎么做(reducer)!统一规划(store:包含reducer+所有的state) 上代码:index.ios.js import React, { Compon ...
- 关于java中Double类型的运算精度问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- [POJ] #1003# Hangover : 浮点数运算
一. 题目 Hangover Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 116593 Accepted: 56886 ...
- C++ 中的“ !” 运算
在介绍“ !”运算之前,我们要知道一个变量n,如果n>0,那么我们可以在逻辑上叫它“真”,如果n<=0 ,那么我们可以在逻辑上叫它“假”. n为真时,!n就为假(false),转换为整型值 ...
- 关于java中Double类型的运算精度问题(转)
Java Java double:浮点数:精确计算 public class Test{ public static void main(String args[]){ Syst ...
- Java对数函数及Java对数运算
Java对数函数及Java对数运算 2010-05-17 10:32 中国IT实验室 佚名 关键字:Java Java对数函数的计算方法非常有问题,然而在API中却有惊人的误差.但是假如运用了 ...
- python 匿名函数与三元运算
匿名函数 匿名函数就是不需要显示式的指定函数名 首先看一行代码: def calc(x,y): return x*y print(calc(2,3)) # 换成匿名函数 calc = lambda x ...
- js简单四则运算
作业来源 本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166 我的项目GitHub远程仓库地址:https:/ ...
随机推荐
- [Vue] : Vue概述
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架. Vue.js 是前端的主流框架之一,和Angular.js.React.js 一起,并成为前端三大主流框 ...
- Django Admin中增加导出Excel功能
参考: https://www.cnblogs.com/yoyo008/p/9232805.html 在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 在Djang ...
- Java基础_线程的使用及创建线程的三种方法
线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...
- ARTS打卡计划第十五周
Algorithms: https://leetcode-cn.com/problems/single-number/submissions/ Review: “What Makes a Good D ...
- shell脚本编程进阶
在linux shell中,通常我们将一些命令写在一个文件中就算是一个shell脚本了,但是如果需要执行更为复杂的逻辑判断,我们就需要使用流程控制语句来支持了.所谓流程控制既是通过使用流程控制语句对程 ...
- NUnit -- Test discovery or execution might not work for this project
[7/31/2019 2:06:58.100 PM Warning] No test matches the given testcase filter `FullyQualifiedName=Sil ...
- mac mysql重置root用户密码
苹果机安装的MySQL后,设置初始密码 引子:.在苹果机上安装的MySQL之后,通过MySQLWorkBench登录本地数据连接,发现没有密码,而在安装MySQL的过程中,是没有设置过密码的其实,刚刚 ...
- VIM | vim操作大全
1. 关于Vim vim是Linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtutor是个聪明的决定. ...
- P1241 括号序列
P1241 括号序列 题解 谁解释下标签递推是个什么鬼,应该是暴力 数据比较小直接跑暴力 但是注意题目描述 也就是说: [ ( ] ) 是不合法的 补全应该是 [ ] ( [ ] ) 举个栗子: 比如 ...
- springboot 整合logback(有全套的日志配置文件)
logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用,可以和springboot很好的整合,也是springboot默认推荐的. 1.在resources ...