「银行存取款的流程java」银行柜台存取款流程

博主:adminadmin 2023-01-08 19:27:13 586

今天给各位分享银行存取款的流程java的知识,其中也会对银行柜台存取款流程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用java线程同步实现银行取款和存款。

你的代码问题很多!

帮你修改后:

class Account {

private static float Balance = 200f;//线程共享的钱

public synchronized static void deposit(float amt) {

Balance = Balance + amt;

try {

Thread.sleep(10);// 模拟其它处理所需要的时间,比如刷新数据库等

}

catch (InterruptedException e) {

}

}

public static float getBalance() {

return Balance;

}

public static void setBalance(float balance) {

Balance = balance;

}

public synchronized static void withdraw(float bmt) {

Balance -= bmt;

try {

Thread.sleep(10);// 模拟其它处理所需要的时间,比如刷新数据库等

}

catch (InterruptedException e) {

}

}

String name;

public Account(String name) {

this.name = name;

}

}

public class AccountTest {

public static void main(String[] args) {

Customer customerA = new Customer("A");

Customer customerB = new Customer("B");

customerA.start();

customerB.start();

System.out.println();

try {

customerA.join();//等待A线程执行完毕

customerB.join();//等待B线程执行完毕

}

catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("最后总钱数:" + Account.getBalance());

}

}

class Customer extends Thread {

public Customer(String string) {

super(string);

}

@Override

public void run() {

System.out.println(currentThread().getName());

if (currentThread().getName().equals("A"))

Account.deposit(100.0f);//A线程加100

else if (currentThread().getName().equals("B"))

Account.withdraw(50.0f);//B线程减50

}

}

银行储蓄存取款过程数据流程图是怎样的?

会讲存取单核对处理

储户将填好的存(取)单及存折送交分类处理处。分类处理安三种不同情况分别处理。如果存折不符或存(取)单不合格,则将存折及存(取)单直接退还储户重新填写;

如果是存款,则将存折及存款单送交存款处处理。存款处理处取出底帐登记后,将存折退还给储户;

如果是取款,到银行营业厅填写取款单或存款单,取叫号单,排队等待,叫到号码拿这单子到串口办理,将存折交给银行服务台,该服务台取出底帐及现金,记账后将存折与现金退给储户。从而完成存(取)款处理过程。试按此画出数据流程图。

JAVA 编程 编写一个程序完成在银行的取款和存款操作。在定义银行类时,若取款数大于余额则作为异常处理。

这个要用到线程

代码给你吧

//银行类

public class Bank

{

private final double[] accounts;

public Bank(int n , double initBalance)

{

accounts = new double[n];

for(int i = 0;iaccounts.length;i++)

{

accounts[i] = initBalance;

}

}

public synchronized void transfer(int from,int to,double amount)throws InterruptedException

{

if(accounts[from]amount)

{

wait();

}

System.out.println(Thread.currentThread());

accounts[from] -= amount;

System.out.printf("%10.2f from %d to %d",amount,from,to);

accounts[from]+=amount;

System.out.printf("Total Banance:%10.2f%n ",getTotalBalance());

notifyAll();

}

private synchronized Object getTotalBalance()

{

double sum = 0;

for(double ac : accounts)

{

sum +=ac;

}

return sum;

}

public int size()

{

return accounts.length;

}

}

//线程函数

public class TransferRunnable implements Runnable

{

private Bank bank;

private int fromAc;

private double maxAmt;

private int delay = 10;

public TransferRunnable(Bank bank, int fromAC, double maxAmt)

{

super();

this.bank = bank;

this.fromAc = fromAc;

this.maxAmt = maxAmt;

}

@Override

public void run()

{

while(true)

{

try

{

int toAc =(int)(bank.size()*Math.random());

double amt = maxAmt*Math.random();

bank.transfer(fromAc, toAc, amt);

Thread.sleep((int)(delay*Math.random()));

}

catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

//测试类

public class Test

{

/**

* @param args

*/

public static void main(String[] args)

{

Bank b = new Bank(10,10000);

for(int i = 0;i10;i++)

{

TransferRunnable r = new TransferRunnable(b, 0, 10000);

Thread t = new Thread(r);

t.start();

}

}

}

关于银行存取款的流程java和银行柜台存取款流程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。