码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-07-15 20:00:24      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:case   turn   ane   printf   exp   div   stream   test   main   

#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;
}

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

标签:case   turn   ane   printf   exp   div   stream   test   main   

原文地址:https://www.cnblogs.com/mountainCold/p/11191002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!