本程序初始化学生人数为3人,请在header文件中将#define
STU_NUM3改为#defineSTU_NUM你将输入的学生数目
Function.c
/*
学生成绩管理系统V1.0(使用数组)
功能要求:
1、输入学号和成绩(格式化输入)
2、计算平均成绩(求和统计)
3、按成绩从高到低排序(冒泡法、选择法)
4、按成绩从低到高排序(冒泡法、选择法)
5、按学号从小到大排序(冒泡法、选择法)
6、按学号查询成绩名次(顺序查找)
7、统计成绩分布(统计计数)
8、输出学号和成绩(格式化输出)
0、退出系统
*/
#include
#include
#include"header.h"
intmenu()
{
intresult;
while(1)
{
system("cls");
printf("学生成绩管理系统V1.0n");
printf("1输入学号和成绩n");
printf("2计算平均成绩n");
printf("3按成绩从高到低排序n");
printf("4按成绩从低到高排序n");
printf("5按学号从小到大排序n");
printf("6按学号查询成绩名次n");
printf("7统计成绩分布n");
printf("8输出学号和成绩n");
printf("0退出系统n");
if(scanf("%d",&result)!=1)
{
fflush(stdin);
continue;
}
if(result>=0&&result<=8)
break;
}
return(result);
}
/*
1111111
*/
voidinput(longnumbers[],doublegrades[],intN)
{
inti;
printf("请输入%d个学生的学号与成绩n",N);
printf("**********************************************n");
for(i=0;i<=N-1;i++)
{
printf("请输入第%d位学生的学号与成绩n",i+1);
scanf("%ld%lf",&numbers[i],&grades[i]);
}
}
/*
22222222222222222222222222222222222222222
*/
doubleaverages(doublegrades[],intN)
{
doubletotal,average;
inti;
total=0;
for(i=0;i<=N-1;i++)
total+=grades[i];
average=total/N;
return(average);
}
/*
333333333333333333333333333333333333333333
*/
voidgradesdown(longnumbers[],doublegrades[],intN)
{
inti,j;
longtnumbers;
doubletgrades;
for(i=1;i<=N-1;i++)
for(j=0;j<=N-1-i;j++)
if(grades[j]
{
tgrades=grades[j+1];
grades[j+1]=grades[j];
grades[j]=tgrades;
tnumbers=numbers[j+1];
numbers[j+1]=numbers[j];
numbers[j]=tnumbers;
}
}
/*
44444444444444444444444444444444444444444
*/
voidgradesup(longnumbers[],doublegrades[],intN)
{
inti,j;
longtnumbers;
doubletgrades;
for(i=1;i<=N-1;i++)
for(j=0;j<=N-1-i;j++)
if(grades[j]>grades[j+1])
{
tgrades=grades[j+1];
grades[j+1]=grades[j];
grades[j]=tgrades;
tnumbers=numbers[j+1];
numbers[j+1]=numbers[j];
numbers[j]=tnumbers;
}
}
/*
55555555555555555555555555555555555555555
*/
voidnumbersup(longnumbers[],doublegrades[],intN)
{
inti,j;
longtnumbers;
doubletgrades;
for(i=1;i<=N-1;i++)
for(j=0;j<=N-1-i;j++)
if(numbers[j]>numbers[j+1])
{
tnumbers=numbers[j+1];
numbers[j+1]=numbers[j];
numbers[j]=tnumbers;
tgrades=grades[j+1];
grades[j+1]=grades[j];
grades[j]=tgrades;
}
}
/*
66666666666666666666666666666666666666666
*/
voidarch(longnumber,longnumbers[],doublegrades[],intN)
{
inti;
gradesdown(numbers,grades,N);
for(i=0;i<=N-1;i++)
if(numbers[i]==number)
{
printf("该考生的成绩为:%gn",grades[i]);
printf("该考生的名次为:%dn",i+1);
break;
}
}
/*
77777777777777777777777777777777777777777
*/
voidstatistics(doublegrades[],intN)
{
intA,B,C,D,E;
inti,mark;
A=B=C=D=E=0;
for(i=0;i<=N-1;i++)
{
mark=(int)(grades[i]/10);
switch(mark)
{
ca10:
ca9:
A++;
break;
ca8:
B++;
break;
ca7:
C++;
break;
ca6:
D++;
break;
ca5:
ca4:
ca3:
ca2:
ca1:
ca0:
E++;
break;
}
}
printf("A等级的学生有%d个n",A);
printf("B等级的学生有%d个n",B);
printf("C等级的学生有%d个n",C);
printf("D等级的学生有%d个n",D);
printf("E等级的学生有%d个n",E);
}
/*
88888888888888888888888888888888888888888
*/
voidoutput(longnumbers[],doublegrades[],intN)
{
inti;
printf("学号成绩n");
for(i=0;i<=N-1;i++)
printf("%10ld%10gn",numbers[i],grades[i]);
printf("n");
}
Mainfunction.c
/*
学生成绩管理系统V1.0(使用数组)
功能要求:
1、输入学号和成绩(格式化输入)
2、计算平均成绩(求和统计)
3、按成绩从高到低排序(冒泡法、选择法)
4、按成绩从低到高排序(冒泡法、选择法)
5、按学号从小到大排序(冒泡法、选择法)
6、按学号查询成绩名次(顺序查找)
7、统计成绩分布(统计计数)
8、输出学号和成绩(格式化输出)
0、退出系统
*/
#include
#include
#include
#include"header.h"
intmain()
{
longnumbers[STU_NUM];
longnumber;
doublegrades[STU_NUM];
doubleaverage;
intresult;
while(1)
{
result=menu();
switch(result)
{
/*
11111
*/
ca1:
printf("**************************************n");
printf("输入学号和成绩n");
printf("**************************************n");
input(numbers,grades,STU_NUM);
printf("**************************************n");
printf("输入完毕,按任意键继续n");
getch();
break;
/*
2222222222222222222222222222222222222222222222222
*/
ca2:
printf("**************************************n");
printf("计算平均成绩n");
printf("**************************************n");
average=averages(grades,STU_NUM);
printf("平均成绩为:%g分n",average);
printf("**************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
3333333333333333333333333333333333333333333333333333
*/
ca3:
printf("**************************************n");
printf("按成绩从高到低排序n");
printf("**************************************n");
gradesdown(numbers,grades,STU_NUM);
output(numbers,grades,STU_NUM);
printf("************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
4444444444444444444444444444444444444444444444444
*/
ca4:
printf("**************************************n");
printf("按成绩从低到高排序n");
printf("**************************************n");
gradesup(numbers,grades,STU_NUM);
output(numbers,grades,STU_NUM);
printf("************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
5555555555555555555555555555555555555555555555555
*/
ca5:
printf("**************************************n");
printf("按学号从小到大排序n");
printf("**************************************n");
numbersup(numbers,grades,STU_NUM);
output(numbers,grades,STU_NUM);
printf("************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
66666666666666666666666666666666666666666666666666
*/
ca6:
printf("**************************************n");
printf("按学号查询成绩名次n");
printf("**************************************n");
printf("请输入考生学号:n");
scanf("%ld",&number);
arch(number,numbers,grades,STU_NUM);
printf("**************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
77777777777777777777777777777777777777777777777777
*/
ca7:
printf("**************************************n");
printf("统计成绩分布n");
printf("**************************************n");
statistics(grades,STU_NUM);
printf("**************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
/*
888888888888888888888888888888888888888888888888
*/
ca8:
printf("**************************************n");
printf("输出学号和成绩n");
printf("**************************************n");
output(numbers,grades,STU_NUM);
printf("**************************************n");
printf("查询完毕,按任意键继续n");
getch();
break;
ca0:
printf("确定退出Y/N?n");
fflush(stdin);
if(getchar()=='Y')
{
printf("谢谢,欢迎再次使用n");
exit(0);
}
}
}
return0;
}
Header.h
/*
学生成绩管理系统V1.0(使用数组)
功能要求:
1、输入学号和成绩(格式化输入)
2、计算平均成绩(求和统计)
3、按成绩从高到低排序(冒泡法、选择法)
4、按成绩从低到高排序(冒泡法、选择法)
5、按学号从小到大排序(冒泡法、选择法)
6、按学号查询成绩名次(顺序查找)
7、统计成绩分布(统计计数)
8、输出学号和成绩(格式化输出)
0、退出系统
*/
#ifndef_STU_NUM_
#define_STU_NUM_
#defineSTU_NUM3
intmenu();
/*
1111111
*/
voidinput(longnumbers[],doublegrades[],intN);
/*
22222222222222222222222222222222222222222
*/
doubleaverages(doublegrades[],intN);
/*
333333333333333333333333333333333333333333
*/
voidgradesdown(longnumbers[],doublegrades[],intN);
/*
44444444444444444444444444444444444444444
*/
voidgradesup(longnumbers[],doublegrades[],intN);
/*
55555555555555555555555555555555555555555
*/
voidnumbersup(longnumbers[],doublegrades[],intN);
/*
66666666666666666666666666666666666666666
*/
voidarch(longnumber,longnumbers[],doublegrades[],intN);
/*
77777777777777777777777777777777777777777
*/
voidstatistics(doublegrades[],intN);
/*
88888888888888888888888888888888888888888
*/
voidoutput(longnumbers[],doublegrades[],intN);
#endif
本文发布于:2022-12-27 01:32:34,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/37323.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |