C语言实现学生成绩管理系统(分步骤实现)

本文介绍如何使用C语言创建一个学生成绩管理系统,包括录入、浏览、查询、删除和排序成绩等功能。通过单链表实现,详细阐述了结构体、链表操作函数如创建、插入、删除和查询节点的编写,以及主函数的设计思路。
摘要由CSDN通过智能技术生成

个人博客地址www.wekyu.cn

程序需要实现的功能

C语言学生信息管理系统包括以下几个功能:
1、学生成绩的录入
2、学生成绩的浏览
3、学生成绩的查询
4、学生成绩的删除
5、学生成绩的排序(这是进阶功能,实现起来也最复杂)
6、学生成绩的分析

程序设计的整体思路

程序主要实现思路是依靠链表,数组,指针,结构体等相关知识,其中的核心是对链表的操作。
①:使用单链表作为程序核心,单链表的每个结点储存一个学生的基本信息
②:创建一个函数类 ;主要包含以下功能的函数:创建链表,创建结点,插入结点,打印链表,删除结点等
③:创建一个功能类;主要包含主菜单功能显示以实现用户自主选择功能,操作函数

源代码

主函数(main)

为了使代码看起来更为简洁明了,我将实现链表功能的函数类放入student.h的头文件中,主函数中只留有main函数
首先需要完成对功能菜单栏的设计,为此,我创建了一个menu函数,为了使界面看起来更美观,可以加入一些符号

menu

void menu(void)
{
   
	printf("\t\t||--------------------------------------------------------------------------------||\n");
	printf("\t\t||                 ****************【学生管理系统】***************                ||\n");
	printf("\t\t||--------------------------------------------------------------------------------||\n");
	printf("\t\t||*                                 1.学生成绩录入                                ||\n");
	printf("\t\t||*                                 2.学生成绩浏览                                ||\n");
	printf("\t\t||*                                 3.学生成绩查询                                ||\n");
	printf("\t\t||*                                 4.学生成绩删除                                ||\n");
	printf("\t\t||*                                 5.学生成绩排序                               ||\n");
	printf("\t\t||*                                 6.学生成绩分析                                ||\n");
	printf("\t\t||*                                 0.退出程序                                    ||\n");
	printf("\t\t||--------------------------------------------------------------------------------||\n");
}

main函数的构建则依赖于while的无限循环,用来让用户不断选择功能直到其按0退出
while循环内再嵌套一个switch函数来判断用户输入的数字以跳转到相应的功能

main

int main(void)
{
   
	menu();
	
	while (1)
	{
   
		int choice;
		printf("请选择功能菜单(0-6): ");
		scanf("%d", &choice);
		
		switch (choice)
		{
   
			case 1:
			{
   
				printf("-----------------【学生成绩录入】----------------------\n");
				break;
			}
			case 2:
			{
   
				printf("-----------------【学生成绩浏览】----------------------\n");
				break;
			}
			case 3:
			{
   
				printf("-----------------【学生成绩查询】----------------------\n");
				break;
			}
			case 4:
			{
   
				printf("-----------------【学生成绩删除】----------------------\n");
				break;
			}
			case 5:
			{
   
				printf("-----------------【学生成绩排序】----------------------\n");
				break;
			}
			case 6:
			{
   
				printf("-----------------【学生成绩分析】----------------------\n");
				printf("该系统提供学生成绩方差来帮助分析学生成绩\n");
				break;
			}
			default:
			{
   
				printf("谢谢使用^_^!\n");
				system("pause");
				exit(0);
				break;
			}
			
		}


	}
	return 0;
}

以上就是主函数的整体框架,接下来要做的就是编写函数类,再往主函数里填充。

头文件( student.h)

头文件里主要包含函数类

创建链表:

创建学生信息结构体:

首先我们需要完成对链表的构建,为此我们先创建一个学生信息结构体来表示一个学生的姓名学号语文、英语、数学、物理四颗成绩

struct grade     
{
   
	int Chinese;
	int English;
	int Math;
	int physical;
};

struct student   //学生信息结构体
{
   
	char name[20];
	int number;
	struct grade grade;
};

接下

C语言学生成绩管理系统(以包含文件的形式写的),结构体,链表,数组,以下是main.c #include #include #include #define m 3/*宏定义m的值为3*/ struct node/*链表初始化*/ { char name[20]; int no; float score[m]; float sum; float avg; struct node *next; }; char ch[m+4][20]={{"学号"},{"姓名"},{"语文"},{"数学"},{"英语"},{"总"},{"平均"}};/*定义并初始化一个全局二维字符数组*/ #include "save.c"/*包含保存文件*/ #include "read.c"/*包含读取文件*/ #include "output.c"/*包含打印文件*/ #include "set.c"/*包含录入文件*/ #include "demand.c"/*包含查询文件*/ #include "sort.c"/*包含排序文件*/ #include "modified.c"/*包含修改文件*/ #include "add.c"/*包含添加文件*/ #include "del.c"/*包含删除文件*/ void main() { int n; printf("\n\t\t\t欢迎使用学生成绩管理系统\n\n"); printf("\t\t\t\t\t\t制 作: XIA XIA\n"); do { printf("\n\n1:学生成绩录入,并保存\n"); printf("2:学生成绩查询\n"); printf("3:学生成绩的排序\n"); printf("4:学生成绩的修改\n"); printf("5:学生成绩的打印\n"); printf("6:学生信息的添加\n"); printf("7:学生信息的删除\n"); printf("0:退出学生成绩管理系统\n\n\n"); printf("输入你要执行操作的相应序号\n"); scanf("%d",&n);/*输入相就的操作的序号*/ switch (n) { case 1: set();break;/*调用录入函数*/ case 2: demand();break;/*调用查询函数*/ case 3: sort();break;/*调用排序函数*/ case 4: modified();break;/*调用修改函数*/ case 5: output();break;/*调用打印函数*/ case 6: add();break;/*调用添加函数*/ case 7: del();break;/*调用删除函数*/ case 0: printf("正在退出学生成绩管理系统......\n");exit(0);/*直到输入“0”退出学生成绩管理系统*/ default:printf("输入错误码,请重新输入\n"); } }while(1); }
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值