자료구조 파일 입출력
- 최초 등록일
- 2013.10.28
- 최종 저작일
- 2013.06
- 17페이지/ 한컴오피스
- 가격 3,000원
목차
1. Ch.12_3번
2. Ch.13_12, 13번
3. Appendix
본문내용
식당의 이름, 주소, 평균가격, 음식종류 등을 설명하는 구조체 배열을 만들고, 음식유형이 주어지면 그와 관련된 음식점들을 평균가격의 오름차순으로 출력하는 프로그램을 작성하는 것이 이 문제의 목표다.
일단 이 프로그램을 작성하기 위해 가장 중요한 것은 구조체 내부의 멤버인 평균가격에 접근하여 이를 서로 비교하는 과정을 작성하는 것이다. 또한 구조체 배열간의 순서를 평균가격의 오름차순으로 출력되도록 구조체간의 순서를 바꿔주는 함수를 추가시키게 되었다.
이 프로그램의 구조는 일단 메인함수와 각각의 식당정보를 구조체에 초기화시키는 initial함수와, 구조체간의 순서를 바꿔주는 swap함수, 그리고 식당의 정보를 출력하는 printer함수로 구성되어있다. 그래서 메인함수의 처음부분에 initial함수를 호출해서 구조체를 각각 초기화 시키고, swap함수를 호출해서 구조체간의 순서가 평균가격의 오름차순으로 바뀌도록 하였다.
이 프로그램에서 특이한 점은 while문과 그 내부의 변수(flag역할)를 이용한 조건적인 무한반복과 무한반복문에서 입력버퍼에 저장된 값에 의한 잘못된 출력을 막기 위해 fflush(stdin)함수를 이용했다는 것이다. 그래서 프로그램을 이용하고 나서 항상 프로그램 종료의사를 묻고 이에 따라 다시 실행하거나 종료되도록 설정하였다. 또한 입력할 식당은 13개이므로 구조체 배열의 크기를 13으로 하면 되지만 14로 선언하였는데, 그 이유는 구조체 배열의 맨 마지막 남은 rest[13]으로 swap함수에서 순서를 바꿀 때 일시적인 저장 공간으로 사용하기 위해서이다. 그리고 rest[a].name과 같이 구조체 배열 내부의 각각의 성분을 a나 b에 저장된 정수 값으로 접근가능하기 때문에, for문을 이용해서 각각 구조체의 멤버에 접근했다는 것도 이 프로그램의 특징이라고 할 수 있다.
참고 자료
없음