C语言实战项目:学生管理系统(1)

阅读 79

2022-05-03

文章目录


前言

学生管理系统的添加学生

提示:以下是本篇文章正文内容,下面案例可供参考

原理

我们的学生管理系统是基于链表来实现的,本节课是针对尾添加来讲解的。
链表图:
在这里插入图片描述

二、学生管理系统界面

while (1)
	{
		//3.
		system("cls");//清空屏幕
		//学生管理系统界面
		printf("*******************学生信息管理系统*********************\n");
		printf("*******************本系统操作指令如下*******************\n");
		printf("***             1、 增加一个学生信息                 ***\n");
		printf("***             2、 增加一个学生信息(在指定位置添加) ***\n");
		printf("***             3、 查找指定学生的信息(姓名/学号)  ***\n");
		printf("***             4、 修改指定学生的信息               ***\n");
		printf("***             5、 删除指定学生的信息               ***\n");
		printf("***             6、 显示所有学生的信息               ***\n");
		printf("***             0、 退出系统                         ***\n");
		printf("********************************************************\n");

		//输入
		int a;
		scanf_s("%d", &a);
		//switch
		switch (a)
		{
		case 1://添加一个学生
			addstudent();
			break;
		case 2:

			break;
		case 3:

			break;
		case 4:

			break;
		case 5:

			break;
		case 6:

			break;
		case 0://退出系统
			return 0;
			break;
		default://输入错误
			printf("输入有解,请重新输入!!!");
		}
	}

实现功能

定义一个学生结构体

struct Node//学生结构体
{
	int stuID;//学号
	char name[15];//学生名字
	int fraction;//学生分数

	struct Node* pNext;//指向下一个节点的指针
};

里面的成员可以自己定义
因为是尾添加的链表,所以要有指向下一个节点的指针。

定义头尾指针
意义:为了后面的遍历

//设置头尾指针
struct Node* pHead = NULL;//指向NULL,因为现在还没有节点
struct Node* pEnd = NULL;//指向NULL,因为现在还没有节点

实现功能0和1
0.
在case 0:后面加return 0;

1.添加一个学生
(1)添加学生就需要输入学生的信息:

int ID_;//学号
	char name_[15];//名字
	int fraction_;//学生分数
	printf("请输入学号:");
	scanf_s("%d", &ID_);
	printf("请输入名字:");
	scanf_s("%s", name_,15);
	printf("请输入分数:");
	scanf_s("%d", &fraction_);

(2)但是没有学生节点 所以需要创建一个学生节点

//创建学生节点
	struct Node* Temp = (struct Node*)malloc(sizeof(struct Node));

使用malloc申请空间

(3)但是你输入后还要添加到学生节点中

//初始化学生节点变量
	strcpy(Temp->name, name_);
	Temp->fraction = fraction_;
	Temp->stuID = ID_;
	Temp->pNext = NULL;

切记:字符串的赋值一定要用strcpy()
pNext可以指向NULL,也可以不指向(不指向他也是NULL)

(4.)节点指针初始化

//节点指针初始化
	if (pHead == NULL)
	{
		//头尾指向他
		pHead = Temp;
		pEnd = Temp;
	}
	else
	{
		//向后移动
		pEnd->pNext = Temp;
		//尾指向他
		pEnd = Temp;
	}

图1:
在这里插入图片描述
图2:
在这里插入图片描述
写上提示:

printf("添加成功!!!");
	Sleep(1000);

测试:
在这里插入图片描述

总结

本节课是添加学生的一个学习

精彩评论(0)

0 0 举报