반응형

1. 다음 main()의 실행 결과 클래스명과 점 값을 연결하여 “MyPoint(3,20)”이 출력되도록 MyPoint 클래스를 작성하라.

코드

package chapter6;

public class MyPoint {

int x,y;

MyPoint(int x, int y) {

this.x = x; this.y = y;

}

public String toString() { 

return getClass().getName() + "(" + x + "," + y+ ")";

}

public static void main(String [] args) {

MyPoint a = new MyPoint(3,20);

System.out.println(a);

}

}

실행결과


2. Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개인지 출력을 반복하는 프로그램을 작성하라. "exit"이 입력되면 종료한다.

코드

package chapter6;

import java.util.Scanner;

import java.util.StringTokenizer;

public class WordCount {

    public static void main(String[] args)

    {

        Scanner scan = new Scanner(System.in);

        while(true)

        {

            String sen = scan.nextLine();

            if(sen.equals("exit"))

            {

                System.out.print("종료합니다...");

                scan.close(); 

                break;

            }

            StringTokenizer st = new StringTokenizer(sen, " ");

            int n = st.countTokens();

            System.out.println("어절 개수는 " + n);

        }

    }

}

실행결과


3. 1에서 3까지의 난수를 3개 생성한 뒤 나란히 한 줄에 출력하라. 모두 같은 수가 나올 때까지 반복 출력하고, 모두 같은 수이면 "성공"을 출력하고 종료하는 프로그램을 작성하라.

코드

package chapter6;

public class Gambling {

public static void main(String[] args) {

int [] n = new int[3];


while(true) {

for(int i=0;  i<n.length; i++) {

n[i] = (int)(Math.random()*3 + 1);

System.out.print(n[i]+"\t");

}

System.out.println();

if(n[0] == n[1] && n[1] == n[2]) {

System.out.print("성공");

break;

}

}

}

}

실행결과


4. 다음과 같이 +로 연결된 덧셈 식을 입력받아 덧셈 결과를 출력하는 프로그램을 작성하라. StringTokenizer와 Integer.parseInt(), String의 trim()을 활용하라.

코드

package chapter6;

import java.util.Scanner;

import java.util.StringTokenizer;

public class Addition {

    public static void main(String[] args){

        Scanner scanner = new Scanner(System.in);

        String a = scanner.nextLine();

        StringTokenizer st = new StringTokenizer(a, "+");

        int n = st.countTokens();

        int [] c = new int[n];

        int sum = 0;

        while(st.hasMoreTokens()){

            for(int i=0; i<n; i++){

                String token = st.nextToken();

                String b = token.trim();

                c[i] = Integer.parseInt(b);

                sum += c[i];

            }

        }

        System.out.print("합은  " + sum);

        scanner.close();

    }

}

실행결과

5. 다음 코드를 수정하여 Adder 클래스는 util 패키지에, Main 클래스는 app패키지에 작성하여 응용프로그램을 완성하고 실행시켜라.

코드

//app 패키지

package app;


import util.Adder;



public class Main {

public static void main(String[] args) {

Adder adder = new Adder(2, 5);

System.out.println(adder.add());

}

}


//util 패키지

package util;


public class Adder {

private int x, y;

public Adder(int x, int y) { this.x = x; this.y = y; }

public int add() { return x + y; }

}

실행결과

6. Math.random()의 난수 발생기를 이용하여 사용자와 컴퓨터가 하는 가위바위보 게임을 만들어보자. 가위, 바위, 보는 각각 1, 2, 3 키이다. 사용자가 1, 2 ,3 키 중 하나를 입력하면 동시에 프로그램에서 난수 발생기를 이용하여 1, 2, 3 중에 한 수를 발생시켜 컴퓨터가 낸 것을 결정한다. 그리고 사용자와 컴퓨터 둘 중 누가 이겼는지를 판별하여 승자를 출력한다.


코드

package chapter6;


import java.util.Scanner;


public class Kawibawibo 

{

    public static void main(String[] args)

