• C 学生管理系统_添加学生


    #define _CRT_SECURE_NO_WARNINGS
    #include
    #include

    //学生节点。
    typedef struct _STU
    {
        char arrStuNum[10];
        char arrStuName[10];
        int iStuScore;
        struct _STU* pNext;//指向下一个节点。
    }STUNODE;
    //申明链表的头和尾。
    STUNODE* g_pHead = NULL;
    STUNODE* g_pEnd = NULL;

    void AddStuMSG(char* arrStuNum[10], char srrStuName[10], int iStuScore);

    int main()
    {
        int nOrder=-1;

        char arrStuNum[10] = {'\0'};
        char arrStuName[10] = {'\0'};
        int iStuScore=-1;
        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("***9、退出系统***\n");
        printf("*****************************************************\n");
        scanf("%d", &nOrder);

        switch (nOrder)
        {
        case 1:
            printf("输入学号:");
            scanf("%s", arrStuNum);
            printf("输入姓名:");
            scanf("%s", arrStuName);
            printf("输入分数:");
            scanf("%d", &iStuScore);//取地址。
            void AddStuMSG(char* arrStuNum[10], char arrStuName[10], int iStuScore);

            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        case 6:
            break;
        case 7:
            break;
        case 8:
            break;
        case 9:
            break;
        default:
            printf("输入的指令不对");
            break;
        }

        system("pause");
        return 0;
    }
    //添加一个学生信息。
    void AddStuMSG(char *arrStuNum[10], char arrStuName[10], int iStuScore)
    {
        //逻辑
        //创建一个节点。
        STUNODE* pTemp = malloc(sizeof(STUNODE));

        //第一步,检验参数合法性。
        if (NULL==arrStuNum||NULL==arrStuName||iStuScore<0)
        {
            printf("学生信息输入错误。\n");
            return;
        }
        

        //节点成员赋初始值。
        strcpy(pTemp->arrStuNum, arrStuNum);//因为数组做参数传入时则完全是一个指针。
        strcpy(pTemp->arrStuName, arrStuName);//因为数组做参数传入时则完全是一个指针。
        pTemp->iStuScore = iStuScore;
        pTemp->pNext = NULL;

        //接在链表上。
        if (NULL == g_pHead || NULL == g_pEnd)
        {
            g_pHead = pTemp;
            g_pEnd = pTemp;
        }
        else
        {
            g_pEnd->pNext = pTemp;//链接。
            g_pEnd = pTemp;//向后移动。
        }
    }

  • 相关阅读:
    【React源码】(十三)Hook 原理(状态 Hook)
    python实现图像二分类精准率(numpy)
    OpenKruise-CloneSet
    【设计模式】 - 结构型模式 - 适配器模式
    狂神说SSM之Spring5 从入门到脱发
    GPT_AI高速发展中什么是Prompt提示词?
    016-Cocoapods私有库制作 及 普通项目引入个人私有库 注意点
    BootStrapBlazor 安装教程--Server模式
    火热的低代码,是时候系统的来学一学了!
    Spring 源码阅——忽略感知接口对应成员变量的自动装配
  • 原文地址:https://blog.csdn.net/qq_52119661/article/details/126095442