老师说创建一个人民币类..可是怎么包括元角分的数据呢? 创建一个人民币类,包括有元角分数据。要求:两个人民币对象可以相加减,并可以按照元角分格式输出.[重载加减,重写方法ToString()]谢谢先啦.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //人民币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+"角"; }} 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+"角"; } } }}不懂怎么运用....唉 int a=0;int b=3;int c=a+b; public RMB(int yuan,int jiao).............. 这RMB类使用起来累不累啊 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角没什么实用价值的题目,纯粹是老师用了考学生的。 很简单,如下/// <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属性就行了。 Money属性表示金额,单位元比如如要17块2毛3分,直接给Money=17.23即可。 最后标准答案: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 + "分"; } }} 求助啊、、、、有谁用过XYChart4_4的麻烦进来下。。。感激万分 mainmenu当有下级菜单的时候click不起作用 大家进来看看吧,这个问题,真无语。 web 的treeview可以接受拖拽的操作么? 求通过自定义坐标截取谷歌地图思路 救命.真的是人命关天 文件部分内容复制到一个数组的中间 LX,进来拿分~~~~~``````` win2003系统里的1.1和2.0的程序能同时用吗? 如何获得ListBox中每一个被选中项的坐标位置? 关于登陆超时的问题 鸟蛋级别的请教 C#新手碰到小問題!!!
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+"角";
}
}
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+"角";
}
}
}
}
不懂怎么运用....唉
int b=3;
int c=a+b;
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角
没什么实用价值的题目,纯粹是老师用了考学生的。
/// <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属性就行了。
比如如要17块2毛3分,直接给Money=17.23即可。
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 + "分";
}
}}