使用阵列C 计算三个等级的平均值

Calculating the average of three grades using an array c++

本文关键字:三个 平均值 阵列 计算      更新时间:2023-10-16

我目前正在研究C 类的程序,该课程将在一个学期中处理并生成一个学期的学生成绩单,假设学生正在上五堂课。(输出打印到屏幕上图表格式)。学生将为每门课程输入三个年级。课程名称,第一考,二级考试成绩和第三考中应该有一个阵列。

好吧,足够公平。好吧,我设法在以下代码中将上述数组初始化并正确输出。这是我有点困惑的地方。接下来,我必须初始化一个数组,该数组将计算每个课程的三个考试成绩的平均值,并初始化每个课程的字母等级的数组。(并以与考试相同的方式将它们打印到屏幕上等级和课程名称。)也许如果有人可以阐明如何创建一个将计算三个等级的平均值的数组,我可以尝试弄清楚如何为字母等级制作数组。谢谢。

# include iostream
using namespace std;
const int SIZE =5;
void getData(string courseName[], float examOne[], float examTwo[], float examThree[]);

int main ()
{
    // local declaration
    string courseName[SIZE];
    float examOne[SIZE];
    float examTwo[SIZE];
    float examThree[SIZE];
    getData(courseName,examOne,examTwo,examThree);

    cout<<"nnn";
    for (int i = 0; i <SIZE; i++){
        cout<< courseName[i]<<"    "<<examOne[i]<<"    "<<examTwo[i]<<"     "<<examThree[i]<<"   "<<total[i]<< endl;
    }  
    return 0;
}

void getData(string courseName[],float examOne[],float examTwo[],float examThree[]){
    for (int i = 0; i <SIZE; i++){
    cout<<"Enter Course Name: "; 
    cin >> courseName[i];
    cout<<"enter First Exam Grade: ";
    cin>>examOne[i];
    cout<<"enter Second Exam Grade: ";
    cin>>examTwo[i];
    cout<<"enter Third Exam Grade: ";
    cin>>examThree[i];
    }   
}

编辑:

我添加了一个功能,以显示学生的平均成绩为字母。

using namespace std;被认为是不良习惯,有时可能是危险的。检查一下。将SIZE宣布为Globale变量也被认为是不良实践。

#include <iostream>
#include <string>
void getData(int sizeArray, std::string courseName[], float examOne[], float examTwo[], float examThree[], float average[]);
std::string letterGrade(int grade);
void highestLowestAverageByExam(float tExamArray[], int tSize, float & tHighestGradeExam, float & tLowestGradeExam, float & tAverageGradeExam);
int main()
{
    // local declaration
    const int SIZE = 5;
    std::string courseName[SIZE];
    float examOne[SIZE];
    float examTwo[SIZE];
    float examThree[SIZE];
    float average[SIZE];
    getData(SIZE, courseName, examOne, examTwo, examThree, average);
    std::cout << "nnn";
    for (int i = 0; i <SIZE; i++)
    {
        std::cout << courseName[i] << "    " << examOne[i] << "    " << examTwo[i] << "     "
            << examThree[i] << "   " << average[i] << "   " << letterGrade(average[i]) << std::endl;
    }
    std::cout << "n";
    float highestGradeExam = 0;
    float lowestGradeExam = 0;
    float averageGradeExam = 0;
    highestLowestAverageByExam(examOne, SIZE, highestGradeExam, lowestGradeExam, averageGradeExam);
    std::cout << "Exam number 1:  Highest grade = " << highestGradeExam
        << "  Lowest grade = " << lowestGradeExam
        << "  Average grade = " << averageGradeExam << std::endl;

    return 0;
}
void getData(int sizeArray, std::string courseName[], float examOne[], float examTwo[], float examThree[], float average[])
{
    for (int i = 0; i < sizeArray; i++)
    {
        int count = 0;
        std::cout << "Enter Course Name: ";
        std::cin >> courseName[i];
        std::cout << "enter First Exam Grade: ";
        std::cin >> examOne[i];
        count++;
        std::cout << "enter Second Exam Grade: ";
        std::cin >> examTwo[i];
        count++;
        std::cout << "enter Third Exam Grade: ";
        std::cin >> examThree[i];
        count++;
        average[i] = (examOne[i] + examTwo[i] + examThree[i]) / count;
    }
}

std::string letterGrade(int averageGrade)
{
    if (averageGrade >= 0 && averageGrade <= 100)
    {
        const int NUMBER_CATEGORIES = 11;
        const std::string GRADE_LETTER[] = { "F", "D", "D+", "C-", "C", "C+", "B-", "B", "B+", "A-", "A" };
        const int LOWEST_GRADE_SCORE[] = { 0, 60, 67, 70, 73, 77, 80, 83, 87, 90, 93 };
        int category = 0;
        while (category < NUMBER_CATEGORIES && LOWEST_GRADE_SCORE[category] <= averageGrade)
        {
            category++;
        }
        return GRADE_LETTER[category - 1];
    }
    else
    {
        return "Average grade is not valid.";
    }
}
void highestLowestAverageByExam(float tExamArray[], int tSize, float & tHighestGradeExam, float & tLowestGradeExam, float & tAverageGradeExam)
{
    tHighestGradeExam = tExamArray[0];
    tLowestGradeExam = tExamArray[0];
    for (int i = 1; i < tSize; i++)
    {
        if (tExamArray[i] > tHighestGradeExam)
        {
            tHighestGradeExam = tExamArray[i];
        }
        if (tExamArray[i] < tLowestGradeExam)
        {
            tLowestGradeExam = tExamArray[i];
        }
    }
    tAverageGradeExam = (tHighestGradeExam + tLowestGradeExam) / 2;
}
相关文章: