codeblock下《大话设计模式》第一个编程:业务层与界面层分离;编程目标:实现一个计算器

Operate.h:

#ifndef OPERATE_H_INCLUDED
#define OPERATE_H_INCLUDED
enum operateType
{
    operateMinCode = 1,
    operateAdd = 1,
    operateSub = 2,
    operateRide = 3,
    operateDivide = 4,
    operateMaxCode = 4

};
;;
class Operate
{
public:
    int operate(int operateFirst,int operateSecond,int operateType);
protected:
private:

};


#endif // OPERATE_H_INCLUDED

Operate.cpp:

#include "Operate.h"

int  Operate :: operate(int operateFirst,int operateSecond,int operateType)
{
    int result=0;
    switch(operateType)
    {
    case operateAdd:
        result = operateFirst + operateSecond;
        break;
    case operateSub:
        result = operateFirst - operateSecond;
        break;
    case operateRide:
        result = operateFirst * operateSecond;
        break;
    case operateDivide:
        result = operateFirst / operateSecond;
        break;
    default :
        return 0;
    };
    return result;

};

main.cpp:

int main()
{
    int operateFirst = 0, operateSecond = 0;
    int operateType = 0, result = 0;
    Operate operateClass;

    while(1)
    {
        cout << "请输入第一个整数(一定是整数):";
        cin >> operateFirst;
        cout << endl;

        cout << "请输入第二个整数(一定是整数):";
        cin >> operateSecond;
        cout << endl;

        cout << "类型输入示意,以整数表示: 1:+ 2:- 3:* 4:/ " << endl;
        cout << "请输入Type(一定是整数):";
        cin >> operateType;
        cout << endl;

        /*检查输入运算类型是否在要求范围内*/
        if(operateType<operateMinCode || operateType>operateMaxCode)
        {
            cout << "输入出错,没有此类型!" <<endl << endl <<endl;
            continue;
        }
        /*检查除数是否为0*/
        else if(operateDivide == operateType &&  0==operateSecond)
        {
            cout<<"输入出错,除数不能为0!" << endl << endl <<endl;
            continue;
        }

        result = operateClass.operate(operateFirst,operateSecond,operateType);
        cout << "结果是:"<< result << endl;
        break;
    }

    return 0;
}

遗留问题:cin如何对输入类型检测,保证输入的数为整型数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大修炼者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值