关于#c语言#的问题:机票管理系统代码求解

void searchByFlightNumber(struct Flight *flights, int numFlights, int flightNumber) {
for (int i = 0; i < numFlights; i++) {
if (flights[i].flightNumber == flightNumber) {
printf("班次号:%d\n", flights[i].flightNumber);
printf("起飞时间:%s\n", flights[i].departureTime)

代码不完整

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7602928
  • 这篇博客也不错, 你可以看下【C语言】实现三子棋,附完整代码及详解
  • 除此之外, 这篇博客: 计算机考研复试之C语言名词解释中的 函数的递归调用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。
  • 您还可以看一下 李飞老师的C语言开发之数据结构与算法四课程中的 构建哈夫曼树(代码实现)小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    对于实现一个机票管理系统的代码,你可以按照以下步骤进行:

    1. 定义数据结构: 首先,你需要定义适当的数据结构来存储机票的信息,例如飞行日期、起始城市、目的地城市、乘客姓名等。
    typedef struct {
        char flightDate[20];
        char departureCity[20];
        char destinationCity[20];
        char passengerName[50];
    } Ticket;
    
    1. 创建机票数据的存储方式: 可以使用数组或链表来存储机票信息。这里以数组为例,创建一个固定大小的机票数组。
    #define MAX_TICKETS 100
    Ticket tickets[MAX_TICKETS];
    int numTickets = 0;
    
    1. 实现机票的增删改查功能: a. 添加机票功能:根据用户输入的机票信息,将机票存储到数组中。
    void addTicket() {
        if (numTickets < MAX_TICKETS) {
            Ticket ticket;
    
            printf("Flight Date: ");
            scanf("%s", ticket.flightDate);
            printf("Departure City: ");
            scanf("%s", ticket.departureCity);
            printf("Destination City: ");
            scanf("%s", ticket.destinationCity);
            printf("Passenger Name: ");
            scanf("%s", ticket.passengerName);
    
            tickets[numTickets++] = ticket;
            printf("Ticket added successfully.\n");
        } else {
            printf("Max limit reached. Cannot add more tickets.\n");
        }
    }
    

    b. 删除机票功能:根据用户输入的索引,将对应位置的机票从数组中删除。

    void deleteTicket() {
        int index;
    
        printf("Enter the index of the ticket to delete: ");
        scanf("%d", &index);
    
        if (index >= 0 && index < numTickets) {
            for (int i = index; i < numTickets - 1; i++) {
                tickets[i] = tickets[i + 1];
            }
            numTickets--;
            printf("Ticket deleted successfully.\n");
        } else {
            printf("Invalid index.\n");
        }
    }
    

    c. 修改机票功能:根据用户输入的索引,修改对应位置的机票的某个属性值。

    void editTicket() {
        int index;
        char newName[50];
    
        printf("Enter the index of the ticket to edit: ");
        scanf("%d", &index);
    
        if (index >= 0 && index < numTickets) {
            printf("Enter the new passenger name: ");
            scanf("%s", newName);
    
            strcpy(tickets[index].passengerName, newName);
    
            printf("Ticket edited successfully.\n");
        } else {
            printf("Invalid index.\n");
        }
    }
    

    d. 查询机票功能:根据用户输入的条件,查询特定的机票信息并打印出来。

    void searchTicket() {
        char keyword[50];
        int found = 0;
    
        printf("Enter a keyword to search for: ");
        scanf("%s", keyword);
    
        for (int i = 0; i < numTickets; i++) {
            if (strstr(tickets[i].passengerName, keyword) != NULL) {
                printf("Ticket %d:\n", i + 1);
                printf("Flight Date: %s\n", tickets[i].flightDate);
                printf("Departure City: %s\n", tickets[i].departureCity);
                printf("Destination City: %s\n", tickets[i].destinationCity);
                printf("Passenger Name: %s\n", tickets[i].passengerName);
                printf("----------------------------------------\n");
                found = 1;
            }
        }
    
        if (!found) {
            printf("No matching tickets found.\n");
        }
    }
    
    1. 主程序循环: 在主函数中,使用一个循环,让用户选择不同的操作:
    int main() {
        int choice;
    
        do {
            printf("Ticket Management System:\n");
            printf("1. Add Ticket\n");
            printf("2. Delete Ticket\n");
            printf("3. Edit Ticket\n");
            printf("4. Search Ticket\n");
            printf("0. Exit\n");
    
            printf("Enter your choice: ");
            scanf("%d", &choice);
    
            switch(choice) {
                case 1: addTicket(); break;
                case 2: deleteTicket(); break;
                case 3: editTicket(); break;
                case 4: searchTicket(); break;
                case 0: printf("Exiting...\n"); break;
                default: printf("Invalid choice.\n"); break;
            }
        } while (choice != 0);
    
        return 0;
    }
    

    通过以上步骤,你可以实现一个简单的机票管理系统。用户可以添加、删除、修改和查询机票信息。请注意,这只是一个基本的示例实现,你可以根据需求进行变动和扩展。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^