JAVA编写银行账户程序摸拟银行账户的存\取款操作 5
按要求完成以下步骤1编写程序Account.java,其中定义银行账户类Account.该类中有账号,姓名,存款余额等数据域,有存款,取款,显示当前余额等方法.2编写程序...
按要求完成以下步骤
1编写程序Account.java,其中定义银行账户类Account.该类中有账号,姓名,存款余额等数据域,有存款,取款,显示当前余额等方法.
2编写程序CreditAccount.java,其中定义信用卡账户类CreditAccount.该类继承自Account类,增加一个透支限额数据域.同时该 类账户取款式时允许透支,但不能超过透支限额.
3编写程序SavingAccount.java,其中定义储蓄账户类SavingAccount.该类继承自Account类.强调该类账户取款时不允许透支.
4编写测试程序TestAccount.java,测试上述类的定义是否成功.
要完整的程序.求大神帮忙.拜托了! 展开
1编写程序Account.java,其中定义银行账户类Account.该类中有账号,姓名,存款余额等数据域,有存款,取款,显示当前余额等方法.
2编写程序CreditAccount.java,其中定义信用卡账户类CreditAccount.该类继承自Account类,增加一个透支限额数据域.同时该 类账户取款式时允许透支,但不能超过透支限额.
3编写程序SavingAccount.java,其中定义储蓄账户类SavingAccount.该类继承自Account类.强调该类账户取款时不允许透支.
4编写测试程序TestAccount.java,测试上述类的定义是否成功.
要完整的程序.求大神帮忙.拜托了! 展开
2个回答
展开全部
public class ATM {
public static void main(String[] args) {
// 开立帐号
Account account = new Account();
// 在 account 中存 10,000 元
account.setBalance(10000);
// 检查 account 中的存款
System.out.println("帐户原始金额 : " + account.getBalance() + " 元");
// 小明, 小华与小英一起对 account 进行提款的动作
WithDraw s1 = new WithDraw("小明", account, 5000); // 小明 在 account 中提 5000 元
WithDraw s2 = new WithDraw("小华", account, 2000); // 小华 在 account 中提 2000 元
WithDraw s3 = new WithDraw("小英", account, 4000); // 小英 在 account 中提 4000 元
s1.start();
s2.start();
s3.start();
}
}
//帐户
class Account {
private int balance; // 帐户馀额
public int getBalance() { // 取得帐户馀额
return balance;
}
public void setBalance(int money) { // 设定帐户馀额
balance = money;
}
// 提款方法
public void withDraw(Account account, int withdrawMoney) {
String tName = Thread.currentThread().getName(); // tName=提款人
System.out.println(tName + " 开始提款 ... ");
boolean withDrawStatus; // 提款状态 说明:false=提款失败, true=提款成功
synchronized(ATM.class) {
int tmpBalabce = account.getBalance(); // 取得最新帐户馀额
//用 for-loop 模拟提款时系统所花的时间
for(double delay=0;delay<99999999;delay++) {
// ... 提款进行中 ...
}
tmpBalabce = tmpBalabce - withdrawMoney; // 最新帐户馀额 - 欲提款金额 (用来判断是否馀额足够的依据)
if (tmpBalabce < 0) { // 判断是否馀额足够
withDrawStatus = false;
System.out.println("....................");
System.out.println(" 帐户馀额不足!");
System.out.println("....................");
} else {
withDrawStatus = true;
account.setBalance(tmpBalabce); // 回存account最後剩馀金额
}
}
System.out.println(tName + "的交易单:");
System.out.println("\t欲提款金额:" + withdrawMoney + "元");
System.out.println("\t帐户馀额:" + account.getBalance());
if(withDrawStatus == true){
System.out.println(tName + " 完成提款 ... ");
} else {
System.out.println(tName + " 提款失败 ... ");
}
System.out.println("-------------------------------");
}
}
// 提款类别
class WithDraw extends Thread {
private Account account; // 帐号
private int withdrawMoney; // 欲提款的金额
// tName:执行绪名称, account:Account物件名称, withdrawMoney:欲提款金额
public WithDraw(String tName, Account account, int withdrawMoney) {
setName(tName);
this.account = account;
this.withdrawMoney= withdrawMoney;
}
public void run() {
// 执行提款动作(account:帐号, withdrawMoney 欲提款金额)
account.withDraw(account, withdrawMoney); // 执行提款动作
}
}
public static void main(String[] args) {
// 开立帐号
Account account = new Account();
// 在 account 中存 10,000 元
account.setBalance(10000);
// 检查 account 中的存款
System.out.println("帐户原始金额 : " + account.getBalance() + " 元");
// 小明, 小华与小英一起对 account 进行提款的动作
WithDraw s1 = new WithDraw("小明", account, 5000); // 小明 在 account 中提 5000 元
WithDraw s2 = new WithDraw("小华", account, 2000); // 小华 在 account 中提 2000 元
WithDraw s3 = new WithDraw("小英", account, 4000); // 小英 在 account 中提 4000 元
s1.start();
s2.start();
s3.start();
}
}
//帐户
class Account {
private int balance; // 帐户馀额
public int getBalance() { // 取得帐户馀额
return balance;
}
public void setBalance(int money) { // 设定帐户馀额
balance = money;
}
// 提款方法
public void withDraw(Account account, int withdrawMoney) {
String tName = Thread.currentThread().getName(); // tName=提款人
System.out.println(tName + " 开始提款 ... ");
boolean withDrawStatus; // 提款状态 说明:false=提款失败, true=提款成功
synchronized(ATM.class) {
int tmpBalabce = account.getBalance(); // 取得最新帐户馀额
//用 for-loop 模拟提款时系统所花的时间
for(double delay=0;delay<99999999;delay++) {
// ... 提款进行中 ...
}
tmpBalabce = tmpBalabce - withdrawMoney; // 最新帐户馀额 - 欲提款金额 (用来判断是否馀额足够的依据)
if (tmpBalabce < 0) { // 判断是否馀额足够
withDrawStatus = false;
System.out.println("....................");
System.out.println(" 帐户馀额不足!");
System.out.println("....................");
} else {
withDrawStatus = true;
account.setBalance(tmpBalabce); // 回存account最後剩馀金额
}
}
System.out.println(tName + "的交易单:");
System.out.println("\t欲提款金额:" + withdrawMoney + "元");
System.out.println("\t帐户馀额:" + account.getBalance());
if(withDrawStatus == true){
System.out.println(tName + " 完成提款 ... ");
} else {
System.out.println(tName + " 提款失败 ... ");
}
System.out.println("-------------------------------");
}
}
// 提款类别
class WithDraw extends Thread {
private Account account; // 帐号
private int withdrawMoney; // 欲提款的金额
// tName:执行绪名称, account:Account物件名称, withdrawMoney:欲提款金额
public WithDraw(String tName, Account account, int withdrawMoney) {
setName(tName);
this.account = account;
this.withdrawMoney= withdrawMoney;
}
public void run() {
// 执行提款动作(account:帐号, withdrawMoney 欲提款金额)
account.withDraw(account, withdrawMoney); // 执行提款动作
}
}
上海银发集团
2024-11-27 广告
2024-11-27 广告
银发企服集团,深耕海、内外企服行业16年+,累计服务企业30000+,除了国内内资、外资企业全生命周期、疑难杂症业务以外,擅长海外公司全生命周期的服务,比如:中国香港、新加坡、英国、美国、德国、BVI、开曼群岛国家等20多个国家及地区。开立...
点击进入详情页
本回答由上海银发集团提供
2014-12-11
展开全部
给一个邮箱吧,发到你邮箱上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询