完整报告见:【免费】学生成绩管理系统C语言实现资源-CSDN文库
学生成绩管理系统V1.0
设计成绩管理系统菜单,主菜单至少包含以下功能:
1) 学生成绩新增
2) 学生成绩查询
3) 学生成绩修改
4) 学生成绩删除
5) 学生成绩全览
6) 班级成绩统计
7) 退出
设计程序接受用户选择,并进行相应操作。
输出:1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:1
输出:新增学生成绩信息功能待完成!
1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:2
输出:输学号:*******
高数:**
C语言:**
英语:**
1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:3
输出:用户输入数据完成后,程序输出该数据
1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:4
输出:成绩暂时不允许删除
1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:5
输出:1 按学号顺序浏览
2 按成绩排名浏览
0 返回上一级
输入:1
输出:按学号排序如下:
*******
按任意键继续
输入:2
输出:按成绩排名如下:
*******
按任意键继续
输入:0
输出:1 学生成绩新增
2 学生成绩查询
3 学生成绩修改
4 学生成绩删除
5 班级成绩全览
6 班级成绩统计
0 退出
输入:6
输出:1 成绩分布统计
2 统计不及格人数及名单
3 统计优秀人数及名单
4 统计及格人数及名单
0 返回上一级
输入:1
输出:成绩分布如下:
********
按任意键继续
以此类推
输入:0
输出:确定退出系统?
Y or N ?
当用户选择Y时退出程序,否则继续展示主菜单
#include
#include
void mainmenu( )//主菜单
{
printf ("1 学生成绩新增\n");
printf ("2 学生成绩查询\n");
printf ("3 学生成绩修改\n");
printf ("4 学生成绩删除\n");
printf ("5 学生成绩全览\n");
printf ("6 班级成绩统计\n");
printf ("0 退出\n");
}
void menu5( )//对应数字5的菜单
{
system ("cls");
printf ("1 按学号顺序浏览\n");
printf ("2 按成绩排名浏览\n");
printf ("0 返回上一级\n");
printf ("老规矩\n");
}
void menu6( )//对应数字6的菜单
{
system ("cls");
printf ("1 成绩分布统计\n");
printf ("2 统计不及格人数及名单\n");
printf ("3 统计优秀人数及名单\n");
printf ("4 统计及格人数及名单\n");
printf ("0 返回上一级\n");
printf ("老规矩\n");
}
void choose0(char ch)//对应数字0
{
int x;
void choose(int x);//函数声明
switch(ch)
{
case 'Y':
system("cls");
break;
case 'N':
system("cls");
printf("还想干啥\n");
mainmenu ( );//调用主菜单
scanf ("%d",&x);
choose (x);//调用choose函数
break;
default:
system ("cls");
printf ("你输入的东西我不认识,重输\n");
getchar( );//将存于缓冲区的回车符读入,避免被后面的变量作为有效字符读入
scanf ("%c",&ch);
choose0 (ch);//调用自身,根据用户重新输入的数字执行相应的代码
break;
}
}
void choose6 (int x6)
{
void choose(int x);//函数声明
switch(x6)
{
case 1:
system ("cls");
printf ("成绩分布如下:\n");
printf ("********************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪退现象
getchar ( );
menu6 ( );
break;
case 2:
system ("cls");
printf ("不及格人数及名单如下:\n");
printf ("********************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪现现象
getchar ( );
menu6 ( );
break;
case 3:
system ("cls");
printf ("优秀人数有**人,名单为:\n");
printf ("********************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪现现象
getchar ( );
menu6 ( );
break;
case 4:
system ("cls");
printf ("及格人数有**人,名单如下:\n");
printf ("********************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪现现象
getchar ( );
menu6 ( );
break;
case 0:
system ("cls");
mainmenu( );//返回上一级
scanf ("%d",&x6);
system ("cls");
choose (x6);
break;
default:
menu6( );
printf ("你输入的东西我不认识,重输\n");
break;
}
while (x6!=0)
{
scanf ("%d",&x6);
choose6 (x6);
}
}
void choose5 (int x5)
{
void choose(int x);
switch(x5)
{
case 1:
system ("cls");
printf ("按学号排序如下:\n");
printf ("********************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪退现象
getchar ( );
menu5 ( );
break;
case 2:
system ("cls");
printf ("按成绩排序如下:\n");
printf ("*****************\n");
printf ("按任意键继续\n");
getchar ( );//将存于缓冲区的回车符读入,防止闪退现象
getchar ( );
menu5 ( );
break;
case 0:
system ("cls");
mainmenu ( );
scanf ("%d",&x5);
choose (x5);
break;
default:
menu5( );
printf ("你输入的东西我不认识,重输\n");
break;
}
while (x5!=0)
{
scanf ("%d",&x5);
choose5 (x5);
}
}
void choose(int x)
{
void one ( );//函数声明
void two ( );
void three ( );
void four ( );
void five ( );
void six ( );
void zero ( );
switch (x)
{
case 1:
system ("cls");
one ( );
break;
case 2:
system ("cls");
two ( );
break;
case 3:
system ("cls");
three ( );
break;
case 4:
system ("cls");
four ( );
break;
case 5:
five ( );
break;
case 6:
six( );
break;
case 0:
system ("cls");
zero ( );
break;
default :
system ("cls");
printf ("数据错误,重输\n");
mainmenu ( );
scanf ("%d",&x);
choose (x);
break;
}
}
void one( )
{
int x;
printf ("这个功能还没弄好,选别的吧\n");
mainmenu( );
scanf ("%d",&x);
choose (x);
}
void two( )
{
int x;
int xh;//学号
printf ("输学号:");
scanf ("%d",&xh);
printf ("高数:**\n英语:**\nC语言:**\n");
printf ("还有别的要看吗\n");
mainmenu( );
scanf ("%d",&x);
choose (x);
}
void three( )
{
int x;
char a[1000];//定义一个字符型数组,供用户修改数据
printf ("接下来是你的舞台了,随便改吧\n");
getchar( );//将存于缓冲区的回车符读入,避免被后面的变量作为有效字符读入
gets(a);//输入数据
system ("cls");
puts (a);//输出数据
printf ("接下来想干嘛\n");
mainmenu( );
scanf ("%d",&x);
choose (x);
}
void four ( )
{
int x;
printf ("这些成绩现在还不给删,干点别的\n");
mainmenu ( );
scanf ("%d",&x);
choose (x);
}
void five ( )
{
int x5;
menu5 ( );
scanf ("%d",&x5);
choose5 (x5);
}
void six( )
{
int x6;
menu6 ( );
scanf ("%d",&x6);
choose6 (x6);
}
void zero ( )
{
char ch;
printf ("确定退出系统?\n");
printf ("Y or N\n");
getchar( );//将存于缓冲区的回车符读入,避免被后面的变量作为有效字符读入
scanf ("%c",&ch);
choose0 (ch);
}
int main ( )
{
int x;
mainmenu ( );
printf ("想干啥就输数字啊\n");
scanf ("%d",&x);
choose (x);
return 0;
}