2301_76634431 2023-02-23 17:05 采纳率: 50%
浏览 307
已结题

用c语言写一个景点票价信息管理系统

1、旅游景点、票价信息录入,
2、旅游景点、票价信息输出,
3、旅游景点、票价信息查询,
4、旅游景点、票价信息修改,
5、旅游景点、票价信息删除,
6、旅游景点、票价信息保存,
7、旅游景点、票价信息读取,
8、门票销售统计、汇总

  • 写回答

7条回答 默认 最新

  • CodeBytes 2023-02-23 19:30
    关注

    该回答引用ChatGPT

    参考

    #include <stdio.h>
    #include <string.h>
    
    #define MAX_SIZE 100 // 系统最大容量
    
    // 定义景点和票价信息结构体
    struct Spot {
        char name[20];
        char introduction[100];
        float price;
    };
    
    // 定义全局变量
    struct Spot spots[MAX_SIZE];
    int size = 0;
    
    // 函数声明
    void add_spot();
    void modify_spot();
    void query_spot();
    void delete_spot();
    
    int main() {
        int choice;
        printf("欢迎使用景点票价信息管理系统!\n");
        while (1) {
            printf("请选择您需要的操作:\n");
            printf("1. 录入景点及票价信息\n");
            printf("2. 修改景点及票价信息\n");
            printf("3. 查询景点及票价信息\n");
            printf("4. 删除景点及票价信息\n");
            printf("5. 退出系统\n");
            scanf("%d", &choice);
            switch (choice) {
                case 1:
                    add_spot();
                    break;
                case 2:
                    modify_spot();
                    break;
                case 3:
                    query_spot();
                    break;
                case 4:
                    delete_spot();
                    break;
                case 5:
                    printf("感谢使用景点票价信息管理系统!\n");
                    return 0;
                default:
                    printf("输入错误,请重新输入!\n");
                    break;
            }
        }
    }
    
    void add_spot() {
        if (size >= MAX_SIZE) {
            printf("系统已满,无法添加新的景点!\n");
            return;
        }
        struct Spot spot;
        printf("请输入景点名称:\n");
        scanf("%s", spot.name);
        printf("请输入景点简介:\n");
        scanf("%s", spot.introduction);
        printf("请输入景点票价:\n");
        scanf("%f", &spot.price);
        spots[size++] = spot;
        printf("添加成功!\n");
    }
    void modify_spot() {
        if (size == 0) {
            printf("系统中没有景点信息!\n");
            return;
        }
        char name[20];
        printf("请输入需要修改的景点名称:\n");
        scanf("%s", name);
        int index = -1;
        for (int i = 0; i < size; i++) {
            if (strcmp(spots[i].name, name) == 0) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            printf("系统中不存在此景点!\n");
            return;
        }
        struct Spot spot;
        printf("请输入新的景点名称(回车不修改):\n");
        scanf("%s", spot.name);
        printf("请输入新的景点简介(回车不修改):\n");
        scanf("%s", spot.introduction);
        printf("请输入新的景点票价(0表示不修改):\n");
        scanf("%f", &spot.price);
        if (strlen(spot.name) > 0) {
            strcpy(spots[index].name, spot.name);
        }
        if (strlen(spot.introduction) > 0) {
            strcpy(spots[index].introduction, spot.introduction);
        }
        if (spot.price > 0) {
            spots[index].price = spot.price;
        }
        printf("修改成功!\n");
    }
    
    void query_spot() {
        if (size == 0) {
            printf("系统中没有景点信息!\n");
            return;
        }
        char name[20];
        printf("请输入需要查询的景点名称(回车表示查询所有景点):\n");
        scanf("%s", name);
        if (strlen(name) == 0) {
            printf("系统中共有%d个景点:\n", size);
            for (int i = 0; i < size; i++) {
                printf("景点名称:%s,景点简介:%s,票价:%f元\n", spots[i].name, spots[i].introduction, spots[i].price);
            }
        } else {
            int index = -1;
            for (int i = 0; i < size; i++) {
                if (strcmp(spots[i].name, name) == 0) {
                    index = i;
                    break;
                }
            }
            if (index == -1) {
                printf("系统中不存在此景点!\n");
                return;
            } else {
                printf("景点名称:%s,景点简介:%s,票价:%f元\n", spots[index].name, spots[index].introduction, spots[index].price);
            }
        }
    }
    void delete_spot() {
        if (size == 0) {
            printf("系统中没有景点信息!\n");
            return;
        }
        char name[20];
        printf("请输入需要删除的景点名称:\n");
        scanf("%s", name);
        int index = -1;
        for (int i = 0; i < size; i++) {
            if (strcmp(spots[i].name, name) == 0) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            printf("系统中不存在此景点!\n");
            return;
        }
        for (int i = index; i < size - 1; i++) {
            spots[i] = spots[i + 1];
        }
        size--;
        printf("删除成功!\n");
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 创建了问题 2月23日