m0_68766350 2022-05-11 18:49 采纳率: 100%
浏览 59
已结题

能给点帮助吗,我真的不会

[问题描述]设计-一个Money类,包含有元、分,能够实现两个Money的一(减)、>运算。

[程序要求]实现Money类两个对象之间的一、>运算;至少定义一个构造函数;定义显示输出函数;

[样例输入]5 20

380

[样例输出]

5.20

1.40

[样例输入说明]

第一行输入代表: 5.2元

第二行输入代表: 3.8元

[样例输出说明]

第一行输出代表:两个输入 金额中较大者第二行输出代表:两个输入金额之差

  • 写回答

3条回答 默认 最新

  • 丨秋水丨 2022-05-11 19:51
    关注

    输入格式应该是 元 空格 分 对吧?

    img

    #include<iostream>
    class Money
    {
    public:
        Money(int y, int f) : yuan(y), fen(f) {}
        bool operator>(const Money& m) const
        {
            return yuan == m.yuan ? fen > m.fen : yuan > m.yuan;
        }
    
        Money operator-(const Money& m)const
        {
            int total = (yuan * 100 + fen) - (m.yuan * 100 + m.fen);
            return Money(total / 100, total % 100);
        }
        int GetYuan()const { return yuan; }
        int GetFen()const { return fen; }
    private:
        int yuan;
        int fen;
    };
    
    std::ostream& operator<<(std::ostream& o, const Money& m)
    {
        o << m.GetYuan() << "." << m.GetFen();
        return o;
    }
    
    int main()
    {
        int yuan, fen;
        std::cin >> yuan >> fen;
        Money m1(yuan, fen);
        std::cin >> yuan >> fen;
        Money m2(yuan, fen);
        if (m2 > m1)
        {
            Money diff = m2 - m1;
            std::cout << m2 << std::endl;
            std::cout << diff << std::endl;
        }
        else
        {
            Money diff = m1 - m2;
            std::cout << m1 << std::endl;
            std::cout << diff << std::endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建