    {

        Scanner scanner = new Scanner(System.in);

        String []rps = {"가위", "바위", "보"};

        while(true)

        {

            System.out.println("가위(1), 바위(2), 보(3), 끝내기(4)>>");

            int i = scanner.nextInt() - 1;

            int ran = (int)(Math.random()*3);

            

            if(i >= 3)

            {

                System.exit(0);

                break;

            }

            

            System.out.println("사용자 " + rps[i] + " : " + "컴퓨터 " + rps[ran]);

            if((i + 2) % 3 == ran)

                System.out.println("사용자가 이겼습니다.");

            else if(i == ran)

                System.out.println("비겼습니다.");

            else

                System.out.println("컴퓨터가 이겼습니다.");

        }        

        scanner.close();

    }

}

실행결과


반응형
반응형

1. 원을 표현하는 다음 Circle 클래스가 있다.

class Circle {

private int radius;

public Circle(int radius){this.radius = radius;}

public int getRadius(){return radius;}

}

Circle 클래스를 상속받은 NamedCircle 클래스를 작성하여, 다음 main()을 시행할 때 다음 실행 결과와 같이 출력되도록 하라.

public static void main(String[] args){

NamedCircle w = new NamedCircle(5,"waffle");

w.show();

}

코드

package chapter5;


class Circle {

private int radius;

public Circle(int radius){this.radius = radius;}

public int getRadius(){return radius;}

}

public class NamedCircle extends Circle{

private String name;

NamedCircle(int radius, String name) {

super(radius);

this.name = name;

}

public void show() {

System.out.println(name + ", 반지름 = " + getRadius());

}

public static void main(String[] args){

NamedCircle w = new NamedCircle(5,"waffle");

w.show();

}

}

실행결과

2. 인터페이스 AdderInterface의 코드는 다음과 같다.

interface AdderInterface{

int add(int x, int y);

int add(int n);

}

AdderInterface를 상속받은 클래스 MyAdder를 작성하여, 다음 main()을 실행할 때 아래 실행결과와 같이 출력되도록 하라.

public static void main(String[] args){

MyAdder adder = new MyAdder();

System.out.println(adder.add(5,10));

System.out.println(adder.add(10));

}


코드

package chapter5;

interface AdderInterface{

int add(int x, int y);

int add(int n);

}

public class MyAdder implements AdderInterface{

@Override

public int add(int x,int y){

return x+y;

}

public int add(int n) {

// TODO Auto-generated method stub

int sum = 0;

for(int i=0; i <=n;i++)

sum +=i;

return sum;

}

public static void main(String[] args){

MyAdder adder = new MyAdder();

System.out.println(adder.add(5,10));

System.out.println(adder.add(10));

}

}


실행결과



3. 다음 코드와 실행결과를 참고하여 추상 클래스 Calculator를 상속받은 Adder와 Subtracter 클래스를 작성하라.

import java.util.Scanner;

abstract class Calculator{

protected int a,b;

abstract protected int calc();

protected void input(){

Scanner scanner = new Scanner(System.in);

System.out.print("두개의 정수를 입력하세요>>");

a = scanner.nextInt();

b = scanner.nextInt();

}

public void run(){

input();

int res = calc();

System.out.println("계산된 값은 " + res );

}

}

public class App {

public static void main(String[] args){

Adder adder = new Adder();

Subtracter sub = new Subtracter();

adder.run();

sub.run();

}

}

코드

package chapter5;

import java.util.Scanner;


abstract class Calculator {

protected int a, b;

protected void input() {

Scanner scanner = new Scanner(System.in);

System.out.print("정수 2개를 입력하세요>>");

a = scanner.nextInt();

b = scanner.nextInt();

}

public void run() {

input();

int res = calc();

System.out.println("계산된 값은 " + res);

}

abstract protected int calc(); // 추상 메소드 

}


class Adder extends Calculator {

public int calc() {

return a + b;

}

}


class Subtracter extends Calculator {

public int calc() {

return a - b;

}

}


public class App {

public static void main(String[] args) {

Adder adder = new Adder();

Subtracter sub = new Subtracter();

adder.run();

sub.run();

}


}

실행결과


4. 2차원 상의 한 점을 표현하는 Point 클래스는 다음과 같다.

class Point{

private int x,y;

public Point(int x, int y){this.x = x; this.y=y;}

public int getX(){return x;}

public int getY(){return y;}

protected void move(int x, int y){ this.x =x; this.y=y;}

}

다음 main()을 실행하여 결과가 그림과 같도록 Point를 상속받는 ColorPoint 클래스(main() 포함)를 작성하라.

