By GokiSoft.com| 20:10 05/04/2020|
Java Basic

Share Code- Chia sẻ code java >> Phần mềm quản lý bệnh nhân COVID-19

Hướng dẫn chữa bài tập >> Phần mềm quản lý bệnh nhân COVID-19


/*
 * 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 covid19;

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

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        List<Citizen> citizenList = new ArrayList<>();
        int choose;
        Scanner input = new Scanner(System.in);
        
        do {
            showMenu();
            choose = Integer.parseInt(input.nextLine());
            
            switch(choose) {
                case 1:
                    System.out.println("Nhap so cong dan can them : ");
                    int n = Integer.parseInt(input.nextLine());
                    for (int i = 0; i < n; i++) {
                        Citizen citizen = new Citizen();
                        citizen.input();
                        
                        citizenList.add(citizen);
                    }
                    break;
                case 2:
                    System.out.println("Nhap ten cong dan can xem: ");
                    String name = input.nextLine();
                    
                    for (Citizen citizen : citizenList) {
                        if(citizen.getName().equalsIgnoreCase(name)) {
                            citizen.display();
                        }
                    }
                    break;
                case 3:
                    System.out.println("Nhap CMTND cong dan can xem: ");
                    String cmtnd = input.nextLine();
                    
                    for (Citizen citizen : citizenList) {
                        if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                            citizen.display();
                            break;
                        }
                    }
                    break;
                case 4:
                    System.out.println("Nhap CMTND cong dan can tim: ");
                    String cmtnd2 = input.nextLine();
                    
                    System.out.println("Nhap tinh trang SK benh nhan: ");
                    System.out.println("0. Binh thuong");
                    System.out.println("1. Can theo doi >> tiep xuc vs benh nhan COVID-19");
                    System.out.println("3. Duong tinh vs COVID-19");
                    int status = Integer.parseInt(input.nextLine());
                    
                    for (Citizen citizen : citizenList) {
                        if(citizen.getCmtnd().equalsIgnoreCase(cmtnd2)) {
                            switch(status) {
                                case 0:
                                    citizen.setStatus(Citizen.COVID19_STATUS.NORMAL);
                                    break;
                                case 1:
                                    citizen.setStatus(Citizen.COVID19_STATUS.FOLLOW);
                                    break;
                                case 2:
                                    citizen.setStatus(Citizen.COVID19_STATUS.ACTIVE);
                                    break;
                            }
                        }
                    }
                    break;
                case 5:
                    System.out.println("Nhap CMTND cong dan can tim: ");
                    String cmtnd3 = input.nextLine();
                    
                    for (Citizen citizen : citizenList) {
                        if(citizen.getCmtnd().equalsIgnoreCase(cmtnd3)) {
                            if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW || citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
                                citizen.inputAddressList();
                            }
                            break;
                        }
                    }
                    break;
                case 6:
                    System.out.println("Nhap CMTND cong dan can tim: ");
                    String cmtnd4 = input.nextLine();
                    
                    for (Citizen citizen : citizenList) {
                        if(citizen.getCmtnd().equalsIgnoreCase(cmtnd4)) {
                            if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW || citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
//                                citizen.inputAddressList();
                                //FOLLOW
                                for (Citizen c : citizenList) {
                                    if(c.getStatus() == Citizen.COVID19_STATUS.NORMAL && 
                                            citizen.getAddressList().contains(c.getTmpAddress())) {
                                        c.setStatus(Citizen.COVID19_STATUS.FOLLOW);
                                    }
                                }
                            }
                            break;
                        }
                    }
                    break;
                case 7:
                    for (Citizen citizen : citizenList) {
                        if(citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
                            citizen.display();
                        }
                    }
                    break;
                case 8:
                    for (Citizen citizen : citizenList) {
                        if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW) {
                            citizen.display();
                        }
                    }
                    break;
                case 9:
                    System.out.println("Exit!!!");
                    break;
                default:
                    System.out.println("Input Failed!!!");
                    break;
            }
        } while(choose != 9);
    }
    
    static void showMenu() {
        System.out.println("1. Lập danh sách tất cả công dân tại Việt Nam");
        System.out.println("2. Tìm kiếm thông tin bệnh nhân theo tên");
        System.out.println("3. Tìm kiếm bệnh nhân theo CMTND");
        System.out.println("4. Thiết lập tình trạng sức khoẻ");
        System.out.println("5. Thiết lập lộ trình di chuyển của 1 bệnh nhân.");
        System.out.println("6. Thiết lập trạng thái bệnh nhân đã tiếp xúc vs một bệnh nhân dương tính COVID-19");
        System.out.println("7. Hiển thị danh sách bệnh nhân dương tính COVID-19");
        System.out.println("8. Hiển thị danh sách bệnh nhân đang theo dõi");
        System.out.println("9. Thoát");
        System.out.println("Lua chon: ");
    }
}



/*
 * 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 covid19;

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

/**
 *
 * @author Diep.Tran
 */
