#include #include #include #include "a_station.h" // Загрузка данных из файла void load_station_data(struct station* station, const char* filename) { FILE* file = fopen(filename, "r"); if (!file) { perror("Error opening file"); return; } char destination[TARGET_SIZE]; int capacity; while (fscanf(file, "%s %d", destination, &capacity) == 2) { add_target_capacity(station, destination, capacity); } fclose(file); printf("Data successfully loaded from file '%s'.\n", filename); } // Поиск информации по направлению void find_destination(struct station* station, const char* destination) { int capacity = get_target_capacity(station, destination); if (capacity > 0) { printf("Destination: %s, Capacity: %d\n", destination, capacity); } else { printf("Destination '%s' not found.\n", destination); } } // Пользовательское меню void user_menu(struct station* station) { int choice; char filename[100]; char destination[TARGET_SIZE]; int capacity; do { printf("\n--- Menu ---\n"); printf("1. Load data from file\n"); printf("2. Add or update destination\n"); printf("3. Find destination\n"); printf("4. Show total number of destinations\n"); printf("5. Show total capacity\n"); printf("6. Exit\n"); printf("Select an option: "); scanf("%d", &choice); switch (choice) { case 1: printf("Enter the filename: "); scanf("%s", filename); load_station_data(station, filename); break; case 2: printf("Enter the destination: "); scanf("%s", destination); printf("Enter the capacity: "); scanf("%d", &capacity); add_target_capacity(station, destination, capacity); printf("Destination '%s' has been added or updated.\n", destination); break; case 3: printf("Enter the destination to search: "); scanf("%s", destination); find_destination(station, destination); break; case 4: printf("Total number of destinations: %d\n", count_targets(station)); break; case 5: printf("Total capacity: %d\n", count_capacity(station)); break; case 6: printf("Exiting the program.\n"); break; default: printf("Invalid option, please try again.\n"); } } while (choice != 6); } // Основная функция int main() { struct station* station = create_station(); if (!station) { printf("Error creating station!\n"); return 1; } user_menu(station); destroy_station(station); return 0; }