#include <stdio.h>
#include <stdlib.h>
#define SIZE 30 //成绩数组总长度
#define SEGMENTSIZE 11 //分数段总共有0-10,总计11个段
#define FAILURE -1 //返回失败结果
#define SUCCESS 1 //返回成功结果
#define ASCEND 1 //升序
#define DECEND -1 //降序
void main()
{
//注:数组中有25个学生分数,其中最一个-1表示该元素之前的数组元素值为有效分数。
int score[SIZE] = { 78,65,23,34,56,87,90,100,45,88,54,95,63,66,89,54,64,77,63,56,0,86,97,94,30,-1 };//给score[1]到score[25]赋初值。
int i;
int scoreSegment[SEGMENTSIZE] = { 0 };//此数组用于存放统计各分数段的人数,分数段为0-10
int stuNumber, maxScore, minScore, searchArrayPosition;
int searchScore, appendScoreNum, insertScoreNum, result, arrayPossition;
int order;//排序方向
float averageScore, medianScore;
enum Status { GAMEOVER, CONTINUE };
int choiceNum;
enum Status gameStatus;
do
{
gameStatus = CONTINUE;
printf("\n\t\t学 生 成 绩 管 理 系 统 1.3 \n\t\t\tDesigned by HuangX\n");
printf("\n\t1.统计学生数\t\t\t2.统计分数段人数\n\n");
printf("\t3.统计最高分\t\t\t4.统计最低分\n\n");
printf("\t5.统计平均分\t\t\t6.统计中值\n\n");
scanf("%d", &choiceNum);
fflush(stdin);//清除键盘缓冲区的数,否则当输入字符时会出现死循环
switch (choiceNum)
{
case 0:
gameStatus = GAMEOVER;
break;
case 1:
int countStuNum(int array[], int length)
{
int i, stuNumber = 0;
for (i = 0; i<length; i++)
if (array[i] != -1) stuNumber++; //因为数组的结尾是-1,统计非-1的个数
else break;
return stuNumber;
} //countStuNum(int array[],int length)
case 2:
void countScoreSegment(int array[], int Len, int segment[], int segmentLen)
{
//柱状显示各分类段的人数
printf("\n\t2. 统计显示各分类段的人数\n");
break;
}//end countScoreSegment(int array[],int len)
case 3:
int countMaxScore(int array[], int len)
{
int max = 100;
return max;
break;
} //countMaxScore(int array[],int len)
case 4:
int countMinScore(int array[], int len)
{
int min = 0;
return min;
break;
}//end countMinScore(int array[],int len)
case 5:
float countAverageScore(int array[], int len)
{
int i, sum = 0;
return (float)sum / len;
break;
}//end countAverageScore
}
}