public class Citizen {
    static enum COVID19_STATUS {
        NORMAL, FOLLOW, ACTIVE
    };
    
    String name, cmtnd, gender, address, tmpAddress;
    int age;
    List<String> addressList;
    COVID19_STATUS status;

    public Citizen() {
        status = COVID19_STATUS.NORMAL;
        addressList = new ArrayList<>();
    }

    public Citizen(String name, String cmtnd, String gender, String address, String tmpAddress, int age) {
        this.name = name;
        this.cmtnd = cmtnd;
        this.gender = gender;
        this.address = address;
        this.tmpAddress = tmpAddress;
        this.age = age;
        
        status = COVID19_STATUS.NORMAL;
        addressList = new ArrayList<>();
    }
    
    public void input() {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap ten: ");
        name = input.nextLine();
        System.out.println("Nhap CMTND: ");
        cmtnd = input.nextLine();
        System.out.println("Nhap gioi tinh: ");
        gender = input.nextLine();
        System.out.println("Nhap dia chi thuong tru: ");
        address = input.nextLine();
        System.out.println("Nhap dia chi tam tru: ");
        tmpAddress = input.nextLine();
        System.out.println("Nhap tuoi: ");
        age = Integer.parseInt(input.nextLine());
    }

    public void display() {
        System.out.format("\nTen: %s, cmtnd: %s, gioi tinh: %s, "
                + "dia chi: %s, dia chi tam tru: %s, tuoi: %d", 
                name, cmtnd, gender, address, tmpAddress, age);
        switch(status) {
            case NORMAL:
                System.out.println("Cong dan am tinh voi COVID-19");
                break;
            case FOLLOW:
                System.out.println("Cong dan dang bi theo doi >> sinh song trong vung dich");
                break;
            case ACTIVE:
                System.out.println("Cong dan duong tinh voi COVID-19");
                break;
        }
        if(addressList.size() > 0) {
            System.out.println("Lo trinh di chuyen cua benh nhan: ");
            for (String add : addressList) {
                System.out.println(add);
            }
        }
    }
    
