山东疾控中心上班时间:急求两个Java程序!
来源:百度文库 编辑:中科新闻网 时间:2024/05/13 16:34:43
题目二:设计一长方形类。成员变量包含长度和宽度。类中除了包含计算周长和面积的方法外,还应该能够用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());
}
}
这两个程序都很简单嘛!~!
估计没人帮你写了!~!
哈哈~!~~
不过我告诉你第一题你必须要多个拷贝构造函数!~!
嗯!~~
其它的都没有什么问题的!~~