C 實現的分數類

2021-06-26 12:28:27 字數 3592 閱讀 5486

前陣子開始想做成乙個完備的分數類,昨天有時間進行了實現,今天再看**一團糟。

於今天進行重構,尚未完成,待續。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.text.regularexpressions;

using system.threading.tasks;

namespace rainbowfraction

else

}get

}/// /// 分母

///

public long denominator

setelse

}else}}

/// /// 值

///

public double value

}#endregion

#region 構造

/// /// 以分子分母構造

///

///

///

public rainbowfraction(long srcnum, long srcden)

if (srcnum * srcden >= 0)

else

}/// /// 以double構造

///

///

public rainbowfraction(double srcdouble)

/// /// 以字串構造

///

///

public rainbowfraction(string srcstring)

#endregion

#region 方法

/// /// double to fraction

///

///

///

public static rainbowfraction torainbowfraction(double srcdouble)

if (srcstring.contains('.'))

}result = new rainbowfraction((long)math.round(tmpnum), tmpden);}}

catch (overflowexception)

catch (exception)

return result;

}/// /// string to double

///

///

///

public static rainbowfraction torainbowfraction(string srcstring)

else if (fracregex.ismatch(srcstring))

else

}catch

return result;

}/// /// 轉化為字串

///

///

public override string tostring()

/", numerator, denominator);

}#endregion

#region 介面實現

public int compareto(object obj)

else if (this < torainbowfraction(obj as string))

else

}else if (double.tryparse(obj as string, out tmpvalue))

else

return result;

}/// /// 分數比較

///

///

///

public int compareto(rainbowfraction other)

else if (this < other)

return result;

}/// /// 分數判等

///

///

///

public bool equals(rainbowfraction other)

#endregion

#region 隱式轉化

/// /// double to fraction

///

///

///

public static implicit operator rainbowfraction(double srcdouble)

/// /// fraction to double

///

///

///

public static implicit operator double(rainbowfraction srcfrac)

#endregion

#region 運算子過載

//一元邏輯運算

public static rainbowfraction operator -(rainbowfraction srcfrac)

//二元邏輯運算

public static bool operator >(rainbowfraction left, rainbowfraction right)

public static bool operator >=(rainbowfraction left, rainbowfraction right)

public static bool operator <(rainbowfraction left, rainbowfraction right)

public static bool operator <=(rainbowfraction left, rainbowfraction right)

public static bool operator ==(rainbowfraction left, rainbowfraction right)

public static bool operator !=(rainbowfraction left, rainbowfraction right)

//二元算術運算

public static rainbowfraction operator +(rainbowfraction left, rainbowfraction right)

public static rainbowfraction operator -(rainbowfraction left, rainbowfraction right)

public static rainbowfraction operator *(rainbowfraction left, rainbowfraction right)

public static rainbowfraction operator /(rainbowfraction left, rainbowfraction right)

#endregion

}/// /// 分數異常

///

public class rainbowfractionexception : exception

}}

C 實現 分數類

花了幾個小時敲 測試 修改 總算搞定了 好累,睡覺去的 有問題歡迎提出,繼續修改 首先是標頭檔案cfraction.h ifndef cfraction h define cfraction h include using namespace std class cfraction float ge...

分數類的實現

實現乙個分數類,並過載其加減運算 include include using namespace std class fraction 無參建構函式 fraction int,int void set int aa,int bb 設定分子分母 void show 顯示分數 fraction add ...

實現分數類的過載

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 苗影 完成日期 2012 年 4 月 10 日 版 本 號 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 includeusing namespace std class cfraction void sim...