국비학원/숙제
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();
}
}