美文网首页开发设计
C语言学习-简易学生管理系统

C语言学习-简易学生管理系统

作者: 一只洁_ | 来源:发表于2019-08-04 22:27 被阅读19次

    目的

    用C语言实现一个简易的学生信息管理系统(实现部分功能)

    技术

    结构体、指针、文件的使用、swich语句、链表

    技术应用

    框架
    //定义一个指针 记录头结点
    Student *pHeader = NULL;
    
    //初始化头结点
    initHeader(&pHeader);
    
    int choice = 0;
    while(1){
        showMenu();
        
        choice = getChoice();
        
        switch (choice) {
            case 1:
                //查询
                querry(pHeader);
                break;
            case 2:
                
                break;
            case 3:
                break;
            case 4:
                //插入
                insert(pHeader);
                printf("插入成功!!!\n");
                break;
            default:
                MyExit(EXIT_SUCCESS);
                break;
        }
        
    }
    return 0;
    
    1.定义一个学生的结构体节点
    typedef struct Node{
    char name[10];
    int _id;
    float score;
    struct Node *next;
     } Student;
    
    2.初始化一个头结点
    void initHeader(Student **pHeader){
    //动态分配内存
    Student *pTemp = malloc(1 * sizeof(Student));
    //初始化
    pTemp->next = NULL;
    //改变外部的值
    *pHeader = pTemp;
    }
    
    3.显示菜单
    void showMenu(void){
    printf("************\n");
    printf("1.查询\n");
    printf("2.插入\n");
    printf("3.退出\n");
    printf("************\n");
    }
    
    4.用户选择操作
    int getChoice(void){
    int c;
    printf("请选择操作:");
    scanf("%d", &c);
    
    return c;
    }
    
    5.插入学生数据并且保存
    void MyExit(int status){
    printf("**************\n");
    printf("感谢你的使用再见\n");
    printf("**************\n");
    
    //保存数据
    }
    
    void save(Student *pTemp){
    
    }
    
    void insert(Student *pTemp){
    //准备一个结构体 保存数据
    Student *pStu = malloc(1 * sizeof(Student));
    pStu->next = NULL;
    
    //提示用户输入
    printf("请输入姓名:");
    scanf("%s", pStu->name);
    printf("请输入成绩:");
    scanf("%f", &(pStu->score));
    
    //插入
    int count = 0;
    while (pTemp -> next != NULL) {
        pTemp = pTemp->next;
        count++;
    }
    
    //自动编号
    pStu->_id = count+1;
    
    //将当前这个学生添加到最后一个节点就可以了
    pTemp->next = pStu;
    }
    
    6.查询
    void querry(Student *pTemp){
    //指向第一个数据节点
    pTemp = pTemp -> next;
    while (pTemp != NULL ) {
        printf("id:%d\n", pTemp->_id);
        printf("name:%s\n", pTemp->name);
        printf("score:%.1f\n",pTemp->score);
        printf("\n");
        
        pTemp = pTemp->next;
       }
    }
    

    心得

    一开始听老师讲的时候,感觉还能明白,但是听到后面就懵了不想听了,感觉链表好复杂,自己脑子已经不清醒了,自己也没有很明白,我觉得越到这种时候,应该越努力自己去摸索,因为自己害怕的内容,才是自己没有明白没有搞懂的,所以后面还要找时间自己好好清理一下还没有搞懂的东西。

    相关文章

      网友评论

        本文标题:C语言学习-简易学生管理系统

        本文链接:https://www.haomeiwen.com/subject/terudctx.html