#37 java: api 활용

This commit is contained in:
haerong22
2023-05-24 20:30:12 +09:00
parent 26b21420eb
commit 1b4d16c421
6 changed files with 368 additions and 0 deletions

View 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);
}
}

View 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);
}
}

View 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;
}
}

View 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 + '\'' +
'}';
}
}

View File

@@ -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;
}
}

View 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;
}
}
}
}