hyndb

명품 JAVA 6장 실습문제 본문

JAVA/명품 JAVA 실습문제

명품 JAVA 6장 실습문제

ttttki913 2023. 6. 6. 22:51
prac 6_1

class MyPoint {
	private int x, y;
	
	public MyPoint(int x, int y) {
		this.x = x;
		this.y = y;
	}
	
	public String toString() {
		return "Point(" + x + "," + y +")";
	}
}

public class Practice {
	public static void main(String[] args) {
		MyPoint p = new MyPoint(3,50);
		MyPoint q = new MyPoint(4,50);
		System.out.println(p);
		
		if(p.equals(q))
			System.out.println("같은 점");
		else
			System.out.println("다른 점");
	}
}

 

prac 6_2

class Circle {
	private int x, y, radius;
	
	public Circle(int x, int y, int radius) {
		this.x = x; this.y = y; this.radius = radius;
	}
	
	public String toString() {
		return "Circle(" + x + "," + y +")" + "반지름" + radius;
	}
	
	public boolean equals(Object obj) {
		Circle c = (Circle) obj;
		return (this.x == c.x && this.y == c.y ) ? true : false;
	}
}

public class Practice {
	public static void main(String[] args) {
		Circle a = new Circle(2,3,5);
		Circle b = new Circle(2,3,30);
		System.out.println("원 a : " + a);
		System.out.println("원 b : " + b);
		
		if(a.equals(b))
			System.out.println("같은 원");
		else
			System.out.println("서로 다른 원");
	}
}
prac 6_3

//Calc.class

package etc;

public class Calc {
	private int x, y;
	
	public Calc(int x, int y) {
		this.x = x;
		this.y = y;
	}
	public int sum() {
		return x + y;
	}
}

//MainApp.class

package main;

import etc.Calc;

public class MainApp {
	public static void main(String[] args) {
		Calc c = new Calc(10,20);
		System.out.println(c.sum());
	}
}
prac 6_4

//Shape.class
package base;
public class Shape {
	public void draw() {
		System.out.println("Shape");
	}
}

//Circle.class
package derived;
import base.Shape;

public class Circle extends Shape {
	public void draw() {
		System.out.println("Circle");
	}
}

//GraphicEditor.class
package app;
import base.Shape;
import derived.Circle;

public class GraphicEditor {
	public static void main(String[] args) {
		Shape shape = new Circle();
		shape.draw();
	}
}
prac 6_5

import java.util.*;

public class Practice {
	public static void main(String[] args) {
		Calendar now = Calendar.getInstance();
		int hour = now.get(Calendar.HOUR_OF_DAY);
		int minute = now.get(Calendar.MINUTE);
		System.out.println("현재 시각은 " + hour + "시 " + minute + "분 입니다.");
		
		if (hour > 4 && hour < 12)
			System.out.println("Good Morning");
		else if (hour < 18)
			System.out.println("Good Afternoon");
		else if (hour < 22)
			System.out.println("Good Evening");
		else
			System.out.println("Good Night");
	}
}
prac 6_6

import java.util.*;

class Enter {
	private Scanner scanner;
	private Calendar now;
	private String enter;
	private int time;

	public int enter() {
		scanner = new Scanner(System.in);
		enter = scanner.nextLine();
		now = Calendar.getInstance();
		time = now.get(Calendar.SECOND);
		System.out.println("\t현재 초 시간 = " + time);
		return time;
	}
}

public class Practice {
	public static void main(String[] args) {
		String names[] = { "황기태", "이재문" };
		Enter enter = new Enter();
		int time1, time2;
		int times[] = new int[2];
		System.out.println("10초에 가까운 사람이 이기는 게임입니다.");

		for (int i = 0; i < 2; i++) { // 황기태, 이재문 각각 한 번씩 반복
			System.out.print(names[i] + "시작 <Enter>키 >>");
			time1 = enter.enter();
			System.out.print(names[i] + "10초 예상 후 <Enter>키 >>");
			time2 = enter.enter();

			if (time1 > time2) // 10초와 차이 구하기
				times[i] = (60 - time1) - time2;
			else
				times[i] = time1 - time2;
		}
		times[0] = Math.abs(times[0]);
		times[1] = Math.abs(times[1]); // 절댓값으로 만들어주기

		if (times[0] > times[1])
			System.out.println("황기태의 결과 " + times[0] + ", 이재문의 결과" + times[1] + ", 승자는 황기태");
		else
			System.out.println("황기태의 결과 " + times[0] + ", 이재문의 결과" + times[1] + ", 승자는 이재문");
	}
}
prac 6_7

import java.util.*;

public class Practice {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		while(true) {
			System.out.print(">>");
			String s = scanner.nextLine();
			
			if (s.equals("그만")) {
				System.out.println("종료합니다...");
				break;
			}
			StringTokenizer st = new StringTokenizer(s, " ");
			System.out.println("어절 개수는 "+ st.countTokens());
		} scanner.close();
	}
}
prac 6_8

import java.util.*;

public class Practice {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("문자열을 입력하세요. 빈칸이나 있어도 되고 영어 한글 모두 됩니다.");
		String s = scanner.nextLine();

		for(int i = 0; i<s.length(); i++) {
			System.out.print(s.substring(i));
			System.out.println(s.substring(0,i));
		}
		scanner.close();
	}
}
prac 6_9

import java.util.*;

class Player {
	private String name;
	private Scanner scanner = new Scanner(System.in);

