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:/ ...
随机推荐
- 使用已有的jmeter测试结果日志文件生成html报告
当并发数较大的时候,经常会出现测试结束后没有生成html报告的情况 解决办法: 测试结束后,使用生成的jmeter测试结果日志文件.jtl生成html报告 基本命令格式: jmeter -g < ...
- HDU 4612 Warm up —— (缩点 + 求树的直径)
题意:一个无向图,问建立一条新边以后桥的最小数量. 分析:缩点以后,找出新图的树的直径,将这两点连接即可. 但是题目有个note:两点之间可能有重边!而用普通的vector保存边的话,用v!=fa的话 ...
- Laravel 配置
首页 问答社区 中文文档 API Composer Github 配置说明 框架下载好了,但是想要很好的使用,可能我们还有一些东西需要知道,这就是配置.和项目有关的配置是在 app/config 文件 ...
- airflow自动生成dag
def auto_create_dag(): dag_list=[] dag = DAG() dag_list.append(dag) return dag_list dags = auto_crea ...
- OUC_Summer Training_ DIV2_#16 725
今天做了这两道题真的好高兴啊!!我一直知道自己很渣,又贪玩不像别人那样用功,又没有别人有天赋.所以感觉在ACM也没有学到什么东西,没有多少进步.但是今天的B题告诉我,进步虽然不明显,但是只要坚持努力的 ...
- jquery中mouseover和mouseenter的区别
jquery中mouseover和mouseenter的区别 一.总结 一句话总结: 见名知意:enter(进入)和over(在上方)的意思好好思考一下 mouseover就是从子元素回到自己的时候也 ...
- arcgis python RefreshActiveView CLEAR_SELECTION
import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames( ...
- laravel-5.6路由命名
1.第一种:通过route路由中的as关键字来实现 1 Route::get('api/user',['as'='web.user'],'messageController@userInformati ...
- Python——决策树实战:california房价预测
Python——决策树实战:california房价预测 编译环境:Anaconda.Jupyter Notebook 首先,导入模块: import pandas as pd import matp ...
- 解决WAMP Server与IIS端口冲突问题
版本前提: 腾讯云服务器 windows server 2012 R2 WampServer3.10 64bit 有两种思路 一.修改wamp端口 文件位置 C:\wamp64\bin\apac ...