By GokiSoft.com| 19:54 29/07/2021|
Java Basic

[Share Code] Java Basic- Test 60 phút lập trình java căn bản - Phần mềm quản lý bệnh nhân COVID-19 - Optimize Code - C2010L

#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 lesson10.bt1026;

import java.util.Scanner;

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        CitizenManager manager = CitizenManager.getInstance();
        
        Scanner scan = new Scanner(System.in);
        int choose;
        
        do {
            showMenu();
            choose = Integer.parseInt(scan.nextLine());
            
            switch(choose) {
                case 1:
                    CitizenManager.getInstance().inputCitizen();
                    break;
                case 2:
                    CitizenManager.getInstance().searchByName();
                    break;
                case 3:
                    manager.searchByCMTND();
                    break;
                case 4:
                    manager.inputCitizenStatus();
                    break;
                case 5:
                    manager.setupMoving();
                    break;
                case 6:
                    manager.setupFollow();
                    break;
                case 7:
                    manager.showCovid19();
                    break;
                case 8:
                    manager.showFollow();
                    break;
                case 9:
                    System.out.println("Thoat!!!");
                    break;
                default:
                    System.out.println("Nhap sai!!!");
                    break;
            }
        } while(choose != 9);
    }
    
    static void showMenu() {
        System.out.println("1. Lap danh sach");
        System.out.println("2. Tim kiem theo ten benh nhan");
        System.out.println("3. Tim kiem theo CMTND");
        System.out.println("4. Thiet lap tinh trang skhoe");
        System.out.println("5. Thiet lap lo trinh di chuyen cua benh nhan");
        System.out.println("6. Thiet lap theo doi");
        System.out.println("7. Hien thi danh sach benh nhan COVID19");
        System.out.println("8. Hien thi danh sach benh nhan dang theo doi");
        System.out.println("9. Thoat");
        System.out.println("Chon: ");
    }
}


#CitizenManager.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 lesson10.bt1026;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Mong muon CitizenManager -> Chi tao ra 1 object duy nhat
 * Goi lop doi tuong nay -> Singleton
 * @author Diep.Tran
 */
public class CitizenManager {
    List<Citizen> citizenList;
    Scanner scan;
    
    static CitizenManager instance = null;
    
    private CitizenManager() {
        citizenList = new ArrayList<>();
        scan = new Scanner(System.in);
    }
    
    public static CitizenManager getInstance() {
        if(instance == null) {
            instance = new CitizenManager();
        }
        return instance;
    }
    
    public void inputCitizen() {
        System.out.println("Nhap so cong dan can them: ");
        int n = Integer.parseInt(scan.nextLine());
        
        for (int i = 0; i < n; i++) {
            Citizen citizen = new Citizen();
            citizen.input();
            
            citizenList.add(citizen);
        }
    }

    public void searchByName() {
        System.out.println("Nhap ten benh nhan can tim kiem: ");
        String fullname = scan.nextLine();
        
        for (Citizen citizen : citizenList) {
            if(citizen.getFullname().equalsIgnoreCase(fullname)) {
                citizen.display();
            }
        }
    }

    public void searchByCMTND() {
        System.out.println("Nhap CMTND benh nhan can tim kiem: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                citizen.display();
                break;
            }
        }
    }

    public void inputCitizenStatus() {
        System.out.println("Nhap CMTND benh nhan can thiet lap trang thai suc khoe: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                citizen.inputStatus();
                break;
            }
        }
    }

    public void setupMoving() {
        System.out.println("Nhap CMTND benh nhan can thiet lap lo trinh di chuyen: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() != Citizen.STATUS.NORMAL) {
                    citizen.inputMoving();
                }
                break;
            }
        }
    }

    public void setupFollow() {
        System.out.println("Nhap CMTND benh nhan can kiem tra: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() != Citizen.STATUS.NORMAL) {
                    //Thiet lap trang thai tiep xuc benh nhan
                    for (Citizen c : citizenList) {
                        if(c.getStatus() == Citizen.STATUS.NORMAL && citizen.checkFollow(c.getTempAddress())) {
                            c.setStatus(Citizen.STATUS.FOLLOW);
                        }
                    }
                }
                break;
            }
        }
    }

    public void showCovid19() {
        System.out.println("Danh sach benh nhan duong tinh COVID19");
        
        for (Citizen citizen : citizenList) {
            if(citizen.getStatus() == Citizen.STATUS.COVID19) {
                citizen.display();
            }
        }
    }

    public void showFollow() {
        System.out.println("Danh sach benh nhan dang theo doi");
        
        for (Citizen citizen : citizenList) {
            if(citizen.getStatus() == Citizen.STATUS.FOLLOW) {
                citizen.display();
            }
        }
    }
}


