c++练习—实现简单的4则运算
2019-08-16 07:50:16来源:博客园 阅读 ()
c++练习—实现简单的4则运算
#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。
原文链接:https://www.cnblogs.com/mountainCold/p/11191002.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash