一 任务分析
本次任务实现学生考试成绩的统计,其统计的内容,包括平均成绩、成绩分数段、最高分、最低分、及格率、优秀率。其分数段分为:优90~100,良80~89,中70~79,及格60~69,不及格<60。优秀率=优秀人数/总人数,及格率=(总人数=不及格人数)。
二、任务分析
设置数组去存储数据,用while循环不断输入成绩,使用switch分支语句去实现每个部分的小功能,可以把功能写个一个个函数,使用包含文件,方便对程序后期的维护。
三、任务实施
1.开发环境
操作系统:macOS
CPU :3.1hz
内存:16
2.开发工具
Xcode
3.开发步骤
创建源程序
4.相关知识
switch语句,do while语句,if语句,自定义函数,宏定义
5.源程序
#include <stdio.h>
#define MAXSCORE 100
#define MINSCORE 0
void DisPlay(int c0, int c1, int c2, int c3, int c4, int c5, float y, float j, int max, int min)
{
printf("成绩统计表\n");
printf("分数段 \n");
printf("优 %d\n", c4);
printf("良 %d\n", c3);
printf("中 %d\n", c2);
printf("及格 %d\n", c1);
printf("不及格 %d\n", c0);
printf("最高分 %d\n", max);
printf("最高分 %d\n", min);
printf("优秀率 %.2f%%\n", y);
printf("及格率 %.2f%%\n", j);
}
void input()
{
int input = 0;
int NO = 1;
int c0 = 0, c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0;
int max = MINSCORE, min = MAXSCORE;
float sum = 0;
do
{
printf("请输入你的成绩NO%d\n", NO);
scanf("%d", &input);
NO++;
if (input > MAXSCORE || input < MINSCORE)
printf("错误成绩\n");
else
{
if (input > max)
max = input;
if (input < min)
min = input;
sum++;
switch (input / 10 - 5)
{
case 0:
c0++;
break;
case 1:
c1++;
break;
case 2:
c2++;
break;
case 3:
c3++;
break;
case 4:
c4++;
break;
case 5:
c5++;
break;
default:
c0++;
break;
}
}
} while (input >= 0);
float y = (c4 / sum) * 100; //计算优秀率
float j = ((sum - c0) / sum) * 100; //计算及格率
DisPlay(c0, c1, c2, c3, c4, c5, y, j, max, min);
}
int main()
{
input();
return 0;
}
四.运行测试
输入:90 1 1 1 1
输出:见上图