본문 바로가기
카테고리 없음

[예제] C언어로 항공권 가격 비교 프로그램 만들기

by heydayz 2024. 8. 11.

C언어로 항공권 가격 비교 프로그램 만들기 시뮬레이션

C언어로 항공권 가격 비교 프로그램을 만들기 위해서는 첫번째로, 항공편 정보가 필요합니다. 항공편 정보는 구조체를 활용해서 받을 것입니다. 구조체 안에는 항공편 정보 출발지, 도착지, 출발시간, 도착시간, 가격 등을 저장하게 만들어야 합니다. 그리고 다양한 항공편의 정보를 저장하기 위해선 배열을 사용해야 합니다. 또한 파일을 입력하고 출력하기 위해선 항공편 정보를 어느 곳에 저장해두고 항공편 정보를 파일에서 읽어오거나 저장해야 합니다. 나아가 해당 프로그램이 원활하게 돌아간다면 항공사별 프로그램까지 확장할 수 있습니다.
<stdio.h>: 표준 입출력 라이브러리
<string.h>: 문자열 처리 라이브러리

코드 구현 및 설명

#include <stdio.h>  
#include <string.h>

#define MAX\_FLIGHTS 100 // 최대 항공편 수

struct Flight {  
char departure\[50\];  
char arrival\[50\];  
int departureTime;  
int arrivalTime;  
double price;  
};

int main() {  
struct Flight flights\[MAX\_FLIGHTS\];  
int numFlights = 0;

```
// 파일에서 항공편 정보 읽어오기 (예시)
FILE *fp = fopen("flights.txt", "r");
if (fp == NULL) {
    printf("파일 열기 실패\n");
    return 1;
}
while (fscanf(fp, "%s %s %d %d %lf", flights[numFlights].departure, flights[numFlights].arrival,
              &flights[numFlights].departureTime, &flights[numFlights].arrivalTime, &flights[numFlights].price) != EOF) {
    numFlights++;
}
fclose(fp);

// 사용자 입력 받기 (출발지, 도착지)
char departure[50], arrival[50];
printf("출발지를 입력하세요: ");
scanf("%s", departure);
printf("도착지를 입력하세요: ");
scanf("%s", arrival);

// 비교 결과 출력
printf("출발지: %s, 도착지: %s\n", departure, arrival);
printf("---------------------\n");
printf("항공편\t출발시간\t도착시간\t가격\n");
for (int i = 0; i < numFlights; i++) {
    if (strcmp(flights[i].departure, departure) == 0 && strcmp(flights[i].arrival, arrival) == 0) {
        printf("%d\t%d\t%d\t%.2lf\n", i + 1, flights[i].departureTime, flights[i].arrivalTime, flights[i].price);
    }
}

return 0;
```

}

#define MAX_FLIGHTS 100이라고 최대 항공편 수를 정합니다.
FILE *fp = fopen("flights.txt", "r")는 특정파일에서 항공편 정보를 읽어옵니다.
char departure[50], arrival[50]는 사용자의 출발지, 도착지 정보를 입력받습니다.
printf("출발지: %s, 도착지: %s\n", departure, arrival)는 가격의 비교정보를 출력합니다.

코드 설명

구조체 선언: 항공편 정보를 저장하기 위한 Flight 구조체를 정의합니다.
파일 읽기: flights.txt 파일에서 항공편 정보를 읽어와 flights 배열에 저장합니다.
사용자 입력: 사용자로부터 출발지와 도착지를 입력받습니다.
비교 및 출력: 입력받은 출발지와 도착지와 일치하는 항공편 정보를 출력합니다.
추가 기능 및 개선점
정렬: 가격순, 출발 시간순 등으로 항공편 정보를 정렬하여 사용자에게 편리하게 제공할 수 있습니다.
검색: 특정 항공사, 경유지 등 다양한 조건으로 항공편을 검색할 수 있는 기능을 추가할 수 있습니다.
예약 기능: 선택한 항공편을 예약할 수 있는 기능을 추가할 수 있습니다.
GUI: 그래픽 사용자 인터페이스를 구현하여 사용자 친화적인 프로그램을 만들 수 있습니다.
데이터베이스: 항공편 정보를 데이터베이스에 저장하여 더 많은 양의 데이터를 관리할 수 있습니다.
파일 입출력: 파일에서 항공편 정보를 읽어오는 기능을 추가하여 실제 환경에서 활용 가능하도록 했습니다.
다양한 조건 검색: 출발지, 도착지 외에 다른 조건으로 검색할 수 있는 기능을 확장할 수 있습니다.
예약 기능: 실제 항공권 예약 시스템과 유사한 기능을 구현하여 차별화할 수 있습니다.
GUI: 그래픽 사용자 인터페이스를 구현하여 사용자 편의성을 높일 수 있습니다.
핵심: 이 코드는 C언어를 이용하여 간단한 항공권 가격 비교 프로그램을 구현하는 방법을 보여줍니다. 실제 상용 시스템에서는 더욱 복잡한 알고리즘과 데이터 구조를 사용하여 다양한 기능을 구현할 수 있습니다.

참고: 이 코드는 기본적인 기능만을 구현한 것이며, 실제 항공권 예약 시스템에서는 더욱 복잡한 연산과 다양한 기능이 필요할 수 있습니다. 예를 들어, 실시간 항공편 정보 업데이트, 결제 시스템 연동, 예약 변경 및 취소 기능 등이 필요할 수 있습니다.