
正文
银行取钱java代码 java编写银行取款系统
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java编程题,银行方面的,求高手给个代码。
这个应该是多线程同步的问题,多个人取钱,要保证下一个线程拿到的值是正确的。。。
相关问答
Q1: Java模拟银行ATM完成以下功能: 1)查询余额 2)取款 3)存款 4)退出
import java.util.Scanner;
public class ATM{
public static void main(String... args){
Scanner sc=new Scanner(System.in);
double money=0;
do{
System.out.println("请选择业务:1)查询余额 2)取款 3)存款 4)退出");
int c=sc.nextInt();
if(c==1){
System.out.println("用户余额为:"+money+"元");
}else if(c==2){
while(true){
System.out.println("请输入取款金额:");
double load=sc.nextDouble();
if(load=money){
System.out.println("账户余额不足,请重新输入取款金额");
continue;
}else{
money-=load;
System.out.println("取款成功");
break;
}
}
}else if(c==3){
System.out.println("请输入存款金额:");
money+=sc.nextDouble();
System.out.println("存款成功");
}else if(c==4){
System.exit(0);
}else{
System.out.println("输入错误,请重新选择业务");
}
}while(true);
}
}
Q2: 翻译用JAVA程序模拟张三和李四在银行开户,存款,取款的过程,最后显示每一账户的存款的小程序
以前写过一个小程序,没有开户过程,初始录入一个账户。有存款,取款,查看交易详情。
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class Bank {
private Customer customer = new Customer();
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public class Customer{
private String name;
private String address;
private String phoneNo;
private String accountNo;
private BigDecimal blance = new BigDecimal(0L);
private ListTransaction txnList = new ArrayListTransaction();// Transaction detail
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public BigDecimal getBlance() {
return blance;
}
public void setBlance(BigDecimal blance) {
this.blance = blance;
}
public ListTransaction getTxnList() {
return txnList;
}
public void setTxnList(ListTransaction txnList) {
this.txnList = txnList;
}
@Override
public String toString() {
return "Customer [name=" + name + ", address=" + address
+ ", phoneNo=" + phoneNo + ", accountNo=" + accountNo
+ ", blance=" + blance.doubleValue() + ", txnList=" + txnList + "]";
}
public void addTransaction(String type, double amount){
Transaction txn = new Transaction(type, amount);
this.txnList.add(txn);
}
public void depositing( double amount ){
System.out.println("depositing start");
this.blance = this.blance.add(new BigDecimal(amount));
this.addTransaction("1", amount);
System.out.println("depositing end success");
}
public void withdrawing( double amount ){
System.out.println("withdrawing start");
if(this.blance.doubleValue()amount){
System.out.println("the balance["+this.blance.doubleValue()+
"] is less than amount["+amount+"], please re-input amount");
System.out.println("withdrawing end failure");
return;
}
this.blance = this.blance.subtract(new BigDecimal(amount));
this.addTransaction("2", amount);
System.out.println("withdrawing end success");
}
public void showDetail(){
System.out.println("showDetail start");
System.out.println("----------------------");
System.out.println(this.toString());
System.out.println("----------------------");
System.out.println("showDetail end success");
}
}
public class Transaction{
private String type; //1 depositing 2 withdrawing
private double amount; //amount of money
private Date createDate;
public Transaction(String type, double amount) {
super();
this.type = type;
this.amount = amount;
this.createDate = new Date();
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
@Override
public String toString() {
return "Transaction [type=" + (type.equals("1")?"depositing":"withdrawing") + ", amount=" + amount
+ ", createDate=" + createDate + "]";
}
}
private void showMenu(Scanner reader){
System.out.println("--- Choose menu ---");
System.out.println("please input number 1-4 to choose menu; 1:deposit money, 2:withdraw money, 3:view details or 4:exit");
if(reader.hasNextInt()){
int flag = reader.nextInt();
switch(flag){
case 1 :{
System.out.println(" please input amount:");
double amount = reader.nextDouble();
this.getCustomer().depositing(amount);
showMenu(reader);
}
case 2 :{
System.out.println(" please input amount:");
double amount = reader.nextDouble();
this.getCustomer().withdrawing(amount);
showMenu(reader);
}
case 3 :{
this.getCustomer().showDetail();
showMenu(reader);
}
case 4 :{
break;
}
default :{
System.out.println("invalid input ");
showMenu(reader);
}
}
}
System.out.println("Do you really want to exit? yes or no ");
reader.nextLine();
String outChoose = reader.nextLine();
if(!"YES".equals(outChoose.toUpperCase())!"Y".equals(outChoose.toUpperCase())){
showMenu(reader);
}
}
public static void main(String[] args){
System.out.println("--- Welcome to Test bank ---");
System.out.println("please input your name :");
Scanner reader=new Scanner(System.in);
Bank bank = new Bank();
if(reader.hasNextLine()){
bank.getCustomer().setName(reader.nextLine());
}
System.out.println("please input your address :");
if(reader.hasNextLine()){
bank.getCustomer().setAddress(reader.nextLine());
}
System.out.println("please input your phone number :");
if(reader.hasNextLine()){
bank.getCustomer().setPhoneNo(reader.nextLine());
}
System.out.println("please input your account number :");
if(reader.hasNextLine()){
bank.getCustomer().setAccountNo(reader.nextLine());
}
System.out.println("customer info :"+bank.getCustomer().toString());
bank.showMenu(reader);
}
}
Q3: java模拟银行取钱的一个类 里面构造函数有值,就是使用balance为0.0 为什么?
public Account2(String accountNo, double balance2) {
this.accountNo = accountNo;
this.balance = balance2;
System.out.println(accountNo+"/"+balance);//运行结果:12345/1000.0
}
你有两个构造方法,一个是不带参的,一个是带参的(如上所示),在main方法测试的时候,你应该使用带参的构造方法将Account2先new出来,在使用其取钱等方法,从第三行代码可看出,你的balance是由balance2赋值的,而你的累的private 属性的balance初始值默认是0,所以你必须赋值,因此你必须使用Account2带参的构造方法进行测试!(纯手打)
关于银行取钱java代码和java编写银行取款系统的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







