效果图:
代码:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define MAXSTU 15
void login();
void menu();
int input(int score[]);
void output(int score[],int n);
void SumAvg(int score[],int n);
void MaxMin(int score[],int n);
void grade(int score[],int n);
void SortUp(int score[],int n);
void SortDown(int score[],int n);
void main()
{
int score[MAXSTU];
int count=0;
int choose;
login();
while(1)
{
menu();
printf("\t\t
请选择主菜单序号
(0-7)");
scanf("%d",&choose);
switch(choose)
{
case 1:count=input(score);
break;
case 2:output(score,count);
break;
case 3:SumAvg(score,count);
break;
case 4:MaxMin(score,count);
break;
case 5:grade(score,count);
break;
case 6:SortUp(score,count);
break;
case 7:SortDown(score,count);
break;
case 0:return;
default:printf("\n\n\n
输入无效请重新选择
\n");
}
printf("\n\n\n
按任意键返回主菜单
");
getch();
}
}
void login()
{
char pwd[10]="tdk32";
char ch[10];
int re;
printf("
请输入密码:
\n");
gets(ch);
re=strcmp(ch,pwd);
if(re==0)
puts("
密码正确,登陆成功
");
else
{
puts("
密码不正确,请重新输入:
");
login();
}
}
void menu()
{
system("cls");
printf("\n\n");
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 7
从大到小排序输出
\n");
printf("\t\t 0
退出
\n");
printf("\t\t ******************************************\n");
}
int input(int score[])
{
int i;
printf("\n
输入学生成绩
(
输入
-1
退出
)\n");
for(i=0;i<MAXSTU;i++)
{
printf("\t
第
%d
个学生的成绩为:
",i+1);
scanf("%d",&score[i]);
if(score[i]==-1)
break;
}
return i;
}
void output(int score[],int n)
{
int i;
printf("\n\n
学生成绩
:");
printf("\n
学号
\t\t
成绩
");
for(i=0;i<n;i++)
{
printf("\n%d\t\t%d",1001+i,score[i]);
}
}
void SumAvg(int score[],int n)
{
int i,sum=0;
float ave=0;
for(i=0;i<n;i++)
{
sum+=score[i];
}
ave=sum/n;
printf("\n
总分为
%d,
平均分为
%.2f\n",sum,ave);
}
void MaxMin(int score[],int n)
{
int i,max=0,min=0,p,q;
max=score[0];
min=score[0];
for(i=0;i<n;i++)
{
if(score[i]>max)
{
max=score[i];
p=i;
}
if(score[i]<min)
{
min=score[i];
q=i;
}
}
printf("\n
最高分为:
%d,
下标为
%d,
最低分为:
%d,
下标为
%d\n",max,p,min,q);
}
void grade(int score[],int n)
{
int i;
int grade1=0;
int grade2=0;
int grade3=0;
int grade4=0;
int grade5=0;
for(i=0;i<n;i++)
{
if(score[i]<60) grade5++;
else if(score[i]<70&&score[i]>=60) grade4++;
else if(score[i]<80&&score[i]>=70) grade3++;
else if(score[i]<90&&score[i]>=80) grade2++;
else if(score[i]<=100&&score[i]>=90) grade1++;
}
printf("\n\n
等级为优的人数:
%d",grade1);
printf("\n
等级为良的人数:
%d",grade2);
printf("\n
等级为中的人数:
%d",grade3);
printf("\n
等级为合格的人数:
%d",grade4);
printf("\n
等级为不合格的人数:
%d",grade5);
}
void SortUp(int score[],int n)
{
int i,j,d;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(score[j]<score[i])
{
d=score[j];
score[j]=score[i];
score[i]=d;
}
}
for(i=0;i<n;i++)
{
printf("%d\n",score[i]);
}
}
void SortDown(int score[],int n)
{
int i,j,d;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(score[j]>score[i])
{
d=score[j];
score[j]=score[i];
score[i]=d;
}
}
for(i=0;i<n;i++)
{
printf("%d\n",score[i]);
}
}