网站规划与网页设计第四版电子书,网站建设 图书,作业设计模板,有创意的设计公司名字大全该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Fraction.java如下:(这个是网上找来的#xff0c;处理分数的类)// 支持查找功能的分数类class Fraction implements Comparable {// 分子private int numerator;// 分母private int denominator;// 默认构造函数public Fraction()…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Fraction.java如下:(这个是网上找来的处理分数的类)// 支持查找功能的分数类class Fraction implements Comparable {// 分子private int numerator;// 分母private int denominator;// 默认构造函数public Fraction() {}// 该构造函数对分子和分母进行初始化public Fraction(int n, int d) {setFraction(n, d);}// 该构造函数支持将双精度数转换为相应的分数public Fraction(double d) {convertToFraction(d);}// 该函数可以将双精度数转换为相应的分数private void convertToFraction(double d) {int decimalCount 1;// 求双精度数的字符长度int dLen String.valueOf(d).length();// 不断的将双精度数累乘10直至转换为整数为止for (int i 0; i dLen; i) {d d * 10;decimalCount * 10;}// 分子为最终的整数乘积结果numerator (int) d;// 分母为10的累乘结果denominator decimalCount;// 约分reduct();}// 分子的设置函数并且约分public void setNumerator(int n) {numerator n;reduct();}// 分子的读取函数public int getNumerator() {return numerator;}// 分母的设置函数并且约分public void setDenominator(int d) {// 检查分母是否为0if (d 0)denominator 1; //建议采用异常elsedenominator d;reduct();}// 分母的读取函数public int getDenominator() {return denominator;}// 分数的设置函数并且约分public void setFraction(int n, int d) {setNumerator(n);setDenominator(d);reduct();}// 格式化字符信息输出public String toString() {// 如果为负分数则将负号提前显示分子和分母保留为正数否则分子和分母皆取正数if (numerator * denominator 0)return - Math.abs(numerator) / Math.abs(denominator);elsereturn Math.abs(numerator) / Math.abs(denominator);}// 利用对应小数值是否相同来判断分数是否相同public boolean equals(Fraction f) {if (numerator f.numerator denominator f.denominator)return true;elsereturn false;}// 利用对应小数值的大小来判断分数的大小public boolean isGreater(Fraction f) {if ((double) numerator / denominator (double) f.numerator/ f.denominator)return true;elsereturn false;}// 约分函数private void reduct() {// 求分子和分母的最小值int minValue Math.min(Math.abs(numerator), Math.abs(denominator));// 将小于分子和分母的最小值的数值从大到小去除分子和分母如果能够同时被整除则以此数值约分并退出for (int i minValue; i 1; i--) {if (numerator % i 0 denominator % i 0) {numerator numerator / i;denominator denominator / i;break;}}}// 返回分数相加的结果并且约分public Fraction add(Fraction f) {Fraction fraction new Fraction();fraction.numerator numerator * f.denominator f.numerator* denominator;fraction.denominator denominator * f.denominator;fraction.reduct();return fraction;}// 返回分数相减的结果并且约分public Fraction minus(Fraction f) {Fraction fraction new Fraction();fraction.numerator numerator * f.denominator - f.numerator* denominator;fraction.denominator denominator * f.denominator;fraction.reduct();return fraction;}// 返回分数相乘的结果并且约分public Fraction multiply(Fraction f) {Fraction fraction new Fraction();fraction.numerator numerator * f.numerator;fraction.denominator denominator * f.denominator;fraction.reduct();return fraction;}// 返回分数相除的结果并且约分public Fraction divide(Fraction f) {Fraction fraction new Fraction();fraction.numerator numerator * f.denominator;fraction.denominator denominator * f.numerator;fraction.reduct();return fraction;}// 支持两个分数类变量的比较以实现分数集合的查找功能public int compareTo(Object o) {Fraction f (Fraction) o;// 利用对应小数的大小来比较分数的大小if ((double) numerator / denominator (double) f.numerator/ f.denominator)return 1;else if ((double) numerator / denominator (double) f.numerator/ f.denominator)return -1;elsereturn 0;}// 根据对应小数是否相同来判断分数是否相同public boolean equals(Object obj) {Fraction f (Fraction) obj;if (Math.abs((double) numerator / denominator - (double) f.numerator/ f.denominator) 0.00001)return true;return false;}// 相同数值的分数返回相同的哈希码public int hashcode() {String str String.valueOf((double) numerator / denominator);return str.hashCode();}}