	public Player(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public int turn() {
		System.out.print(name + "[가위(1), 바위(2), 보(3), 끝내기(4)]>> ");
		return scanner.nextInt();
	}
}

class Computer extends Player {
	public Computer(String name) {
		super(name);
	}

	public int turn() {
		return (int) (Math.random() * 3 + 1);
	}
}

public class Practice {
	private final String s[] = { "가위", "바위", "보" };
	private Player[] players = new Player[2];

	public Practice() {
		players[0] = new Player("철수");
		players[1] = new Computer("컴퓨터");
	}

	public void run() {
		int User, Computer;
		while (true) {
			User = players[0].turn(); // 가위바위보 입력 스캐너 코드 반복

			if (User == 4)
				break;

			Computer = players[1].turn(); // 컴퓨터의 랜덤 실수 발생

			if (User >= 1 || User <= 3) {
				System.out.print(players[0].getName() + "(" + s[User - 1] + ") :");
				System.out.println(players[1].getName() + "(" + s[Computer - 1] + ")");
			}
			int n = User - Computer;
			switch (n) {
			case 0:
				System.out.println("무승부입니다.");
				break;
			case -2:
			case 1:
				System.out.println(players[1].getName() + "가 이겼습니다.");
				break;
			case -1:
			case 2:
				System.out.println(players[0].getName() + "가 이겼습니다.");
			}
		}
	}

	public static void main(String[] args) {
		Practice game = new Practice();
		game.run();
	}
}
prac 6_10

import java.util.*;

class Person {
	private String name;
	private Scanner scanner = new Scanner(System.in);

	public Person(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}
}

class GambleGame {
	private Person[] s = new Person[2];
	public Scanner scanner;
	public int index;

	public GambleGame() {
		scanner = new Scanner(System.in);
		index = 0;
	}

	public void run() {
		System.out.print("1번째 선수 이름>>");
		s[0] = new Person(scanner.nextLine());
		System.out.print("2번쨰 선수 이름>>");
		s[1] = new Person(scanner.nextLine());

		while (true) {
			System.out.print("[" + s[index].getName() + "]:" + "<Enter>");
			scanner.nextLine();

			int a = (int) (Math.random() * 3 + 1);
			int b = (int) (Math.random() * 3 + 1);
			int c = (int) (Math.random() * 3 + 1);
			System.out.print("\t" + a + "\t" + b + "\t" + c + "\t");

			if (a == b && b == c) {
				System.out.println(s[index].getName() + "님이 이겼습니다.");
				break;
			} else {
				System.out.println("아쉽군요!");
				index = index == 1 ? 0 : 1;
			}
		}
	}

}

public class Practice {
	public static void main(String[] args) {
		GambleGame game = new GambleGame();
		game.run();
	}
}
prac 6_11

import java.util.*;

public class Practice {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print(">>");
		String s = scanner.nextLine();
		StringBuffer sb = new StringBuffer(s);
		
		while(true) {
			System.out.print("명령: ");
			String cmd = scanner.nextLine();
			
			if(cmd.equals("그만")) {
				System.out.print("종료합니다.");
				break;
			}
			String[] tokens = cmd.split("!"); //명령을 !기호 기준으로 split
			if(tokens.length != 2) 
				System.out.println("잘못된 명령입니다.");
			else {
				if(tokens[0].length() == 0 || tokens[1].length() == 0) {
					System.out.println("잘못된 명령입니다!");
					continue;
				}
				int index = sb.indexOf(tokens[0]);
				
				if (index == -1) {
					System.out.println("찾을 수 없습니다!");
					continue;
				}
				sb.replace(index,  index + tokens[0].length(), tokens[1]);
				System.out.println(sb.toString());
			}
		}
		scanner.close();
	}
}
prac 6_12

import java.util.*;

class Person {
	private String name;
	private Scanner scanner = new Scanner(System.in);

	public Person(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}
}

class GambleGame {
	private Person[] s = new Person[3];
	public Scanner scanner;
	public int index, index2;
	public String buffer;

	public GambleGame() {
		scanner = new Scanner(System.in);
		index = 0;
		index2 = 0;
	}

	public void run() {
		System.out.print("겜블링 게임에 참여할 선수 숫자>>");
		index = scanner.nextInt();
		s = new Person[index]; // 입력된 숫자만큼의 배열 생성
		buffer = scanner.nextLine();

		for (int i = 0; i < index; i++) {
			System.out.print(i + 1 + "번째 선수 이름>>");
			s[i] = new Person(scanner.nextLine());
		}

		while (true) {
			System.out.print("[" + s[index2].getName() + "]:" + "<Enter>");
			scanner.nextLine();

			int a = (int) (Math.random() * 3 + 1);
			int b = (int) (Math.random() * 3 + 1);
			int c = (int) (Math.random() * 3 + 1);
			System.out.print("\t" + a + "\t" + b + "\t" + c + "\t");

			if (a == b && b == c) {
				System.out.println(s[index2].getName() + "님이 이겼습니다.");
				break;
			} else {
				System.out.println("아쉽군요!");
				index2++;
				index2 = index - 1 >= index2 ? index2 : 0;
			}
		}
	}

}

public class Practice {
	public static void main(String[] args) {
		GambleGame game = new GambleGame();
		game.run();
	}
}

'JAVA > 명품 JAVA 실습문제' 카테고리의 다른 글

명품 JAVA 2장 실습문제  (0) 2023.07.25
명품 JAVA 9장 실습문제  (0) 2023.07.09
명품 JAVA 8장 실습문제  (0) 2023.06.10
명품 JAVA 7장 실습문제  (0) 2023.06.09
명품 JAVA 5장 실습문제  (0) 2023.06.06