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类进行大规模的修改。这种可扩展性使得程序能够适应不断变化的需求,在软件开发的全生命周期中具有重要的意义。同时,在实际的银行系统开发中,这种对账户信息的管理和操作是非常基础和重要的,因此此程序设计思路和实现方法具有很强的借鉴价值。

浙公网安备 33010602011771号