코드

package chapter5;

class Point{

private int x,y;

public Point(int x, int y){this.x = x; this.y=y;}

public int getX(){return x;}

public int getY(){return y;}

protected void move(int x, int y){ this.x =x; this.y=y;}

}

public class ColorPoint extends Point {

private String color;

ColorPoint(int x, int y, String color) {

super(x, y);

this.color =color;

}

void setPoint(int x, int y) {

move(x, y);

}

void setColor(String color) { this.color = color; }

void show() {

System.out.println(color + "색으로" + "(" + getX() + "," + getY() + ")");

}

public static void main(String[] args) {

ColorPoint cp = new ColorPoint(5, 5,"YELLOW");

cp.setPoint(10, 20);

cp.setColor("GREEN");

cp.show();


}

}

실행결과


5. 다음 StackInterface는 문자열을 푸시하고 팝 할 수 있는 스택에 대한 스펙을 정의하고 있다. StackInterface를 상속받는 StringStack 클래스를 구현하라. 그리고 StackManager 클래스에 main() 메소드를 작성하여 StringStack 객체를 생성하고, 사용자로부터 문자열 5개를 읽어 스택 객체를 저장하고, 다시 팝하여 읽은 반대순으로 출력하여라.

interface StackInterface { 

   int length(); 

   String pop(); 

   boolean push(String ob); 

코드

package chapter5;

import java.util.Scanner; 

// StackInterface 인터페이스 정의 

interface StackInterface { 

   int length(); 

   String pop(); 

   boolean push(String ob); 

// StackInterface를 상속받는 StringStack 클래스 정의 

class StringStack implements StackInterface { 

   String stack[]; 

   private int top = 0; 

   public StringStack() { 

      stack = new String[5]; 

   } 

   @Override 

   public int length() { 

      return top + 1; 

   } 

   @Override 

   public String pop() { 

      return stack[--top]; 

   } 

   @Override 

   public boolean push(String ob) { 

      if (top == 5) return false; 

      else stack[top++] = ob; 

      return true; 

   } 

class StackManager { 

