본문 바로가기

반응형

대학교 과제

(24)
[Java 과제] - 12주차 ( Arrays.sort() ) 1. 과제 안내문, 예시 출력 화면 다음과 같이 가격의 오름차순으로 도서가 정렬되도록 Book 클래스를 작성하라. 다행이 JFrame과 관련된 과제는 아니지만, 중요한 개념을 다루는 과제라고 생각한다. Class를 구현하는 부분과 compareTo 함수 오버라이딩부분이 이 과제의 가장 중요한 부분이라고 생각한다. 다음은 코드의 구성이다. 2. 코드 구성 main역할을 하는 Class는 이미 주어졌으므로 지금은 Book Class를 집중적으로 설명하고자 한다. 일단 sort() 매소드에 설명하자면 인자값으로 받는 리스트의 구성 요소들을 오름차순으로 정렬해주는 매소드이다. 그러나 우리가 흔히 아는 기본형 즉, 정수, 실수, 문자를 요소로 가지는 리스트들은 가능하지만 나는 내가 정의한 Class를 요소로 가지..
[Java 과제] - 11주차 1. 과제 안내문 첫번째 윈도우에서 이름을 입력하고 전공을 선택한 후 Go 버튼을 누르면 새로운 창에서 앞서 입력한 이름과 선택한 전공을 보여 주는 GUI 프로그램을 작성하라. 7장의 로그인 예제를 참고하라. 역시 이번에도 GUI를 구성하는 문제였다. 취향차이인지는 모르겠지만 나에게는 많이 번거롭게 느껴진다 ㅠㅠ 일단 실행결과를 보자. 2. 예시 실행 결과 그림을 보면 알겠지만 Event Listener를 사용하는 과제이다. 약간 신경써야 할 부분은 창이 바뀌는 부분인데, 이것은 저번 과제처럼 창의 내용을 전부 지우고 새로운 컨테이너를 출력해주면 된다. 다음은 코드의 과정이다. 3. 코드 작성 - 프레임 구성 일단 프레임을 먼저 구성해야 했다. 사실 이 과제에서 가장 오래걸린 부분이 프레임이다. (그렇다..
[자료구조 과제] - 12주차 수식트리 (후위표기식) 1. 과제안내문 이번 과제는 후위 표기식 형식으로 수식을 입력하여 수식트리를 만들고, 이 트리를 중위로 순회하면서 중위 표기식을 출력하고, 수식을 계산한 결과를 출력한다. 수식트리에서 노드는 연산자 또는 피연산자 노드로 구성되는데, 내부 노드는 연산자 노드이고, 외부 노드는 피연산자 노드가 된다. 피연산자 노드는 노드의 데이터는 피연산자가 되고 자식 노드는 없다. 연산자 노드는 노드의 데이터는 연산자가 되고, 피연산자들은 연산자 노드의 자식 노드로 연결된다. 이진연산자는 두 자식을 가지지만, 단일연산자는 왼쪽 자식은 없고 오른쪽 자식만 가진다. 수식트리를 만드는 방식은 후위 표기식을 계산하는 방식과 비슷하다. 피연산자는 피연산자 노드를 만들어 그 노드를 스택에 Push 한다. 연산자는 연산자 노드를 만들..
[자료구조 과제] - 11주차 완전 이진 트리 1. 과제 안내문 이번 과제는 노드 번호가 nMaxNo까지 노드를 가지는 완전 이진트리를 생성하고, 노드 번호를 부여하는 규칙에 의하여 노드 번호가 nNo인 노드를 찾는 과제이다. 이진트리를 레벨 순회로 노드의 번호를 출력하면 트리의 모습을 쉽게 알 수 있다. 왜냐 하면 1 레벨은 노드가 1, 2 레벨은 노드가 2개, 일반적으로 n 레벨은 노드가 2n-1개이기 때문에 앞에서 레벨에 따라 개수를 분리하여 생각하면 그 구조를 쉽게 알 수 있다. 이 과제는 번호가 nMaxNo까지 가지는 완전 이진트리를 생성하고, 이 트리를 레벨 순회에 따라 노드 번호를 출력한다. 그리고 노드 번호 nNo를 가지는 노드를 찾아 올바르게 찾았는지를 확인한다. 수업시간에 실습을 통하여 마지막 노드를 가리키는 원형 리스트를 사용하여..
Java 10주차 과제 - 상속 1. 과제 안내문 학생을 나타내는 수퍼클래스 Student와 그 서브클래스인 Graduate과 Undergraduate 클래스를 작성하라. Graduate은 대학원생, Undergraduate은 학부생을 나타낸다. 학생의 데이터는 ‘이름’, ‘학번’, ‘소속 학과’, ‘성적’(GPA) 등이고 여기에 추가로 학부생은 ‘학년’을, 대학원생은 ‘연구 주제’와 ‘지도교수’를가진다. 다음과 같은 테스트 클래스로부터 첨부한 실행 결과가 나오도록 클래스 계층을 작성하고 프로그램 소스와 실행 결과를 캡춰하여 제출하라. 과제 안내문을 처음 봤을 때 그래픽을 활용하는 과제가 아니어서 매우 다행임을 느꼈다 ㅠㅠ (물론 다른 문제를 더 잘푼다는 것은 아니다.) 시행 결과를 보면 알겠지만 그렇게 어려운 문제가 아니었다. 실제로..
자료구조 10주차 과제 - 이중 원형 연결리스트 1. 과제 안내문 이번 과제는 이중 연결 리스트에 대한 과제입니다. 이중 연결 리스트에서 앞/뒤로 이동하는 것과 삽입/삭제에 대한 연산입니다. 이중 연결 리스트는 원하는 대로 앞/뒤로 이동이 가능하기 때문에 꼭 첫 노드만 가리킬 필요가 없습니다. 어느 한 노드만 알고 있으면 원하는 대로 이동 가능하기 때문입니다. 이번 과제에는 이중 연결 리스트에 새로운 노드를 삽입하고, 기존의 노드를 삭제하고, 앞뒤로 이동하면서 data를 출력하는 내용입니다. 이번 과제에는 앞/뒤로 이동이 가능한 이중 연결 리스트이고, 또한 마지막 노드가 첫 노드를 가르키는 원형 연결 리스트이고, 헤드 노드는 없는 연결 리스트입니다. 아래의 연산자들을 완성하기 바랍니다. 다음은 명령에 대한 설명이다. L ;; pList를 왼쪽으로 움직..
Java 9주차 과제 - JFrame, ActionListener 1. 과제 안내문 다음과 같이 On 혹은 Off 버튼을 누르면 출입문과 창문의 색상이 변경되는 JFrame 애플리케이션을 작성하라. 출입문과 창문이 처음에는 집과 같은 회색이다가 On 버튼이 눌리면 노란색으로 바뀌고, Off 버튼을 누르면 다시 회색으로 바뀐다. 최대한 아래 그림과 동일하게 완성하라. 집과 출입문 등은 paint 메소드에서 그린다. 하단의 버튼 2개는 JPanel(FlowLayout)에 넣고 그 JPanel을 내용창(BorderLayout)의 하단("South")에 배치하면 된다. 스윙 컴포넌트와 paint 메소드가 둘 다 필요한 프로그램이므로, 유사한 구조를 가지는 LightOnOffExample 클래스를 참고하여 작성하라. 우리 학교의 java교수님은...... 그래픽을 너무 좋아하신..
자료구조 9주차 과제 - 원형 리스트 1. 과제 안내문 이번 과제는 목걸이 문제를 프로그래밍 한다. 목걸이 문제는 목걸이에서 스킵/삭제를 반복하여 최종적으로 남는 구슬을 찾는 문제이다. 목걸이는 1부터 n까지 번호가 부여된 구슬들로 구성되고, 1번부터 스킵과 삭제를 반복하여 마지막까지 남은 구슬의 번호를 찾는다. 다시 말해 1번 구슬은 건너뛰고, 2번 구슬은 삭제되고, 3번 구슬은 건너뛰고, 4번 구슬은 삭제되는 방식으로 구슬이 하나만 남을 때까지 반복된다. 이렇게 반복하여 마지막까지 남은 구슬의 번호를 찾는다. 목걸이 문제를 해결하는 방식은 2 가지 해결책이 있다. 첫째로 1부터 n까지 데이터를 가지는 노드들을 원형 연결 리스트로 만든 목걸이에서 1부터 시작하여 스킵과 삭제를 반복하는 방식으로 시물레이션에 의하여 답을 찾는다. 둘째로 일반..