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)