• 파일시티 이벤트
  • LF몰 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

성적관리프로그램(링크드리스트/버블정렬/이진트리)-데이터 수동입력버젼

*지*
개인인증판매자스토어
최초 등록일
2011.06.05
최종 저작일
2011.06
1페이지/파일확장자 압축파일
가격 6,000원 할인쿠폰받기
다운로드
장바구니

소개글

성적관리 프로그램입니다. 콘솔 실행창에서 수행되는 프로그램이며, 메뉴별 기능및 수행 절차는 아래와 같습니다.
1. 연결형 리스트의 사용 (메뉴1)
- 데이터를 입력받습니다. (콘솔화면에서 사용자가 직접 입력, 이름/학번/과목별 성적)
- 연결형 리스트에 중복된 데이터가 있는지 체크 후 리스트에 삽입됩니다.
- 입력된 데이터는 언제든지 화면에 출력하여 확인이 가능합니다.
2. 버블정렬의 사용(메뉴2)
- 연결형 리스트를 직접 순회하면서 저장된 성적들의 평균을 구합니다.
- 다시 한번 리스트를 순회하되, 이중 FOR문 사용하여 순회하면서 버블 정렬을 실시합니다.
- 정렬과 동시에 화면에 석차가 추가된 리스트가 출력되며, 이진트리에도 데이터(포인터)가 추가됩니다.
3. 이진트리의 사용(메뉴3)
- 총 3가지의 검색 방법이 제공됩니다. 학번/이름/석차
- 메뉴에서 필요한 방식을 선택하여 검색하고, 검색결과를 화면에 뿌려줍니다.
- 학번은 이진트리의 키값으로 사용되기 때문에 빠른 이진 검색이 가능합니다.
- 석차와 이름 검색은 이진트리의 통상적인 순회 방식을 사용하므로 최악의 경우 모든 노드를 방문할 가능성이 있습니다.

비주얼 스튜디오 2003 을 사용하였으며, 솔루션 파일을 통째로 압축하였습니다. 실제 소스 파일은 총 5개입니다.

컴파일 실행환경

Microsoft Visual Studio .NET 2003(C++)

본문내용

<연결형 리스트 / 버블 정렬 /이진 검색 트리 를 이용한 성적 관리 프로그램>


모듈 구조 및 구현 설명

- SCHOOL_REPORT 구조체
이름/학번/과목별 성적/석차/평균(내부적으로 사용) 등을 멤버로 가지고 있음.

- LISTNODE 구조체
CLinkedList 클래스 에서 관리하는 데이터 단위. 리스트의 기본인 next node에 대한 포인터와, SCHOOL_REPORT의 포인터를 가지고 있음.

- TREENODE 구조체
CBinaryTree 클래스에서 관리하는 데이터 단위. 좌우 자식 노드에 대한 포인터와 역시 SCHOOL_REPORT 구조체의 포인터를 가지고 있음.

- CLinkedList 클래스 ( *.h 와 *.cpp)
LISTNODE 의 삽입과 키값에 의한 검색 및 삭제가 가능하며, 최초로 사용자로부터 받는 데이터는 이곳에 저장된다.
실제로 데이터를 저장하지 않는 더미 노드인 Head와 Tail 이 리스트의 양끝단에 위치해 있으며, 다음 노드를 리턴해주는 GetNextNode() 메소드를 이용하면 Head dhk Tail사이에 있는 모든 노드를 차례대로 사용자가 직접 방문할 수 있기때문에, 데이터가 모두 입련된 후 이중 루프문을 통해 버블 정렬을 실시 할 수 있다.

- CBinaryTree 클래스 (*.h와 *.cpp)
TREENODE를 삽입 삭제 할 수 있으며, 키값은 학번으로 사용하고 있다.
연결 리스트에서 버블정렬을 통한 석차 산출이 종료됨과 동시에 이진트리에 학번을 키값으로 삽입이 되기 때문에(별도의 메모리 할당은 없으며, SCHOOL_REPORT의 포인터만 입력되므로 리스트와 동시에 성적표를 공유하고 있는 형태이다.
검색을 하기위해 동일한 이름의 검색 메소드가 총 3개 구현되어있으며(오버로딩)
각각 넘겨주는 파라메터가, 학번(int)/이름(char*)/석차(short) 로 다르게 되어있어 호출시 구분이 가능하다.
학번은 원래 이진트리의 키값으로 고정되어 있기때문에 이진 트리의 본래 목적인 빠른 이진 검색이 가능하나, 그외의 학번과 이름의 경우에는 일반적인 트리 순회의 절차를 거치기 때문에 최악의 경우에는 트리의 모든 노드를 다 방문할 가능성이 있다.

- main.cpp
사용자로부터 데이터를 입력받고, 석차를 산출하며, 검색한 데이터를 출력해주는 인터페이스의 역할을 한다.
본 프로그램의 핵심 기능인 연결형 리스트와 이진 트리는 별도로 만들어진 클래스가 핵심중추이지만, 석차 산출시 사용되는 버블정렬은 바로 main.cpp에서 직접 구현되어있다. 통상 버블정렬은 배열등을 이용, 이중 루프를 통해 손쉽게 구현하는데, 자료가 방대하다고 가정했을 때 별도의 배열로 메모리를 할당하는 비용과 그에 걸리는 시간상의 손실을 줄이기 위해 리스트를 직접 방문하면서 버블정렬을 바로 수행하였다. 리스트 클래스에서 GetHead(), GetTail(),GetNextNode()등의 노드 접근자를 제공하도록 하였기때문에 외부에서도 리스트 내부를 완전히 접근/제어할 수 있기 때문에 가능했음.

압축파일 내 파일목록

크기변환_reportCard_sc.bmp
BinaryTree.cpp
BinaryTree.h
LinkedList.cpp
LinkedList.h
main.cpp
ReportCard.sln
ReportCard.suo
ReportCard.vcproj
ReportCardDefinition.h
Debug/BinaryTree.obj
Debug/BuildLog.htm
Debug/LinkedList.obj
Debug/main.obj
Debug/main.obj.enc
Debug/ReportCard.exe
Debug/ReportCard.ilk
Debug/ReportCard.pdb
Debug/Stack.obj
Debug/vc70.idb
Debug/vc70.pdb
성적관리프로그램 구조및개요(연결리스트_버블정렬_이진트리).rtf

참고 자료

없음

이 자료와 함께 구매한 자료

*지*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
탑툰 이벤트
성적관리프로그램(링크드리스트/버블정렬/이진트리)-데이터 수동입력버젼
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 06월 03일 월요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
12:59 오전
New

24시간 응대가능한
AI 챗봇이 런칭되었습니다. 닫기