diff --git a/java/api/src/main/java/kr/pet/mvc/ConsoleView.java b/java/api/src/main/java/kr/pet/mvc/ConsoleView.java new file mode 100644 index 00000000..ba3302b2 --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/ConsoleView.java @@ -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 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); + } +} diff --git a/java/api/src/main/java/kr/pet/mvc/Customer.java b/java/api/src/main/java/kr/pet/mvc/Customer.java new file mode 100644 index 00000000..b62479a7 --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/Customer.java @@ -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 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 getMedicalRecords() { + return medicalRecords; + } + + public void addMedicalRecords(MedicalRecord record) { + this.medicalRecords.add(record); + } +} diff --git a/java/api/src/main/java/kr/pet/mvc/CustomerController.java b/java/api/src/main/java/kr/pet/mvc/CustomerController.java new file mode 100644 index 00000000..3d2bf29f --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/CustomerController.java @@ -0,0 +1,48 @@ +package kr.pet.mvc; + +import java.util.ArrayList; +import java.util.List; + +public class CustomerController { + + private List 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; + } +} diff --git a/java/api/src/main/java/kr/pet/mvc/MedicalRecord.java b/java/api/src/main/java/kr/pet/mvc/MedicalRecord.java new file mode 100644 index 00000000..5543ecd8 --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/MedicalRecord.java @@ -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 + '\'' + + '}'; + } +} diff --git a/java/api/src/main/java/kr/pet/mvc/MedicalRecordController.java b/java/api/src/main/java/kr/pet/mvc/MedicalRecordController.java new file mode 100644 index 00000000..f92b1213 --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/MedicalRecordController.java @@ -0,0 +1,34 @@ +package kr.pet.mvc; + +import java.util.ArrayList; +import java.util.List; + +public class MedicalRecordController { + + private List 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 findMedicalRecord(String phoneNumber) { + List result = new ArrayList<>(); + + for (MedicalRecord record : records) { + if (record.getPhoneNumber().equals(phoneNumber)) { + result.add(record); + } + } + + return result; + } +} diff --git a/java/api/src/main/java/kr/pet/mvc/PetMain.java b/java/api/src/main/java/kr/pet/mvc/PetMain.java new file mode 100644 index 00000000..e0c91b08 --- /dev/null +++ b/java/api/src/main/java/kr/pet/mvc/PetMain.java @@ -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 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; + } + } + } +}