实验四 数组、类和对象学习

实验目的:

  1. 熟悉数组和不规则数组
  2. 熟悉类和对象的建立
  3. 掌握构造函数和重载构造函数

实验内容:

  1. 编写一个Java程序,实现下三角乘法口诀表,并用不规则数组保存,并用foreach语句显示该数组,同时用Arrays.deepToString函数将该数组转换成字符串并显示,执行结果如下图

 

 

  1. 设计一个名为Rectangle的类表示矩形,这个类包括:

两个名为width和height的double型数据域,它们分别表示矩形的宽和高width和height的默认值都为1

创建默认矩形的无参构造方法

一个创建width和height为指定值得矩形构造方法

一个名为getArea()的方法返回这个矩形的面积

一个名为getPerimeter()的方法返回周长

编写一个测试程序,创建两个Rectangle对象(一个用无参构造函数,一个用有参构造函数),一个矩形的宽为4、高为40,另一个宽为3.5,高为35.9。按顺序显示每个矩形的宽、高、面积和周长

 

  1. 设计一个名为Account的类,它包括:
  1. 一个名为id的int类型私有数据域
  2. 一个名为balance的double类型私有数据域
  3. 一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0),假设所有账户都有相同利率
  4. 一个名为dateCreated的Date类型的私有数据域,存储账户的开户日期
  5. 一个用于创建默认账户的无参数构造方法
  6. 一个用于创建带特定id和初始余额的账户的构造方法
  7. id、balance和annualInterestRate的访问器和修改器
  8. dateCreated的访问器
  9. 一个名为getMonthlyInterestRate()的方法,返回月利率
  10. 一个名为withDraw的方法,从账户提取特定数额
  11. 一个名为desposit的方法,向账户存储特定数额
  12. 编写一个测试程序,创建一个账户id为1122,余额为20000元,年利息是4.5%的Account对象,使用withDraw方法存取2500元,使用desposit方法存入3000元,然后打印余额,月利息以及这个账户的开户日期

      提示:月利息=balance*MonthlyInterestRate

            MonthlyInterestRate=annualInterestRate/12/100

       要求日期显示格式如下图:

  1. 编写一个程序,读入10个数并且显示互不相同的数(即一个数出现多次,但只显示一次)。提示:读入一个数,如果它是一个新数,如果它是一个新数,则将它存储在新数中,如果该数已经在数组中,则忽略它。输入之后,数组包含的都是不同的数
import java.util.Arrays;


public class Multiply {
    public static void main(String[] args) {
        final int NMAX = 9;
        int[][] odds = new int[NMAX][];
        for (int n = 0; n < NMAX; n++)
            odds[n] = new int[n+1];

        for (int n = 0; n < odds.length; n++)
            for (int k = 0; k < odds[n].length; k++)
            {
                odds[n][k]=(n+1)*(k+1);

            }
        for (int[] row : odds)
        {
            for (int odd : row)
                System.out.printf("%4d", odd);
            System.out.println();
        }
        System.out.println(Arrays.deepToString(odds));
    }
}

public class Test {
    public static void main(String[] args) {
        MyRectangle myRectangle = new MyRectangle();
        myRectangle.width=4;
        myRectangle.height=40;
        System.out.println("宽:" + myRectangle.width + " 高: " +
                myRectangle.height + " 面积: " +
                myRectangle.getArea());
        System.out.println("周长: " +
                myRectangle.getPerimeter());

        MyRectangle yourRectangle = new MyRectangle(3.5, 35.9);
        System.out.println("宽:" + yourRectangle.width + " 高: " +
                yourRectangle.height + " 面积: " +
                yourRectangle.getArea());
        System.out.println("周长: " +
                yourRectangle.getPerimeter());
    }
}
class MyRectangle {
    double width = 1, height = 1;
    public MyRectangle() {
    }
    public MyRectangle(double newWidth, double newHeight) {
        width = newWidth;
        height = newHeight;
    }

    public double getArea() {
        return width * height;
    }

    public double getPerimeter() {
        return 2 * (width + height);
    }
}

public class AccountTest {
    public static void main(String[] args) {
        Account account = new Account(1122, 20000);
        Account.setAnnualInterestRate(4.5);

        account.withdraw(2500);
        account.deposit(3000);
        System.out.println("Balance is " + account.getBalance());
        System.out.println("Monthly interest is " +
                account.getMonthlyInterest());
        System.out.printf("%1$s %2$tY %2$tB %2$te,%2$tR ","This account was created at ",account.getDateCreated());
    }
}
class Account {
    private int id;
    private double balance;
    private static double annualInterestRate;
    private java.util.Date dateCreated;

    public Account() {
        dateCreated = new java.util.Date();
    }

    public Account(int newId, double newBalance) {
        id = newId;
        balance = newBalance;
        dateCreated = new java.util.Date();
    }

    public int getId() {
        return this.id;
    }

    public double getBalance() {
        return balance;
    }

    public static double getAnnualInterestRate() {
        return annualInterestRate;
    }

    public void setId(int newId) {
        id = newId;
    }

    public void setBalance(double newBalance) {
        balance = newBalance;
    }

    public static void setAnnualInterestRate(double newAnnualInterestRate) {
        annualInterestRate = newAnnualInterestRate;
    }

    public double getMonthlyInterest() {
        return balance * (annualInterestRate / 1200);
    }

    public java.util.Date getDateCreated() {
        return dateCreated;
    }

    public void withdraw(double amount) {
        balance -= amount;
    }

    public void deposit(double amount) {
        balance += amount;
    }
}
import java.util.Scanner;

public class DelRepeat {
    public static void main(String[] args) {
        int[] numbers = new int[10];
        int numberOfDistinctValues = 0;
        Scanner input = new Scanner(System.in);
        System.out.print("Enter " + numbers.length + " numbers: ");

        for (int i = 0; i < numbers.length; i++) {
            int value = input.nextInt();
            boolean isInTheArray = false;
            for (int j = 0; j < numberOfDistinctValues; j++) {
                if (value == numbers[j]) {
                    isInTheArray = true;
                }
            }
            if (!isInTheArray) {
                numbers[numberOfDistinctValues] = value;
                numberOfDistinctValues++;
            }
        }
        System.out.println("The number of distinct values is " + numberOfDistinctValues);
        for (int i = 0; i < numberOfDistinctValues; i++)
            System.out.print(numbers[i] + " ");
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_43560803/article/details/85724614
今日推荐