lbcjbcgn 2022-06-14 21:15 采纳率: 60%
浏览 51
已结题

C语言实现国家湿地公园简要信息系统

C语言实现国家湿地公园简要信息系统!(至少5个公园)求!求解!

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2022-06-14 21:35
    关注

    定义一共结构体保存信息,然后可以增加、删除、查询、修改等操作了

    img

    代码如下:

    
    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAXNMB 100
    
    typedef struct _datainfo
    {
        char name[20]; //名称
        char addr[20]; //地点
        char info[200]; //简介
    }Datainfo;
    
    
    const char* g_username = "admin"; //用户名
    const char* g_pwd = "123456"; //密码
    
    
    //登录
    int login()
    {
        char name[20], pwd[10];
        int tms = 0;
    
        system("cls");
        printf("-----------------欢迎使用湿地公园管理系统--------------------\n");
        printf("请输入用户名:");
        while (1)
        {
            scanf("%s", name);
            tms++;
            if (strcmp(name, g_username) == 0)
                break;
            else
            {
                if (tms == 3) //最多3次
                {
                    printf("输出超过3次,请稍后再试!!\n");
                    system("pause");
                    return 0;
                }
                else
                    printf("用户名错误,请重新输入:");
            }
        }
        tms = 0;
        printf("请输入密码:");
        while (1)
        {
            scanf("%s", pwd);
            tms++;
            if (strcmp(pwd, g_pwd) == 0)
            {
                printf("登录成功!!\n");
                system("pause");
                return 1;
            }
            else
            {
                if (tms == 3)
                {
                    printf("输出错误次数超过3次,请稍后重试!\n");
                    system("pause");
                    return 0;
                }
                else
                    printf("密码错误,请从新输入:");
            }
        }
    
    
    }
    
    
    //增加数据
    void addInfo(Datainfo a[], int* nmb)
    {
        system("cls");
        printf("请输入公园名称:");
        scanf("%s", a[*nmb].name);
        printf("请输入公园地址:");
        scanf("%s", a[*nmb].addr);
        printf("请输入公园简介:");
        scanf("%s", a[*nmb].info);
        *nmb += 1;
        printf("添加成功!\n");
        system("pause");
    }
    
    //删除数据
    void deleteInfo(Datainfo a[], int* nmb)
    {
        int i, j;
        char name[20] = { 0 };
        system("cls");
        if (*nmb == 0)
        {
            printf("当前暂无公园信息,请先添加\n");
            system("pause");
            return;
        }
        printf("请输入要删除的公园名称:");
        scanf("%s", name);
        for (i = 0; i < *nmb; i++)
        {
            if (strcmp(name, a[i].name) == 0)
            {
                for (j = i; j < *nmb - 1; j++)
                    a[j] = a[j + 1];
                *nmb -= 1;
                printf("删除成功!\n");
                break;
            }
        }
        if (i == *nmb)
            printf("未找到该公园!\n");
        system("pause");
    }
    
    //修改
    void changeInfo(Datainfo a[], int nmb)
    {
        int i;
        char name[20] = { 0 };
        system("cls");
        if (nmb == 0)
        {
            printf("当前暂无公园信息,请先添加\n");
            system("pause");
            return;
        }
        printf("请输入要修改信息的公园名称:");
        scanf("%s", name);
        for (i = 0; i < nmb; i++)
        {
            if (strcmp(name, a[i].name) == 0)
            {
                printf("请输入公园名称:");
                scanf("%s", a[i].name);
                printf("请输入公园地址:");
                scanf("%s", a[i].addr);
                printf("请输入公园简介:");
                scanf("%s", a[i].info);
    
                printf("修改成功!\n");
                break;
            }
        }
        if (i == nmb)
            printf("未找到该公园!\n");
        system("pause");
    }
    
    //查找
    void searchInfo(Datainfo a[], int nmb)
    {
        int i;
        char name[20] = { 0 };
        system("cls");
        if (nmb == 0)
        {
            printf("当前暂无公园信息,请先添加\n");
            system("pause");
            return;
        }
        printf("请输入要查询的公园名称:");
        scanf("%s", name);
        for (i = 0; i < nmb; i++)
        {
            if (strcmp(name, a[i].name) == 0)
            {
                printf("公园名称:%s\n", a[i].name);
                printf("公园地址:%s\n", a[i].addr);
    
                printf("公园简介:%s\n", a[i].info);
                break;
            }
        }
        if (i == nmb)
            printf("未找到该公园!\n");
        system("pause");
    }
    
    
    //显示所有信息
    void ShowAll(Datainfo a[], int n)
    {
        int i;
        system("cls");
        for (i = 0; i < n; i++)
        {
            printf("公园名称:%s\n", a[i].name);
            printf("公园地址:%s\n", a[i].addr);
            printf("公园简介:%s\n", a[i].info);
            printf("------------------------------------\n");
        }
        system("pause");
    }
    
    
    int main()
    {
        int choise;
        Datainfo a[MAXNMB];
        int nmb = 0;
    
        if (!login())
            return 0;
    
    
        while (1)
        {
            system("cls");
            printf("-----------------湿地公园管理系统--------------------\n");
            printf("    1.添加公园\n");
            printf("    2.修改公园信息\n");
            printf("    3.删除公园信息\n");
            printf("    4.查询公园信息\n");
            printf("    5.显示所有公园信息\n");
            printf("    0.退出系统\n");
            printf("请选择:");
            scanf("%d", &choise);
            switch (choise)
            {
            case 0:return 0;
            case 1:addInfo(a, &nmb); break;
            case 2:changeInfo(a, nmb); break;
            case 3:deleteInfo(a, &nmb); break;
            case 4:searchInfo(a, nmb); break;
            case 5:ShowAll(a, nmb); break;
            }
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月15日
  • 已采纳回答 6月14日
  • 创建了问题 6月14日

悬赏问题

  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错