c语言学生管理系统

发布时间:2024年01月14日

创建结构体里面包含学生的各种信息。

struct xs {
	int xh;
	char xm[20];
	int gs, yy, wl;
	double pj;
	struct xs* next;
};

创建菜单

void menu()
{
	printf("\n************************************\n");
	printf("*         学生管理系统(1.0)        *\n");
	printf("  ************************************\n");
	printf("  ************************************\n");
	printf("*             1.创建链表             *\n");
	printf("*             2.显示链表             *\n");
	printf("*             3.保存文件             *\n");
	printf("*             4.读取文件             *\n");
	printf("*             5.系统退出             *\n");
	printf("  ************************************\n");
	printf("*          请选择操作:(1-5)         *\n");
	printf("  ************************************\n");
}

创建链表

struct xs* create()
{
	struct xs* hd = (struct xs*)malloc(sizeof(struct xs)), * p = NULL, * r = NULL;
	hd->next = NULL;
	r = hd;
	printf("请输入学生人数: ");
	scanf("%d", &rs);
	for (int i = 1; i <= rs; i++)
	{
		printf("请输入第%d个学生成绩信息: \n", i);
		p = (struct xs*)malloc(sizeof(struct xs));
		p->next = NULL;
		printf("学号:");
		scanf("%d", &p->xh);
		printf("姓名:");
		scanf("%s", &p->xm);
		printf("高数:");
		scanf("%d", &p->gs);
		printf("英语:");
		scanf("%d", &p->yy);
		printf("物理:");
		scanf("%d", &p->wl);
		p->pj = (p->gs + p->yy + p->wl) / 3.0;
		r->next = p;
		r = r->next;
	}
	printf("创建链表完毕,请按任意键继续!\n");
	_getch();
	return hd;
}

打印信息

void print(struct xs* hd)
{
	if (hd == NULL)
	{
		printf("当前链表为空,请按任意键继续!");
		_getch();
		return;
	}
	struct xs* p = hd->next;
	printf("   学号  姓名  高数  英语 物理  平均  \n");
	printf("  ************************************\n");
	while (p != NULL)
	{
		printf("    %d%     -6s     %d     %d%     d     %.2f\n", p->xh, p->xm, p->gs, p->yy, p->wl, p->pj);
		p = p->next;
	}
	printf("  ************************************\n");
	printf("链表显示完毕,请按任意键继续!\n");
	_getch();
}

文章来源:https://blog.csdn.net/2301_77479435/article/details/135580926
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。