创建一个人民币类,包括有元角分数据。要求:两个人民币对象可以相加减,并可以按照元角分格式输出.[重载加减,重写方法ToString()]
谢谢先啦..

解决方案 »

  1.   

    //人民币
    class RMB{
      //人民币 元,角
      public RMB(int yuan,int jiao){
        Yuan=yuan;
        Jiao=jiao;
      }
      //元
      public int Yuan;
      //角
       int jiao;
       public int Jiao{
         get{
           return jiao;
         }set{
           //保护数据
           if(value<10&&value>-1){
             jiao=value;
           }
         }
       }
      //符号的关键字忘记了,意思一下
      public RMB op+(RMB rmb){
        int yuan=Yuan+rmb.Yuan;
        int jiao=Jiao+rmb.Jiao;
        //进位
        if(jiao>10){
          yuan+=1;
          jiao-=10;
        }
        RMB result=new RMB(yuan,jiao);
        return result;
      }
      //生成描述
      public overrite String ToString(){
        return Yuan+"元"+Jiao+"角";
      }
    }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace test
    {
        class Program
        {
            static void Main(string[] args)
            {
                RMB r = new RMB();
                r.Fen = 5;
                r.Jiao = 60;
                r.Yuan = 20;
                RMB result = new RMB(yuan, jiao, fen);
                result = r.Fen + r.Jiao + r.Yuan;
                Console.WriteLine(result);
                Console.Read();
            }
          //人民币 
    class RMB{ 
      //人民币 元,角 ,分
      public RMB(int yuan,int jiao,int fen){ 
        Yuan=yuan; 
        Jiao=jiao;
        Fen = fen;
      } 
      //元 
      public int Yuan; 
      //角 
      int jiao; 
      //分
      int fen;
      public int Jiao{ 
        get{ 
          return jiao; 
        }set{ 
          //保护数据 
          if(value <10&&value>-1){ 
            jiao=value; 
          } 
        } 
      }
      public int Fen
      {
          get
          {
              return fen;
          }
          set
          {
              //保护数据 
              if (value < 10 && value > -1)
              {
                  fen = value;
              }
          }
      } 
      //值比较
      public static RMB operator +(RMB rmb){ 
        int yuan=rmb.Yuan+rmb.Yuan; 
        int jiao=rmb.Jiao+rmb.Jiao;
        int fen = rmb.Fen + rmb.Fen;
        //进位 
        if(jiao>10){ 
          yuan+=1; 
          jiao-=10; 
        }
        if (fen > 10)
        {
            jiao += 1;
            fen -= 10;
        }
        //RMB result = new RMB(yuan, jiao, fen);
        //return result; 
      } 
      //生成描述 
      public override string ToString()
      { 
        return Yuan+"元"+Jiao+"角"; 
      } 
    }
        }
    }
    不懂怎么运用....唉
      

  3.   

    int a=0;
    int b=3;
    int c=a+b;
      

  4.   

    public RMB(int yuan,int jiao).............. 这RMB类使用起来累不累啊
      

  5.   


    namespace ConsoleApplication1
    {
        class RMBClass
        {
            public static void Main()
            {
                RMB rmb1 = new RMB(1,3);
                RMB rmb2 = new RMB(2,3);
                RMB rmb3 = new RMB();
                rmb3 = rmb1+rmb2;
                Console.WriteLine(rmb3.ToString());
                Console.ReadKey();
            }      
        }    class RMB
        {
            private int _yuan;
            public int yuan
            {
                get { return _yuan; }
                set { _yuan = value; }
            }        private int _jiao;
            public int jiao
            {
                get { return _jiao; }
                set { _jiao = value; }
            }        public RMB(int yuan, int jiao)
            {
                _yuan = yuan;
                _jiao = jiao;
            }
            public RMB()
            {
                _yuan = 0;
                _jiao = 0;
            }        public static RMB operator +(RMB rmb1, RMB rmb2)
            {
                int temp_yuan = rmb1.yuan + rmb2.yuan;
                int temp_jiao = rmb1.jiao + rmb2.jiao;
                return new RMB(temp_yuan, temp_jiao);
            }        public static RMB operator -(RMB rmb1, RMB rmb2)
            {
                int temp_yuan = rmb1.yuan - rmb2.yuan;
                int temp_jiao = rmb1.jiao - rmb2.jiao;
                return new RMB(temp_yuan, temp_jiao);
            }        public override string ToString()
            {
                return this.yuan + "元" + this.jiao + "角";
            }
        }
    }输出 3元6角
    没什么实用价值的题目,纯粹是老师用了考学生的。
      

  6.   

    很简单,如下
    /// <summary>
        /// 人民币类
        /// </summary>
        class RMB
        {
            double money = 0;        /// <summary>
            /// 获取或设置金额
            /// </summary>
            public double Money
            {
                get { return money; }
                set
                {
                    CheckMoneyInput(value);
                    money = value;
                }
            }        void CheckMoneyInput(double value)
            {
                if (value * 100 != Math.Floor(value * 100))
                    throw new InvalidMoneyException("无效的金额,请多输入两位小数的金额");
            }        /// <summary>
            /// 获取元
            /// </summary>
            public int Yuan
            {
                get
                {
                    return (int)Math.Floor(Money);
                }        }        /// <summary>
            /// 获取角
            /// </summary>
            public int Jiao
            {
                get
                {
                    return (int)Math.Floor((Money - (double)Yuan) * 10);
                }
            }        /// <summary>
            /// 获取分
            /// </summary>
            public int Fen
            {
                get
                {
                    return (int)Math.Floor((Money - Yuan - Jiao / 10.0) * 100);
                }
            }    }    /// <summary>
        /// 设置无效的金额时引发的异常
        /// </summary>
        public class InvalidMoneyException : Exception
        {
            public InvalidMoneyException(string message)
                : base(message)
            {        }
            public InvalidMoneyException(string message, Exception innerException)
                : base(message, innerException)
            {        }
        }做运算的话直接将两个类的Money属性加起来,再将结果赋值给一个RMB类的money属性就行了。
      

  7.   

    Money属性表示金额,单位元
    比如如要17块2毛3分,直接给Money=17.23即可。
      

  8.   

    最后标准答案:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace test
    {
        class RMBClass
        {
            public static void Main()
            {
                RMB rmb1 = new RMB(1, 3,5);
                RMB rmb2 = new RMB(2, 3,10);
                RMB rmb3 = new RMB();
                rmb3 = rmb1 + rmb2+rmb3;
                Console.WriteLine(rmb3.ToString());
                rmb3 = rmb1 - rmb2;
                Console.WriteLine(rmb3.ToString());
                Console.ReadKey();
            }
        }    class RMB
        {
            private int _yuan;
            public int yuan
            {
                get { return _yuan; }
                set { _yuan = value; }
            }        private int _jiao;
            public int jiao
            {
                get { return _jiao; }
                set { _jiao = value; }
            }
            private int _fen;
            public int fen
            {
                get { return _fen; }
                set { _fen = value; }
            }
            public RMB(int yuan, int jiao,int fen)
            {
                _yuan = yuan;
                _jiao = jiao;
                _fen = fen;
            }
            public RMB()
            {
                _yuan = 0;
                _jiao = 0;
                _fen = 0;
            }        public static RMB operator +(RMB rmb1, RMB rmb2)
            {
                int temp_yuan = rmb1.yuan + rmb2.yuan;
                int temp_jiao = rmb1.jiao + rmb2.jiao;
                int temp_fen = rmb1.fen + rmb2.fen;
                //进位
                if (temp_jiao > 10)
                {
                    temp_yuan += 1;
                    temp_jiao -= 10;
                }
                if (temp_fen > 10)
                {
                    temp_jiao+= 1;
                    temp_fen -= 10;
                } 
                return new RMB(temp_yuan, temp_jiao,temp_fen);
            }        public static RMB operator -(RMB rmb1, RMB rmb2)
            {
                int temp_yuan = rmb1.yuan - rmb2.yuan;
                int temp_jiao = rmb1.jiao - rmb2.jiao;
                int temp_fen = rmb1.fen - rmb2.fen;
                //退位
                if (temp_yuan < 0)
                {
                    Console.WriteLine("对不起,你的钱额已不足....");
                    
                }
                if (temp_jiao < 0)
                {
                    temp_jiao += 10;
                    temp_yuan -= 1;
                }
                if (temp_fen < 0)
                {
                    temp_fen += 10;
                    temp_jiao -= 1;
                } 
                return new RMB(temp_yuan, temp_jiao, temp_fen);
            }        public override string ToString()
            {
                return this.yuan + "元" + this.jiao + "角" + this.fen + "分";
            }
        }}