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 는 총 2개의 클래스가 필요하다.
Order class
showMenu: 지정된 가격을 보여주는 method
setPrice: 컴퓨터, 휴대폰, TV 가격 가격 지정
Result: 선택한 제품에 맞춰서 결과 출력하는 method
Order |
-com_price :int -phone_price:int -tv_price :int -cost : int //주문한 가격 -String item; |
+setPrice(String item, int price): void +showMenu(void): void +Result(int money, int menu) : void |
Main()
처음 시작할 때, 컴퓨터, 핸드폰, TV의 가격을 정한다.
그 후, 현재 갖고 있는 돈을 입력 받는다.
do -while 통해서 Order class 에 있는 showMenu() 를 호출하여 화면에 보여준다
Menu에서 선택한 상품의 가격을 뺀 결과를 Order class 의 Result() 를 호출하여 보여준다.
Y 을 누르면 프로그램 계속 한다.
소스코드
Order 클래스
import java.util.Scanner;
public class Order {
static int com_price = 0, phone_price = 0, tv_price = 0, money;
static String Menu;
String item;
static Scanner scan = new Scanner(System.in);
public static void showMenu() {
Menu = scan.next();
if ("1".equals(Menu)) {// 1번 메뉴 컴퓨터 이벤트
if (money < Order.com_price) {
System.out.println("선택한 상품은 컴퓨터 입니다.");
System.out.println("돈이 부족합니다.");
} else {
System.out.println("선택한 상품은 컴퓨터 입니다.");
money = money - com_price;
System.out.println("남은돈은 " + money + "원 입니다.");
}
} else if ("2".equals(Menu)) {// 2번 메뉴 휴대폰 이벤트
if (money < phone_price) {
System.out.println("선택한 상품은 휴대폰 입니다.");
System.out.println("돈이 부족합니다.");
} else {
System.out.println("선택한 상품은 휴대폰 입니다.");
money = money - phone_price;
System.out.println("남은돈은 " + money + "원 입니다.");
}
} else if ("3".equals(Menu)) {// 3번 메뉴 TV 이벤트
if (money < tv_price) {
System.out.println("선택한 상품은 TV 입니다.");
System.out.println("돈이 부족합니다.");
} else {
System.out.println("선택한 상품은 TV 입니다.");
money = money - tv_price;
System.out.println("남은돈은 " + money + "원 입니다.");
}
} else {// 다른 수를 입력 받았을때의 이벤트
System.out.println("처음부터 다시해주세요.");
return;
}
}
public static void setPrice(String item, int price) {// 가격 변수 연결
if (item == "COMPUTER") {
com_price = com_price;
} else if (item == "Phone") {
phone_price = phone_price;
} else if (item == "TV") {
tv_price = tv_price;
}
}
void Result(int money, int menu) {
return;
}
}
메인클래스
import java.util.Scanner;
public class HW1_1 {
public static int money = 0; // 사용자가 가지고 있는 금액 변수 지정.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("======================\n학번: 20160000\n이름: 컴돌이\n======================");
do {
String check = "Y"; // 메뉴에서 Y선택시 반복하여 진행
System.out.println("상품의 가격을 정해주세요.");
System.out.println("컴퓨터: ");
Order.com_price = scan.nextInt(); // 컴퓨터 가격 입력받기.
System.out.println("휴대폰: ");
Order.phone_price = scan.nextInt(); // 휴대폰 가격 입력받기.
System.out.println("TV: ");
Order.tv_price = scan.nextInt(); // TV 가격 입력받기.
do {
System.out.println("돈을 입력해주세요.");
Order.money = scan.nextInt();// 사용자가 가지고 있는 금액 입력받기.
System.out.println("상품을 선택하세요.");
System.out.println("|1. 컴퓨터: ₩" + Order.com_price + "|");
System.out.println("|2. 휴대폰: ₩" + Order.phone_price + "|");
System.out.println("|3. TV: ₩" + Order.tv_price + "|");
Order.showMenu(); // Order클래스에서 계산후 출력.
System.out.println("계속하시겠습니까? (y/n)");
check = scan.next();// 계속 할것인지 입력받기.
if ((check.equalsIgnoreCase("Y"))) {
continue;// 계속하여 진행됨.
} else if ((check.equalsIgnoreCase("n"))) {
System.exit(0);// 프로그램이 종료됨.
}
} while (true);
} while (true);
}
}
◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요!
이상 문제 9번 입니다.
컴돌이블로그
#자바
'IT > Programming' 카테고리의 다른 글
[Java] 원, 정삼각형, 삼각형 넓이, 둘레 구하기 (0) | 2020.03.04 |
---|---|
[Java] while문을 활용한 가위, 바위, 보 게임 (0) | 2020.03.04 |
[Java] do~while문을 활용한 출력 프로그램 (0) | 2020.03.04 |
[Java] 학생 정보 입력 시스템 출력 (0) | 2020.03.04 |
[Java] 반지름 입력후 원의 넓이 구하기 (0) | 2020.03.04 |