국비학원/숙제

Day11_ 주소록, 자바 연습문제

루팽 2022. 12. 27. 21:38

숙제-AddressBook

 

package dev_java.khexample;

import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;

public class AddressBook {
  // 선언부
  AddressDialog aDialog = new AddressDialog(this);
  JFrame jf = new JFrame();
  JPanel jp_north = new JPanel();
  JPanel jp_center = new JPanel();
  JTable jt_center = new JTable();
  JButton jbtn_read = new JButton("조회");
  JButton jbtn_write = new JButton("입력");
  JButton jbtn_update = new JButton("수정");
  JButton jbtn_info = new JButton("상세보기");

  // 생성자
  public AddressBook() {
    initDisplay();
  }

  // 화면그리기
  public void initDisplay() {
    jbtn_read.addActionListener(aDialog);
    jbtn_write.addActionListener(aDialog);
    jbtn_update.addActionListener(aDialog);
    jbtn_info.addActionListener(aDialog);
    jp_center.setBackground(Color.LIGHT_GRAY);
    jf.add("North", jp_north);
    jf.add("Center", jt_center);
    jp_north.setLayout(new FlowLayout(FlowLayout.LEFT));
    jp_north.add(jbtn_read);
    jp_north.add(jbtn_write);
    jp_north.add(jbtn_update);
    jp_north.add(jbtn_info);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setSize(500, 400);
    jf.setTitle("주소록 ver 1.0");
    jf.setVisible(true);
  }

  // 메인메소드
  public static void main(String[] args) {
    new AddressBook();
  }
}

 

package dev_java.khexample;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;

public class AddressDialog implements ActionListener {
  JDialog jdg = new JDialog();
  AddressBook aBook = null;

  public AddressDialog(AddressBook aBook) {
    this.aBook = aBook;
  }

  public void btnDialog(boolean isOk) {
    jdg.setSize(400, 300);
    jdg.setVisible(isOk);
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    Object obj = e.getSource();
    if (obj == aBook.jbtn_read) {
      btnDialog(true);
      jdg.setTitle("조회");
    } else if (obj == aBook.jbtn_write) {
      btnDialog(true);
      jdg.setTitle("입력");
    } else if (obj == aBook.jbtn_update) {
      btnDialog(true);
      jdg.setTitle("수정");
    } else if (obj == aBook.jbtn_info) {
      btnDialog(true);
      jdg.setTitle("상세보기");
    }
  }
}

 

연습문제

package dev_java.khexample;

import java.util.Scanner;

// 다음은 타원의 면적을 구하는 공식입니다. 작은 반지름과 큰 반지름을 입력받아서 타원의 면적을 구하세요.
// 반지름은 정수이고, pi는 3.1416입니다.
// 계산은 소수점 2자리 까지 합니다.
// 공식)  타원면적 =  pi * r1 * r2
// 출력) 반지름(2개) : 10 20
// 타원의 면적 : 628.32
public class Example1 {
  Scanner scanner = new Scanner(System.in);
  public final double PI = 3.1416;

  void methodA() {
    int r1;
    int r2;
    double result;
    System.out.print("타원의 면적을 구합니다. \n작은 반지름 값: ");
    r1 = scanner.nextInt();
    System.out.print("큰 반지름 값: ");
    r2 = scanner.nextInt();
    result = PI * r1 * r2;
    System.out.println("타원의 면적은 " + String.format("%.2f", result) + " 입니다.");
    scanner.close();
  }

  public static void main(String[] args) {
    Example1 ex1 = new Example1();
    ex1.methodA();
  }
}

 

package dev_java.khexample;

import java.util.Scanner;

// 두 개의 정수 중에서 큰 숫자를 반환하는 max함수를 구현하세요. 두 개의 정수를 입력 받고 큰 숫자를 출력합니다.
// 출력) 정수(두 개) : 5 8 최대값 : 8
public class Example2 {
  Scanner scanner = new Scanner(System.in);
  int result = 0;

  int max() {
    int i;
    int j;
    System.out.print("더 큰 값을 반환합니다. \n첫번째 값: ");
    i = scanner.nextInt();
    result = i;
    System.out.print("두번째 값: ");
    j = scanner.nextInt();
    if (result < j) {
      result = j;
    }
    scanner.close();
    return result;
  }

  public static void main(String[] args) {
    Example2 ex2 = new Example2();
    ex2.max();
    System.out.println("더 큰 값은 " + ex2.result + " 입니다.");
  }
}

 

package dev_java.khexample;

import java.util.Scanner;

// 달의 중력은 지구 중력의 17%에 불과합니다. 지구에서 몸무게가 100kg인 사람은 달에 가면 17kg밖에 안됩니다.
// 당신의 몸무게는 달에서 얼마입니까? 몸무게 N은 실수이고 키보드로부터 입력받습니다.
// 출력) 지구몸무게 : 100 달 몸무게 : 17kg
public class Example3 {
  Scanner scanner = new Scanner(System.in);
  double moonG = 0.17;

  void methodA() {
    double i;
    System.out.print("달에서의 몸무게를 구합니다.\n지구 몸무게: ");
    i = scanner.nextDouble();
    System.out.print("지구 몸무게: " + String.format("%.1f", i) + "kg, 달 몸무게: " + String.format("%.1f", (i * moonG)) + "kg");
    scanner.close();
  }

  public static void main(String[] args) {
    Example3 ex3 = new Example3();
    ex3.methodA();
  }
}

 

package dev_java.khexample;

import java.util.Scanner;

// 두숫자를 입력 받아 둘 사이의 3의 배수 갯수를 카운트 하는 프로그램을 작성하시오.
// 예) 3, 13 두 숫자를 입력하였다면 3개 출력해 줌
public class Example4 {
  Scanner scanner = new Scanner(System.in);

  void methodA() {
    int i;
    int j;
    int count = 0;
    System.out.println("두 숫자 사이의 3의 배수를 카운트합니다.");
    System.out.print("시작 값: ");
    i = scanner.nextInt();
    System.out.print("마지막 값: ");
    j = scanner.nextInt();

    int k = i + 1;
    for (; k < j; k++) {
      if (k % 3 == 0) {
        count++;
      }
    }
    System.out.println(i + "와 " + j + " 사이의 3의 배수는 " + count + "개 입니다.");
    scanner.close();
  }

  public static void main(String[] args) {
    Example4 ex4 = new Example4();
    ex4.methodA();
  }
}