#37 java: api 활용
This commit is contained in:
67
java/api/src/main/java/kr/pet/mvc/ConsoleView.java
Normal file
67
java/api/src/main/java/kr/pet/mvc/ConsoleView.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class ConsoleView {
|
||||
|
||||
private Scanner scanner = new Scanner(System.in);
|
||||
|
||||
public String getPhoneNumber() {
|
||||
System.out.print("전화번호를 입력하세요: ");
|
||||
return scanner.nextLine();
|
||||
}
|
||||
|
||||
public Customer getCustomerInfo() {
|
||||
System.out.println("신규 고객 정보를 입력하세요. ");
|
||||
|
||||
System.out.print("전화번호: ");
|
||||
String phoneNumber = scanner.nextLine();
|
||||
|
||||
System.out.print("주인 이름: ");
|
||||
String ownerName = scanner.nextLine();
|
||||
|
||||
System.out.print("동물 이름: ");
|
||||
String petName = scanner.nextLine();
|
||||
|
||||
System.out.print("주소: ");
|
||||
String address = scanner.nextLine();
|
||||
|
||||
System.out.print("종류: ");
|
||||
String species = scanner.nextLine();
|
||||
|
||||
System.out.print("출생년(yyyy): ");
|
||||
int birthYear = scanner.nextInt();
|
||||
scanner.nextLine();
|
||||
|
||||
return new Customer(phoneNumber, ownerName, petName, address, species, birthYear);
|
||||
}
|
||||
|
||||
public MedicalRecord getMedicalRecordInfo() {
|
||||
System.out.print("진료일을 입력하세요: ");
|
||||
String date = scanner.nextLine();
|
||||
|
||||
System.out.print("진료내용을 입력하세요: ");
|
||||
String content = scanner.nextLine();
|
||||
|
||||
return new MedicalRecord(null, date, content);
|
||||
}
|
||||
|
||||
public void printMedicalRecordInfo(Customer customer) {
|
||||
List<MedicalRecord> records = customer.getMedicalRecords();
|
||||
|
||||
for (MedicalRecord record : records) {
|
||||
System.out.println("- 진료일: " + record.getDate());
|
||||
System.out.println(" 진료내용: " + record.getContent());
|
||||
System.out.println(" 주인 이름: " + customer.getOwner());
|
||||
System.out.println(" 동물 이름: " + customer.getPetName());
|
||||
System.out.println(" 주소: " + customer.getAddress());
|
||||
System.out.println(" 종류: " + customer.getSpecies());
|
||||
System.out.println(" 출생년도: " + customer.getBirthYear());
|
||||
}
|
||||
}
|
||||
|
||||
public void printMessage(String message) {
|
||||
System.out.println(message);
|
||||
}
|
||||
}
|
||||
84
java/api/src/main/java/kr/pet/mvc/Customer.java
Normal file
84
java/api/src/main/java/kr/pet/mvc/Customer.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Customer {
|
||||
|
||||
private String phoneNumber;
|
||||
private String owner;
|
||||
private String petName;
|
||||
private String address;
|
||||
private String species;
|
||||
private int birthYear;
|
||||
private List<MedicalRecord> medicalRecords;
|
||||
|
||||
public Customer() {
|
||||
}
|
||||
|
||||
public Customer(String phoneNumber, String owner, String petName, String address, String species, int birthYear) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
this.owner = owner;
|
||||
this.petName = petName;
|
||||
this.address = address;
|
||||
this.species = species;
|
||||
this.birthYear = birthYear;
|
||||
this.medicalRecords = new ArrayList<>();
|
||||
}
|
||||
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public void setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
}
|
||||
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public void setOwner(String owner) {
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
public String getPetName() {
|
||||
return petName;
|
||||
}
|
||||
|
||||
public void setPetName(String petName) {
|
||||
this.petName = petName;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getSpecies() {
|
||||
return species;
|
||||
}
|
||||
|
||||
public void setSpecies(String species) {
|
||||
this.species = species;
|
||||
}
|
||||
|
||||
public int getBirthYear() {
|
||||
return birthYear;
|
||||
}
|
||||
|
||||
public void setBirthYear(int birthYear) {
|
||||
this.birthYear = birthYear;
|
||||
}
|
||||
|
||||
public List<MedicalRecord> getMedicalRecords() {
|
||||
return medicalRecords;
|
||||
}
|
||||
|
||||
public void addMedicalRecords(MedicalRecord record) {
|
||||
this.medicalRecords.add(record);
|
||||
}
|
||||
}
|
||||
48
java/api/src/main/java/kr/pet/mvc/CustomerController.java
Normal file
48
java/api/src/main/java/kr/pet/mvc/CustomerController.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CustomerController {
|
||||
|
||||
private List<Customer> customers;
|
||||
private MedicalRecordController recordController;
|
||||
|
||||
public CustomerController(MedicalRecordController recordController) {
|
||||
this.customers = new ArrayList<>();
|
||||
this.recordController = recordController;
|
||||
}
|
||||
|
||||
public void addCustomer(Customer customer) {
|
||||
this.customers.add(customer);
|
||||
}
|
||||
|
||||
public void removeCustomer(String phoneNumber) {
|
||||
for (int i = 0; i < this.customers.size(); i++) {
|
||||
if (this.customers.get(i).getPhoneNumber().equals(phoneNumber)) {
|
||||
this.customers.remove(i);
|
||||
this.recordController.removeMedicalRecord(phoneNumber);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Customer findCustomer(String phoneNumber) {
|
||||
for (Customer customer : customers) {
|
||||
if (customer.getPhoneNumber().equals(phoneNumber)) {
|
||||
return customer;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isPhoneNumberExist(String phoneNumber) {
|
||||
for (Customer customer : customers) {
|
||||
if (customer.getPhoneNumber().equals(phoneNumber)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
50
java/api/src/main/java/kr/pet/mvc/MedicalRecord.java
Normal file
50
java/api/src/main/java/kr/pet/mvc/MedicalRecord.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
public class MedicalRecord {
|
||||
|
||||
private String phoneNumber;
|
||||
private String date;
|
||||
private String content;
|
||||
|
||||
public MedicalRecord() {
|
||||
}
|
||||
|
||||
public MedicalRecord(String phoneNumber, String date, String content) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
this.date = date;
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public void setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MedicalRecord{" +
|
||||
"phoneNumber='" + phoneNumber + '\'' +
|
||||
", date='" + date + '\'' +
|
||||
", content='" + content + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MedicalRecordController {
|
||||
|
||||
private List<MedicalRecord> records = new ArrayList<>();
|
||||
|
||||
public void addMedicalRecord(MedicalRecord record) {
|
||||
this.records.add(record);
|
||||
}
|
||||
|
||||
public void removeMedicalRecord(String phoneNumber) {
|
||||
for (int i = 0; i < records.size(); i++) {
|
||||
if (records.get(i).getPhoneNumber().equals(phoneNumber)) {
|
||||
records.remove(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<MedicalRecord> findMedicalRecord(String phoneNumber) {
|
||||
List<MedicalRecord> result = new ArrayList<>();
|
||||
|
||||
for (MedicalRecord record : records) {
|
||||
if (record.getPhoneNumber().equals(phoneNumber)) {
|
||||
result.add(record);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
85
java/api/src/main/java/kr/pet/mvc/PetMain.java
Normal file
85
java/api/src/main/java/kr/pet/mvc/PetMain.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package kr.pet.mvc;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class PetMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
MedicalRecordController recordController = new MedicalRecordController();
|
||||
CustomerController customerController = new CustomerController(recordController);
|
||||
ConsoleView view = new ConsoleView();
|
||||
|
||||
while (true) {
|
||||
System.out.println("===애완동물 진료관리 시스템===");
|
||||
System.out.println("1. 신규 고객 정보 입력");
|
||||
System.out.println("2. 진료 기록 저장");
|
||||
System.out.println("3. 진료 기록 조회");
|
||||
System.out.println("4. 진료 기록 삭제");
|
||||
System.out.println("5. 종료");
|
||||
System.out.print("원하는 기능을 선택하세요: ");
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
int select = scanner.nextInt();
|
||||
|
||||
switch (select) {
|
||||
case 1:
|
||||
Customer newCustomer = view.getCustomerInfo();
|
||||
String phoneNumber = newCustomer.getPhoneNumber();
|
||||
if (customerController.isPhoneNumberExist(phoneNumber)) {
|
||||
view.printMessage("이미 등록된 전화번호 입니다.");
|
||||
continue;
|
||||
}
|
||||
customerController.addCustomer(newCustomer);
|
||||
view.printMessage("고객 정보가 추가되었습니다.");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
phoneNumber = view.getPhoneNumber();
|
||||
if (customerController.findCustomer(phoneNumber) == null) {
|
||||
view.printMessage("해당 전화번호를 가진 고객이 없습니다.");
|
||||
break;
|
||||
}
|
||||
|
||||
Customer customer = customerController.findCustomer(phoneNumber);
|
||||
MedicalRecord newRecord = view.getMedicalRecordInfo();
|
||||
newRecord.setPhoneNumber(phoneNumber);
|
||||
recordController.addMedicalRecord(newRecord);
|
||||
customer.addMedicalRecords(newRecord);
|
||||
view.printMessage("진료기록이 저장되었습니다.");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
phoneNumber = view.getPhoneNumber();
|
||||
List<MedicalRecord> records = recordController.findMedicalRecord(phoneNumber);
|
||||
if (records.isEmpty()) {
|
||||
view.printMessage("해당 전화번호를 가진 진료기록이 없습니다.");
|
||||
break;
|
||||
}
|
||||
|
||||
customer = customerController.findCustomer(phoneNumber);
|
||||
view.printMedicalRecordInfo(customer);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
phoneNumber = view.getPhoneNumber();
|
||||
if (customerController.findCustomer(phoneNumber) == null) {
|
||||
view.printMessage("해당 전화번호를 가진 고객이 없습니다.");
|
||||
break;
|
||||
}
|
||||
|
||||
recordController.removeMedicalRecord(phoneNumber);
|
||||
view.printMessage("진료기록 정보가 삭제되었습니다.");
|
||||
break;
|
||||
|
||||
case 5:
|
||||
view.printMessage("프로그램을 종료합니다.");
|
||||
return;
|
||||
|
||||
default:
|
||||
view.printMessage("잘못된 선택입니다.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user