By GokiSoft.com| 13:44 15/04/2020|
Java Basic

Share Code - Hướng dẫn chữa bài COVID-19 TOOANG - C1907L


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 (2020 - TOOANG)


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

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

/**
 *
 * @author Diep.Tran
 */
public class Citizen {
    enum STATUS {
        NORMAL, FOLLOW, ACTIVE
    };
    
    String name, cmtnd, gender, address, tmpAddress;
    int age;
    STATUS status;

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

    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 STATUS getStatus() {
        return status;
    }

    public void setStatus(STATUS status) {
        this.status = status;
    }
    
    public void input() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter name: ");
        name = scan.nextLine();
        
        System.out.println("Enter CMTND: ");
        cmtnd = scan.nextLine();
        
        System.out.println("Enter gender: ");
        gender = scan.nextLine();
        
        System.out.println("Enter address: ");
        address = scan.nextLine();
        
        System.out.println("Enter template address: ");
        tmpAddress = scan.nextLine();
        
        System.out.println("Enter age: ");
        age = Integer.parseInt(scan.nextLine());
    }
    
    public void inputPath() {
        Scanner scan = new Scanner(System.in);
        
        for(;;) {
            System.out.println("Enter address: ");
            String addString = scan.nextLine();
            
            if(!path.contains(addString)) {
                path.add(addString);
            }
            
            System.out.println("Continue (Y) or Not (N): ");
            addString = scan.nextLine();
            
            if(addString.equalsIgnoreCase("N")) {
                break;
            }
        }
    }
    
    public void inputStatus() {
        Scanner scan = new Scanner(System.in);
        System.out.println("1. Normal");
        System.out.println("2. Follow");
        System.out.println("3. Active");
        System.out.println("Choose: ");
        int choose = scan.nextInt();
        
        switch(choose) {
            case 1:
                status = STATUS.NORMAL;
                break;
            case 2:
                status = STATUS.FOLLOW;
                break;
            default:
                status = STATUS.ACTIVE;
                break;
        }
    }

    public void display() {
        System.out.println(toString());
    }
    
    @Override
    public String toString() {
        return "Citizen{" + "name=" + name + ", cmtnd=" + cmtnd 
                + ", gender=" + gender + ", address=" 
                + address + ", tmpAddress=" + tmpAddress 
                + ", age=" + age + ", status=" + getStringStatus() + '}';
    }
    
    public String getStringStatus() {
        switch(status) {
            case NORMAL:
                return "Normal";
            case FOLLOW:
                return "Follow";
            default:
                return "Active";
        }
    }

    public List<String> getPath() {
        return path;
    }

    public void setPath(List<String> path) {
        this.path = path;
    }
    
}



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

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

/**
 *
 * @author Diep.Tran
 */
public class DataMgr {
    List<Citizen> citizens;
    
    private static DataMgr instance = null;
    
    private DataMgr() {
        citizens = new ArrayList<>();
    }
    
    public synchronized static DataMgr getInstance() {
        if(instance == null) {
            instance = new DataMgr();
        }
        return instance;
    }

    public List<Citizen> getCitizens() {
        return citizens;
    }

    public void setCitizens(List<Citizen> citizens) {
        this.citizens = citizens;
    }
}



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

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

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int choose;
        
        do {
            showMenu();
            choose = scan.nextInt();
            
            switch(choose) {
                case 1:
                    input();
                    break;
                case 2:
                    searchByName();
                    break;
                case 3:
                    searchByCMTND();
                    break;
                case 4:
                    setHeathStatus();
                    break;
                case 5:
                    setupPath();
                    break;
                case 6:
                    setupFollowStatus();
                    break;
                case 7:
                    showCitizenActive();
                    break;
                case 8:
                    showCitizenFollow();
                    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("Choose: ");
    }

    private static void input() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter N: ");
        int n = scan.nextInt();
        
        for (int i = 0; i < n; i++) {
            Citizen citizen = new Citizen();
            citizen.input();
            
            if(citizen.getStatus() == Citizen.STATUS.ACTIVE) {
                
            }
            
//            DataMgr dataMgr = DataMgr.getInstance();
//            List<Citizen> citizens = dataMgr.getCitizens();
//            citizens.add(citizen);
            
            DataMgr.getInstance().getCitizens().add(citizen);
        }
    }

    private static void searchByName() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter name to search: ");
        String name = scan.nextLine();
        
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getName().equalsIgnoreCase(name)) {
                citizen.display();
            }
        }
    }

    private static void searchByCMTND() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter CMTND to search: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                citizen.display();
                break;
            }
        }
    }

    private static void setHeathStatus() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter CMTND to search: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                citizen.inputStatus();
                break;
            }
        }
    }

    private static void setupPath() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter CMTND to search: ");
        String cmtnd = scan.nextLine();
        
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() != Citizen.STATUS.NORMAL) {
                    citizen.inputPath();
                }
                
                break;
            }
        }
    }

    private static void setupFollowStatus() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter CMTND to search: ");
        String cmtnd = scan.nextLine();
        
        Citizen citizenFind = null;
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getCmtnd().equalsIgnoreCase(cmtnd)) {
                if(citizen.getStatus() != Citizen.STATUS.NORMAL) {
                    citizenFind = citizen;
                }
                
                break;
            }
        }
        
        if(citizenFind != null) {
            for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
                if(citizen.getStatus() == Citizen.STATUS.NORMAL) {
                    if(citizenFind.getPath().contains(citizen.getTmpAddress())) {
                        citizen.setStatus(Citizen.STATUS.FOLLOW);
                    }
                }
            }
        }
    }

    private static void showCitizenActive() {
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getStatus() == Citizen.STATUS.ACTIVE) {
                citizen.display();
            }
        }
    }

    private static void showCitizenFollow() {
        for (Citizen citizen : DataMgr.getInstance().getCitizens()) {
            if(citizen.getStatus() == Citizen.STATUS.FOLLOW) {
                citizen.display();
            }
        }
    }
}


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

5

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