#Citizen.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 lesson10.bt1026;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author Diep.Tran
 */
public class Citizen {
    public enum STATUS {NORMAL, FOLLOW, COVID19};
    
    String fullname, cmtnd, gender, address, tempAddress;
    int age;
    STATUS status;
    List<String> movingList;

    public Citizen() {
        status = STATUS.NORMAL;
        movingList = new ArrayList<>();
    }

    public Citizen(String fullname, String cmtnd, String gender, String address, String tempAddress, int age) {
        this.fullname = fullname;
        this.cmtnd = cmtnd;
        this.gender = gender;
        this.address = address;
        this.tempAddress = tempAddress;
        this.age = age;
        status = STATUS.NORMAL;
        movingList = new ArrayList<>();
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getCmtnd() {
        return cmtnd;
    }

    public void setCmtnd(String cmtnd) {
        this.cmtnd = cmtnd;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTempAddress() {
        return tempAddress;
    }

    public void setTempAddress(String tempAddress) {
        this.tempAddress = tempAddress;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public STATUS getStatus() {
        return status;
    }

    public void setStatus(STATUS status) {
        this.status = status;
    }

    public List<String> getMovingList() {
        return movingList;
    }

    public void setMovingList(List<String> movingList) {
        this.movingList = movingList;
    }
    
    public void input() {
        Scanner scan = new Scanner(System.in);
        
        System.out.println("Nhap ten: ");
        fullname = scan.nextLine();
        
        System.out.println("Nhap CMTND: ");
        cmtnd = scan.nextLine();
        
        System.out.println("Nhap gioi tinh: ");
        gender = scan.nextLine();
        
        System.out.println("Nhap dia chi: ");
        address = scan.nextLine();
        
        System.out.println("Nhap dia chi tam thoi: ");
        tempAddress = scan.nextLine();
        
        System.out.println("Nhap tuoi: ");
        age = Integer.parseInt(scan.nextLine());
    }
    
    public void inputStatus() {
        Scanner scan = new Scanner(System.in);
        
        System.out.println("1. Trang thai binh thuong");
        System.out.println("2. Trang thai dang theo doi");
        System.out.println("3. Trang thai duong tinh COVID19");
        System.out.println("Chon: ");
        int choose = Integer.parseInt(scan.nextLine());
        
        switch(choose) {
            case 1:
                status = STATUS.NORMAL;
                break;
            case 2:
                status = STATUS.FOLLOW;
                break;
            default:
                status = STATUS.COVID19;
                break;
        }
    }
    
    public void inputMoving() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap so vi tri da di chuyen qua: ");
        int n = Integer.parseInt(scan.nextLine());
        
        for (int i = 0; i < n; i++) {
            System.out.println("Nhap vi tri " + (i + 1) + ": ");
            String v = scan.nextLine();
            
            movingList.add(v);
        }
    }
    
    public boolean checkFollow(String address) {
        return movingList.contains(address);
    }
    
    public void display() {
        System.out.println(this);
    }

    @Override
    public String toString() {
        return "Citizen{" + "fullname=" + fullname + ", cmtnd=" + cmtnd + ", gender=" + gender + ", address=" + address + ", tempAddress=" + tempAddress + ", age=" + age + ", status=" + getStringStatus() + '}';
    }
    
    public String getStringStatus() {
        switch(status) {
            case NORMAL:
                return "Trang thai skhoe binh thuong";
            case FOLLOW:
                return "Trang thai dang theo doi";
            default:
                return "Duong tinh voi COVID19";
        }
    }
}


Tags:

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

5

(Dựa trên đánh giá ngày hôm nay)