陈啊阵 2023-03-27 20:28 采纳率: 100%
浏览 36
已结题

请给出下列代码中的参数**表示什么**,我在需要解释的参数后面加了**//**(语言-c语言)

请给出下列代码中的参数表示什么,我在需要解释的参数后面加了**//**

#define _CRT_SECURE_NO_WARNINGS 1
#include "StudentManager.h"
 
struct Student* head = NULL;
struct Student* end = NULL;
 
void Menu()
{
    system("cls");
    printf("1.学生信息录入\n");
    printf("2.单个学生成绩查询\n");
    printf("3.查询全部学生成绩\n");
    printf("4.修改学生信息\n");
    printf("5.删除学生信息\n");
    printf("6.学生单科成绩录入\n");
    printf("7.班级内单科成绩排名\n");
    printf("8.退出系统\n");
 
    int choice;// 
    printf("请选择要使用的功能:\n");
loop:
    scanf("%d", &choice);
    switch (choice)
    {
    case 1:
        Add();
        Menu();
    case 2:
        View();
        Menu();
    case 3:
        ViewAll();
        Menu();
    case 4:
        Repair();
        Menu();
    case 5:
        Delete();
        Menu();
    case 6:
        AddOne();
        Menu();
    case 7:
        Rank();
        Menu();
    case 8:
        exit(0);
    default:
        printf("输入有误,请重新选择:");
        break;
    }
}
 
void Add()
{
    system("cls");
    int count;// 
    printf("请输入要录入信息的个数:");
    scanf("%d", &count);
 
    struct Student* s1, * s2, * temp;
    s1 = s2 = (struct Student*)malloc(LEN);
 
    if (head == NULL)
    {
        head = s1;
    }
    else
    {
        end->next = s1;
    }
 
    int i = 1;// 
    while (count > 0)
    {
        printf("请输入第%d位学生信息:\n", i++);
        printf("姓名:\n");
        scanf("%s", &s1->name);
        printf("学号:\n");
        scanf("%s", &s1->number);
        printf("班级:\n");
        scanf("%d", &s1->classID);
        printf("C语言成绩:\n");
        scanf("%d", &s1->C_Language);
        printf("数学成绩:\n");
        scanf("%d", &s1->Math);
        printf("英语成绩:\n");
        scanf("%d", &s1->English);
        count--;
        s2->next = s1;
        s2 = s1;
        s1 = (struct Student*)malloc(LEN);
        printf("添加成功!\n");
        system("pause");
        system("cls");
    }
    s2->next = NULL;
    end = s2;
    printf("全部添加成功!\n");
    system("pause");
}
 
void View()
{
    system("cls");
    struct Student* VS;
    printf("输入要查询信息的学生学号:\n");
    char num[10];// 
    int flag = 1;// 
    scanf("%s", &num);
    for (VS = head; VS != NULL;)
    {
        if (strcmp(VS->number, num) == 0)
        {
            printf("成功找到!\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", VS->name, VS->number, VS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", VS->C_Language, VS->Math, VS->English);
            flag = 0;
        }
        VS = VS->next;
    }
    if (flag != 0)
    {
        printf("不好意思,未找到!\n");
    }
    system("pause");
}
 
void ViewAll()
{
    system("cls");
    struct Student* VA;
    if (head != NULL)
    {
        printf("所有学生成绩如下:\n");
        for (VA = head; VA != NULL;)
        {
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", VA->name, VA->number, VA->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", VA->C_Language, VA->Math, VA->English);
            VA = VA->next;
        }
        printf("所有不及格科目超过两科的学生名单如下:\n");
        for (VA = head; VA != NULL;)
        {
            int lostNum = 0;// 
            if (VA->C_Language < 60)
            {
                lostNum++;
            }
            if (VA->Math < 60)
            {
                lostNum++;
            }
            if (VA->English < 60)
            {
                lostNum++;
            }
            if (lostNum > 1)
            {
                printf("姓名:%s\t\n", VA->name);
            }
            VA = VA->next;
        }
 
    }
    else
    {
        printf("该系统中还未录入信息\n");
    }
    system("pause");
}
 
