jmu-Java-PTA题解 (exam1-java基础-Q4-身份证信息管理) 网安2312陈卓

问题要求

设计一个BankAccount类,这个类包括:
(1)一个int型的balance表时账户余额。
(2)一个无参构造方法,将账户余额初始化为0。
(3)一个带一个参数的构造方法,将账户余额初始化为该输入的参数。
(4)一个getBlance()方法,返回账户余额。
(5)一个withdraw()方法:带一个amount参数,并从账户余额中提取amount指定的款额。
(6)一个deposit()方法:带一个amount参数,并将amount指定的款额存储到该银行账户上。
设计一个Main类进行测试,分别输入账户余额、提取额度以及存款额度,并分别输出账户余额。

输入格式:

依次输入账户余额、提取额度、存款额度

输出格式:

依次输出初始账户余额、提取amount额度后的账户余额、存入amount后的账户余额

输入样例:

700
70
7

输出样例:

700
630
637

关键点

  • 类的设计:合理设计BankAccount类的属性和方法,确保账户余额的正确初始化和操作。
  • 构造方法的使用:使用无参构造方法和带参构造方法来初始化账户余额。
  • 方法的实现:实现getBalance()、withdraw()和deposit()方法,确保账户余额的正确计算。
  • 输入输出处理:在Main类中正确读取输入并输出相应的账户余额。

解题步骤

第一步:设计BankAccount类

定义BankAccount类,包含私有属性balance,并实现无参构造方法、带参构造方法、getBalance()、withdraw()和deposit()方法。

class BankAccount {
    private int balance;

    // 无参构造方法,将账户余额初始化为 0
    public BankAccount() {
        this.balance = 0;
    }

    // 带参构造方法,将账户余额初始化为输入的参数
    public BankAccount(int balance) {
        this.balance = balance;
    }

    // 返回账户余额
    public int getBalance() {
        return balance;
    }

    // 从账户余额中提取 amount 指定的款额
    public int withdraw(int amount) {
        this.balance = this.balance - amount;
        return this.balance;
    }

    // 将 amount 指定的款额存储到该银行账户上
    public int deposit(int amount) {
        this.balance = this.balance + amount;
        return this.balance;
    }
}

第二步:设计Main类进行测试

在Main类的main方法中,使用Scanner类读取输入的账户余额、提取额度和存款额度,并依次输出初始账户余额、提取后的账户余额和存入后的账户余额。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取初始账户余额
        int initialBalance = in.nextInt();
        // 创建 BankAccount 对象并使用带参构造方法初始化余额
        BankAccount myAccount = new BankAccount(initialBalance);
        // 输出初始账户余额
        System.out.println(initialBalance);

        // 读取提取额度
        int withdrawAmount = in.nextInt();
        // 调用 withdraw 方法并输出提取后的账户余额
        int balanceAfterWithdraw = myAccount.withdraw(withdrawAmount);
        System.out.println(balanceAfterWithdraw);

        // 读取存款额度
        int depositAmount = in.nextInt();
        // 调用 deposit 方法并输出存入后的账户余额
        int balanceAfterDeposit = myAccount.deposit(depositAmount);
        System.out.println(balanceAfterDeposit);

        in.close();
    }
}

整体流程图:

整体代码:

import java.util.*;

class BankAccount{
    private int balance;
    
    public BankAccount(){
        this.balance = 0;
    }
    
    public void BankAccount(int balance){
        this.balance = balance;
    }

    public int getBalance() {
        return balance;
    }
    
    public int withdraw(int amount){
        this.balance = this.balance - amount;
        return this.balance;
    }

    public int deposit(int amount){
        this.balance = this.balance + amount;
        return this.balance;
    }
}

public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        BankAccount myAccount = new BankAccount();
        int amount = in.nextInt();
        System.out.println(amount);
        myAccount.BankAccount(amount);
        amount = in.nextInt();
        int withdraw = myAccount.withdraw(amount);
        System.out.println(withdraw);
        amount = in.nextInt();
        int deposit = myAccount.deposit(amount);
        System.out.println(deposit);
    }
}

思考:在这个银行账户管理的程序中,BankAccount类封装了账户余额的属性和对余额进行操作的方法,使得账户余额的管理更加安全和方便。通过构造方法,我们可以灵活地初始化账户余额,既可以使用无参构造方法将余额初始化为0,也可以使用带参构造方法将余额初始化为指定的值。getBalance()、withdraw()和deposit()方法的实现确保了账户余额的正确计算和操作,getBalance()方法提供了获取账户余额的接口,而withdraw()和deposit()方法则分别实现了取款和存款的功能。这种封装和抽象的设计使得代码的复用性和可维护性大大提高。从可扩展性的角度来看,这个程序具有很大的潜力。如果后续需要添加更多的功能,如账户的冻结、解冻,或者添加利息计算等功能,只需要在BankAccount类中添加相应的方法即可,而不需要对Main类进行大规模的修改。这种可扩展性使得程序能够适应不断变化的需求,在软件开发的全生命周期中具有重要的意义。同时,在实际的银行系统开发中,这种对账户信息的管理和操作是非常基础和重要的,因此此程序设计思路和实现方法具有很强的借鉴价值。

posted @ 2025-05-05 11:12  取名字比写博客还难  阅读(40)  评论(0)    收藏  举报