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

举报
人才程序员 发表于 2023/10/29 20:36:39 2023/10/29
【摘要】 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@TOC 前言 学生管理系统的添加学生提示:以下是本篇文章正文内容,下面案例可供参考 原理我们的学生管理系统是基于链表来实现的,本节课是针对尾添加来讲解的。链表图: 二、学生管理系统界面while (1) { //3. system("cls");//清空屏幕 //学生管理系统界面 printf("***********...

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

@TOC


前言

学生管理系统的添加学生

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

原理

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

二、学生管理系统界面

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);

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

总结

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。