void Repair()
{
    system("cls");
    struct Student* RS;
    char num[10];// 
    int flag = 1;// 
    printf("输入要修改成绩学生的学号:\n");
    scanf("%s", num);
    for (RS = head; RS != NULL;)
    {
        if (strcmp(RS->number, num) == 0)
        {
            printf("成功找到该学生\n");
            printf("姓名:%s\t学号:%s\t班级:%d\t\n", RS->number, RS->name, RS->classID);
            printf("C语言:%d\t数学:%d\t英语:%d\t\n", RS->C_Language, RS->Math, RS->English);
            flag = 0;
            printf("姓名:\n");
            scanf("%s", &RS->name);
            printf("学号:\n");
            scanf("%s", &RS->number);
            printf("班级:\n");
            scanf("%d", &RS->classID);
            printf("C语言成绩:\n");
            scanf("%d", &RS->C_Language);
            printf("数学成绩:\n");
            scanf("%d", &RS->Math);
            printf("英语成绩:\n");
            scanf("%d", &RS->English);
            printf("修改成功\n");
            system("pause");
        }
        RS = RS->next;
    }
    if (flag != 0)
    {
        printf("输入信息有误,未查询到");
        system("pause");
    }
}
 
void Delete()
{
    system("cls");
    int flag = 1;// 
    while (flag != 0)
    {
        printf("请输入要删除的学生学号:");
        char num[10];// 
        scanf("%s", &num); 
        struct Student* DS, * temp = head;
        for (DS = head; DS != NULL;)
        {
            if (strcmp(DS->number, num) == 0)
            {
                if (DS == head)
                {
                    head = DS->next;
                    flag = 0;
                    printf("删除成功!\n");
                    system("pause");
                }
                else
                {
                    flag = 0;
                    printf("删除成功!\n");
                    temp->next = DS->next;
                    free(DS);
                    system("pause");
                }
            }
            temp = DS;
            DS = DS->next;
        }
        if (flag != 0)
        {
            printf("未找到该学生学号!\n");
            system("pause");
        }
    }
}
 
void AddOne()
{
    system("cls");
    struct Student* AS = (struct Student*)malloc(sizeof(struct Student));
    AS->next = NULL;
    int flag = 1;// 
    while (flag != 0)
    {
        printf("请输入姓名:\n");
        scanf("%s", AS->name);
        printf("请输入学号:\n");
        scanf("%s", AS->number);
        printf("1.录入C语言成绩\n");
        printf("2.录入数学成绩\n");
        printf("3.录入英语成绩\n");
        int select;
        scanf("%d", &select);
        switch (select)
        {
        case 1:
            printf("请输入C语言成绩\n");
            scanf("%d", &AS->C_Language);
            break;
        case 2:
            printf("请输入数学成绩\n");
            scanf("%d", &AS->Math);
            break;
        case 3:
            printf("请输入英语成绩\n");
            scanf("%d", &AS->English);
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }
        printf("录入成功\n");
        flag = 0;
        struct Student* AO, * temp;
        if (head == NULL) {
            head = AS;
        }
        else
        {
            for (AO = head; AO->next != NULL;) {
                AO = AO->next;
            }
            AO->next = AS;
        }
        system("pause");
    }
}
 
