我的乘客是睡神未删减:急求两个Java程序!

来源:百度文库 编辑:高考问答 时间:2024/04/29 13:48:52
题目一:设计一分数类。要求分数类包括分子和分母两个成员变量,同时类中应包含分数运算的各种方法。例如,方法应包括两个分数的加、减、乘、除等。分数的格式应该是:分子/分母。最后,编写一个测试程序进行测试。
题目二:设计一长方形类。成员变量包含长度和宽度。类中除了包含计算周长和面积的方法外,还应该能够用set方法来设置长方形的长度和宽度,以及能够用get方法来获得长方形的长度和宽度。最后,编写一测试程序来测试所定义的长方形类能否实现预定的功能。

强烈要求追加分,我花了一个多小时给你写的
累死我了!

1,分数类
public class Fraction {
private int numerator; //分子
private int denominator; //分母
public Fraction() {
numerator = 0;
denominator = 1;
}

public Fraction(int newNumerator, int newDenominator) {
if (newDenominator == 0) { //分母不能为零
System.out.println("分母为零!");
System.exit(0);
}
numerator = newNumerator;
denominator = newDenominator;
}

public void setNumerator(int newNumerator) {
numerator = newNumerator;
}

public void setDenominator(int newDenominator) {
denominator = newDenominator;
}

public void setBoth(int newNumerator, int newDenominator) {
numerator = newNumerator;
denominator = newDenominator;
}

public int getNumerator() {
return numerator;
}

public int getDenominator() {
return denominator;
}

public Fraction plus(Fraction f) { //加法(返回分数和)
int newNumerator = getNumerator() * f.getDenominator() +
f.getNumerator() * getDenominator();
int newDenominator = getDenominator() * f.getDenominator();
Fraction plus = new Fraction(newNumerator, newDenominator);
plus.reduce();
return plus;
}

public Fraction minus(Fraction f) { //减法(返回分数差)
int newNumerator = getNumerator() * f.getDenominator() -
f.getNumerator() * getDenominator();
int newDenominator = getDenominator() * f.getDenominator();
Fraction minus = new Fraction(newNumerator, newDenominator);
minus.reduce();
return minus;
}

public Fraction multiply(Fraction f) { //乘法(返回分数积)
int newNumerator = getNumerator() * f.getNumerator();
int newDenominator = getDenominator() * f.getDenominator();
Fraction minus = new Fraction(newNumerator, newDenominator);
minus.reduce();
return minus;
}

public Fraction divide(Fraction f) { //除法(返回分数商)
int newNumerator = getNumerator() * f.getDenominator();
int newDenominator = getDenominator() * f.getNumerator();
Fraction minus = new Fraction(newNumerator, newDenominator);
minus.reduce();
return minus;
}

public void output() { //输出分数
System.out.print(getNumerator() + "/" + getDenominator());
}

private void reduce() { //化简分数(分子分母同时除以最大公约数)
int max = maxCommonDivisor(getNumerator(), getDenominator());
numerator = getNumerator() / max;
denominator = getDenominator() / max;
}

private int maxCommonDivisor(int m, int n) { //返回m,n的最大公约数
int max = 1; //初始化最大公约数
int min = Math.min(Math.abs(m), Math.abs(n)); //m,n中绝对值较小的
for (int i = 1; i <= min; i++) {
if ((m % i == 0) && (n % i == 0)) { //m,n的公约数
max = i;
}
}
return max;
}
}

分数类测试

public class FractionDemo {
public static void main(String[] args) {
Fraction demo1 = new Fraction(1, 4);
Fraction demo2 = new Fraction(4, 6);
demo1.output();
System.out.print(" + ");
demo2.output();
System.out.print(" = ");
demo1.plus(demo2).output();
System.out.println();
demo1.output();
System.out.print(" - ");
demo2.output();
System.out.print(" = ");
demo1.minus(demo2).output();
System.out.println();
demo1.output();
System.out.print(" * ");
demo2.output();
System.out.print(" = ");
demo1.multiply(demo2).output();
System.out.println();
demo1.output();
System.out.print(" / ");
demo2.output();
System.out.print(" = ");
demo1.divide(demo2).output();
System.out.println();
}
}

2,长方形类

//矩形类,求矩形的周长和面积
public class Rectangle {
private double length; //长
private double width; //宽
public Rectangle() {
length = 0;
width = 0;
}

public Rectangle(double newLength, double newWidth) {
length = newLength;
width = newWidth;
}

public void setLength(double newLength) {
length = newLength;
}

public void setWidth(double newWidth) {
length = newWidth;
}

public void setBoeder(double newLength, double newWidth) {
length = newLength;
width = newWidth;
}

public double getLength() {
return this.length;
}

public double getWidth() {
return this.width;
}

public double getPerimeter() { //求周长
return (length + width) * 2;
}

public double getArea() { //求面积
return length * width;
}
}

长方形类演示

public class RectangleDemo {
public static void main(String[] args) {
Rectangle demo = new Rectangle(5, 4); //创建对象,长为5,宽为4
System.out.println("矩形的周长是:" + demo.getPerimeter());
System.out.println("矩形的面积是:" + demo.getArea());
}
}

这两个程序都很简单嘛!~!
估计没人帮你写了!~!
哈哈~!~~
不过我告诉你第一题你必须要多个拷贝构造函数!~!
嗯!~~
其它的都没有什么问题的!~~