   public static void main(String[] args) { 

      StringStack stack = new StringStack(); 

      Scanner sc = new Scanner(System.in); 

      for (int loop = 0; loop < 5; loop++) { 

         System.out.print("Input " + (loop+1) + " : "); 

         String inputStr = sc.next(); 

         stack.push(inputStr); 

      } 

      for (int loop = 0; loop < 5; loop++) { 

         System.out.println(stack.pop()); 

      } 

   } 

실행결과


6. 간단한 그래픽 편집기를 만들어보자. 본문 5.6절 메소드 오버라이딩과 5.7절의 추상 클래스의 설명 중에 Line, Rect, Circle 클래스 코드를 활용하여, 다음 실행결과처럼 동작하는 프로그램을 작성하라.


코드

package chapter5;

import java.util.Scanner;

abstract class DObject {

abstract public void draw();

}

class Figure extends DObject {

String type;


public Figure() {

type = "";

}

public void draw() {

switch (type) {

case "Line":

System.out.println("Line");

break;

case "Rect":

System.out.println("Rect");

break;

case "Circle":

System.out.println("Circle");

break;

}

}

}

public class GraphicEditor {

public static void main(String[] args) {

int i = 0;

Menu M = new Menu();

while (true) {

Scanner scanner = new Scanner(System.in);

System.out.print("삽입(1), 삭제(2), 모두보기(3), 종료(4) >>");

int select = scanner.nextInt();

switch (select) {

case 1:

M.Insert(i);

i++;

break;

case 2:

M.Delete();

break;

case 3:

M.View();

break;

case 4:

M.Exit();

break;

default:

System.out.println("잘못 입력하셨습니다");


}

}

}

}

// 메뉴 클래스

class Menu {

Scanner rd = new Scanner(System.in);

Figure f[] = new Figure[10];

public Menu() {

for (int i = 0; i < f.length; i++)

f[i] = new Figure();

}

void Insert(int i) {

System.out.print("도형 종류  Line(1), Rect(2), Circle(3) >>");

int num = rd.nextInt();

switch (num) {

case 1:

f[i].type = "Line";

break;

case 2:

f[i].type = "Rect";

break;

case 3:

f[i].type = "Circle";

break;

default:

System.out.println("잘못 입력하셨습니다.");

}

}

void Delete() {

System.out.print("삭제할 도형의 위치 >>");

int num = rd.nextInt();

if (f[num - 1].type.equals(""))

System.out.println("삭제할 수 없습니다");

f[num - 1].type = "";

}

void View() {

for (int i = 0; i < f.length; i++) {

if (f[i].equals("")) {

} else

f[i].draw();

}

}

void Exit() {

System.exit(0);

}

}

실행결과



반응형
반응형

1. 아래의 실행결과와 같이 출력하는 다음 main()을 가진 Song 클래스를 작성하라. Song 클래스는 노래 제목 title 필드, 생성자, getTitle() 메소드로 구성된다.

public static void main(String[] args) {
Song mySong = new Song("Let it go");
Song yourSong = new Song("강남스타일");
System.out.println("내 노래는 " + mySong.getTitle());
System.out.println("너 노래는 " + yourSong.getTitle());
}


public class Song {

private String title;
public Song(String title){
this.title = title;
}
private String getTitle() {
return title;
}

public static void main(String[] args) {
Song mySong = new Song("Let it go");
Song yourSong = new Song("강남스타일");
System.out.println("내 노래는 " + mySong.getTitle());
System.out.println("너 노래는 " + yourSong.getTitle());
}
}


2. 다음은 이름(name 필드)과 전화번호(tel 필드)를 가진 Phone 클래스이다. 이름과 전화번호를 입력받아 2개의 Phone 객체를 생성하고, 출력하는 main() 메소드를 작성하라.

public class Phone {
private String name;
private String tel;
public Phone(String name, String tel){
this.name = name;
this.tel = tel;
}
public String getName() {return name;}
public String getTel() {return tel;}
}


package chapter4;
import java.util.Scanner;

public class Phone {
private String name;
private String tel;
public Phone(String name, String tel){
this.name = name;
this.tel = tel;
}
public String getName() {return name;}
public String getTel() {return tel;}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("이름과 전화번호 입력>>");
Phone phone1 = new Phone(scanner.next(), scanner.next());
System.out.print("이름과 전화번호 입력>>");
Phone phone2 = new Phone(scanner.next(),scanner.next());
System.out.println(phone1.getName() + "의 번호 " + phone1.getTel());
System.out.println(phone2.getName() + "의 번호 " + phone2.getTel());
scanner.close();
}
}


3. 사각형을 표현하는 다음 Rect 클래스를 활용하여, Rect 객체 배열을 생성하고, 사용자로부터 4개의 사각형을 입력받아 배열에 저장한 뒤, 배열을 검색하여 사각형 면적의 합을 출력하는 main() 메소드를 가진 Rect Array 클래스를 작성하라.

class Rect {
private int width, height;
public Rect(int width, int height) { this.width = width; this.height = height; }
public int getArea() { return width*height; }
}

package chapter4;
import java.util.Scanner;

class Rect {
private int width, height;
public Rect(int width, int height) { this.width = width; this.height = height; }
public int getArea() { return width*height; }
}

public class RectArray {
public static void main(String [] args) {
Scanner scanner = new Scanner(System.in);
Rect [] r = new Rect[4]; // 
for(int i=0; i<r.length; i++) {
System.out.print(i+1);
System.out.print(" 너비와 높이 >>");
int width = scanner.nextInt();
int height = scanner.nextInt();
r[i] = new Rect(width, height);
}
System.out.println("저장하였습니다...");
int sum = 0;
for(int i=0; i<r.length; i++) 
sum += r[i].getArea();

System.out.println("사각형의 전체 합은 " + sum);
}
}



4. 이름과 전화번호 필드, 생성자 및 필요한 메소드를 가진 Phone 클래스를 작성하고, 다음 실행 사례와 같이 작동하도록 main()을 가진 PhoneManager 클래스를 작성하라. 한 사람의 전화번호는 하나의 Phone 객체로 다룬다.
package chapter4;
import java.util.Scanner;
class Phone {
String name;
String tel;

public Phone(String name, String tel) {
this.name = name;
this.tel = tel;
}
public String getName() {return name;}
public String getTel() {return tel;}
}

public class PhoneManager {
@SuppressWarnings("unused")
public static void main(String[] args) {
System.out.print("인원수 >> ");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Phone[] phone = new Phone[n];

for (int i = 0; i < n; i++) {
System.out.print("이름과 전화번호(번호는 연속적으로 입력) >> ");
phone[i] = new Phone(scanner.next(), scanner.next());
}
System.out.println("저장되었습니다");
while (true) {
System.out.print("검색할 이름 >> ");
String string = scanner.next();
if (string.equals("exit"))
break; 
for (int i = 0; i < n; i++) {
if (string.equals(phone[i].name)) {
System.out.println(string + "의 번호는 " + phone[i].tel + "입니다.");
break;
}
if(i==n-1)
System.out.println(string + "이 없습니다. ");
}
}
scanner.close();
}
}



5. CircleManager는 static 메소드를 가진 클래스이다. StaticTest 클래스는 static 메소드를 활용하는 사례를 보여준다. 실행 결과를 참고하여 코드를 완성하라.
package chapter4;
class Circle {
private int radius;
public Circle(int radius) { this.radius = radius; }
public int getRadius() { return this.radius; }
public void setRadius(int radius) { this.radius = radius; }
}
class CircleManager { 
static void copy(Circle src, Circle dest) { 
dest.setRadius(src.getRadius()); 
}
static boolean equals(Circle a, Circle b) { 
if (a.getRadius() == b.getRadius())
return true;
else
return false;
}
}
public class StaticTest {
public static void main(String[] args) {
Circle pizza = new Circle(5);
Circle waffle = new Circle(1);
boolean res = CircleManager.equals(pizza, waffle); 
if (res == true)
System.out.println("pizza와 waffle 크기 같음");
else
System.out.println("pizza와 waffle 크기 다름");
CircleManager.copy(pizza, waffle); 
res = CircleManager.equals(pizza, waffle); 
if (res == true)
System.out.println("pizza와 waffle 크기 같음");
else
System.out.println("pizza와 waffle 크기 다름");
}
}


6. 다음은 가로 세로로 구성되는 박스를 표현하는 Box 클래스와 이를 이용하는 코드이다. Box의 draw()는 fill 필드에 지정된 문자로 자신을 그린다. 실행 결과를 보면서 코드를 완성하라.
package chapter4;

public class Box {
private int width, height;
private char fillChar;
public Box(){
this(10,1);
}
public Box(int width, int height){
this.width = width;
this.height = height;
}
public void draw(){
for(int i=0;i<height;i++){
for(int j=0;j<width;j++)
System.out.print(fillChar);
System.out.println();
}
}
public void fill(char c){
this.fillChar = c;
}
public static void main(String[] args){
Box a = new Box();
Box b = new Box(20,3);
a.fill('*');
b.fill('%');
a.draw();
b.draw();
}
}




반응형
반응형

1. 영문 소문자 하나 입력받고 그 문자보다 알파벳 순서가 낮은 모든 문자를 출력하는 프로그램을 작성하라.

package chapter3;

import java.util.Scanner;

public class 실습문제1 {

public static void main(String args[]) {

System.out.print("알파벳 한 문자를 입력하세요 >>");

Scanner scanner = new Scanner(System.in);

String s = scanner.next();

char c = s.charAt(0);

int n =(int) c;

for(int i = 97; i<=n; i++){

for(int j =i;j<n;j++){

char nC= (char) j;

System.out.print(nC);

}

System.out.println();

}   

}

}

2. 정수 10개를 입력받아 배열에 저장한 후, 배열을 검색하여 3의 배수만 골라 출력하는 프로그램을 작성하라.

package chapter3;

import java.util.Scanner;

public class 실습문제2 {

public static void main(String args[]) {

Scanner scanner = new Scanner(System.in);

System.out.print("정수 10개 입력 >>");

int [] n = new int [10];

int i;

for(i=0;i<n.length; i++){

n[i] = scanner.nextInt();

if(n[i] %3 == 0 )

System.out.print(n[i] + " ");

}

System.out.println();

}

}

3. 정수를 입력받아 짝수이면 “짝” 홀수이면 “홀”을 출력하는 프로그램을 작성하라. 사용자가 정수를 입력하지 않는 경우에는 프로그램을 종료하라. 정답을 통해 try – catch- finally를 사용하는 정통적인 코드를 볼 수 있다.

package chapter3;

import java.util.InputMismatchException;

import java.util.Scanner;

public class 실습문제3 {

public static void main(String agrs[]){

Scanner scanner = new Scanner(System.in);

System.out.print("정수를 입력하세요.>>");

try{

int n = scanner.nextInt();

if(n %2 == 0) System.out.println("짝수");

else System.out.println("홀수");

}

catch(InputMismatchException n1){

System.out.println("수를 입력하지 않아 프로그램이 종료됩니다");

}

}

}

4. ‘일’, ‘월’, ‘화’, ‘수’, ‘목’, ‘금’, ‘토’ 로 초기화된 문자 배열 day를 선언하고, 사용자로부터 정수를 입력받아 7(배열 day의 크기)로 나눈 나머지를 인덱스로 하여 배열 day에 저장된 문자를 출력하라. 음수가 입력되면 프로그램을 종료하라. 아래 실행결과와 같이 예외 처리하라.

package chapter3;

import java.util.InputMismatchException;

import java.util.Scanner;

public class 실습문제4 {

public static void main(String args[]) {

char[] day = { '일', '월', '화', '수', '목', '금', '토' };

Scanner scanner = new Scanner(System.in);

while (true) {

int n = 0;

System.out.print("정수를 입력하세요>>");

try {

n = scanner.nextInt();

switch (n % 7) {

case 0:

System.out.println("일");

break;

case 1:

System.out.println("월");

break;

case 2:

System.out.println("화");

break;

case 3:

System.out.println("수");

break;

case 4:

System.out.println("목");

break;

case 5:

System.out.println("금");

break;

case 6:

System.out.println("토");

break;

}

} catch (InputMismatchException e) {

System.out.println("경고! 수를 입력하지 않았습니다");

break;

}

if(n < 0){

System.out.println("프로그램 종료");

break;

}

}

scanner.close();

}

}


실행결과

5. 정수를 10개 입력받아 배열에 저장하고 증가 순으로 정렬하여 출력하라.

package chapter3;

import java.util.Scanner;

public class 실습문제5 {

public static void main(String args[]){

int [] n = new int [10];

System.out.print("정수 10개 입력>>");

Scanner scanner = new Scanner(System.in);

for(int i=0; i<n.length; i++){

n[i] = scanner.nextInt();

}

for(int i=n.length-1;i>=0;i--){

for(int j=0;j<i;j++)

if(n[j] > n[j+1]){

int temp = n[j];

n[j] = n[j+1];

n[j+1] = temp;

}

}

for(int i=0;i<n.length;i++)

System.out.print(n[i] + " ");

System.out.println();

scanner.close();

}

}


6. 다음과 같이 영어와 한글의 짝을 이루는 2개의 배열을 만들고, 사용자로부터 영어 단어를 입력받아 한글을 출력하는 프로그램을 작성하라. “exit”을 입력하면 프로그램을 종료하라.

package chapter3;

import java.util.Scanner;

public class 실습문제6 {

public static void main(String args[]) {

String eng[] = { "student", "love", "java", "happy", "future" };

String kor[] = { "학생", "사랑", "자바", "행복한", "미래" };

Scanner scanner = new Scanner(System.in);

while (true) {

System.out.print("영어 단어를 입럭하세요>>");

String s = scanner.next();

if (s.equals("student"))

System.out.println("학생");

else if (s.equals("love"))

System.out.println("사랑");

else if (s.equals("java"))

System.out.println("자바");

else if (s.equals("happy"))

System.out.println("행복한");

else if (s.equals("future"))

System.out.println("미래");

else if (s.equals("exit")) {

System.out.println("프로그램 종료");

break;

} else

System.out.println("그런 영어 단어가 없습니다");

}

}

}


7. 1부터 99까지 369게임에서 박수를 쳐야 하는 경우, 순서대로 화면에 출력하라. (2장 실습문제 6 참고)

package chapter3;

public class 실습문제7 {

