본문 문제 정의 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 1. 구조체를 만들어 학생의 학번, 이름, 성별, 성적을 저장 2. 구조체를 벡터로 선언하여 12명의 정보를 입력 3. 학생의 이름을 bubble sort로 정렬 4. 이름을 입력하여 binary search로 검색 5. 검색 후 이름이 존재한다면 이름과 함께 성적 출력 검색 후 이름이 존재하지 않는다면 에러 메세지 출력 문제 해결방법 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ class대신 더 간단하게 할 수 있는 struct를 선택했다. student의 이름을 가진 구조체를 만들어 number, name, gender, grade를 선언한다. number은 학번으로 int로 구현하고 name은 이름으로 string, gender, grade는 각각 성별과 성적으로 char형으로 구현했다. 우선 메인함수에다가 for문을 12번 돌려 12명의 학생의 학번, 이름, 성별, 성적을 입력받았다. 그 전에 구조체를 벡터로 선언해주었다는 것을 써주었다. 그 뒤에 bubble sort를 해주어 정렬을 할것이기 때문에 메인 밖에다가 bubblesort라는 함수를 구현 하였다. 함수의 인자로는 벡터가 들어간다. bubble sort는 값이 있을 경우, 맨 첫번째의 데이터를 시작으로 다음 데이터와 비교하여 작은 것을 왼쪽, 큰것을 오른쪽으로 놓게 한다음 다음 두번째 데이터와 세번째 데이터를 비교하면서 정렬하는 방법이다. 함수 안에 새로운 변수 i, j, temp를 선언해준다. 배열이 12까지 이므로 i는 11부터 시작한다. j는 1부터 i이하까지 돌려서 배열의 j번째가 j-1번째보다 작다면 그 둘의 값을 바꿔준다. 이때 바꾸기 위해서 temp변수를 쓴다. 정렬이 된 배열은 메인함수에서 출력을 해본다. 그 다음은 binary search이다. binary search는 여러 값들 중에서 최소값과 최대값을 이용해 중간값을 구한후, 찾고자 하는 값를 중간값과 비교해서 중간값보다 작을 때 최대값을 1씩 줄여가면서 일치되는 값을 갖고, 또는 찾을 값이 중간값보다 크다면 중간값을 1씩 증가시켜서 일치되는 값을 찾는 방법이다. 메인 함수 밖에 binart_search라는 함수를 구현한다. 인자로는 vector, 처음수(from), 마지막수(to), 그리고 찾을 수 n을 둔다. 하나의 변수를 더 두는데 (from+to)/2 로 중간값(mid)다. 찾고싶은 값 n이 mid일때 mid 값을 리턴해주면 되고, mid가 n보다 작을 때는 from을 mid+1로 설정해두고 다시 탐색, mid가 n보다 클 때는 to를 mid-1로 설정해두고 다시 탐색하면 된다. 메인함수에서 찾고자 하는 학생의 이름을 who로 입력받고, n을 who로 둔 binary_search함수의 결과값을 search라는 새로운 변수에 저장시킨다. 벡터가 0부터 시작하므로 search가 0이상이면 결과값 이름과 그 학생의 성적을 출력시키고 아니면 에러 메세지를 출력시킨다. 소스 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 하고 싶은 말 좀 더 업그레이드하여 자료를 보완하여, 과제물을 꼼꼼하게 정성을 들어 작성했습니다. 위 자료 요약정리 잘되어 있으니 잘 참고하시어 학업에 나날이 발전이 있기를 기원합니다 ^^ 구입자 분의 앞날에 항상 무궁한 발전과 행복과 행운이 깃들기를 홧팅 키워드 이름, 함수, 중간값, 메인, 변수, 다음 |
2018년 11월 1일 목요일
레포트자료c++ binarysearch소스와 결과창
레포트자료c++ binarysearch소스와 결과창
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기