C语言,结构体实现学生管理系统

大家好,这是本人第一次写博客。写的不好的地方,请大家多多见谅。有什么建议希望大家多多提出。谢谢!
正文:
利用结构体实现学生管理系统,主要用到结构体数组,对结构体数组中的元素进行操作。本文利用结构体中的知识,实现学生管理系统的增删改查。
1、定义一个结构体
结构体中包括学生id,学生姓名,学生成绩,三项数据。利用 typedef 重定义结构体的名字为STD。

/* 定义结构体数据 */ 
typedef struct {	
	unsigned int id;
	char name[10];
	float score;	
}STD;

2、定义一个结构体数组
直接用结构体名称定义一个名为 student 的结构体数组,结构体数组包含100个元素,即可保存100名学生的信息(可修改数值大小,调整保存学生信息的多少)。数组中的每一个元素都是一个结构体,均包含结构体中的三项数据。

/* 结构体数组 */
STD student[100] = {0};

3、显示菜单界面

/****************************************************
				显示菜单界面 
*****************************************************/
void menu(void)
{
	printf("/*************学生管理系统****************/\r\n");
	printf("\r\n"); 
	printf(" *********** 1、查询学生信息 ***********\r\n");
	printf(" *********** 2、增加学生信息 ***********\r\n");
	printf(" *********** 3、删除学生信息 ***********\r\n");
	printf(" *********** 4、修改学生信息 ***********\r\n");
	printf(" *********** 0、退出学生管理系统 *******\r\n");
	printf(" ****** 请输入对应的操作指令(1-4) ******\r\n");
	printf("\r\n");
	printf("/****************************************/\r\n");
 }

显示结果:
C语言,结构体实现学生管理系统_第1张图片
4、查询学生信息功能
输入要要查询的学生ID,根据学生ID对应结构体数组中的对应元素,判断学生ID是否存在,若存在显示学生信息。

/***************查询学生信息************
****************************************/ 
void look(void)
{
	unsigned int ID;
	printf("请输入要查询的学生ID\r\n");
	scanf("%d",&ID);
	
	if(student[ID].id == 0){
		printf("对不起,学生信息不存在\r\n");

	}else{
		printf("学号:%d\r\n",student[ID].id);
		printf("姓名:%s\r\n",student[ID].name);
		printf("成绩:%.2f\r\n",student[ID].score);
	}	
}

查询结果:
C语言,结构体实现学生管理系统_第2张图片
5、增加学生信息
先判断要增加的学生信息是否存在,若存在就提示,无需再重复增加。若不存在,根据提示输入学生信息。

/***************增加学生信息************
****************************************/
void add(void)
{
	unsigned int ID;
	printf("请输入要添加的学生学号\r\n");
	scanf("%d",&ID);
	
	if(student[ID].id != 0){
		printf("对不起,学生信息已存在\r\n");
	}
	
	student[ID].id = ID;
	printf("请输入要添加的学生姓名\r\n");
	scanf("%s",&student[ID].name);
	printf("请输入要添加的学生成绩\r\n");
	scanf("%f",&student[ID].score);
	printf("学生信息添加成功\r\n");
} 

添加结果:
C语言,结构体实现学生管理系统_第3张图片
6、删除学生信息

/***************删除学生信息************
****************************************/
void Delete(void)
{
	unsigned int ID;
	printf("请输入要删除的学生学号\r\n");
	scanf("%d",&ID);
	
	if(student[ID].id == 0){
		printf("对不起,学生信息不存在\r\n");
	}else{
		memset(&student[ID],0,sizeof(STD));		//清空数组中对应结构体元素
		printf("删除成功\r\n"); 
	}		
} 

删除结果:
C语言,结构体实现学生管理系统_第4张图片
7、修改学生信息
根据输入的学生ID,判断学生信息是否存在,若不存在,则提示。若存在,则根据提示进行修改。

/***************修改学生信息************
****************************************/
void amend(void)
{
	unsigned int ID;
	printf("请输入要修改的学生学号\r\n");
	scanf("%d",&ID);
	
	if(student[ID].id == 0){
		printf("对不起,学生信息不存在\r\n");
	}else{
		printf("请输入新的名字\r\n");
		scanf("%s",&student[ID].name);
		printf("请输入新的成绩\r\n");
		scanf("%f",&student[ID].score); 
		printf("修改成功\r\n");
	}
}

修改结果:
C语言,结构体实现学生管理系统_第5张图片
8、主函数

int main(void)
{
	unsigned char num; 
	
	while(1){
		menu();				//菜单界面
		scanf("%d",&num);	//获取操作命令
		
		if(num>=0 && num<=4){		//判断操作命令是否有效
			switch(num)				//对有效命令做出响应
			{
				case 0: printf("退出成功!\r\n");return 0;	//退出
				case 1: look();break;						//查看
				case 2: add();break;						//添加
				case 3: Delete();break;						//删除
				case 4: amend();break;						//修改
			}
		}else{						//提示错误信息
			printf("输入错误,请重新输入\r\n");
		}
		
	}
	return 0;	
}

最近防疫不能松懈,望各位观众有一个好身体,注意防疫,出门记得带口罩,你好我好大家好!!!
新人博主,望大家喜欢,喜欢的话,请一键三连。各位的[三连]是新人创作的动力,有任何需求,评论区中可以提出来,小七为你解答。

你可能感兴趣的:(C语言,c语言)