수업

+19 리뷰 프로그램(등록, 보기, 수정, 삭제)

hs_developer 2022. 5. 27. 16:08
기능
1. 글쓰기
2. 목록 보기
3. 수정
4. 삭제

 

ㅡㅡㅡㅡ 메뉴 ㅡㅡㅡㅡ
1. 리뷰 입력
2. 목록 보기
3. 리뷰 수정
4. 리뷰 삭제
9. 종료 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
// Review.java

public class Review {

	int no;
	String name;
	String msg;
	String regDate;
	int star;
	boolean isShow=true; // true: 있음/false: 없음
}
// ReviewManager.java

public class ReviewManager {

	// 리뷰 전체 데이터, 리뷰 보는 모든 사용자가 공유(static)
	static Review[] review = new Review[100];
	static int index = 0;
	
	// 글쓰기
	void write(Review rv)
	{
		review[index] = rv; // 리뷰 쓰고
		index++; // 다음 번호로 이동
	}
	
	// 리뷰 목록
	void list()
	{
		System.out.println("ㅡㅡㅡㅡ 리뷰 ㅡㅡㅡㅡ");
		boolean bCheck = false;
		for(Review rv:review)
		{
			if(rv!=null && rv.isShow==true)
			{
				System.out.println(rv.no + "." + rv.msg);
				System.out.println(rv.name);
				System.out.println(rv.regDate);
				
				for(int i=0; i<rv.star; i++)
				{
					System.out.print("★");
				}
				
				System.out.println("\nㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
				bCheck = true;
			}	
		}
		
		// 등록된 리뷰가 없을 때
		if(bCheck==false)
			System.out.println("리뷰가 없습니다!!");
	}
	
	// 시퀀스 :: 자동 증가 번호
	int max()
	{
		int m=0;
		for(Review rv:review)
		{
			if(rv == null)
				break;
			if(m < rv.no)
				m = rv.no;
		}
		return m+1;
	}
	
	int menu()
	{
		System.out.println("ㅡㅡㅡㅡ 메뉴 ㅡㅡㅡㅡ");
		System.out.println("1. 리뷰 입력");
		System.out.println("2. 목록 보기");
		System.out.println("3. 리뷰 수정");
		System.out.println("4. 리뷰 삭제");
		System.out.println("9. 종료 ");
		System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("메뉴 선택: ");
		return sc.nextInt();
		
	}
	
	void process()
	{
		while(true)
		{
			int m = menu();
			
			// 9. 종료
			if(m==9)
			{
				System.out.println("프로그램 종료");
				break;
			}	
			
			// 1. 리뷰 입력
			else if(m==1)
			{
				System.out.println("ㅡㅡㅡㅡ 리뷰 입력 ㅡㅡㅡㅡ");
				
				Scanner sc = new Scanner(System.in);
	
				System.out.println("이름 입력: ");
				String name = sc.next();
				
				System.out.println("별점 입력: ");
				int star = sc.nextInt();
				
				System.out.println("리뷰 입력: ");
				String msg = sc.nextLine();
				sc.next();
				
				Review r = new Review();
				r.no = max();
				r.name = name;
				r.msg = msg;
				r.star = star;
				r.regDate = "2022-05-27";
				
				// 등록
				write(r);
				
				// 목록으로 이동
				list();
			}
		
			// 2. 목록 보기
			else if(m==2)
			{
				list();
			}
			
			// 3. 수정
			else if(m==3)
			{
				Scanner sc = new Scanner(System.in);
				
				System.out.print("수정할 번호 입력: ");
				int no = sc.nextInt();
				
				// 재 입력
				System.out.println("이름 입력: ");
				String name = sc.next();
				
				System.out.println("별점 입력: ");
				int star = sc.nextInt();
				
				System.out.println("리뷰 입력: ");
				String msg = sc.next();
				
				review[no-1].name = name;
				review[no-1].msg = msg;
				review[no-1].star = star;
				review[no-1].regDate = "2022-05-27";
				
				list();
				
			}
			
			// 4. 삭제
			else if(m==4)
			{
				Scanner sc = new Scanner(System.in);
				
				System.out.println("삭제할 번호 입력: ");
				int no = sc.nextInt();
				
				review[no-1].isShow = false;
				
				list(); // 목록으로 이동
				
			}
			

		}
	}
// ReviewMain.java

public class ReviewMain {

	public static void main(String[] args) {
		
		ReviewManager rm = new ReviewManager();
		rm.process();
	}
}