    public void inputAddressList() {
        Scanner input = new Scanner(System.in);
        
        for(;;) {
            System.out.println("Nhap dia chi di chuyen moi: ");
            String newAddress = input.nextLine();
            if(!addressList.contains(newAddress)) {
                addressList.add(newAddress);
            }
            System.out.println("Ban co muon tiep tuc them lo trinh di chuyen hay ko (YES, NO)???");
            String option = input.nextLine();
            if(option.equalsIgnoreCase("NO")) {
                break;
            }
        }
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    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 getTmpAddress() {
        return tmpAddress;
    }

    public void setTmpAddress(String tmpAddress) {
        this.tmpAddress = tmpAddress;
    }

    public int getAge() {
        return age;
    }

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

    public List<String> getAddressList() {
        return addressList;
    }

    public void setAddressList(List<String> addressList) {
        this.addressList = addressList;
    }

    public COVID19_STATUS getStatus() {
        return status;
    }

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

Cach 2



/*
 * 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 covid19;

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

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        List<Citizen> citizenList = new ArrayList<>();
        int choose;
        Scanner input = new Scanner(System.in);
        
        do {
            showMenu();
            choose = Integer.parseInt(input.nextLine());
            
            switch(choose) {
                case 1:
                    inputCitizen(citizenList);
                    break;
                case 2:
                    displayCitizen(citizenList);
                    break;
                case 3:
                    displayCitizenByCMTND(citizenList);
                    break;
                case 4:
                    setStatusByCMTND(citizenList);
                    break;
                case 5:
                    setAddressListByCMTND(citizenList);
                    break;
                case 6:
                    setFollowByAddress(citizenList);
                    break;
                case 7:
                    showCitizenByActive(citizenList);
                    break;
                case 8:
                    showCitizenByFollow(citizenList);
                    break;
                case 9:
                    System.out.println("Exit!!!");
                    break;
                default:
                    System.out.println("Input Failed!!!");
                    break;
            }
        } while(choose != 9);
    }
    
    static void showCitizenByFollow(List<Citizen> citizenList) {
        for (Citizen citizen : citizenList) {
            if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW) {
                citizen.display();
            }
        }
    }
    
    static void showCitizenByActive(List<Citizen> citizenList) {
        for (Citizen citizen : citizenList) {
            if(citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
                citizen.display();
            }
        }
    }
    
    static void setFollowByAddress(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap CMTND cong dan can tim: ");
        String cmtnd = input.nextLine();

        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW || citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
//                                citizen.inputAddressList();
                    //FOLLOW
                    for (Citizen c : citizenList) {
                        if(c.getStatus() == Citizen.COVID19_STATUS.NORMAL && 
                                citizen.getAddressList().contains(c.getTmpAddress())) {
                            c.setStatus(Citizen.COVID19_STATUS.FOLLOW);
                        }
                    }
                }
                break;
            }
        }
    }
    
    static void setAddressListByCMTND(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap CMTND cong dan can tim: ");
        String cmtnd = input.nextLine();

        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() == Citizen.COVID19_STATUS.FOLLOW || citizen.getStatus() == Citizen.COVID19_STATUS.ACTIVE) {
                    citizen.inputAddressList();
                }
                break;
            }
        }
    }
    
    static void setStatusByCMTND(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap CMTND cong dan can tim: ");
        String cmtnd = input.nextLine();

        System.out.println("Nhap tinh trang SK benh nhan: ");
        System.out.println("0. Binh thuong");
        System.out.println("1. Can theo doi >> tiep xuc vs benh nhan COVID-19");
        System.out.println("3. Duong tinh vs COVID-19");
        int status = Integer.parseInt(input.nextLine());

        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                switch(status) {
                    case 0:
                        citizen.setStatus(Citizen.COVID19_STATUS.NORMAL);
                        break;
                    case 1:
                        citizen.setStatus(Citizen.COVID19_STATUS.FOLLOW);
                        break;
                    case 2:
                        citizen.setStatus(Citizen.COVID19_STATUS.ACTIVE);
                        break;
                }
            }
        }
    }
    
    static void displayCitizenByCMTND(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap CMTND cong dan can xem: ");
        String cmtnd = input.nextLine();

        for (Citizen citizen : citizenList) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                citizen.display();
                break;
            }
        }
    }
    
    static void displayCitizen(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap ten cong dan can xem: ");
        String name = input.nextLine();

        for (Citizen citizen : citizenList) {
            if(citizen.getName().equalsIgnoreCase(name)) {
                citizen.display();
            }
        }
    }
    
    static void inputCitizen(List<Citizen> citizenList) {
        Scanner input = new Scanner(System.in);
        System.out.println("Nhap so cong dan can them : ");
        int n = Integer.parseInt(input.nextLine());
        for (int i = 0; i < n; i++) {
            Citizen citizen = new Citizen();
            citizen.input();

            citizenList.add(citizen);
        }
    }
    
    static void showMenu() {
        System.out.println("1. Lập danh sách tất cả công dân tại Việt Nam");
        System.out.println("2. Tìm kiếm thông tin bệnh nhân theo tên");
        System.out.println("3. Tìm kiếm bệnh nhân theo CMTND");
        System.out.println("4. Thiết lập tình trạng sức khoẻ");
        System.out.println("5. Thiết lập lộ trình di chuyển của 1 bệnh nhân.");
        System.out.println("6. Thiết lập trạng thái bệnh nhân đã tiếp xúc vs một bệnh nhân dương tính COVID-19");
        System.out.println("7. Hiển thị danh sách bệnh nhân dương tính COVID-19");
        System.out.println("8. Hiển thị danh sách bệnh nhân đang theo dõi");
        System.out.println("9. Thoát");
        System.out.println("Lua chon: ");
    }
}


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

5

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