18: JAVA try...catch

jk·2024년 1월 24일
0

kdt 풀스택

목록 보기
33/127



1. try with resource 에 대하여 설명하시오.

  • Declare instance and close the instance at the end of the try.



2. 래퍼 클래스(Wrapper class)란 무엇인가?

  • Wrapped class of primitive data types



3.박싱 & 언박싱에 대하여 설명하시오.

  • Boxing: Covering by class
  • Unboxing: Uncovering from class



1. 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라.

(클래스로 작성할 필요없이 메인에서 직접 할것)
​
[Hint] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
​
문자열을 입력하세요. 빈칸이나 있어도 되고 영어 한글 모두 됩니다.
​
​
​
I Love you
​
Love youI
​
Love youI
​
ove youI L
​
ve youI Lo
​
e youI Lov
​
youI Love
​
youI Love
​
ouI Love y
​
uI Love yo
​
I Love you
​
//
//code
//
StringBuilder print = new StringBuilder();
//
try (Scanner scanner = new Scanner(System.in);) {
//    
    String strInput = scanner.nextLine();
    int strLength = strInput.length();
    char[] strChars = new char[strLength];
//    
    for (int i = 1; i <= strLength; i++) {
        print.append("\n");
        System.out.print(print);
        print.setLength(0);
//        
        for (int j = 0; j < strLength; j++) {
//            
            int n = (i + j) % strLength;
//            
            strChars[j] = strInput.charAt(n);
//            
            print.append(strChars[j]);
            System.out.print(print);
            print.setLength(0);
        };
        print.append("\n");
        System.out.print(print);
        print.setLength(0);
    };
} catch(Exception e) {
    e.printStackTrace();
} finally {
};



1. 아래를 프로그래밍 하시오.

