c++练习—实现简单的4则运算
程序员文章站
2022-05-29 10:18:43
counter类 counter.h counter.cpp 测试test.cpp #include #include #include "Counter.h"int main(){ Counter count; char str[20]; printf("请输 ......
#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。
推荐阅读
-
JS实现二维数组元素的排列组合运算简单示例
-
c++练习—实现简单的4则运算
-
华为笔试——C++字符串四则运算的实现
-
关于C++赋值运算符重载的简单瞎掰
-
css3简单练习实现遨游浏览器logo的绘制
-
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
-
C++ 实验二 NO.1_(3) 1:熟悉DEV环境,练习自己的第一个程序使用DEV集成环境来编辑,运行简单的数据输入和运算实验。(3)编写一个程序,要求:提示输入3个数;显示这3个数,求他们的平均值
-
简单渲染流水管线C++代码实现(六)---绕任意过原点的轴旋转矩阵
-
[Easyx\C++]一个简单的QQ聊天机器人的实现
-
c++的简单split实现