요구사항
1단계 - 종료
2단계 - 등록
3단계 - 등록시 생성된 명언번호 노출
4단계 - 등록할때 마다 생성되는 명언번호가 증가
5단계 - 목록
6단계 - 1번 명언삭제
7단계 - 존재하지 않는 명언삭제에 대한 예외처리
8단계 - 명언수정
1단계 - 종료
== 명언 앱 ==
명령) 종료
가장 먼저 Scanner를 이용하여 명령어를 입력받고 "종료"를 입력하면 프로그램이 종료되도록 구현하였다.
핵심 코드
Scanner sc = new Scanner(System.in);
System.out.println("== 명언 앱 ==");
String cmd = "";
while (!cmd.equals("종료")) {
System.out.print("명령) ");
cmd = sc.nextLine();
}
sc.close();
2단계 - 등록
== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
명령) 종료
등록 명령을 입력하면 명언과 작가를 입력받도록 구현하였다.
핵심 코드
if(cmd.equals("등록")) {
System.out.print("명언 : ");
String content = sc.nextLine();
System.out.print("작가 : ");
String author = sc.nextLine();
}
3단계 - 등록시 생성된 명언번호 노출
== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 종료
등록이 완료되면 등록된 번호를 출력하도록 수정하고 처음에는 번호를 고정값으로 출력하였다.
System.out.println("1번 명언이 등록되었습니다.");
4단계 - 등록할때 마다 생성되는 명언번호가 증가
== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
2번 명언이 등록되었습니다.
명령) 종료
등록할 때마다 번호가 1씩 증가하도록 lastNo 변수를 추가하였다.
핵심 코드
int lastNo = 0;
System.out.println("%d번 명언이 등록되었습니다." .formatted(++lastNo));
5단계 - 목록
== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 등록
명언 : 과거에 집착하지 마라.
작가 : 작자미상
2번 명언이 등록되었습니다.
명령) 목록
번호 / 작가 / 명언
----------------------
2 / 작자미상 / 과거에 집착하지 마라.
1 / 작자미상 / 현재를 사랑하라.
명령) 종료
등록한 명언을 저장하기 위해 WiseSaying 클래스를 만들고 객체 배열을 사용하였다.
WiseSaying 클래스
class WiseSaying {
int no;
String content;
String author;
}
명언 하나를 객체 하나로 관리하도록 구성하였다.
명언 저장
명언 객체를 생성하여 배열에 저장한다.
WiseSaying wiseSaying = new WiseSaying();
wiseSayings[lastNo] = wiseSaying;
wiseSaying.no = ++lastNo;
wiseSaying.content = content;
wiseSaying.author = author;
목록 출력
가장 최근에 등록한 명언이 위에 오도록 역순으로 출력하였다.
for (int i = lastNo - 1; i >= 0; i--) {
WiseSaying target = wiseSayings[i];
System.out.println("%d / %s / %s" .formatted(target.no, target.author, target.content));
}
전체 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
WiseSaying[] wiseSayings= new WiseSaying[10];
String cmd = "";
int lastNo = 0; // 가장 최근 생성된 명언 번호
System.out.println("== 명언 앱 ==");
while (!cmd.equals("종료")) {
System.out.print("명령) ");
cmd = sc.nextLine();
if (cmd.equals("등록")) {
WiseSaying wiseSaying=new WiseSaying();
wiseSayings[lastNo]=wiseSaying;
System.out.print("명언: ");
String content = sc.nextLine();
System.out.print("작가: ");
String author = sc.nextLine();
wiseSaying.no=++lastNo;
wiseSaying.content=content;
wiseSaying.author=author;
System.out.println("%d번 명언이 등록되었습니다.".formatted(wiseSaying.no));
} else if (cmd.equals("목록")) {
System.out.println("번호 / 작가 / 명언");
System.out.println("----------------------");
for (int i = lastNo-1; i >= 0; i--) {
WiseSaying target=wiseSayings[i];
System.out.println("%d / %s / %s".formatted(target.no, target.author, target.content));
}
}
}
}
}
'알고리즘 > Java' 카테고리의 다른 글
| [Java] 명언 게시판 만들기(1~5단계) - 리팩토링 (0) | 2026.07.16 |
|---|---|
| [Java] 캡슐화(Encapsulation) (0) | 2026.07.15 |
| [Java] 추상 클래스 / 추상 메서드 (0) | 2026.07.15 |
| [Java] 구성 (0) | 2026.07.15 |
| [Java] 상속 (0) | 2026.07.14 |
댓글