• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

ChatGPT实现用C语言写学生成绩管理系统

武飞扬头像
EternallEi
帮助1

随着ChatGPT爆火,大家都在使用ChatGPT来帮助自己提高效率,对于程序员来说使用它来写代码怎么样呢?今天尝试让ChatGPT,写了一个学生成绩管理系统。

问题是:使用C语言写一个学生成绩管理系统,要求使用链表,实现增删改查功能。

下面是ChatGPT写的代码,用时不到30秒,速度还是很惊人的:

  1.  
    #include <stdio.h>
  2.  
    #include <stdlib.h>
  3.  
    #include <string.h>
  4.  
    #include <conio.h>
  5.  
     
  6.  
    //定义链表结构体。
  7.  
    struct student {
  8.  
        char name[20]; //学生姓名。
  9.  
        int id; //学生编号。
  10.  
        float score; //学生成绩。
  11.  
        struct student *next//指向下一个结构体的指针。
  12.  
    *head;
  13.  
     
  14.  
    //声明函数。
  15.  
    void add(); //添加学生信息。
  16.  
    void display(); //显示所有学生信息。
  17.  
    void search(); //根据学生姓名或编号查找学生信息。
  18.  
    void modify(); //修改学生信息。
  19.  
    void quit(); //程序退出。
  20.  
     
  21.  
    //主函数。
  22.  
    int main() {
  23.  
        int ch;
  24.  
        printf("\n\t学生成绩管理系统\n");
  25.  
        printf("\t==================\n");
  26.  
        while (1) {
  27.  
            printf("1. 添加学生信息\n");
  28.  
            printf("2. 显示所有学生信息\n");
  29.  
            printf("3. 查找学生信息\n");
  30.  
            printf("4. 修改学生信息\n");
  31.  
            printf("5. 退出程序\n");
  32.  
            printf("请输入选项: ");
  33.  
            scanf("%d"&ch);
  34.  
            switch (ch) {
  35.  
                case 1:
  36.  
                    add();
  37.  
                    break;
  38.  
                case 2:
  39.  
                    display();
  40.  
                    break;
  41.  
                case 3:
  42.  
                    search();
  43.  
                    break;
  44.  
                case 4:
  45.  
                    modify();
  46.  
                    break;
  47.  
                case 5:
  48.  
                    quit();
  49.  
                    break;
  50.  
                default:
  51.  
                    printf("无效的选项,请重新输入。\n");
  52.  
            }
  53.  
        }
  54.  
        return 0;
  55.  
    }
  56.  
     
  57.  
    //添加学生信息。
  58.  
    void add() {
  59.  
        struct student *newstudent, *laststudent;
  60.  
        newstudent = (struct student *) malloc(sizeof(struct student)); //申请新的结构体。
  61.  
        printf("\n请输入学生姓名: ");
  62.  
        scanf("%s", newstudent->name);
  63.  
        printf("请输入学生编号: ");
  64.  
        scanf("%d"&newstudent->id);
  65.  
        printf("请输入学生成绩: ");
  66.  
        scanf("%f"&newstudent->score);
  67.  
        newstudent->next = NULL;
  68.  
        if (head == NULL) {
  69.  
            head = newstudent;
  70.  
        } else {
  71.  
            laststudent = head;
  72.  
            while (laststudent->next != NULL) {
  73.  
                laststudent = laststudent->next;
  74.  
            }
  75.  
            laststudent->next = newstudent;
  76.  
        }
  77.  
        printf("\n学生信息已成功添加。\n");
  78.  
    }
  79.  
     
  80.  
    //显示所有学生信息。
  81.  
    void display() {
  82.  
        struct student *displaystudent = head; //定义指向链表结构体的指针。
  83.  
        if (displaystudent == NULL) {
  84.  
            printf("\n暂无学生信息。\n");
  85.  
        } else {
  86.  
            printf("\n所有学生信息如下:\n");
  87.  
            while (displaystudent != NULL) {
  88.  
                printf("====================\n");
  89.  
                printf("姓名: %s", displaystudent->name);
  90.  
                printf("编号: %d", displaystudent->id);
  91.  
                printf("成绩: %.2f", displaystudent->score);
  92.  
                displaystudent = displaystudent->next;
  93.  
            }
  94.  
            printf("====================\n");
  95.  
        }
  96.  
    }
  97.  
     
  98.  
    //根据学生姓名或编号查找学生信息。
  99.  
    void search() {
  100.  
        struct student *searchstudent = head;
  101.  
        char searchname[20];
  102.  
        int searchid;
  103.  
        printf("\n请选择查找方式:\n");
  104.  
        printf("1. 根据姓名查找");
  105.  
        printf("2. 根据编号查找");
  106.  
        printf("请输入选项: ");
  107.  
        int ch;
  108.  
        scanf("%d"&ch);
  109.  
        switch (ch) {
  110.  
            case 1:
  111.  
                printf("\n请输入学生姓名: ");
  112.  
                scanf("%s", searchname);
  113.  
                while (searchstudent != NULL) {
  114.  
                    if (strcmp(searchname, searchstudent->name) ==0) {
  115.  
                        printf("====================\n");
  116.  
                        printf("姓名: %s", searchstudent->name);
  117.  
                        printf("编号: %d", searchstudent->id);
  118.  
                        printf("成绩: %.2f", searchstudent->score);
  119.  
                        printf("====================\n");
  120.  
                        return;
  121.  
                    }
  122.  
                    searchstudent = searchstudent->next;
  123.  
                }
  124.  
                printf("\n未找到该学生信息。\n");
  125.  
                break;
  126.  
            case 2:
  127.  
                printf("\n请输入学生编号: ");
  128.  
                scanf("%d"&searchid);
  129.  
                while (searchstudent != NULL) {
  130.  
                    if (searchid == searchstudent->id) {
  131.  
                        printf("====================\n");
  132.  
                        printf("姓名: %s", searchstudent->name);
  133.  
                        printf("编号: %d", searchstudent->id);
  134.  
                        printf("成绩: %.2f", searchstudent->score);
  135.  
                        printf("====================\n");
  136.  
                        return;
  137.  
                    }
  138.  
                    searchstudent = searchstudent->next;
  139.  
                }
  140.  
                printf("\n未找到该学生信息。\n");
  141.  
                break;
  142.  
            default:
  143.  
                printf("\n无效的选项,请重新输入。\n");
  144.  
        }
  145.  
    }
  146.  
     
  147.  
    //修改学生信息。
  148.  
    void modify() {
  149.  
        struct student *modifystudent = head;
  150.  
        char modifyname[20];
  151.  
        int modifyid;
  152.  
        printf("\n请选择修改方式:\n");
  153.  
        printf("1. 根据姓名查找");
  154.  
        printf("2. 根据编号查找");
  155.  
        printf("请输入选项: ");
  156.  
        int ch;
  157.  
        scanf("%d"&ch);
  158.  
        switch (ch) {
  159.  
            case 1:
  160.  
                printf("\n请输入学生姓名: ");
  161.  
                scanf("%s", modifyname);
  162.  
                while (modifystudent != NULL) {
  163.  
                    if (strcmp(modifyname, modifystudent->name) ==0) {
  164.  
                        printf("\n请输入新的学生成绩: ");
  165.  
                        scanf("%f"&modifystudent->score);
  166.  
                        printf("\n学生信息已成功修改。\n");
  167.  
                        return;
  168.  
                    }
  169.  
                    modifystudent = modifystudent->next;
  170.  
                }
  171.  
                printf("\n未找到该学生信息。\n");
  172.  
                break;
  173.  
            case 2:
  174.  
                printf("\n请输入学生编号: ");
  175.  
                scanf("%d"&modifyid);
  176.  
                while (modifystudent != NULL) {
  177.  
                    if (modifyid == modifystudent->id) {
  178.  
                        printf("\n请输入新的学生成绩: ");
  179.  
                        scanf("%f"&modifystudent->score);
  180.  
                        printf("\n学生信息已成功修改。\n");
  181.  
                        return;
  182.  
                    }
  183.  
                    modifystudent = modifystudent->next;
  184.  
                }
  185.  
                printf("\n未找到该学生信息。\n");
  186.  
                break;
  187.  
            default:
  188.  
                printf("\n无效的选项,请重新输入。\n");
  189.  
        }
  190.  
    }
  191.  
     
  192.  
    //程序退出。
  193.  
    void quit() {
  194.  
        struct student *currentstudent = head, *nextstudent;
  195.  
        while (currentstudent != NULL) {
  196.  
            nextstudent = currentstudent->next;
  197.  
            free(currentstudent);
  198.  
            currentstudent = nextstudent;
  199.  
        }
  200.  
        exit(0);
  201.  
    }
  202.  
     
学新通

那么写的代码怎么样呢,能不能直接运行,我们来看一下。

直接将这段代码复制粘贴到clion里,点击运行,结果如下:


D:\wangc\CLionProjects\demo_10\cmake-build-debug\demo_10.exe

        学生成绩管理系统
    ==================

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:1

请输入学生姓名:zhangsan 请输入学生编号:1001 请输入学生成绩:88

学生信息已成功添加。

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:1

请输入学生姓名:lisi 请输入学生编号:1002 请输入学生成绩:98

学生信息已成功添加。

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:1

请输入学生姓名:wangwu 请输入学生编号:1003 请输入学生成绩:87

学生信息已成功添加。

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:2

所有学生信息如下:

姓名: zhangsan编号: 1001成绩: 88.00==================== 姓名: lisi编号: 1002成绩: 98.00==================== 姓名: wangwu编号: 1003成绩: 87.00====================

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:3

请选择查找方式:

  1. 根据姓名查找2. 根据编号查找请输入选项:2

请输入学生编号:1002

姓名: lisi编号: 1002成绩: 98.00====================

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:4

请选择修改方式:

  1. 根据姓名查找2. 根据编号查找请输入选项:1

请输入学生姓名:zhangsan

请输入新的学生成绩:97

学生信息已成功修改。

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:2

所有学生信息如下:

姓名: zhangsan编号: 1001成绩: 97.00==================== 姓名: lisi编号: 1002成绩: 98.00==================== 姓名: wangwu编号: 1003成绩: 87.00====================

  1. 添加学生信息

  2. 显示所有学生信息

  3. 查找学生信息

  4. 修改学生信息

  5. 退出程序 请输入选项:


经过测试发现,ChatGPT写基础代码是没有问题的,可以直接运行,而且运行结果符合预期。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgkichh
系列文章
更多 icon
同类精品
更多 icon
继续加载