java语言程序设计 第十三章 (13.13、13.14、13.15、13.16)
来源:互联网 发布:淘宝网上如何找货源 编辑:程序博客网 时间:2024/06/12 00:51
程序小白,希望和大家多交流,共同学习
import java.util.ArrayList;import java.util.Collections;public class Course{ private String courseName; private ArrayList<String> students = new ArrayList<>(); public Course() { } public Course(String courseName) { this.courseName = courseName; } public void addStudents(String student) { if (students.size() >= 100) { System.out.println("It is full."); return; } else students.add(student); } public ArrayList<String> getStudents() { return students; } public int getNumberOfStudents() { return students.size(); } public String getCourseName() { return courseName; } public void dropStudents(String student) { students.remove(students.get(students.indexOf(student))); } private void setStudents(ArrayList<String> students) { this.students = students; } @Override public Object clone() { Course newCourse = new Course(getCourseName()); newCourse.setStudents(getStudents()); return newCourse;// try// {// return super.clone();// }// catch (CloneNotSupportedException ex)// {// return null;// } }}
import java.util.ArrayList;public class TestCourse{ public static void main(String [] args) { Course course1 = new Course("English"); course1.addStudents("wang"); course1.addStudents("chun"); course1.addStudents("lei"); System.out.println(course1.getNumberOfStudents()); Course course2 = (Course)(course1.clone()); System.out.println(course2.getNumberOfStudents()); System.out.println(course1.equals(course2)); for (String name : course2.getStudents()) { System.out.print(name + " "); } System.out.println(); }}
public class RationalArrays extends Number implements Comparable<NormalRational>{ private long[] r = new long[2]; public RationalArrays() { this(0, 1); } public RationalArrays(long numerator, long denominator) { long gcd = gcd(numerator, denominator); this.r[0] = ((denominator > 0) ? 1 : -1) * numerator / gcd; this.r[1] = Math.abs(denominator) / gcd; } public static long gcd(long n, long d) { long n1 = Math.abs(n); long n2 = Math.abs(d); int gcd = 1; for (int k = 1; k <= n1 && k <= n2; k++) { if (n1 % k == 0 && n2 % k == 0) { gcd = k; } } return gcd; } public long getNumerator() { return r[0]; } public long getDenominator() { return r[1]; } public NormalRational add(NormalRational secondRational) { long n = r[0] * secondRational.getDenominator() + r[1] * secondRational.getNumerator(); long d = r[1] * secondRational.getDenominator(); return new NormalRational(n, d); } public NormalRational subtract(NormalRational secondRational) { long n = r[0] * secondRational.getDenominator() - r[1] * secondRational.getNumerator(); long d = r[1] * secondRational.getDenominator(); return new NormalRational(n, d); } public NormalRational multiply(NormalRational secondRational) { long n = r[0] * secondRational.getNumerator(); long d = r[1] * secondRational.getDenominator(); return new NormalRational(n, d); } public NormalRational divide(NormalRational secondRational) { long n = r[0] * secondRational.getDenominator(); long d = r[1] * secondRational.getNumerator(); return new NormalRational(n, d); } @Override public String toString() { if (r[1] == 1 || r[0] == 0) { return r[0] + ""; } else return r[0] + "/" + r[1]; } @Override public boolean equals(Object other) { if ((this.subtract((NormalRational)(other))).getNumerator() == 0) { return true; } else return false; } @Override public int intValue() { return (int)doubleValue(); } @Override public float floatValue() { return (float)doubleValue(); } @Override public double doubleValue() { return r[0] * 1.0 / r[1]; } @Override public long longValue() { return (long)doubleValue(); } @Override public int compareTo(NormalRational o) { if (this.subtract(o).getNumerator() > 0) { return 1; } else if (this.subtract(o).getNumerator() < 0) { return -1; } else return 0; }}
import java.math.BigInteger;import java.math.BigDecimal;public class Rational extends Number implements Comparable<Rational>{ private BigInteger numerator = new BigInteger("0"); private BigInteger denominator = new BigInteger("1"); public Rational() { this(new BigInteger("0"), new BigInteger("1")); } public Rational (BigInteger numerator, BigInteger denominator) { //System.out.println(numerator.toString() + " " + denominator.toString()); BigInteger gcd = gcd(numerator, denominator); if (denominator.compareTo(new BigInteger("0")) > 0) { this.numerator = numerator.divide(gcd); } else this.numerator = numerator.multiply(new BigInteger("-1")).divide(gcd); this.denominator = denominator.abs().divide(gcd); //System.out.println(this.numerator.toString() + " " + this.denominator.toString()); } private static BigInteger gcd (BigInteger n, BigInteger d) { BigInteger n1 = n.abs(); BigInteger n2 = d.abs(); BigInteger gcd = new BigInteger("1"); BigInteger k2 = new BigInteger("1"); for (int k = 1; k <= n1.intValue() && k <= n2.intValue(); k++) { if ((n1.remainder(k2).equals(new BigInteger("0"))) && (n2.remainder(k2).equals(new BigInteger("0")))) { gcd = k2; } k2 = k2.add(new BigInteger("1")); //System.out.println(k2.toString() + " " + n1.toString() + " " + n2.toString()); } return gcd; } public BigInteger getNumerator() { return numerator; } public BigInteger getDenominator() { return denominator; } public Rational add(Rational secondRational) { BigInteger n = numerator.multiply(secondRational.getDenominator()).add(denominator.multiply(secondRational.getNumerator())); BigInteger d = denominator.multiply(secondRational.getDenominator()); return new Rational(n, d); } public Rational subtract(Rational secondRational) { BigInteger n = numerator.multiply(secondRational.getDenominator()).subtract(denominator.multiply(secondRational.getNumerator())); BigInteger d = denominator.multiply(secondRational.getDenominator()); return new Rational(n, d); } public Rational multiply(Rational secondRational) { BigInteger n = numerator.multiply(secondRational.getNumerator()); BigInteger d = denominator.multiply(secondRational.getDenominator()); //System.out.println(numerator.toString() + " " + denominator.toString()); return new Rational(n, d); } public Rational divide(Rational secondRational) { BigInteger n = numerator.multiply(secondRational.getDenominator()); BigInteger d = denominator.multiply(secondRational.getNumerator()); return new Rational(n, d); } @Override public String toString() { if (denominator.equals(new BigInteger("1")) || numerator.equals(new BigInteger("0"))) { return numerator.toString(); } else return numerator.toString() + "/" + denominator.toString(); } @Override public boolean equals(Object other) { if (this.subtract((Rational)other).getNumerator().equals(new BigInteger("0"))) { return true; } else return false; } @Override public int intValue() { return (int)doubleValue(); } @Override public float floatValue() { return (float)doubleValue(); } @Override public double doubleValue() { return numerator.divide(denominator).doubleValue(); } @Override public long longValue() { return (long)doubleValue(); } @Override public int compareTo(Rational o) { if (this.subtract(o).getNumerator().compareTo(new BigInteger("0")) > 0) { return 1; } else if (this.subtract(o).getNumerator().compareTo(new BigInteger("0")) < 0) { return -1; } else return 0; }}
import java.math.BigInteger;public class RationalCalculator{ public static void main(String [] args) { String[] message = args[0].split("[/ ]");// for (String every : message)// {// System.out.println(every);// } if (message.length == 5) { calculator(message); } else if (message.length == 6) { String[] newMessage = {message[0], message[1], "/", message[4], message[5]}; calculator(newMessage); } } public static void calculator(String[] message) { BigInteger numerator1 = new BigInteger(message[0]); BigInteger denominator1 = new BigInteger(message[1]); Rational rational1 = new Rational(numerator1, denominator1); BigInteger numerator2 = new BigInteger(message[3]); BigInteger denominator2 = new BigInteger(message[4]); Rational rational2 = new Rational(numerator2, denominator2); System.out.print(message[0] + "/" + message[1] + " " + message[2] + " " + message[3] + "/" + message[4] + " = "); switch (message[2].charAt(0)) { case '+': System.out.println(rational1.add(rational2).toString()); break; case '-': System.out.println(rational1.subtract(rational2).toString()); break; case '*': System.out.println(rational1.multiply(rational2).toString()); break; case '/': System.out.println(rational1.divide(rational2).toString()); } }}
阅读全文
0 0
- java语言程序设计 第十三章 (13.13、13.14、13.15、13.16)
- java语言程序设计 第十三章 (13.6、13.7)
- java语言程序设计 第十三章 (13.17、13.18)
- java 语言程序设计 第十三章 13.5
- java语言程序设计 第十三章 抽象类与接口 (13.1)
- java语言程序设计 第十三章 (13.9、13.10、13.11、13.12)
- java语言程序设计 第十三章 抽象类与接口 (13.2、13.3、13.4)
- java语言程序设计基础篇第十三章编程练习题
- java语言程序设计 第八章(8.35、8.36)
- java语言程序设计 第七章(7.21、7.35)
- java语言程序设计 第十一章(11.8 11.9)
- chapter1(JAVA语言程序设计)
- Java语言程序设计(序)
- java语言程序设计 第十一章 11.3
- Java语言程序设计 第13章
- Java语言程序设计2(20)
- Java语言程序设计2(37)
- Java语言程序设计2(18)
- 判断int非负整数为几位数
- VS中MFC中的文件不能运行
- HDU3980Paint Chain(尼姆博奕SG)
- 记忆网络之在对话系统中的应用
- Linux 利用yum源安装nginx
- java语言程序设计 第十三章 (13.13、13.14、13.15、13.16)
- 大型网站购物车的实现
- mysql 5.7.20 解压版 配置安装
- 苏格拉底 《斐多篇》
- ES6入门第1章:关于ES6
- 静态方法与非静态方法的区别
- Sum of powers UVA
- MFC常见问题解惑
- 关于如何在Word PPT中使用LaTex数学公式