莳槭 2021-10-25 18:47 采纳率: 83.3%
浏览 32
已结题

大神们,我想知道这个怎么写

img

  • 写回答

1条回答 默认 最新

  • 关注

    参考:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct _Student
    {
        char name[20];
        int age;
        int stuNum;
        int Cscore;
        int Mscore;
        int Escore;
        int Gscore;
        double AvgScore;
    }Student;
    //定义链表的结点
    typedef struct _Node
    {
        Student stu;//学生-数据域
        struct _Node* pNext;//指向下一个结点的指针
    }Node;
    //定义头结点
    Node* g_pHead = NULL;
    void modifyStudent(){
    
    }
    void printStudent(){
        
    }
    void saveStudent(){
        
    }
    void readStudent(){
        
    }
    int countStudent(){
        
    }
    Node* findStudent(){
        
    }
    void deleteStudent(){
        
    }
    //录入学生信息
    void inputStudent()
    {
        //创建一个结点-动态开辟
        Node* pNewNode = (Node*)malloc(sizeof(Node));
        pNewNode->pNext = NULL;
        //头插法
        if (g_pHead == NULL)//原来什么也没有
        {
            g_pHead = pNewNode;
        }
        else
        {
            pNewNode->pNext = g_pHead;
            g_pHead = pNewNode;
        }
        printf("请输入学生姓名:\n");
        scanf("%s", pNewNode->stu.name);//name是数组名,不用加&
        printf("请输入学生年龄:\n");
        scanf("%d", &pNewNode->stu.age);
        printf("请输入学生的学号:\n");
        scanf("%d", &pNewNode->stu.stuNum);
        printf("请输入学生的C成绩:\n");
        scanf("%d", &pNewNode->stu.Cscore);
        printf("请输入学生的数学成绩:\n");
        scanf("%d", &pNewNode->stu.Mscore);
        printf("请输入学生的英语成绩:\n");
        scanf("%d", &pNewNode->stu.Escore);
        pNewNode->stu.Gscore = pNewNode->stu.Cscore + pNewNode->stu.Mscore + pNewNode->stu.Escore;
        pNewNode->stu.AvgScore = pNewNode->stu.Gscore / 3.0;
        printf("录入完成!\n");
        system("pause");
        system("cls");//清屏
    }
    //主菜单
    void mainMenu()
    {
        printf("*\t学生成绩管理系统\t*\n");
        printf("——————————————------\n");
        printf("*\t1.输入学生信息\t\t*\n");
        printf("*\t2.显示学生信息\t\t*\n");
        printf("*\t3.保存学生信息\t\t*\n");
        printf("*\t4.读取学生信息\t\t*\n");
        printf("*\t5.统计记录\t\t*\n");
        printf("*\t6.查找学生信息\t\t*\n");
        printf("*\t7.更新学生信息\t\t*\n");
        printf("*\t8.删除学生信息\t\t*\n");
        printf("*\t9.学生成绩排序\t\t*\n");
        printf("*\t0.退出系统\t\t*\n");
        printf("——————————————------\n");
    }
    
    //键盘输入
    void keyDown()
    {
        char ch = _getch();
        switch (ch)
        {
        case '1'://录入
            inputStudent();
            break;
        case '2'://打印
            printStudent();
            break;
        case '3'://保存
            saveStudent();
            break;
        case '4'://读取
            readStudent();
            break;
        case '5'://统计
            printf("学生总人数为:%d\n", countStudent());
            system("pause");
            system("cls");
            break;
        case '6'://查找
        {
            Node* p = findStudent();
            if (p != NULL)
            {
                printf("学号:%d\t姓名:%s\t年龄:%d\tC成绩:%d\t数学成绩:%d\t英语成绩:%d\n", p->stu.stuNum, p->stu.name, p->stu.age, p->stu.Cscore, p->stu.Mscore, p->stu.Escore);
            }
            else
            {
                printf("没有找到该学生。\n");
            }
            system("pause");
            system("cls");
            break;
        }
        case '7'://修改
            modifyStudent();
            break;
        case '8'://删除
            deleteStudent();
            break;
        case '9'://排序
        case '0'://退出
            exit(0);
            break;
        default:
            printf("输入错误,请重新输入。\n");
            system("pause");
            system("cls");
            break;
        }
    }
    int main(void)
    {
        while (1)
        {
            mainMenu();
            keyDown();
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码