| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2260 人关注过本帖
标题:运算符重载这块,我好像做错了,该怎么改??
取消只看楼主 加入收藏
仓乃梦
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:20
专家分:0
注 册:2016-10-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
运算符重载这块,我好像做错了,该怎么改??
设计人民币类RMB
(1)私有字段三个分别为:元、角、分;并封装三个字段的属性;
(2)公有方法如下:
   1)public RMB(uint yuan, uint jiao, uint fen)
          public RMB(uint fen)
   2)void StandRMB()  //将人民币标准化
   3)  public static RMB operator +(RMB r1, RMB r2) //人民币加人民币运算符重载
   4) public static RMB operator -(RMB r1, RMB r2) //人民币减人民币运算符重载
         public static RMB operator ++(RMB r)
        public static RMB operator --(RMB r)
 5) public static bool operator ==(RMB r1, RMB r2)
      public static bool operator !=(RMB r1, RMB r2)
      public override bool Equals(object obj)
   
  6)public override string ToString()//以元角分的形式输出人民币
(3)设计测试类,完成上述类的测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace rmb
{
    class Program
    {
        static void Main(string[] args)
        {
            RMB rm1 = new RMB() { Yuan = 100, Jiao = 5, Fen = 7 };
            RMB rm2 = new RMB() { Yuan = 200, Jiao = 6, Fen = 5 };
            RMB rm3 = new RMB();
            RMB rm4 = new RMB();
            rm3 = rm1 + rm2;
            rm4 = rm1 - rm2;
            Console.WriteLine("the add is {0}", rm3);
            Console.WriteLine("jian hou is {0}", rm4);
            Console.Read();
        }
    }

    class RMB
    {
        private uint yuan;

        public uint Yuan
        {
            get { return yuan; }
            set { yuan = value; }
        }
        private uint jiao;

        public uint Jiao
        {
            get { return jiao; }
            set { jiao = value; }
        }
        private uint fen;

        public uint Fen
        {
            get { return fen; }
            set { fen = value; }
        }
        public RMB(uint yuan, uint jiao, uint fen)
        {
            this.yuan = yuan;
            this.jiao = jiao;
            this.fen = fen;
        }
        public RMB(uint fen)
        {
            uint f;
            f = fen;
            f = yuan * 100 + jiao * 10 + fen;
            fen = f % 10;
            jiao = f % 10 - (f / 100 * 10);
            yuan = f / 100;
        }
        public RMB()
        {
        
        }
      public  void  StandRMB()
        {
            unit f = yuan * 100 + jiao * 10 + fen;
           fen =f%10;
           jiao =f%10-(f/100*10);
           yuan=f/100;
        }
       public static RMB operator +(RMB r1, RMB r2)
       {
           RMB temp = new RMB();
           temp.yuan = r1.yuan + r2.yuan;
           temp.jiao = r1.jiao + r2.jiao;
           temp.fen = r1.fen + r2.fen;
           return temp;
       }
       public static RMB operator -(RMB r1, RMB r2)
       {
           RMB temp = new RMB();
           temp.yuan = r1.yuan - r2.yuan;
           temp.jiao = r1.jiao - r2.jiao;
           temp.fen = r1.fen - r2.fen;
           return temp;
       }
        public static RMB operator ++(RMB r)
        {
            uint f;
            f = r.yuan * 100 + r.jiao * 10 + r.Fen;
            f++;
            return new RMB(f);
           
        }
        public static RMB operator --(RMB r)
        {
            uint f;
            f = r.yuan * 100 + r.jiao * 10 + r.fen;
            f--;
            return new RMB(f);
        }
        public static bool operator ==(RMB r1, RMB r2)
        {
            return (r1.yuan == r2.yuan) && (r1.jiao == r2.jiao) == (r1.fen == r2.fen);
            
        }
        public static bool operator !=(RMB r1, RMB r2)
        {
            return (r1.yuan != r2.yuan) || (r1.jiao!= r2.jiao) || (r1.fen != r2.fen);      
        }
        public override string ToString()
        {
            StandRMB();
            return string .Format ("{0}yuan{1}jiao{2}fen",yuan,jiao ,fen );
        }

    }
}
搜索更多相关主题的帖子: 人民币 public 
2016-10-18 22:43
仓乃梦
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:20
专家分:0
注 册:2016-10-3
收藏
得分:0 
回复 2楼 yhlvht
版主的解释很完整,对我启发很大,语言刚入门,很多东西用的还不熟悉,也有很多不懂的,不过版主就我编的代码给予老师一样的批改还有注释,超赞的
我会再接再厉的,谢谢版主

立志成为版主一样的人。。。
2016-10-20 14:23
快速回复:运算符重载这块,我好像做错了,该怎么改??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016674 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved