个人博客地址: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;
};
接下