      public static void main(String[] args) {

   for (int i = 1; i < 100; i++) {

 if (i < 10)

if (i % 3 == 0)

System.out.println(i + " 박수 한 번");

 if (i >= 10) {

int first = i / 10;

int second = i % 10;

if (first % 3 == 0) {

if (second % 3 == 0)

System.out.println(i + " 박수 두 번");

else

System.out.println(i + " 박수 한 번 ");

}

else

if (second % 3 == 0)

System.out.println(i + " 박수 한 번");

}

   }

      }

}

실행결과

8. 컴퓨터와 사용자의 가위바위보 게임 프로그램을 작성하라. 사용자가 입력하고 <Enter> 키를 치면, 컴퓨터는 랜덤하게 가위, 바위, 보 중 하나를 선택한다. 그리고 누가 이겼는지를 출력한다. ”그만“을 입력하면 게임을 종료한다.

package chapter3;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Random;

import java.util.Scanner;

public class 실습문제8 {

public static void main(String[] args) throws IOException {

Random r = new Random();

int computer = r.nextInt(2);

BufferedReader in new BufferedReader(new InputStreamReader(System.in));

Scanner scanner = new Scanner(System.in);

while (true) {

System.out.print("가위 바위 보!>> ");

String user = scanner.next();

if (user.equals("가위")) {

if (computer == 0)

System.out.println("컴퓨터 : 가위 , 나 : 가위 , 결과 : 무승부");

if (computer == 1)

System.out.println("컴퓨터 : 바위 , 나 : 가위 , 결과 : 패");

if (computer == 2)

System.out.println("컴퓨터 : 보 , 나 : 가위 , 결과 : 승");

}


else if (user.equals("바위")) {

if (computer == 0)

System.out.println("컴퓨터 : 가위 , 나 : 바위 , 결과 : 승");

if (computer == 1)

System.out.println("컴퓨터 : 바위 , 나 : 바위 , 결과 : 무승부");

if (computer == 2)

System.out.println("컴퓨터 : 보 , 나 : 바위 , 결과 : 패");

}


else if (user.equals("보")) {

if (computer == 0)

System.out.println("컴퓨터 : 가위 , 나 : 보 , 결과 : 패");

if (computer == 1)

System.out.println("컴퓨터 : 바위 , 나 : 보 , 결과 : 승");

if (computer == 2)

System.out.println("컴퓨터 : 보 , 나 : 보 , 결과 : 무승부");

}

else if(user.equals("그만")){

System.out.println("프로그램 종료");

break;

}

}

scanner.close();

}

}

실행결과



반응형
반응형

1. 두 정수를 입력받아 합을 구하여 울력하는 프로그램을 작성하라. 키보드 입력은 Scanner클래스를 이용하라.

package chapter2;

import java.util.Scanner;

public class addition {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("두 정수를 입력하세요 >>");

int num1 = scanner.nextInt();

int num2= scanner.nextInt();

System.out.println(num1 + "+" + num2 + "은 " + (num1 +num2) );

scanner.close();

}

}



2. 2차원 평면에서 하나의 직사각형은 두 점으로 표현된다. (50,50)과 (100,100)의 두 점으로 이루어진 사각형이 있다고 하자. 한점을 구성하는 정수 x와 y 값을 입력받고 점(x,y)가 이 직사각형 안에 있는지를 판별하는 프로그램을 작성하라.

package chapter2;

import java.util.Scanner;

public class rectangle {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("점 (x,y)의 좌표를 입력하세요 >>");

int x = scanner.nextInt();

int y = scanner.nextInt();

if(x >= 50 && x<100 && y>= 50 && y < 100)

System.out.println("점 (" + x + "," + y + ")은 (50,50)과 (100,100)의 사각형 내에 있습니다");

else

System.out.println("점 (" + x + "," + y + ")은 (50,50)과 (100,100)의 사각형 내에 없습니다");

scanner.close();

}

}

3. 다음과 같이 AND와 OR의 논리연산을 입력받아 결과를 출력하는 프로그램을 작성하라. 예를 들어 ‘true AND false’의 결과로 false를, ‘true OR false’의 결과로 true 를 출력하면 된다. if 문 대신 switch 문을 이용하라.

package chapter2;

import java.util.Scanner;

public class LogicalOperation {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("논리 연산을 입력하세요>>");

boolean a = scanner.nextBoolean();

String op = scanner.next();

boolean b = scanner.nextBoolean();

switch(op){

case "AND" :

if(a == true && b == true)

System.out.println("true");

else System.out.println("false");

break;

case "OR" :

if(a == true || b == true)

System.out.println("true");

else System.out.println("false");

break;

}

