一 、第八天
今天学的是函数,虽然学过,但也收获颇深,学到了变参函数,钩子函数,当然又巩固了之前没学明白的递归函数,发现有许多知识盲区,好在老师讲的不错,收获颇多。
二、第九天
今天学的是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);
// }