728x90
2021/03/14(일)
문제) --- 내풀이는 밑에
4-5) 다음 설명대로 Circle 클래스와 CircleManager 클래스를 완성하라.
import java.util.Scanner;
class Circle{
private double x, y;
private int radius;
public Circle(double x, double y, int radius) {
}
public void show() {
}
}
public class CircleManager {
public static void main(String[] args) {
Scanner scanner =
Circle c[] =
for(int i=0; i< ; i++) {
System.out.print("x, y, radius >>");
// x값이 읽기
// y값이 읽기
// 반지름 읽기
c[i] =
}
for(int i=0; i<c.length; i++)
//모든 Circle 객체 출력
scanner.close();
}
}
다음 실행 결과와 같이 3개의 Circle 객체 배열을 만들고 x,y,radius 값을 읽어 3개의 Circle 객체를 만들고 show()를 이용하여 이들을 모두 출력한다.
x, y, radius >> 3.0 3.0 5
x, y, radius >> 2.5 2.7 6
x, y, radius >> 5.0 2.0 4
(3.0,3.0)5
(2.5,2.7)6
(5.0,2.0)4
4-6) 앞의 5번 문제는 정답이 공개되어 있다. 이 정답을 참고하여 Circle 클래스와 CircleManager 클래스를 수정하여 다음 실행 결과처럼 되게 하라.
x, y, radius >> 3.0 3.0 5
x, y, radius >> 2.5 2.7 6
x, y, radius >> 5.0 2.0 4
가장 면적이 큰 원은 (2.5,2.7)6
4-7) 하루의 할 일을 표현하는 클래스 Day는 다음과 같다. 한 달의 할 일을 표현하는 MonthSchedule 클래스를 작성하라.
class Day{
private String work;
public void set(String work) {
this.work = work;
}
public String get() {
return work;
}
public void show() {
if(work == null)System.out.println("없습니다.");
else System.out.println(work+"입니다.");
}
}
MonthSchedule 클래스에는 Day 객체 배열과 적절한 필드, 메소드를 작성하고 실행 예시처럼 입력, 보기, 끝내기 등의 3개의 기능을 작성하라.
이번달 스케쥴 관리 프로그램.
할일(입력:1, 보기:2, 끝내기:3) >> 1
날짜(1~30)? 1
할일(빈칸없이입력)> 자바공부
할일(입력:1, 보기:2, 끝내기:3) >> 2
날짜(1~30)? 1
1일의 할 일은 자바공부입니다.
할일(입력:1, 보기:2, 끝내기:3) >> 3
프로그램을 종료합니다.
4-8) 이름(name), 전화번호(tel) 필드와 생성자 등을 가진 Phone 클래스를 작성하고, 실행 예시와 같이 작동하는 PhoneBook 클래스를 작성하라.
인원수 >> 3
이름과 전화번호(이름과 번호는 빈 칸없이 입력)>> 황기태 777-7777
이름과 전화번호(이름과 번호는 빈 칸없이 입력)>> 나명품 999-9999
이름과 전화번호(이름과 번호는 빈 칸없이 입력)>> 최자바 333-1234
저장되었습니다...
검색할 이름>> 황기순
황기순이 없습니다.
검색할 이름>> 최자바
최자바의 번호는 333-1234 입니다.
검색할 이름>> 그만
내 풀이
4-5)
import java.util.Scanner;
class Circle{
private double x, y;
private int radius;
public Circle(double x, double y, int radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
public void show() {
System.out.println("("+x+","+y+")"+radius);
}
}
public class CircleManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Circle c[] = new Circle[3];
for(int i=0; i<c.length; i++) {
System.out.print("x, y, radius >>");
double x = scanner.nextDouble();
double y = scanner.nextDouble();
int radius = scanner.nextInt();
c[i] = new Circle(x, y, radius);
}
for(int i=0; i<c.length; i++)
c[i].show();
scanner.close();
}
}
4-6)
import java.util.Scanner;
class Circle{
private double x, y;
private int radius;
public Circle(double x, double y, int radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
public void show() {
System.out.println("가장 면적이 큰 원은 "+"("+x+","+y+")"+radius);
}
//반지름을 출력해주는 메소드
public int radius() {
return radius;
}
}
public class CircleManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Circle c[] = new Circle[3];
int max=0;
for(int i=0; i<c.length; i++) {
System.out.print("x, y, radius >>");
double x = scanner.nextDouble();
double y = scanner.nextDouble();
int radius = scanner.nextInt();
c[i] = new Circle(x, y, radius);
//가장 큰 반지름을 max에 저장
if(max<c[i].radius())
max = c[i].radius();
}
//배열을 돌며 가장 큰 반지름이 저장되어 있는 max와 비교하여 같으면 출력
for(int i=0; i<c.length; i++)
if(max==c[i].radius())
c[i].show();
scanner.close();
}
}
4-7)
import java.util.Scanner;
class Day{
private String work;
public void set(String work) {
this.work = work;
}
public String get() {
return work;
}
public void show() {
if(work == null)System.out.println("없습니다.");
else System.out.println(work+"입니다.");
}
}
public class MonthSchedule {
int month;
Day[] day = null;
Scanner scan = new Scanner(System.in);
//생성자 초기화
public MonthSchedule(int month) {
this.month = month;
day = new Day[month];
}
//입력(1)할 때 실행되는 메소드
public void input(int date) {
day[date] = new Day();
System.out.print("할일(빈칸없이입력)?");
String work = scan.next();
day[date].set(work);
}
//보기(2)할 때 실행되는 메소드
public void view(int date) {
System.out.print(date+"일의 할 일은 ");
day[date].show();
}
//끝내기(3)할 때 실행되는 메소드
public void finish() {
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
//처음 실행되는 메소드
public void run() {
System.out.print("이번달 스케줄 관리 프로그램.");
while(true) {
System.out.print("할일(입력:1, 보기:2, 끝내기:3)>>");
int selectNumber = scan.nextInt();
if(selectNumber ==1) {
System.out.print("날짜(1~30)?");
int date = scan.nextInt();
input(date);
System.out.println();
}
else if(selectNumber==2) {
System.out.print("날짜(1~30)?");
int date = scan.nextInt();
view(date);
System.out.println();
}
else {
finish();
}
}
}
public static void main(String[] args) {
MonthSchedule april = new MonthSchedule(30);
april.run();
}
}
4-8)
import java.util.Scanner;
class Phone{
private String name;
private String phone;
public Phone(String name, String phone) {
this.name = name;
this.phone = phone;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
}
public class PhoneBook {
Scanner scan = new Scanner(System.in);
Phone[] phone = null;
public void run() {
System.out.print("인원수>>");
int howManyPerson = scan.nextInt();
phone = new Phone[howManyPerson];
insert();
search();
}
//인원수에 따라 이름과 전화번호 입력받는 메소드
public void insert() {
for(int i=0; i<phone.length; i++) {
System.out.print("이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>");
String name = scan.next();
String phoneNumber = scan.next();
phone[i] = new Phone(name, phoneNumber);
if(i==phone.length-1)
System.out.println("저장되었습니다.");
}
}
//이름을 검색하는 메소드
public void search() {
while(true) {
System.out.print("검색할 이름>>");
String searchName = scan.next();
//입력받은 이름으로 배열검색
for(int i=0; i<phone.length; i++) {
//그만이라는 문자가 들어오면 종료
if(searchName.equals("그만"))
System.exit(0);
//배열에 같은 이름이 있는경우
else if(searchName.equals(phone[i].getName())) {
System.out.println(phone[i].getName()+"의 번호는 "+phone[i].getPhone()+" 입니다.");
break;
}
//배열에 같은 이름이 없는 경우
else if(i==phone.length-1 && !(searchName.equals(phone[i].getName())))
System.out.println(searchName+"이 없습니다.");
}
}
}
public static void main(String[] args) {
PhoneBook phoneBook = new PhoneBook();
phoneBook.run();
}
}
728x90
'코딩 연습장 > JAVA' 카테고리의 다른 글
Java awt, swing을 사용한 계산기 화면 만들기 (0) | 2021.04.06 |
---|---|
자바 카드 번호 맞추기 게임(UP & DOWN 게임) (0) | 2021.03.19 |
자바 4장 연습문제(클래스와 객체)-1 (0) | 2021.03.19 |
자바 3장 연습문제(반복문)-4 (0) | 2021.03.18 |
자바 3장 연습문제(반복문)-3 (0) | 2021.03.18 |