            scanner.close();

}

}

4. 돈의 액수를 입력받아 오만 원권, 만 원권 , 천 원권, 500원짜리 동전, 100원짜리 동전, 10원 짜리 동전, 1원 짜리 동전 각 몇 개로 변환되는지 출력하라. 문제6의 힌트를 참고하라.

package chapter2;

import java.util.Scanner;

public class Money {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("돈의 액수를 입력하세요>>");

int money = scanner.nextInt();

int a = money / 50000;

int b = money %50000;

int c = b /10000;

int d = b %10000;

int e = d / 1000;

int f = d % 1000;

int g = f / 500;

int h = f % 500;

int i = h / 100;

int j = h % 100;

int k = j / 10;

int l = j % 10;

System.out.println("오만원 " + a + "개, 만원 " + c + "개, 천원 " + e +"개, 500원"+ g +"개, 100원 " + i +"개, 10원 "+ k + "개, 1원 " + l +"개 " );

scanner.close();

}

}


5. 학점이 A,B이면 “Excellent”, 학점이 C,D이면 “Good”, 학점이 F이면 “Bye”라고 출력하는 프로그램을 작성하라. switch와 break를 활용하라.

package chapter2;

import java.util.Scanner;

public class GradeSwitch {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.print("학점을 입력하세요 >>");

String grade = scanner.next();

switch(grade){

case "A": case "B":

System.out.println("Excellent");

break;

case "C" : case "D":

System.out.println("Good");

break;

case "F":

System.out.println("Bye");

break;

}

scanner.close();

}

}

