Tạo bởi Trắc Nghiệm Việt|
Share Code - Quản lý ATM - Quản lý tài khoản ngân hàng
Java Basic
Share Code - Quản lý ATM - Quản lý tài khoản ngân hàng
Share Code - Quản lý ATM - Quản lý tài khoản ngân hàng
https://gokisoft.com/java-basic-quan-ly-atm-quan-ly-tai-khoan-ngan-hang.html
#Account.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package overview.lession2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Diep.Tran
*/
public class Account implements IFileInfor{
String fullname, stk, phoneNumber, address;
int money;
List<Receiver> receiverList = new ArrayList<>();
List<Transfer> transferList = new ArrayList<>();
public Account() {
}
public Account(String fullname, String stk, String phoneNumber, String address, int money) {
this.fullname = fullname;
this.stk = stk;
this.phoneNumber = phoneNumber;
this.address = address;
this.money = money;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getStk() {
return stk;
}
public void setStk(String stk) {
this.stk = stk;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public List<Receiver> getReceiverList() {
return receiverList;
}
public List<Transfer> getTransferList() {
return transferList;
}
public void input() {
Scanner scan = new Scanner(System.in);
System.out.println("Nhap Ho & Ten: ");
fullname = scan.nextLine();
System.out.println("Nhap STK: ");
stk = scan.nextLine();
System.out.println("Nhap SDT: ");
phoneNumber = scan.nextLine();
System.out.println("Nhap dia chi: ");
address = scan.nextLine();
money = 0;
}
public void addReceiver() {
Receiver receiver = new Receiver();
receiver.input();
receiverList.add(receiver);
//Cong tien vao tai khoan
money += receiver.getMoney();
}
public void transfer() {
Transfer transfer = new Transfer();
transfer.input(money);
transferList.add(transfer);
//Tru tien trong TK
money -= transfer.getMoney();
}
public void displayReceiverHistory() {
System.out.println("Lich su nhan tien: ");
receiverList.forEach((receiver) -> {
receiver.display();
});
}
public void displayTransferHistory() {
System.out.println("Lich su chuyen tien: ");
transferList.forEach((transfer) -> {
transfer.display();
});
}
@Override
public String toString() {
return "Account{" + "fullname=" + fullname + ", stk=" + stk + ", phoneNumber=" + phoneNumber + ", address=" + address + ", money=" + money + '}';
}
public void display() {
System.out.println(toString());
// displayReceiverHistory();
//
// displayTransferHistory();
}
public static String getHeader() {
return "Infor:";
}
@Override
public String getFileInfor() {
return fullname+","+stk+","+phoneNumber+","+address+","+money;
}
@Override
public void putFileInfor(String str) {
String[] param = str.split(",");
fullname = param[0];
stk = param[1];
phoneNumber = param[2];
address = param[3];
money = Integer.parseInt(param[4]);
}
}
#IFileInfor.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package overview.lession2;
/**
*
* @author Diep.Tran
*/
public interface IFileInfor {
String getFileInfor();
void putFileInfor(String data);
}
#Main.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package overview.lession2;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Diep.Tran
*/
public class Main {
static Scanner scan = new Scanner(System.in);
static Account account = null;
public static void main(String[] args) {
login();
System.out.println("Next Step!!!");
int choose;
do {
showMenu();
choose = Integer.parseInt(scan.nextLine());
switch(choose) {
case 1:
account = new Account();
account.input();
break;
case 2:
if(account != null) {
account.addReceiver();
account.display();
} else {
System.err.println("TK khong ton tai");
}
break;
case 3:
if(account != null) {
account.transfer();
account.display();
} else {
System.err.println("TK khong ton tai");
}
break;
case 4:
if(account != null) {
account.displayReceiverHistory();
} else {
System.err.println("TK khong ton tai");
}
break;
case 5:
if(account != null) {
account.displayTransferHistory();
} else {
System.err.println("TK khong ton tai");
}
break;
case 6:
saveFile();
break;
case 7:
readFile();
break;
case 8:
System.out.println("Thoat!!!");
break;
default:
System.out.println("Nhap sai!!!");
break;
}
} while(choose != 8);
}
static void saveFile() {
FileOutputStream fos = null;
try {
fos = new FileOutputStream("account.txt");
//save thong tin tk
//header
String line = Account.getHeader() + "\n";
fos.write(line.getBytes());
//than
line = account.getFileInfor() + "\n";
fos.write(line.getBytes());
//Luu lich su nhan tien
line = Receiver.getHeader() + "\n";
fos.write(line.getBytes());
for (Receiver receiver : account.getReceiverList()) {
line = receiver.getFileInfor()+ "\n";
fos.write(line.getBytes());
}
//Luu lich su chuyen tien
line = Transfer.getHeader() + "\n";
fos.write(line.getBytes());
for (Transfer transfer : account.getTransferList()) {
line = transfer.getFileInfor()+ "\n";
fos.write(line.getBytes());
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
static void readFile() {
}
static void showMenu() {
System.out.println("1. Khoi tao TK");
System.out.println("2. Nap tien");
System.out.println("3. Chuyen tien");
System.out.println("4. Xem lich su nap tien");
System.out.println("5. Xem lich su chuyen tien");
System.out.println("6. Luu");
System.out.println("7. Doc du lieu");
System.out.println("8. Thoat");
System.out.println("Chon: ");
}
static void login() {
System.out.println("===== WELCOME ======");
System.out.println("User Name: ");
String username = scan.nextLine();
System.out.println("Password: ");
String password = scan.nextLine();
if(username.equalsIgnoreCase("dieptv") && password.equals("Gokisoft123")) {
System.out.println("Login Success!!!");
} else {
System.err.println("Login Failed!!!");
//de quy.
login();
}
}
}
#Receiver.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package overview.lession2;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Diep.Tran
*/
public class Receiver implements IFileInfor{
int money;
String note;
Date createdAt;
public Receiver() {
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public void input() {
System.out.println("Nhap thong tin nap tien:");
Scanner scan = new Scanner(System.in);
System.out.println("Nhap so tien: ");
money = Integer.parseInt(scan.nextLine());
System.out.println("Nhap noi dung ghi chu: ");
note = scan.nextLine();
createdAt = new Date();
}
@Override
public String toString() {
return "Receiver{" + "money=" + money + ", note=" + note + ", createdAt=" + getCreatedAtString() + '}';
}
public String getCreatedAtString() {
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss dd/MM/yyyy");
String str = format.format(createdAt);
return str;
}
public void display() {
System.out.println(toString());
}
public static String getHeader() {
return "Receiver:";
}
@Override
public String getFileInfor() {
return money+","+note+","+getCreatedAtString();
}
@Override
public void putFileInfor(String data) {
try {
String[] param = data.split(",");
money = Integer.parseInt(param[0]);
note = param[1];
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss dd/MM/yyyy");
createdAt = format.parse(param[2]);
} catch (ParseException ex) {
Logger.getLogger(Receiver.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
#Transfer.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package overview.lession2;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Diep.Tran
*/
public class Transfer implements IFileInfor{
String transferStk, note;
int money;
Date createdAt;
public Transfer() {
}
public String getTransferStk() {
return transferStk;
}
public void setTransferStk(String transferStk) {
this.transferStk = transferStk;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public void display() {
System.out.println(toString());
}
public void input(int maxMoney) {
System.out.println("Nhap thong tin nap tien:");
Scanner scan = new Scanner(System.in);
System.out.println("Nhap STK nhan: ");
transferStk = scan.nextLine();
for(;;) {
System.out.println("Nhap so tien: ");
money = Integer.parseInt(scan.nextLine());
if(money <= maxMoney) {
break;
}
System.err.println("So tien chuyen vuot qua so tien trong TK");
}
System.out.println("Nhap noi dung ghi chu: ");
note = scan.nextLine();
createdAt = new Date();
}
@Override
public String toString() {
return "Transfer{" + "transferStk=" + transferStk + ", note=" + note + ", money=" + money + ", createdAt=" + getCreatedAtString() + '}';
}
public String getCreatedAtString() {
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss dd/MM/yyyy");
String str = format.format(createdAt);
return str;
}
public static String getHeader() {
return "Transfer:";
}
@Override
public String getFileInfor() {
return transferStk+","+money+","+note+","+getCreatedAtString();
}
@Override
public void putFileInfor(String data) {
try {
String[] param = data.split(",");
transferStk = param[0];
money = Integer.parseInt(param[1]);
note = param[2];
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss dd/MM/yyyy");
createdAt = format.parse(param[3]);
} catch (ParseException ex) {
Logger.getLogger(Receiver.class.getName()).log(Level.SEVERE, null, ex);
}
}
}