- 클래스 Person
​
* 필드 : 이름, 나이, 주소 선언
​
- 클래스 Student
​
* 필드 : 학교명, 학과, 학번, 8개 평균평점을 저장할 배열로 선언
​
* 생성자 : 학교명, 학과, 학번 지정
​
* 메소드 average() : 8개 학기 평균평점의 평균을 반환
​
- 클래스 Person과 Student 
​
- 프로그램 테스트 프로그램의 결과 : 8개 학기의 평균평점은 표준입력으로 받도록한다.
​
​
​
이름 : 김다정
​
나이 : 20
​
​
​
주소 : 서울시 관악구
​
학교 : 동양서울대학교
​
학과 : 전산정보학과
​
학번 : 20132222
​
----------------------------------------
​
​
​
8학기 학점을 순서대로 입력하세요
​
​
​
1학기 학점 → 3.37
​
2학기 학점 → 3.89
​
3학기 학점 → 4.35
​
4학기 학점 → 3.76
​
5학기 학점 → 3.89
​
6학기 학점 → 4.26
​
7학기 학점 → 4.89
​
8학기 학점 → 3.89
​
​
​
----------------------------------------
//
//code
//
import java.util.*;
class Const {
    static final int CREDITS_HOW_MANY = 8;
    static final double CREDIT_MAX = 5.;
    static final double CREDIT_MIN = 0.;
}
class Print {
    private static StringBuilder print = new StringBuilder();
    private static void printAndReset() {
        System.out.print(print);
        print.setLength(0);
    }
    private static void name(String name) {
        print.append("이름 : ");
        print.append(name);
        print.append("\n\n");
        printAndReset();
    }
    private static void age(int age) {
        print.append("나이 : ");
        print.append(age);
        print.append("\n\n\n\n");
        printAndReset();
    }
    private static void address(String address) {
        print.append("주소 : ");
        print.append(address);
        print.append("\n\n");
        printAndReset();
    }
    static void person(Person person) {
        name(person.getName());
        age(person.getAge());
        address(person.getAddress());
    }
    private static void academy(String academy) {
        print.append("학교 : ");
        print.append(academy);
        print.append("\n\n");
        printAndReset();
    }
    private static void department(String department) {
        print.append("학과 : ");
        print.append(department);
        print.append("\n\n");
        printAndReset();
    }
    private static void idNumber(int idNumber) {
        print.append("학번 : ");
        print.append(idNumber);
        print.append("\n\n");
        printAndReset();
    }
    static void studentWithoutCredits(Student student) {
        person(student.getPerson());
        academy(student.getAcademy());
        department(student.getDepartment());
        idNumber(student.getIdNumber());
    }
    static void creditIntro() {
        print.append("----------------------------------------\n\n\n\n");
        print.append(Const.CREDITS_HOW_MANY);
        print.append("학기 학점을 순서대로 입력하세요\n\n\n\n");
        printAndReset();
    }
    static void credit(int index) {
        print.append(index + 1);
        print.append("학기 학점 → ");
        printAndReset();
    }
    static void br() {
        print.append("\n");
        printAndReset();
    }
    static void creditOutro() {
        print.append("\n\n\n----------------------------------------");
        printAndReset();
    }
}
class Person {
    private String name;
    private int age;
    private String address;
    public Person() {
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getName() {
        return this.name;
    }
    public int getAge() {
        return this.age;
    }
    public String getAddress() {
        return this.address;
    }
}
class Student extends Person {
    private String academy;
    private String department;
    private int idNumber;
    private double[] credits = new double[Const.CREDITS_HOW_MANY];
    public Student(String academy, String department, int idNumber) {
        super();
        this.academy = academy;
        this.department = department;
        this.idNumber = idNumber;
    }
    public double average() {
        double sum = 0.;
        for (double credit : this.credits) {
            sum += credit;
        };
        double average = sum / (double)Const.CREDITS_HOW_MANY;
        return average;
    }
    public Person getPerson() {
        return (Person)this;
    }
    public String getAcademy() {
        return this.academy;
    }
    public String getDepartment() {
        return this.department;
    }
    public int getIdNumber() {
        return this.idNumber;
    }
    public void setCredit(int index, double credit) {
        this.credits[index] = credit;
    }
}
class CourseCredit {
    public static void main(String[] args) {
        Student studentKDJ = new Student("동양서울대학교", "전산정보학과", 20132222);
        studentKDJ.setName("김다정");
        studentKDJ.setAge(20);
        studentKDJ.setAddress("서울시 관악구");
//        
        Print.studentWithoutCredits(studentKDJ);
//        
        Scanner scanner;
//        
        gettingCredits:
        while(true) {
            scanner = new Scanner(System.in);
            try {
                Print.creditIntro();
                for (int i = 0; i < Const.CREDITS_HOW_MANY; i++) {
                    Print.credit(i);
                    double credit = scanner.nextDouble();
                    if (credit < Const.CREDIT_MIN || credit > Const.CREDIT_MAX) {
                        continue gettingCredits;
                    };
                    studentKDJ.setCredit(i, credit);
                    Print.br();
                };
                break;
            } catch(Exception e) {
                e.printStackTrace();
                continue;
            } finally {
            }
        };
        scanner.close();
//        
        Print.creditOutro();
    }
}
//
//print
//
이름 : 김다정
​
나이 : 20
​
​
​
주소 : 서울시 관악구
​
학교 : 동양서울대학교
​
학과 : 전산정보학과
​
학번 : 20132222
​
----------------------------------------
​
​
​
8학기 학점을 순서대로 입력하세요
​
​
​
1학기 학점 → 3.37
​
2학기 학점 → 3.89
​
3학기 학점 → 4.35
​
4학기 학점 → 3.76
​
5학기 학점 → 3.89
​
6학기 학점 → 4.26
​
7학기 학점 → 4.89
​
8학기 학점 → 3.89
​
​
​
​
----------------------------------------
profile
Brave but clumsy

0개의 댓글