在粤嵌学习的第二周

一 、第八天

今天学的是函数,虽然学过,但也收获颇深,学到了变参函数,钩子函数,当然又巩固了之前没学明白的递归函数,发现有许多知识盲区,好在老师讲的不错,收获颇多。

二、第九天

今天学的是C语言中最难的部分(数组与指针),好在之前有基础加上做好了预习,老师讲的内容基本听懂了,接下来做题巩固就行了

三、第十天

今天讲的是高阶指针,就是一些多级指针和数组,我觉得其实把数组名是首元素地址这个概念理解好了,其他不过是在这基础上的延伸罢了。

四、第十一天

今天为了照顾一些基础比较差的,专门让这天给大家做练习,也是做到几个听新颖的题目,对指针的理解又加深了一步。

五、第十二天

今天学的是虚拟内存,我觉得挺重要的,对于代码框架有了更深层次的理解,然后讲了点结构体,

后面布置了一个学生管理系统,本着少掉头发和早昨晚做都得做的原则,在晚自习做掉了。(文章未附源码)

六、第十三天

今天是自习,我接着看起了后面知识的网课,提前预习下联合体、枚举和宏定义相关知识。晚上也是打了快三小时的球,让人难受的是晚上突然心情起伏有点大,导致熬夜了,挺晚才睡的。

七、第十四天

由于昨晚没睡好等一些原因,导致今天状态挺不好,学习效率好低,没有和实际联系起来,希望能尽快把状态调整回来面对接下来的学习,希望能避免这种无效情绪波动,内耗,希望能多把时间放在实现目标上。

LinuxC语言之学生管理系统源码分享

#include <stdio.h>

#include "string.h"

//学生信息目录

struct student_info{

    char name[20];

    char sex[15];

    char student_id[10];

    short height;

    short weight;

};

//函数声明区

int register_student_info(struct student_info *class, int *class_student_numb);//学生信息录入函数

int change_student_info(struct student_info *class, int *class_student_numb);//学生信息修改函数

int seek_student_info(struct student_info *class, int *class_student_numb);//学生信息查询函数

int delete_student_info(struct student_info *class, int *class_student_numb);//删除学生信息

int print_student_info(struct student_info *class, int *class_student_numb);//打印所有学生信息

//主函数

int main(void)

{

    struct student_info class[40];//结构体数组

    int class_student_numb=0;//已录入学生数量

    short instruct;//指令存储变量

    while(1)

    {

        //显示操作界面

        printf("学生信息登记系统\n");

        printf("请输入您要操作的指令(1~5)\n");

        printf("1.学生信息录入\n");

        printf("2.学生信息更改\n");

        printf("3.学生信息查询\n");

        printf("4.删除学生信息\n");

        printf("5.打印所有学生信息\n");

       

        scanf("%hd",&instruct);

        //输入指令

        switch(instruct)

        {

            case 1:

                //登记学生信息

                register_student_info(class, &class_student_numb);

                break;

            case 2:

                change_student_info(class,&class_student_numb);

                break;

            case 3:

                seek_student_info(class, &class_student_numb);

                break;

            case 4:

                delete_student_info(class, &class_student_numb);

                break;

            case 5:

                print_student_info(class, &class_student_numb);

                break;

        }

    }

   

    return 0;

}


 

//打印所有学生信息

int print_student_info(struct student_info *class, int *class_student_numb)

{

    printf("所有学生信息如下:\n");

    for(int print_index=0;print_index<=(*class_student_numb);print_index++)

    {

        printf("---------\n");

        printf("姓名:%s\n", class[print_index].name);

        printf("性别:%s\n", class[print_index].sex);

        printf("学号:%s\n", class[print_index].student_id);

        printf("身高:%hd\n", class[print_index].height);

        printf("体重:%hd\n", class[print_index].weight);

        printf("---------\n");

    }  

   

    printf("所有学生信息打印完毕!\n");

}


 

//删除学生信息

int delete_student_info(struct student_info *class, int *class_student_numb)

