Tạo bởi Trắc Nghiệm Việt|
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);
        }
    }
}




Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó