자바의 기초 - 학원 자유주제(tv의 기능구현)

2023. 3. 26. 16:46· JAVA 공부
반응형

오늘은 일요일이다. 주말 동안 tv와 자판기의 모든 경우의 수를 자유롭게 구현하라는 과제를 받았다.

자판기는 경우의 수가 재고의 추가, 매진, 상품과잉,  검색 등등 이중 for문으로 하나씩 비교하는 방법으로 밖에 못쓰게

제한이 걸려있어서 시작도 못하고 있다.

그렇기에 이번에는 내가 구현한 tv를 올려보려고 한다.

 

내가 구현한  tv의 경우의 수는 일단 tv전원을 켜고 끄는 간단한 기능부터

꺼진 상태에서는 볼륨이나 채널을 조정할수 없게 해 봤다.

꺼진 상태에서 누르면 "tv를 키세요"라는 알림이 나오고 b키를 누르면 돌아간다.

 

전원을 켜고 case의 채널조절 메뉴를 누르면 채널 Up은 'u' Down 은 'd'로 눌러서 바꿀 수 있다.

마지막으로 음소거도 만들어놨다.

 

public class Main {


	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int menu;
		String ch_con, vol_con, back_menu;

		String Up = "u", Down = "d", Back = "b";

		do {
			System.out.println("1. 전원On/Off");
			System.out.println("2. 채널 Up/Down");
			System.out.println("3. 볼륨 Up/Down");
			System.out.println("4. 음소거");
			System.out.println("0. 종료");

			System.out.print("조작할 목록을 선택해 주세요 : ");
			menu = Integer.parseInt(sc.nextLine());

			Tv t1 = new Tv();

			switch (menu) {

			case 1:
				t1.Tvpower();
				break;
			case 2:
				System.out.println("채널Up은'u',Down은 'd'입니다");
				if (t1.power == false) {
					System.out.println("전원을 켜주세요 뒤로가기는 'b'키입니다.");
					back_menu = sc.nextLine();
					if (back_menu.equals(Back)) {
						break;
					}
				} else if (t1.power == true) {
					for (int i = 0; i <= t1.ch + 1; i++) {
						ch_con = sc.nextLine();
						if (ch_con.equals(Up)) {
							t1.Chup();

						}
						for (i = t1.ch; i >= t1.ch - 1; i--) {
						}
						if (ch_con.equals(Down)) {
							t1.chDown();
						} else if (ch_con.equals(Back)) {
							break;
						}
					}
				}

			case 3:
				System.out.println("채널Up은'u',Down은 'd'입니다");
				if (t1.power == false) { // 전원이 켜져있는지 확인하고 조작을 한다
					System.out.println("전원을 켜주세요 뒤로가기는 'b'키 입니다");
					back_menu = sc.nextLine();
					if (back_menu.equals(Back)) {
						break;
					}
				} else if (t1.power == true) {
					for (int i = 0; i <= t1.vol + 1; i++) {
						vol_con = sc.nextLine();
						if (vol_con.equals(Up)) {
							t1.VolUp();
						}
						for (i = t1.vol; i >= t1.vol - 1; i--) {
						}
						if (vol_con.equals(Down)) {
							t1.VolDown();
						} else if (vol_con.equals(Back)) {
							break;
						}
					}
				}
			case 4:
				t1.VolOff();
				break;
			}

		} while (menu != 0);
		System.out.println("조작을 종료합니다");
		sc.close();
	}
}
public class Tv {
	static int ch, vol;
	private static String name = "Samsung";
	static boolean power = false;
	// 속성 : 전원, 채널, 음량, Tv이름...?
	// 기능 : 전원온오프, 채널올림/내림, 음량올림/내림, 음소거

	// 채널은 범위안에서 값이 순환할 수 있고, 음량은 최소/최대를 벗어날 수 없다

	public static boolean Tvpower() {
		if (power == false) {
			System.out.printf("%s tv가 켜졌습니다\n", name);
			power = true;
		} else if (power == true) {
			System.out.println("꺼짐");
			power = false;
		}
		return power;
	}

	public static boolean Tvpower1() {
		power = true;
		return power;
	}

	public int Chup() {
		ch++;
		System.out.printf("현재 채널은 %d번 입니다\n", ch);
		if (ch > 50)

		{
			System.out.println("채널 50번을 넘어버렸습니다. 1번으로 돌아갑니다.");
			ch = 1;
		}
		return ch;
	}

	public int chDown() {
		ch--;
		System.out.printf("현재 채널은 %d번 입니다\n", ch);
		if (ch < 0) {
			System.out.println("채널이 0이하입니다. 채널1로 돌아갑니다.");
			ch = 1;
		}
		return ch;
	}

	public int VolUp() {
		vol++;
		System.out.printf("현재 볼륨을 %d입니다\n", vol);

		if (vol > 100) {
			System.out.println("볼륨이 100을 넘었습니다");
			vol = 99;
		}
		return vol;
	}

	public int VolDown() {
		if (power == false) {
			System.out.println("전원을 켜주세요");
		} else if (power == true) {
			vol--;
			System.out.printf("현재 볼륨을 %d입니다\n", vol);
			if (vol < 0) {
				System.out.println("볼륨이 0입니다");
				vol = 0;
			}
		}
		return vol;
	}

	public int VolOff() {
		if (power == false) {
			System.out.println("전원을 켜주세요");
		} else if (power == true) {
			vol = 0;
			System.out.println(vol);
		}
		return vol;
	}
}

내용자체는 간단할 수 있지만 바로바로 코드가 짜이지 않는 입장에서

이것을 만드는데도 적지 않은 시간이 걸렸다.

 

자판기는 학원에서 알려주시는 답안을 참고하여 다음 주 주만에 변형하여 코드를 짜봐야 할 것 같다.

그래도 이것이라도 혼자 만들 수 있다는 것에 작게나마 위안으로 삼으며 

내일 학원에 대비해 다른 공부를 하러 가보겠다.

 

 

반응형

'JAVA 공부' 카테고리의 다른 글

자바의 기초 - 주단위 능력평가(회원관리 프로그램 CRUD)  (0) 2023.03.31
자바의 기초 - 상속,다형성  (0) 2023.03.27
자비의 기초 - 객체지향파트(생성자,메서드, 함수 심화)  (0) 2023.03.26
블로그 복붙방지 코드(개인용)  (0) 2023.03.24
자바의 기초 - 객체지향파트 중 생성자(Constructor)  (0) 2023.03.23
'JAVA 공부' 카테고리의 다른 글
  • 자바의 기초 - 주단위 능력평가(회원관리 프로그램 CRUD)
  • 자바의 기초 - 상속,다형성
  • 자비의 기초 - 객체지향파트(생성자,메서드, 함수 심화)
  • 블로그 복붙방지 코드(개인용)
Yamahost
Yamahost
반응형
Yamahost
꿈을 쫓는 거북이
Yamahost
전체
오늘
어제
  • 분류 전체보기 (54)
    • React (1)
    • SpringBoot (3)
    • 개인 서버(도커등) (10)
    • CS지식(공부용) (1)
    • SpringFramework (4)
    • JSP (4)
    • 오라클 DB (2)
    • 화면구현(HTML,CSS) (3)
    • JAVA 공부 (14)
    • 학원 스터디그룹 과제 (2)
    • 코딩테스트 연습 (0)
    • C언어 공부 (8)
    • 토이프로젝트 (0)
    • 과거글 (2)

블로그 메뉴

  • 홈
  • 글쓰기
  • 깃허브
  • 방명록
  • 관리자설정

공지사항

인기 글

태그

  • 미8
  • 태국 여행
  • 샤오미
  • 뚝뚝이
  • 지문인식
  • Mi8
  • 빠뚜사이
  • 친구
  • 라이트
  • 라오스 여행
  • 망고
  • 여행

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Yamahost
자바의 기초 - 학원 자유주제(tv의 기능구현)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.