「java存款题」java案例银行存取款

博主:adminadmin 2023-01-25 13:33:05 412

本篇文章给大家谈谈java存款题,以及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线程实现银行的存款取款问题最好能写出编出的具体程序

AccountTest.java class BankAccount //定义银行账户类BankAccount{private static int amount =2000; //账户余额最初为2000public void despoit(int m) //定义存款的方法{amount=amount+m;System.out.println("晓明存入["+m+"元]");}public void withdraw(int m) //定义取款的方法{amount=amount-m;System.out.println("张新取走["+m+"元]");if(amount0)System.out.println("***余额不足!***);public int balance() //定义得到账户余额的方法{return amount;}}classicCustomerextendsThread {String name;BankAccount bs; //定义一个具体的账户对象public Customer(BankAccount b,String s){name=s;bs=b;}public static void cus(String name,BankAccount bs) //具体的账户操作方法{if(name.equals("小明")) //判断用户是不是小明{try{for(int i=0;i6;i++) //用户晓明则向银行存款6次,每次1000元 {Thread.currentThread().sleep((int)(Math.random()*300));bs.despoit(1000);}}catch(InterruptedException e){}}else{try{for(int i=0;i6;i++) //用户不是小明则从银行取款6次,每次1000元{Thread.currentThread().sleep((int)(Math.random()*300));bs.withdraw(1000); }}catch(InterruptedException e){} }}public void run() //定义run方法}cus(name,bs); }}public classAccountTest{public static void main(String [] args) throws InterruptedException{BankAccount bs=new BankAccount();Customer customer1=new Customer(bs,"小明");Customer customer2=new Customer(bs,"张新");Thread t1=new Thread(customer1);Thread t2=new Thread(customer2);t1.Start();t2.start();Thread.currentThread().sleep(500);}}

JAVA高手来,题目是:自定义异常类,实现银行的存钱和取钱业务

3个类,开始...

1,

/**

*

* 自定义异常类

*

*/

public class MyException extends Exception {

//验证交易类型正确性

public void TransactionsInfo(){

System.out.println("交易失败,只能输入0或者1");

}

//验证金额正确性

public void amountInfo(){

System.out.println("交易失败,输入金额不能为负数或者字符");

}

}

2,

public class User {

/**

* 用户信息类

*/

private String name; //用户名

private float amount; //用户金额

public User(String name,float amount){

this.name = name;

this.amount = amount;

}

public float getAmount() {

return amount;

}

public void setAmount(float amount) {

this.amount = amount;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

// 交易的方法,需要接受两个参数,一个是代表交易方式(取款,或者存款,),一个代表交易金额

public User Transactions() throws MyException{

System.out.println("请输入您的交易方式.0代表存款,1代表取款");//提示用户交易方式

BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));

BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));

String flag = null;

try {

flag = br1.readLine();

} catch (IOException e) {

e.printStackTrace();

}

if("0".equals(flag)){

}else if("1".equals(flag)){

amount=-amount;//因为1代表取款,所以变成负数

}else{

new MyException().TransactionsInfo(); //打印类型错误

return this;

}

String amountString = null;

try {

amountString = br2.readLine();

} catch (IOException e) {

e.printStackTrace();

}

float amount = 0.0f;

try{

amount = Float.parseFloat(amountString);

}catch(Exception ex){

throw new MyException();

}

this.amount = this.amount+amount;//交易

return this; //返回用户信息

}

}

3,

public class MoneyTest {

/**

* 测试类

* @param args

*/

public static void main(String[] args){

User user = new User("张三",123.4f); //测试用户

System.out.println("用户"+user.getName()+"交易前的金额为:"+user.getAmount());

try {

user.Transactions();

} catch (MyException e) {

// TODO Auto-generated catch block

e.amountInfo();

}//调用方法

System.out.println("交易后的金额为"+user.getAmount());

}

}

java存款题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java案例银行存取款、java存款题的信息别忘了在本站进行查找喔。