当前位置: 移动技术网 > IT编程>开发语言>C/C++ > c++练习—实现简单的4则运算

c++练习—实现简单的4则运算

2019年07月16日  | 移动技术网IT编程  | 我要评论

异界逍遥公,快乐大本营20091219,路易鬼屋

#pragma once
class counter
{
public:
    void setexp(const char* exp);//设置表达式
    void cleanexp(); //清除表达式
    void countexp();//计算表达式
    int reexp();//返回结果

private:
    char m_exp[20];
    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, 20, exp);
}
void counter::sub(int n)
{
    char num1[20];
    char num2[20];
    int len=strlen(m_exp);
    for (int i=0;i<len;i++)
    {
        if (i<n)
        {
            num1[i] = m_exp[i];
        }
        if (i>n)
        {
            num2[i - n-1] = m_exp[i];
        }
    }
    m_num1 = atoi(num1);
    m_num2 = atoi(num2);
}
void counter::cleanexp()
{
    strcpy_s(m_exp, 20, 0);
}
void counter::countexp()
{
    for (int i=0;i<20;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。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网