-->
当前位置:首页 > 题库 > 正文内容

程序填空题:普通账户和支票账户

Luz2年前 (2022-11-10)题库842
编写一个Java程序,包含类Acount、CheckingAccount、Main,其中Main已经实现,请你编写Acount和CheckingAccount类。

(1)编写一个类Account表示普通账户对象,包含以下成员

①属性:

1. id:私有,int型,表示账户编号;
1. balance:私有,int型,表示账户余额;

②方法:

1. Account(), 构造方法,id和balance都初始化为0;
1. Account(int id,int balance),构造方法,用参数设置账户编号和余额;
1. void setBalance(int balance):修改账户金额
1. int getBalance():返回账户金额
1. boolean withdraw(int money):从账户提取特定数额,如果余额不足,返回false;否则,修改余额,返回true;
1. void deposit(int money):向账户存储特定数额。
1. public String toString():将把当前账户对象的信息转换成字符串形式,例如id为123,余额为1000,返回字符串"The balance of account 123 is 1000"。

(2)编写一个Account类的子类CheckingAccount,表示支票账户对象,包含以下成员

①属性:
1. overdraft:私有,int型,表示透支限定额;

②方法:
1. CheckingAccount(), 构造方法,id、balance和overdraft都初始化为0;
1. CheckingAccount(int id,int balance,int overdraft),构造方法,用参数设置账户编号、余额和透支限定额;
1. boolean withdraw(int money):从账户提取特定数额,如果超出透支限定额,返回false;否则,修改余额,返回true;

(3)编写公共类Main,实现如下功能

1. 根据用户输入的两个整数id和balance创建普通账户a;
1. 输入一个整数n,表示对账户a有n笔操作;
1. 每笔操作输入一个字符串和一个整数money(表示操作金额)
* 如果字符串为“withdraw”表示取现操作,如果操作成功,输出“withdraw ” + money + “success”,否则输出“withdraw ” + money + “failed”
* 如果字符串为“deposit”表示存入操作,完成操作后输出“deposit” + money + “success”
4. 使用toString方法输出账户a信息。
1. 根据用户输入的三个整数id、balance和overdraft创建支票账户b;
1. 输入一个整数m,表示对账户b有m笔操作;
1. 每笔操作输入一个字符串和一个整数money(表示操作金额)
* 如果字符串为“withdraw”表示取现操作,如果操作成功,输出“withdraw ” + money + “success”,否则输出“withdraw ” + money + “failed”
* 如果字符串为“deposit”表示存入操作,完成操作后输出“deposit” + money + “success”
8. 使用toString方法输出账户b信息。

c++
import java.util.Scanner;

class Account{
private int id;
private int balance;

public @@[Account](1)(){
id=0;
@@[ balance=0;](1)
}

public Account(int id,int balance){
this.id=id;
@@[this.balance=balance;](1)
}

public void setBalance(@@[int balance](1)){
@@[this.balance=balance;](1)
}

public int getBalance(){
@@[return balance;](1)
}

public boolean withdraw(int money){
if(balance<money)
@@[return false;](1)
else{
@@[balance=balance-money;](1)
@@[return true;](1)
}
}

public void deposit(int money){
@@[balance=balance+money;](1)
}

public @@[String](1) toString(){
return "The balance of account "+id+" is "+balance;
}
}

class CheckingAccount @@[extends](1) Account{
private int @@[overdraft](1);

CheckingAccount(){
@@[super();](1)
@@[overdraft=0;](1)
}

public @@[CheckingAccount](1)(int id, int balance,int overdraft) {
@@[super(id,balance);](1)
@@[this.overdraft=overdraft;](1)
}

public boolean withdraw(int money){
if(@@[getBalance()-money>=-overdraft](1)){
@@[setBalance(getBalance()-money);](1)
return true;
} else {
return false;
}
}
}

public class Main{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int n,m;

Account a = new Account(input.nextInt(),input.nextInt());
n = input.nextInt();
for(int i=0; i < n; i++) {
String op;
int money;
op = input.next();
money = input.nextInt();
if(op.equals("withdraw")) {
if(a.withdraw(money)) {
System.out.println("withdraw " + money + " success");
} else {
System.out.println("withdraw " + money + " failed");
}
} else if(op.equals("deposit")) {
a.deposit(money);
System.out.println("deposit " + money + " success");
}
}
System.out.println(a.toString());

CheckingAccount b = new CheckingAccount(input.nextInt(),input.nextInt(),input.nextInt());
m = input.nextInt();
for(int i=0; i < m; i++) {
String op;
int money;
op = input.next();
money = input.nextInt();
if(op.equals("withdraw")) {
if(b.withdraw(money)) {
System.out.println("withdraw " + money + " success");
} else {
System.out.println("withdraw " + money + " failed");
}
} else if(op.equals("deposit")) {
b.deposit(money);
System.out.println("deposit " + money + " success");
}
}
System.out.println(b.toString());
}
}


### 输入样例:
in
1 100
5
withdraw 200
withdraw 100
deposit 50
deposit 100
withdraw 200
2 100 200
5
withdraw 200
withdraw 100
deposit 50
deposit 100
withdraw 200


### 输出样例:
out
withdraw 200 failed
withdraw 100 success
deposit 50 success
deposit 100 success
withdraw 200 failed
The balance of account 1 is 150
withdraw 200 success
withdraw 100 success
deposit 50 success
deposit 100 success
withdraw 200 failed
The balance of account 2 is -50







答案:
第1空:Account

第2空: balance=0;

第3空:this.balance=balance;

第4空:int balance

第5空:this.balance=balance;

第6空:return balance;

第7空:return false;

第8空:balance=balance-money;

第9空:return true;

第10空:balance=balance+money;

第11空:String

第12空:extends

第13空:overdraft

第14空:super();

第15空:overdraft=0;

第16空:CheckingAccount

第17空:super(id,balance);

第18空:this.overdraft=overdraft;

第19空:getBalance()-money>=-overdraft

第20空:setBalance(getBalance()-money);

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。