6. 369게임의 일부를 작성해보자. 1~99까지의 정수를 입력받고 수에 3,6,9중 하나가 있는 경우에는 “박수짝”, 두 개 있는 경우는 “박수 짝짝”, 하나도 없으면 “박수 없음”을 출력하는 프로그램을 작성하라. 예를 들면, 13인 경우 “박수짝”, 36인 경우 “박수 짝짝”, 5인 경우 “박수 없음”을 출력하면 된다.

package chapter2;

import java.util.Scanner;

public class Game369 {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

System.out.println("1~99 사이의 정수를 입력하세요 >>");

int num = scanner.nextInt();

int first = num / 10;

int second = num % 10;

switch(first){

case 3: case 6: case 9:

if(second == 3 || second == 6 || second == 9)

System.out.println("박수 짝짝");

else System.out.println("박수 짝");

break;

default :

if(second == 3 || second == 6 || second == 9)

System.out.println("박수 짝");

else System.out.println("박수 없음");

break;

}

scanner.close();

}

}


반응형
반응형

1. 이클립스를 이용하여 화면에 “Welcome!!”을 출력하는 자바프로그램을 작성하라. 작업 공간(Workspace)은 C:\Temp로 하고, 프로젝트 이름은 1-1로 한다. 클래스 이름은 Welcome 으로 한다.

