hyndb
명품 JAVA 6장 실습문제 본문
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 |