자세히보기

IT/Programming

[Java] do~while문을 활용한 출력 프로그램

COMDORI 2020. 3. 4. 18:57
728x90
반응형

2020/03/04 - [IT/Programming Practice] - [Java] 간단한 출력문

2020/03/04 - [IT/Programming Practice] - [Java] 계산기

2020/03/04 - [IT/Programming Practice] - [Java] 3 거스름돈 분리 계산

2020/03/04 - [IT/Programming Practice] - [Java] 4 성적 출력 하기

2020/03/04 - [IT/Programming Practice] - [Java] 짝수, 홀수, 제로 숫자 세기 프로그램

2020/03/04 - [IT/Programming Practice] - [Java] 반지름 입력후 원의 넓이 구하기

2020/03/04 - [IT/Programming Practice] - [Java] 학생 정보 입력 시스템 출력

2020/03/04 - [IT/Programming Practice] - [Java] do~while문을 활용한 출력 프로그램

 

▶ 조건

 Class는 총 4개의 클래스가 필요하다.

 Robot은 부모클래스

 DanceRobot, SingRobot, DrawRobot 자식클래스

 각 로봇마다의 기능을 toString()에 정의한다.

 Lab4-1 class

 Main() – do-while 통해서 메뉴 선택 작성

 0을 누르면 프로그램 끝낸다.

 그 외의 숫자를 입력하면 다시 입력한다.

 void info(Robot r)이라는 메소드 정의한다.

 

 가격과 기능을 출력한다.

★ 코드를 복사 하려면 소스코드 오른쪽 상단 "Copy"버튼을 클릭하세요.

소스코드

로봇의 부모클래스

 

public class Robot {			//로봇의 부모 클래스

	int price;
	
	public Robot(int price){
		this.price = price;
	}
}

노래하는 로봇 클래스

class SingRobot extends Robot { // 자식 클래스(노래_로봇)

	public SingRobot(int price) {
		super(price);

	}

	public String toString() { // 기능 출력
		return "노래를 부릅니다.";
	}
}

 

춤추는 로봇 클래스

class DanceRobot extends Robot { // 자식 클래스(춤_로봇)

	public DanceRobot(int price) {
		super(price);
	}

	public String toString() { // 기능 출력
		return "춤을 춥니다.";
	}
}

 

그림그리는 로봇 클래스

class DrawRobot extends Robot { // 자식 클래스(그림그리는_로봇)

	public DrawRobot(int price) {
		super(price);
	}

	public String toString() { // 기능 출력
		return "그림을 그립니다.";
	}
}

 

메인클래스

 

import java.util.Scanner;
public class Lab4_1 {

	void info(Robot r) { // 가격과 기능을 출력하는 메소드
		System.out.println("가격은 " + r.price + "만원 입니다.");
		System.out.println("기능은 " + r.toString());
	}

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);
		Lab4_1 lab = new Lab4_1(); // 랩4의 클래스 를 이어주는 구문.

		DanceRobot DA; // 춤추는 로봇
		DA = new DanceRobot(500); // 춤추는 로봇 가격 정의

		DrawRobot DR; // 그림그리는 로봇
		DR = new DrawRobot(300); // 그림 그리는 로봇 가격 정의

		SingRobot SR; // 노래 부르는 로봇
		SR = new SingRobot(600); // 노래 부르는 로봇 가격 정의

		System.out.println("======================");
		System.out.println("학번: 20160000");
		System.out.println("이름: 컴돌이");
		System.out.println("======================\n");

		String Menu;
		do {
			System.out.println("\t 어떤 로봇을 구매하시겠습니까? (0은 끝내기)");
			System.out.println("|1. 춤추는 로봇| |2. 노래하는 로봇| |3. 그림그리는 로봇|");
			Menu = scan.next(); // 메뉴를 입력받음

			if ("0".equals(Menu)) { // 0번을 입력받았을 경우 프로그램이 종료됨.
				System.out.println("프로그램을 끝내겠습니다.");
				System.exit(0);
			}

			else if ("1".equals(Menu)) { // 1번 메뉴를 선택시 춤추는 로봇의 정보를 나타냄.
				lab.info(DA);

			} else if ("2".equals(Menu)) { // 2번 메뉴를 선택시 노래 부르는 로봇의 정보를 나타냄.
				lab.info(DR);

			} else if ("3".equals(Menu)) { // 3번 메뉴를 선택시 그림그리는 로봇의 정보를 나타냄.
				lab.info(SR);
			} else {
				System.out.println("잘못입력하셨습니다. \n다시 입력하세요.");
			}

		} while (true);
	}
}
//Made by 컴돌이//

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요! 

이상 문제 8번 입니다.

컴돌이블로그

 

#자바

 

728x90
반응형