문제풀이/명품 자바 프로그래밍(개정4판)
명품 자바 프로그래밍(개정4판) 제 6장 실습문제
Hyeon-Uk
2020. 11. 22. 23:45
반응형
[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 boolean equals(MyPoint p) {
return this.x==p.x&&this.y==p.y;
}
}
public class p0601 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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("다른 점");
}
}
}
[2번]
class Circle{
private int x,y,r;
public Circle(int x,int y,int r) {
this.x=x;
this.y=y;
this.r=r;
}
public String toString() {
return "Circle("+x+","+y+")반지름"+r;
}
public boolean equals(Circle a) {
return x==a.x&&y==a.y&&r==a.y;
}
}
public class p0602 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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("다른 원");
}
}
}
[3번]
package main;
import etc.Calc;
public class p0603 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calc c=new Calc(10,20);
System.out.println(c.sum());
}
}
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;
}
}
[4번]
package app;
import derived.Circle;
import base.Shape;
public class p0604 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape shape=new Circle();
shape.draw();
}
}
package base;
public class Shape {
public void draw() {System.out.println("Shape");}
}
package derived;
import base.Shape;
public class Circle extends Shape {
public void draw() {System.out.println("Circle");}
}
[5번]
import java.util.Calendar;
public class p0605 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar c= Calendar.getInstance();
int h=c.get(Calendar.HOUR_OF_DAY);
int m=c.get(Calendar.MINUTE);
System.out.println("현재 시간은 "+h+"시 "+m+"분 입니다.");
if(h>=4&&h<=12) {
System.out.println("Good Morning");
}
else if(h<=18){
System.out.println("Good Evening");
}
else {
System.out.println("Good Night");
}
}
}
[6번]
import java.util.Calendar;
import java.util.Scanner;
class game{
String name;
int sec;
public game(String name) {
this.name=name;
}
public void go() {
System.out.print(name+" 시작 <Enter>키 >>");
Scanner sc=new Scanner(System.in);
sc.nextLine();
Calendar c= Calendar.getInstance();
int r1=c.get(Calendar.SECOND);
System.out.println("\t현재 초 시간 = "+r1);
System.out.print("10초 예상 후 <Enter>키 >>");
sc.nextLine();
c=Calendar.getInstance();
int r2=c.get(Calendar.SECOND);
System.out.println("\t현재 초 시간 = "+r2);
sec=r2<r1?r2+60-r1:r2-r1;
}
public void print() {
System.out.print(name+"의 결과 "+sec+",");
}
}
public class p0606 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("10초에 가까운 사람이 이기는 게임입니다.");
game a=new game("황기태");
game b=new game("이재문");
a.go();
b.go();
a.print();
b.print();
if(Math.abs(10-a.sec)>Math.abs(10-b.sec)) {
System.out.println("승자는 "+b.name);
}
else if(Math.abs(10-a.sec)<Math.abs(10-b.sec)) {
System.out.println("승자는 "+a.name);
}
else {
System.out.println("비겼습니다.");
}
}
}
[7번]
import java.util.Scanner;
public class p0607 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(true) {
String st=sc.nextLine();
if(st.equals("그만")) {
break;
}
String arr[]=st.split(" ");
System.out.println("어절 개수는 "+arr.length);
}
System.out.println("종료합니다....");
}
}
[8번]
import java.util.Scanner;
public class p0608 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("문자열을 입력하세요. 빈칸이 있어도되고 영어 한글 모두 됩니다.");
String str=sc.nextLine();
int len=str.length();
for(int i=0;i<len;i++) {
System.out.print(str.substring(i+1,len));
System.out.print(str.substring(0,i+1));
System.out.println();
}
}
}
[9번]
import java.util.Random;
import java.util.Scanner;
class rsp{
String n;
String name;
public rsp(String name) {
this.name=name;
}
public void Set(int op) {
if(op==1) {
n="가위";
}
else if(op==2) {
n="바위";
}
else {
n="보";
}
}
public void compare(rsp b) {
if(n.equals("가위")) {
if(b.n.equals("가위")) {
System.out.println("비겼습니다.");
}
else if(b.n.equals("바위")) {
System.out.println(b.name+"가 이겼습니다.");
}
else {
System.out.println(name+"가 이겼습니다.");
}
}
else if(n.equals("바위")) {
if(b.n.equals("가위")) {
System.out.println(name+"가 이겼습니다.");
}
else if(b.n.equals("바위")) {
System.out.println("비겼습니다.");
}
else {
System.out.println(b.name+"가 이겼습니다.");
}
}
else {
if(b.n.equals("가위")) {
System.out.println(b.name+"가 이겼습니다.");
}
else if(b.n.equals("바위")) {
System.out.println(name+"가 이겼습니다.");
}
else {
System.out.println("비겼습니다.");
}
}
}
public String toString() {
return name+"("+n+")";
}
}
public class p0609 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
rsp cs=new rsp("철수");
rsp com=new rsp("컴퓨터");
Random r=new Random();
r.setSeed(System.currentTimeMillis());
while(true) {
System.out.print("철수[가위(1), 바위(2), 보(3), 끝내가(4)]>>");
int op=sc.nextInt();
if(op==4) {
break;
}
cs.Set(op);
com.Set(r.nextInt(3)+1);
System.out.println(cs+" : "+com);
cs.compare(com);
}
}
}
[10번]
import java.util.Random;
import java.util.Scanner;
class Person{
String name;
int r1,r2,r3;
Scanner sc;
public Person(String name) {
this.name=name;
sc=new Scanner(System.in);
}
public boolean run() {
System.out.print("["+name+"]:<Enter>");
String enter=sc.nextLine();
Random r=new Random();
r.setSeed(System.currentTimeMillis());
r1=r.nextInt(3)+1;
r2=r.nextInt(3)+1;
r3=r.nextInt(3)+1;
System.out.print("\t"+r1+"\t"+r2+"\t"+r3+"\t");
if(r1==r2&&r2==r3) {
System.out.println(name+"님이 이겼습니다!");
return true;
}
else {
System.out.println("아쉽군요!");
return false;
}
}
}
public class p0610 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("1번째 선수 이름>>");
String n=sc.next();
Person a=new Person(n);
System.out.print("2번째 선수 이름>>");
n=sc.next();
Person b=new Person(n);
while(true) {
if(a.run()) break;
if(b.run()) break;
}
}
}
[11번]
import java.util.Scanner;
public class p0611 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.print(">>");
String st=sc.nextLine();
StringBuffer sb=new StringBuffer(st);
while(true) {
System.out.print("명령: ");
String op=sc.next();
if(op.equals("그만")) {
break;
}
String str[]=op.split("!");
int index=sb.indexOf(str[0]);
if(index==-1) {
System.out.println("찾을 수 없습니다!");
}
else if(str[0].equals("")) {
System.out.println("잘못된 명령입니다!");
}
else {
sb.replace(index, index+str[0].length(), str[1]);
System.out.println(sb);
}
}
System.out.println("종료합니다");
}
}
[12번]
import java.util.Random;
import java.util.Scanner;
class Person{
String name;
int r1,r2,r3;
Scanner sc;
public Person(String name) {
this.name=name;
sc=new Scanner(System.in);
}
public boolean run() {
System.out.print("["+name+"]:<Enter>");
String enter=sc.nextLine();
Random r=new Random();
r.setSeed(System.currentTimeMillis());
r1=r.nextInt(3)+1;
r2=r.nextInt(3)+1;
r3=r.nextInt(3)+1;
System.out.print("\t"+r1+"\t"+r2+"\t"+r3+"\t");
if(r1==r2&&r2==r3) {
System.out.println(name+"님이 이겼습니다!");
return true;
}
else {
System.out.println("아쉽군요!");
return false;
}
}
}
public class p0612 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("겜블링 게임에 참여할 선수 숫자>>");
int n=sc.nextInt();
Person arr[]=new Person[n];
for(int i=0;i<n;i++) {
System.out.print((i+1)+"번째 선수 이름>>");
String name=sc.next();
arr[i]=new Person(name);
}
boolean flag=true;;
while(flag) {
for(int i=0;i<n;i++) {
if(arr[i].run()) {
flag=false;
break;
}
}
}
}
}
반응형