weixin_71426357 2022-06-17 15:51 采纳率: 100%
浏览 31
已结题

c++,Calculator类为抽象类

要求:
(1)已知Calculator类为抽象类,包含两个protected的double类型变量 x与y;
(2)Add类与Mul类均从Calculator类公有派生,分别使用result()函数进行加与乘的运算;
请根据运行结果与main函数将程序补充完整。
请注意第2个操作数为负时的输出形式。
例1(只有第1行为输入):
2.2 3.33
2.2+3.33=5.53
3.33*2.2=7.326

例2(只有第1行为输入):
-2.2 -3.3
-2.2-3.3=-5.5
-3.3*(-2.2)=7.26

请注意,main()函数(或函数调用)必须按如下所示编写:
int main()
{
Calculator *pc;
double x,y;
cin>>x>>y;
Add a1(x,y);
Mul m1(x,y);
pc=&a1;
pc->result();
pc=&m1;
pc->result();
return 0;
}

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-06-17 16:28
    关注

    参考一下

    
    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    #include<string>
    using namespace std;
     
    //普通写法
    class calculator
    {
    public:
     
        int getResult(string oper)
        {
            if (oper == "+")
            {
                return m_Num1 + m_Num2;
            }
            else if (oper == "-")
            {
                return m_Num1 - m_Num2;
            }
            else if (oper == "*")
            {
                return m_Num1 * m_Num2;
            }
            else if (oper == "/")
            {
                return m_Num1 / m_Num2;
            }
        }
     
        int m_Num1;
        int m_Num2;
    };
    void test()
    {
        calculator c;
        c.m_Num1 = 100;
        c.m_Num2 = 10;
     
        cout << c.m_Num1 << "+" << c.m_Num2 << "=" << c.getResult("+") << endl;
        cout << c.m_Num1 << "-" << c.m_Num2 << "=" << c.getResult("-") << endl;
        cout << c.m_Num1 << "*" << c.m_Num2 << "=" << c.getResult("*") << endl;
        cout << c.m_Num1 << "/" << c.m_Num2 << "=" << c.getResult("/") << endl;
    }
    int main()
    {
     
        test();
     
        system("pause");
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月25日
  • 已采纳回答 6月17日
  • 创建了问题 6月17日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程