简单的成绩管理系统

6 篇文章 0 订阅
6 篇文章 0 订阅

一、需求分析

     每当一门课程考试结束后,将要统计学生的考试成绩,生成统计表,用于分析学生的学习情况,其统计的内容,包括平均成、成绩分数段、最高分、最低分、及格率、优秀率。其分数段分为:优90~100,良80~89,中 70~79,及格60~69,不及格<60。优秀率=优秀人数/总人数,及格率=及格人数/总人数。

二、任务分析

设置数组去存储数据,用while循环不断输入成绩,使用switch分支语句去实现每个部分的小功能,可以把功能写个一个个函数,使用包含文件,方便对程序后期的维护。

三、任务实施

1.开发环境

  操作系统:macOS

  CPU :3.1hz

  内存:16

2.开发工具

  Xcode

3.开发步骤

  创建源程序

4.相关知识

数组,循环语句,条件语句,分支语句,格式化输入输出,暂未使用自定义函数

5.源代码

#include <stdio.h>
int main()
{
       float arr[] = {0};
    float input = 0;
    int count = -1;
    int i = 0;
    while (input >= 0)
    {
        printf("输入成绩(负成绩就会结束输入)>>>\n");
        scanf("%f", &input);
        if(input > 150)
        {
            printf("闹呢\n");
        }
        else
        {
            arr[i] = input;
            count++;
            i++;
        }
    }
//    for (int j = 0; j < count; j++)
//    {
//        printf("%.1f\n", arr[j]);
//    }
//    printf("输入成绩的个数:%d\n", count);
    //功能实现
    int userinput = 0;
    do
    {
        printf("****************************\n");
        printf("********   0.退出        ****\n");
        printf("********   1.成绩查询     ****\n");
        printf("********   2.成绩分段     ****\n");
        printf("********   3.优秀率       ****\n");
        printf("********   4.及格率       ****\n");
        printf("********   5.最高分       ****\n");
        printf("********   6.最低分       ****\n");
        printf("****************************\n");
        printf("快选了\n");
        scanf("%d", &userinput);
        switch(userinput)
        {
            case 0:
                printf("那我走,程序结束\n");
                break;
            case 1:
                printf("开始查询输入成绩\n");
                for (int j = 0; j < count; j++)
                {
                    printf("成绩%d: %.1f\n", j+1, arr[j]);
                }
                printf("输入成绩的个数:%d\n", count);
                break;
            case 2:
                for (int i = 0; i < count; i++)
                {
                    if(arr[i] >= 90)
                        printf("成绩%d: %f 优秀\n", i+1, arr[i]);
                    else
                        printf("成绩%d: %f 良好\n", i+1, arr[i]);
                }
                break;
            case 3:
                for (int j = 0; j < count; j++)
                {
                    float great = 0.0;
                    float p1 = 0;
                    if(arr[j] >= 90)
                    {
                        great++;
                        p1 = great / count;
                        printf("优秀率:%.2f\n", p1);
                    }
                }
                break;
            case 4:
                for (int k = 0; k < count; k++)
                {
                    float pass = 0;
                    float p2 = 0;
                    if (arr[k] >= 60)
                    {
                        pass++;
                        p2 = pass / count;
                    }
                    printf("及格率: %.2f\n", p2);
                }
                break;
            case 5:
                while (1)
                {
                    float max = arr[0];
                    for (int x = 0; x < count; x++)
                    {
                        if (max < arr[i])
                        {
                            max = arr[i];
                        }
                    }
                    printf("最高分: %.1f\n", max);
                    break;
                }
                
                break;
            case 6:
                while (1)
                {
                    float min = arr[0];
                    for (int x = 0; x < count; x++)
                    {
                        if (min > arr[i])
                        {
                            min = arr[i];
                        }
                    }
                    printf("最低分: %.1f\n", min);
                    break;
                }
                break;
                
        }
    }while(userinput);

   return 0;
}

6.运行测试

 输入:50 90 199 -1

 输出:50 90

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值