使用JAVA编写一个简单的银行存取款程序

使用JAVA编写一个简单的银行存取款程序,第1张

package com.lw.thread

/*

银行账户类Account(不能透支),

包含账扰纯号id(10~16位数字),密码password(6位数字),户主姓名name,余额balence

*/

public class Account {

private String id

private int password

private String name

private double balence

public String getId() {

return id

}

public void setId(String id) {

this.id = id

}

public int getPassword() {

return password

}

public void setPassword(int password) {

this.password = password

}

public String getName() {

return name

}

public void setName(String name) {

this.name = name

}

public double getBalence() {

return balence

}

public void setBalence(double balence) {

this.balence = balence

}

/*

* 默认构造账户信息为:1111111111111111,666666,钱三多,888888.88。

*/

public Account() {

super()

this.id = "1111111111111111"

this.password = 666666

this.name = "钱乎拿三多"

this.balence = 888888.88

}

/*

* 另一个构造方法带4个参数分别初始化4个属性(带数据有效性验证)。

*/

public Account(String id, int password, String name, double balence) {

this.id = id

this.password = password

this.name = name

this.balence = balence

}

/*

* 查询余额

*/

public static double selectMoney(Account account) {

return account.getBalence()

}

/*

* 存钱

*/

public static String setMoney(Account account, double balence) {

if (balence <0) {

return "存钱失败,请正确放入!"

}

double d = balence + account.getBalence()

account.setBalence(d)

return "您存入了" + balence + "元,现账户余额为+" + d

}

/*

* 取钱

*/

public static String getMoney(Account account, double balence) {

double d = account.getBalence()

if (balence >d) {

return "您的余缓顷咐额不足!"

}

account.setBalence(d - balence)

return "您取出了" + balence + "元,现账户余额为+" + account.getBalence()

}

}

package demo

import java.util.Scanner

public class Test3 {

public static void main(String[] args) {

Scanner scanner =new Scanner(System.in)

int cnt=3

String username = null

String password = null

double money = 1000

String targetName = "admin33"

double targetMoney = 1000

while(true){

if(username!=null&&password!=null){

if("游滑admin".equals(username) &&"123".equals(password)){

System.out.println("欢迎光临")

while(true){

System.out.println("请选择您的 *** 作 1 取钱 2 存钱 3 转账 4 查询 5 退出 ")

int n = scanner.nextInt()

if(n==1){//取钱

System.out.println("请输入金额")

int getter = scanner.nextInt()

if(getter>=0){

if(getter<=5000){

if(getter<=money){

money-=getter

}else{

System.out.println("余额不足")

}

}else{

System.out.println("单笔只能取5000及以下")

}

}else{

System.out.println("银行不到给")

}

}else if(n==2){//存钱

System.out.println("请输入金额")

int save = scanner.nextInt()

if(save>=0){

money+=save

}

}else if(n==3){//转账

System.out.println("请输入目行磨粗标账户")

String target = scanner.next()

if(target.equals(targetName)){

System.out.println("请输入金额")

int getter = scanner.nextInt()

if(getter>=0){

if(getter<=5000){

if(getter<=money){

money-=getter

targetMoney+=getter

}else{

System.out.println("余额不足")

}

}else{

System.out.println("单笔只能取5000及以下")

}

}else{

System.out.println("银行不到给")

}

}

}else if(n==4){//查询

System.out.println(money)

}else if(n==5){//退出

System.exit(0)

}else{

System.out.println("没有该项服务")

}

}

}else{

cnt--

System.out.println("输入错误,您还有"+cnt+"次档镇机会")

username=null

password=null

if(cnt<=0){

System.out.println("对不起,您的账号被冻结,请到最近的营业厅解除冻结")

System.exit(0)

}

}

}else{

System.out.println("请输入您的账号")

username = scanner.next()

System.out.println("请输入您的密码")

password = scanner.next()

}

}

}

}

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=0delay<99999999delay++) {

// ... 提款进行中 ...

}

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)// 执行提款动作

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12498312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存