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

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

运行代码和截图如下,有帮助的话记得采纳哦!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAX_NAME_LEN 50
#define MAX_INFO_LEN 100
#define MAX_SPOT_NUM 100

 
typedef struct {
    char name[MAX_NAME_LEN];  // 景点名称
    char info[MAX_INFO_LEN];  // 景点信息
    int price;                // 票价
} Spot;
 
Spot spots[MAX_SPOT_NUM];     // 存储所有景点信息
int spotCount = 0;            // 当前景点数量
 
void addSpot() {
    if (spotCount >= MAX_SPOT_NUM) {
        printf("景点数量已达到上限!\n");
        return;
    }
 
    Spot s;
    printf("请输入景点名称:");
    scanf("%s", s.name);
    printf("请输入景点信息:");
    scanf("%s", s.info);
    printf("请输入票价:");
    scanf("%d", &s.price);
 
    spots[spotCount++] = s;
    printf("添加成功!\n");
}
 
void showSpotInfo() {
    printf("景点信息如下:\n");
    for (int i = 0; i < spotCount; i++) {
        printf("%d. 名称:%s,信息:%s,票价:%d\n", i + 1, spots[i].name, spots[i].info, spots[i].price);
    }
}
 
void querySpot() {
    char name[MAX_NAME_LEN];
    printf("请输入景点名称:");
    scanf("%s", name);
 
    int found = 0;
    for (int i = 0; i < spotCount; i++) {
        if (strcmp(spots[i].name, name) == 0) {
            printf("名称:%s,信息:%s,票价:%d\n", spots[i].name, spots[i].info, spots[i].price);
            found = 1;
            break;
        }
    }
 
    if (!found) {
        printf("未找到名为%s的景点!\n", name);
    }
}
 
void modifySpot() {
    char name[MAX_NAME_LEN];
    printf("请输入要修改的景点名称:");
    scanf("%s", name);
 
    int found = 0;
    for (int i = 0; i < spotCount; i++) {
        if (strcmp(spots[i].name, name) == 0) {
            printf("请输入新的景点名称:");
            scanf("%s", spots[i].name);
            printf("请输入新的景点信息:");
            scanf("%s", spots[i].info);
            printf("请输入新的票价:");
            scanf("%d", &spots[i].price);
            printf("修改成功!\n");
            found = 1;
            break;
        }
    }
 
    if (!found) {
        printf("未找到名为%s的景点!\n", name);
    }
}
 
void deleteSpot() {
    char name[MAX_NAME_LEN];
    printf("请输入要删除的景点名称:");
    scanf("%s", name);
 
    int found = 0;
    for (int i = 0; i < spotCount; i++) {
        if (strcmp(spots[i].name, name) == 0) {
            for (int j = i; j < spotCount - 1; j++) {
                spots[j] = spots[j + 1];
            }
            spotCount--;
            printf("删除成功!\n");
            found = 1;
            break;
        }
    }
 
    if (!found) {
        printf("未找到名为%s的景点!\n", name);
    }
}
 
void saveToFile() {
    FILE* fp;
    fp = fopen("spots.txt", "w");
    if (fp == NULL) {
        printf("文件打开失败!\n");
        return;
    }
 
    for (int i = 0; i < spotCount; i++) {
        fprintf(fp, "%s %s %d\n", spots[i].name, spots[i].info, spots[i].price);
    }
 
    fclose(fp);
    printf("保存成功!\n");
}
 
void loadFromFile() {
    Spot spotsFromFile[MAX_SPOT_NUM];     // 存储所有景点信息
    int spotFromFileCount = 0;
    FILE* fp;
    fp = fopen("spots.txt", "r");
    if (fp == NULL) {
        printf("文件打开失败!\n");
        return;
    }
 
    while (1) {
        Spot s;
        if (fscanf(fp, "%s %s %d", s.name, s.info, &s.price) != 3) {
            break;
        }
        spotsFromFile[spotFromFileCount++] = s;
    }
 
    fclose(fp);
    printf("读取成功!\n");
    printf("景点信息如下:\n");
    for (int i = 0; i < spotFromFileCount; i++) {
        printf("%d. 名称:%s,信息:%s,票价:%d\n", i + 1,spotsFromFile[i].name, spotsFromFile[i].info, spotsFromFile[i].price);
    }
}
 
void salesStatistics() {
    int totalSales = 0;
    for (int i = 0; i < spotCount; i++) {
        int sales;
        printf("请输入%s的销售量:", spots[i].name);
        scanf("%d", &sales);
        totalSales += sales;
    }
 
    printf("总销售量为:%d\n", totalSales);
}
 
int main() {
    int choice = 0;
    while (1) {
        printf("\n景点票价信息管理系统\n");
        printf("1. 录入景点信息\n");
        printf("2. 查看景点信息\n");
        printf("3. 查询景点信息\n");
        printf("4. 修改景点信息\n");
        printf("5. 删除景点信息\n");
        printf("6. 保存景点信息到文件\n");
        printf("7. 从文件中读取景点信息\n");
        printf("8. 门票销售统计\n");
        printf("0. 退出系统\n");
        printf("请输入操作选项:");
        scanf("%d", &choice);
 
        switch (choice) {
        case 0:
            printf("已退出系统!\n");
            return 0;
        case 1:
            addSpot();
            break;
        case 2:
            showSpotInfo();
            break;
        case 3:
            querySpot();
            break;
        case 4:
            modifySpot();
            break;
        case 5:
            deleteSpot();
            break;
        case 6:
            saveToFile();
            break;
        case 7:
            loadFromFile();
            break;
        case 8:
            salesStatistics();
            break;
        default:
        printf("无效的操作选项!\n");
        break;
    }
}
 
return 0;
}

img

https://blog.csdn.net/m0_62590028/article/details/125607691?ops_request_misc=&request_id=&biz_id=102&utm_term=c++%E5%86%99%E7%B3%BB%E7%BB%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-125607691.142^v73^pc_search_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

该回答引用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");
}


商品信息管理系统 借鉴下
https://blog.csdn.net/qq_63964231/article/details/125517167

https://www.baidu.com/link?url=hOAvma-0Pkz2VgnLuFZpacbSoEfD1qr-KyFyiQMyb9A-_xGfWGTvI6oLmTH7_bXW4M6lsQ7-Gq7nYdFVTFAgCkxCpjIEBSsARwn9Z3usPle&wd=&eqid=e74f3e660018b8170000000263f7681b

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

#define MAX_NAME_LEN 50
#define MAX_PRICE_LEN 20

typedef struct {
    char name[MAX_NAME_LEN];
    char price[MAX_PRICE_LEN];
} ScenicSpot;

void inputScenicSpot(ScenicSpot *s) {
    printf("请输入旅游景点名称:");
    scanf("%s", s->name);
    printf("请输入票价信息:");
    scanf("%s", s->price);
}

void outputScenicSpot(const ScenicSpot *s) {
    printf("%s\t%s\n", s->name, s->price);
}

void printMenu() {
    printf("\n");
    printf("========== 旅游景点票价信息管理系统 ==========\n");
    printf("1. 录入景点信息\n");
    printf("2. 输出景点信息\n");
    printf("3. 查询景点信息\n");
    printf("4. 修改景点信息\n");
    printf("5. 删除景点信息\n");
    printf("6. 保存景点信息\n");
    printf("7. 读取景点信息\n");
    printf("8. 门票销售统计、汇总\n");
    printf("0. 退出\n");
    printf("=============================================\n");
    printf("\n");
}

int countScenicSpots() {
    FILE *fp = fopen("scenic_spots.txt", "r");
    if (fp == NULL) {
        return 0;
    }

    int count = 0;
    char buffer[MAX_NAME_LEN + MAX_PRICE_LEN];
    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        count++;
    }

    fclose(fp);
    return count;
}

void inputScenicSpots(ScenicSpot *s, int count) {
    for (int i = 0; i < count; i++) {
        inputScenicSpot(&s[i]);
    }
}

void outputScenicSpots(const ScenicSpot *s, int count) {
    printf("旅游景点名称\t票价信息\n");
    for (int i = 0; i < count; i++) {
        outputScenicSpot(&s[i]);
    }
}

void saveScenicSpots(const ScenicSpot *s, int count) {
    FILE *fp = fopen("scenic_spots.txt", "w");
    if (fp == NULL) {
        printf("无法打开文件 scenic_spots.txt\n");
        return;
    }

    for (int i = 0; i < count; i++) {
        fprintf(fp, "%s %s\n", s[i].name, s[i].price);
    }

    fclose(fp);
    printf("保存成功\n");
}

void readScenicSpots(ScenicSpot *s, int *count) {
    FILE *fp = fopen("scenic_spots.txt", "r");
    if (fp == NULL) {
        printf("无法打开文件 scenic_spots.txt\n");
        return;
    }

    int i = 0;
    while (fscanf(fp, "%s %s", s[i].name, s[i].price) != EOF) {
        i++;
    }

    *count = i;

    fclose(fp);
    printf("读取成功\n");
}

int findScenicSpotByName()
不知道你这个问题是否已经解决, 如果还没有解决的话:

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