소스코드

public class Welcome {

public static void main(String[] args){

System.out.println("Welcome!!");

}

}

실행화면




2. 이클립스를 이용하여 화면에 “Sorry~~”을 출력하는 자바 프로그램을 작성하라. 작업공간(Workspace)은 C:\Temp로 하고, 프로젝트 이름은 1-2로 한다. 클래스 이름은 Sorry로 한다.

소스코드

public class Sorry {

public static void main(String[] args){

System.out.println("Sorry~~");

}

}

실행화면

3. 이클립스를 이용하여 화면에 “1 2 3 4 5 6 7 8 9”를 출력하는 자바프로그램을 작성하라. 작업 공간(Workspace)은 C:\Temp로 하고, 프로젝트 이름은 1-3로 한다. 클래스 이름은 One2Nine으로 한다.

소스코드

public class One2Nine {

public static void main(String[] args){

System.out.println("1 2 3 4 5 6 7 8 9");

}

}

실행화면


반응형
반응형
반응형

'C언어' 카테고리의 다른 글

조별 3  (0) 2014.12.16
조별 2  (0) 2014.12.16
C언어 - 구구단(for문)  (0) 2014.11.15
반응형
반응형

'C언어' 카테고리의 다른 글

조별 4/조별 5  (0) 2014.12.16
조별 2  (0) 2014.12.16
C언어 - 구구단(for문)  (0) 2014.11.15

+ Recent posts