By GokiSoft.com|
13:44 15/04/2020|
Java Basic
Share Code - Hướng dẫn chữa bài COVID-19 TOOANG - C1907L
/*
* 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();
}
}
}
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)