void Rank() {
    system("cls");
    struct Student* p, * q;
    struct Student temp;
    printf("请选择要进行排名的科目:\n");
    printf("1.C语言\n");
    printf("2.数学\n");
    printf("3.英语\n");
    int choice;// 
    scanf("%d", &choice);
    for (p = head; p != NULL; p = p->next) {
        for (q = p->next; q != NULL; q = q->next) {
            int need_swap = 0;
            switch (choice) {
            case 1:
                if (p->C_Language < q->C_Language && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            case 2:
                if (p->Math < q->Math && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            case 3:
                if (p->English < q->English && p->classID == q->classID) {
                    need_swap = 1;
                }
                break;
            default:
                printf("输入有误,请重新选择:");
                break;
            }
 
            if (need_swap) {
                temp = *p;
                *p = *q;
                *q = temp;
                struct Student* temp_next = p->next;
                p->next = q->next;
                q->next = temp_next;
            }
        }
    }
    printf("按照班级和选择的科目进行排名:\n");
    for (struct Student* r = head; r != NULL; r = r->next) {
        printf("姓名:%s\t学号:%s\t班级:%d\t", r->name, r->number, r->classID);
        switch (choice) {
        case 1:
            printf("C语言:%d\n", r->C_Language);
            break;
        case 2:
            printf("数学:%d\n", r->Math);
            break;
        case 3:
            printf("英语:%d\n", r->English);
            break;
        default:
            printf("输入有误,请重新选择:");
            break;
        }
    }
    system("pause");
}
 
 

  • 写回答

5条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-03-27 20:52
    关注

    参考如下:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include "StudentManager.h"
     
    struct Student* head = NULL;
    struct Student* end = NULL;
     
    void Menu()
    {
        system("cls");
        printf("1.学生信息录入\n");
        printf("2.单个学生成绩查询\n");
        printf("3.查询全部学生成绩\n");
        printf("4.修改学生信息\n");
        printf("5.删除学生信息\n");
        printf("6.学生单科成绩录入\n");
        printf("7.班级内单科成绩排名\n");
        printf("8.退出系统\n");
     
        int choice;// 要使用的功能选择
        printf("请选择要使用的功能:\n");
    loop:
        scanf("%d", &choice);
        switch (choice)
        {
        case 1:
            Add();
            Menu();
        case 2:
            View();
            Menu();
        case 3:
            ViewAll();
            Menu();
        case 4:
            Repair();
            Menu();
        case 5:
            Delete();
            Menu();
        case 6:
            AddOne();
            Menu();
        case 7:
            Rank();
            Menu();
        case 8:
            exit(0);
        default:
            printf("输入有误,请重新选择:");
            break;
        }
    }
     
    void Add()
    {
        system("cls");
        int count;// 录入信息个数
        printf("请输入要录入信息的个数:");
        scanf("%d", &count);
     
        struct Student* s1, * s2, * temp;
        s1 = s2 = (struct Student*)malloc(LEN);
     
        if (head == NULL)
        {
            head = s1;
        }
        else
        {
            end->next = s1;
        }
     
        int i = 1;// 学生个数,从1开始
        while (count > 0)
        {
            printf("请输入第%d位学生信息:\n", i++);
            printf("姓名:\n");
            scanf("%s", &s1->name);
            printf("学号:\n");
            scanf("%s", &s1->number);
            printf("班级:\n");
            scanf("%d", &s1->classID);
            printf("C语言成绩:\n");
            scanf("%d", &s1->C_Language);
            printf("数学成绩:\n");
            scanf("%d", &s1->Math);
            printf("英语成绩:\n");
            scanf("%d", &s1->English);
            count--;
            s2->next = s1;
            s2 = s1;
            s1 = (struct Student*)malloc(LEN);
            printf("添加成功!\n");
            system("pause");
            system("cls");
        }
        s2->next = NULL;
        end = s2;
        printf("全部添加成功!\n");
        system("pause");
    }
     
    void View()
    {
        system("cls");
        struct Student* VS;
        printf("输入要查询信息的学生学号:\n");
        char num[10];// 要查询的学生学号
        int flag = 1;// 查询标识,1 未找到  0 找到了
        scanf("%s", &num);
        for (VS = head; VS != NULL;)
        {
            if (strcmp(VS->number, num) == 0)
            {
                printf("成功找到!\n");
                printf("姓名:%s\t学号:%s\t班级:%d\t\n", VS->name, VS->number, VS->classID);
                printf("C语言:%d\t数学:%d\t英语:%d\t\n", VS->C_Language, VS->Math, VS->English);
                flag = 0;
            }
            VS = VS->next;
        }
        if (flag != 0)
        {
            printf("不好意思,未找到!\n");
        }
        system("pause");
    }
     
    void ViewAll()
    {
        system("cls");
        struct Student* VA;
        if (head != NULL)
        {
            printf("所有学生成绩如下:\n");
            for (VA = head; VA != NULL;)
            {
                printf("姓名:%s\t学号:%s\t班级:%d\t\n", VA->name, VA->number, VA->classID);
                printf("C语言:%d\t数学:%d\t英语:%d\t\n", VA->C_Language, VA->Math, VA->English);
                VA = VA->next;
            }
            printf("所有不及格科目超过两科的学生名单如下:\n");
            for (VA = head; VA != NULL;)
            {
                int lostNum = 0;// 不及格科目超过两科的学生总数
                if (VA->C_Language < 60)
                {
                    lostNum++;
                }
                if (VA->Math < 60)
                {
                    lostNum++;
                }
                if (VA->English < 60)
                {
                    lostNum++;
                }
                if (lostNum > 1)
                {
                    printf("姓名:%s\t\n", VA->name);
                }
                VA = VA->next;
            }
     
        }
        else
        {
            printf("该系统中还未录入信息\n");
        }
        system("pause");
    }
     
    void Repair()
    {
        system("cls");
        struct Student* RS;
        char num[10];// 要修改成绩的学生学号
        int flag = 1;// 标识 1:未找到要修改的学生  0 : 找到了要修改的学生
        printf("输入要修改成绩学生的学号:\n");
        scanf("%s", num);
        for (RS = head; RS != NULL;)
        {
            if (strcmp(RS->number, num) == 0)
            {
                printf("成功找到该学生\n");
                printf("姓名:%s\t学号:%s\t班级:%d\t\n", RS->number, RS->name, RS->classID);
                printf("C语言:%d\t数学:%d\t英语:%d\t\n", RS->C_Language, RS->Math, RS->English);
                flag = 0;
                printf("姓名:\n");
                scanf("%s", &RS->name);
                printf("学号:\n");
                scanf("%s", &RS->number);
                printf("班级:\n");
                scanf("%d", &RS->classID);
                printf("C语言成绩:\n");
                scanf("%d", &RS->C_Language);
                printf("数学成绩:\n");
                scanf("%d", &RS->Math);
                printf("英语成绩:\n");
                scanf("%d", &RS->English);
                printf("修改成功\n");
                system("pause");
            }
            RS = RS->next;
        }
        if (flag != 0)
        {
            printf("输入信息有误,未查询到");
            system("pause");
        }
    }
     
    void Delete()
    {
        system("cls");
        int flag = 1;// 标识,1:未找到待删除的学生  0:找到了待删除的学生
        while (flag != 0)
        {
            printf("请输入要删除的学生学号:");
            char num[10];// 待删除的学生学号
            scanf("%s", &num); 
            struct Student* DS, * temp = head;
            for (DS = head; DS != NULL;)
            {
                if (strcmp(DS->number, num) == 0)
                {
                    if (DS == head)
                    {
                        head = DS->next;
                        flag = 0;
                        printf("删除成功!\n");
                        system("pause");
                    }
                    else
                    {
                        flag = 0;
                        printf("删除成功!\n");
                        temp->next = DS->next;
                        free(DS);
                        system("pause");
                    }
                }
                temp = DS;
                DS = DS->next;
            }
            if (flag != 0)
            {
                printf("未找到该学生学号!\n");
                system("pause");
            }
        }
    }
     
    void AddOne()
    {
        system("cls");
        struct Student* AS = (struct Student*)malloc(sizeof(struct Student));
        AS->next = NULL;
        int flag = 1;// 标识 0:添加学生信息成功 1:未成功 
        while (flag != 0)
        {
            printf("请输入姓名:\n");
            scanf("%s", AS->name);
            printf("请输入学号:\n");
            scanf("%s", AS->number);
            printf("1.录入C语言成绩\n");
            printf("2.录入数学成绩\n");
            printf("3.录入英语成绩\n");
            int select;
            scanf("%d", &select);
            switch (select)
            {
            case 1:
                printf("请输入C语言成绩\n");
                scanf("%d", &AS->C_Language);
                break;
            case 2:
                printf("请输入数学成绩\n");
                scanf("%d", &AS->Math);
                break;
            case 3:
                printf("请输入英语成绩\n");
                scanf("%d", &AS->English);
                break;
            default:
                printf("输入错误,请重新输入\n");
                break; // 这里退出逻辑有问题,break退出switch,还是会执行后面录入成功后面的语句
            }
            printf("录入成功\n");
            flag = 0;
            struct Student* AO, * temp;
            if (head == NULL) {
                head = AS;
            }
            else
            {
                for (AO = head; AO->next != NULL;) {
                    AO = AO->next;
                }
                AO->next = AS;
            }
            system("pause");
        }
    }
     
    void Rank() {
        system("cls");
        struct Student* p, * q;
        struct Student temp;
        printf("请选择要进行排名的科目:\n");
        printf("1.C语言\n");
        printf("2.数学\n");
        printf("3.英语\n");
        int choice;// 要进行排名的科目选择
        scanf("%d", &choice);
        for (p = head; p != NULL; p = p->next) {
            for (q = p->next; q != NULL; q = q->next) {
                int need_swap = 0;
                switch (choice) {
                case 1:
                    if (p->C_Language < q->C_Language && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 2:
                    if (p->Math < q->Math && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                case 3:
                    if (p->English < q->English && p->classID == q->classID) {
                        need_swap = 1;
                    }
                    break;
                default:
                    printf("输入有误,请重新选择:");
                    break;
                }
     
                if (need_swap) {
                    temp = *p;
                    *p = *q;
                    *q = temp;
                    struct Student* temp_next = p->next;
                    p->next = q->next;
                    q->next = temp_next;
                }
            }
        }
        printf("按照班级和选择的科目进行排名:\n");
        for (struct Student* r = head; r != NULL; r = r->next) {
            printf("姓名:%s\t学号:%s\t班级:%d\t", r->name, r->number, r->classID);
            switch (choice) {
            case 1:
                printf("C语言:%d\n", r->C_Language);
                break;
            case 2:
                printf("数学:%d\n", r->Math);
                break;
            case 3:
                printf("英语:%d\n", r->English);
                break;
            default:
                printf("输入有误,请重新选择:");
                break;
            }
        }
        system("pause");
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序