동물관리 프로그램 만들기 과제 [미완성]
package Task.animalcaresysteom.lavel1;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int age1=0;
String kind="";
int number6=0;
System.out.println("=== 동물원 관리 시스템 ===");
System.out.println("1. 동물 등록\n2. 동물 목록 보기\n3. 동물과 놀기\n4. 먹이주기\n5. 동물 상태 확인\n6. 울음소리 듣기\n7. 종료");
Scanner sc = new Scanner(System.in);
Zoo zoo = new Zoo();//객체 생성
while(true){
System.out.print("메뉴를 선택하세요:");
String input1 = sc.nextLine();//사용자 입력
boolean condtion1 = true;
int dotCount1 = 0;
if (input1.length() == 0) { // 빈 문자열 검사
condtion1 = false;
} else {
for (int i = 0; i < input1.length(); i++) {
char c = input1.charAt(i);
if (c >= '1' && c <= '7') {
continue; // 숫자는 OK
} else if (c == '.') {
dotCount1++;
if (dotCount1 > 0) { // 소수점이 1개 이상이면 오류 출력
System.out.println("0과 문자 특수문자는 입력이 불가합니다");
System.out.println("1부터 7까지 메뉴 번호만 입력하세요");
break;
}
} else if (c == '-') {
if (i != input1.length()) { // '-'가 있다면 오류 출력
System.out.println("0과 문자 특수문자는 입력이 불가합니다");
System.out.println("1부터 7까지 메뉴 번호만 입력하세요");
break;
}
} else {
System.out.println("0과 문자 특수문자는 입력이 불가합니다");
System.out.println("1부터 7까지 메뉴 번호만 입력하세요");
break;
}
}
}
if (input1.equals("1")) {//1.동물등록
System.out.print("동물의 이름을 입력하세요:");
String name = sc.nextLine();//사용자 입력
while(true){
System.out.print("동물 나이를 입력하세요:");
String input3 = sc.nextLine();//사용자 입력
boolean condtion = true;
int dotCount = 0;
if (input3.length() == 0) { // 빈 문자열 검사
condtion = false;
} else {
for (int i = 0; i < input3.length(); i++) {
char c = input3.charAt(i);
if (c >= '0' && c <= '9') {
continue; // 숫자는 OK
} else if (c == '.') {
dotCount++;
if (dotCount > 0) { // 소수점이 1개 이상이면 오류 출력
condtion = false;
break;
}
} else if (c == '-') {
if (i != input3.length()) { // '-'가 있다면 오류 출력
condtion = false;
break;
}
} else {
condtion = false; // 숫자, '.', '-' 외 문자 존재 오류출력
break;
}
}
}
if (condtion) {
int number = Integer.parseInt(input3);//모든 유효성 검사를 통과한 입력값을 int형을 변환
age1=number;//변환된 값을 저장
break;
} else {
System.out.println("0과 문자 특수문자는 입력이 불가합니다");
System.out.println("0을 초과하는 정수로 입력 하세요");
}
}
while(true){
System.out.print("동물의 종류를 선택하세요(1.강아지 2.고양이):");
String input4 = sc.nextLine();//사용자 입력
if (input4.equals("1")) {
kind="강아지";//변환된 값을 저장
break;
}else if (input4.equals("2")) {
kind="고양이";//변환된 값을 저장
break;
}else {
System.out.println("0과 문자 특수문자는 입력이 불가합니다");
System.out.println("1과 2 둘중에 하나만 입력하세요");
}
}
zoo.addAnimal(name,age1,kind);//호출
}else if (input1.equals("2")) {//2.동물 목록 보기
System.out.println("=======등록된 동물의 목록입니다=======");
zoo.showAnimals();
}else if (input1.equals("3")) {//3.동물과 놀기
}else if (input1.equals("4")) {//4.먹이주기
}else if (input1.equals("5")) {//5.동물 상태 확인
}else if (input1.equals("6")) {//6.울음소리 듣기
while (true) {
if (zoo.getAnimalCount() == 0) {
System.out.println("등록된 동물이 없습니다!");
break;
}
System.out.println("울음소리를 들을 동물을 선택하세요:");
zoo.showAnimals();
System.out.print("선택: ");
String input5 = sc.nextLine();
boolean isValid = true;
// 빈 입력 체크
if (input5.length() == 0) {
isValid = false;
} else {
// 숫자 여부 체크 (문자 길이만큼 탐색)
for (int i = 0; i < input5.length(); i++) {
char c = input5.charAt(i);
if (!(c >= '0' && c <= '9')) { // 숫자가 아니면
isValid = false;
break;
}
}
}
if (!isValid) {
System.out.println("숫자만 입력하세요!");
continue;
}
number6 = Integer.parseInt(input5);
// 범위 체크
if (number6 < 1 || number6 > zoo.getAnimalCount()) {
System.out.println("등록된 동물 번호만 입력하세요!");
System.out.println("현재 동물 수: " + zoo.getAnimalCount() + "마리");
continue;
}
// 여기까지 통과 → 울음소리 출력 + 반복 종료
zoo.playSound(number6 - 1);
break;
}
}else if (input1.equals("7")) {//7.종료
System.out.println("=== 프로그램을 종료합니다. ===");
System.exit(0);//프로그램 종료
}
}
}
}
package Task.animalcaresysteom.lavel1;
import java.util.ArrayList;
public class Zoo {
/*
-List~Animal~ animals
+addAnimal(Animal a)
+showAllAnimals()
+feedAnimal(int index)
+playWithAnimal(int index)
+playSound(int index)*/
private ArrayList<Animal> animals = new ArrayList<>();
public void addAnimal(String name, int age, String kind) {
Animal newAnimal = new Animal(name, age, kind);
animals.add(newAnimal);
System.out.println(name+"("+kind+", "+age+")"+"가 등록되었습니다.");
}
public void showAnimals() {
if(animals.isEmpty()) {
System.out.println("등록된 동물이 없습니다.");
return;
}
for(int i = 0; i < animals.size(); i++) {
Animal a = animals.get(i);
System.out.println((i + 1) + ". " + a.getName() + " (" + a.getKind() + ", " + a.getAge() + "살)");
}
}
public int getAnimalCount() {
return animals.size();
}
public void playSound(int index) {
Animal a = animals.get(index);
System.out.println(a.getName() + ":" + a.getSound());
}
}
package Task.animalcaresysteom.lavel1;
public class Animal {
private String name;
private int age;
private String kind;
int hunger = 0;
int happiness = 0;
String sound;
//생성자
public Animal(String name, int age, String kind) {
this.name = name;
this.age = age;
this.kind = kind;
if(kind == "강아지"){
this.sound = "멍멍!";
}else if(kind == "고양이"){
this.sound = "야옹!";
}
}
// getter
public String getName() { return name; }
public int getAge() { return age; }
public String getKind() { return kind; }
@Override
public String toString() {
return "Animal [name=" + name + ", age=" + age + ", kind=" + kind + "]";
}
public String getSound() {
return sound;
}
}
'spring_2기[사전캠프]' 카테고리의 다른 글
| 내배캠 3일차(리마인드) (0) | 2025.11.26 |
|---|---|
| [과제]동물 관리 시스템 (0) | 2025.11.26 |
| Spring 2기 7일차 [사전캠프] (0) | 2025.11.19 |
| Spring 2기 6일차 [사전캠프] (0) | 2025.11.18 |
| Spring 2기 5일차 [사전캠프] (0) | 2025.11.17 |