{

    char *change_student_id;

    short obj_index = -1;

   

    printf("请选择您要删除学生信息的学生学号或退出(exit)\n");

    scanf("%s",change_student_id);

   

    //执行指令

    if(strcmp(change_student_id,"exit") == 0)

    {

        printf("退出成功\n");

        return 0;

    }

    else

    {

        for(int seek_student_id=0;seek_student_id<=(*class_student_numb);seek_student_id++)

        {

            if(strcmp(change_student_id,(class[seek_student_id].student_id)) == 0)

            {

                obj_index = *class_student_numb;

                break;

            }

        }

       

        if(obj_index == -1)

        {

            printf("不存在该学生,请检查您输入的信息!\n");

            return 0;

        }

        else

        {

            if(obj_index == 0 || obj_index == 39)

            {

                (*class_student_numb)--;

            }

            else

            {

                for(int move_stu_num=obj_index;move_stu_num<=(*class_student_numb);move_stu_num++)

                {

                    class[move_stu_num] = class[move_stu_num+1];

                }

            }

           

            obj_index = -1;

           

            printf("删除该学生信息成功\n");

           

        }

       

    }

   

}


 

//学生信息查询函数

int seek_student_info(struct student_info *class, int *class_student_numb)

{

    char *change_student_id;

    short obj_index = -1;

   

    printf("请输入您要查询的学生的学号或退出(exit)\n");

    scanf("%s",change_student_id);

   

    //执行指令

    if(strcmp(change_student_id,"exit") == 0)

    {

        printf("退出成功\n");

        return 0;

    }

    else

    {

        for(int seek_student_id=0;seek_student_id<=(*class_student_numb);seek_student_id++)

        {

            if(strcmp(change_student_id,(class[seek_student_id].student_id)) == 0)

            {

                obj_index = *class_student_numb;

                break;

            }

        }

       

        if(obj_index == -1)

        {

            printf("不存在该学生,请检查您输入的信息!\n");

            return 0;

        }

        else

        {

            obj_index = -1;

            printf("您查询的学生信息如下:\n");

            printf("姓名:%s\n", class[obj_index].name);

            printf("性别:%s\n", class[obj_index].sex);

            printf("学号:%s\n", class[obj_index].student_id);

            printf("身高:%hd\n", class[obj_index].height);

            printf("体重:%hd\n", class[obj_index].weight);

           

        }

       

   

    }

}


 

//学生信息修改函数

int change_student_info(struct student_info *class, int *class_student_numb)

{

    char *change_student_id;

    short obj_index = -1;

   

    //确定需要修改的学生的序号

    printf("请输入您要修改的学生的学号或退出(exit):\n");

    scanf("%s",change_student_id);

   

    //printf("%s",change_student_id);

   

    //执行指令

    if(strcmp(change_student_id,"exit") == 0)

    {

        printf("退出成功\n");

        return 0;

    }

    else

    {

        for(int seek_student_id=0;seek_student_id<=(*class_student_numb);seek_student_id++)

        {

            if(strcmp(change_student_id,(class[seek_student_id].student_id)) == 0)

            {

                obj_index = *class_student_numb;

                break;

            }

        }

   

        if(obj_index == -1)

        {

            printf("不存在该学生,请检查您输入的信息!\n");

            return 0;

        }

        else

        {

            //开始修改学生信息

            printf("请输入修改后的学生姓名:\n");

            scanf("%s", class[obj_index].name);

            printf("请输入修改后的学生性别:\n");

            scanf("%s", class[obj_index].sex);

   

            printf("请输入修改后的学生学号:\n");

            scanf("%s", class[obj_index].student_id);

            printf("请输入修改后的学生身高:\n");

            scanf("%hd", &class[obj_index].height);

            printf("请输入修改后的学生体重:\n");

            scanf("%hd", &class[obj_index].weight);

            //修改信息成功提示

            printf("第%d为学生信息修改成功!",obj_index);

           

            //清零

            obj_index = 0;

           

        }

    }

}


 

//学生信息录入函数

int register_student_info(struct student_info *class, int *class_student_numb)

{

    //判断学生是否已满

    if((*class_student_numb) >= 40)

    {

        printf("学生人数已达最大值,请重新选择指令");

        return 0;

    }

   

    //开始登记学生信息

    printf("请输入学生的姓名:\n");

    scanf("%s", class[*class_student_numb].name);

    printf("请输入学生的性别:\n");

    scanf("%s", class[*class_student_numb].sex);

    printf("请输入学生的学号:\n");

    scanf("%s", class[*class_student_numb].student_id);

    printf("请输入学生的身高:\n");

    scanf("%hd", &class[*class_student_numb].height);

    printf("请输入学生的体重:\n");

    scanf("%hd", &class[*class_student_numb].weight);

    *class_student_numb += 1;

    //录入信息成功提示

    printf("第%d为学生信息录入成功!\n",*class_student_numb);

   


 

    return 0;

}


 

// int main1(void)

// {

//  struct student_info *pclass;

//  pclass = malloc(40*sizeof(sturct student_info));




 

//  free(pclass);

// }


 

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值