使用用户定义函数计算学生成绩的 C++ 程序


2023年1月31日, Learn eTutorial
2471

在这里,我们将讨论一个 C++ 程序,该程序使用用户定义函数根据所有科目中获得的分数来查找学生的成绩。用户可以输入科目数量,根据分数得出的成绩将如下表所示:
 

平均分 成绩
91-100    
81-90    
71-80   
61-70   
51-60    
41-50    
33-40   
21-32    
0-20   
A1
A2
B1
B2
C1
C2
D
E1
E2

如何计算学生的成绩?

根据总分计算学生的成绩。成绩是根据n个科目的总分计算的。将所有n个科目的分数相加,然后除以n,得到平均分。然后根据这个平均分,从我们的表中查找成绩。

如何编写一个 C++ 程序来计算学生的成绩?

在这里,C++ 程序会要求用户输入科目数量。例如,如果他/她输入3作为科目数量,那么程序会进一步要求输入3个科目中获得的分数。
此程序使用用户定义函数计算学生的成绩
将科目数量输入变量 n,将 n 个科目的分数输入数组 mark[10]; 将分数数组和科目数量传递给用户定义函数,即 findGrade( float mark[ ], int n );
定义函数 findGrade (float [ ], int)
首先,我们必须将 n 个科目的所有分数相加。为此,获取每个科目的分数并将它们相加。


float sum=0;
for(i=0; i


现在我们必须将总分除以科目数量以获得平均分。
avg = sum/n;
现在我们已经在变量 avg 中获得了平均分。将该值与平均分范围进行比较。

if(avg>=91 && avg<=100)

        return "A1";

    else if(avg>=81 && avg<91)

        return "A2";

    else if(avg>=71 && avg<81)

        return "B1";

    else if(avg>=61 && avg<71)

        return "B2";

    else if(avg>=51 && avg<61)

        return "C1";

    else if(avg>=41 && avg<51)

        return "C2";

    else if(avg>=33 && avg<41)

        return "D";

    else if(avg>=21 && avg<33)

        return "E1";

    else if(avg>=0 && avg<21)

        return "E2";

    else

        return "Invalid!"

获取函数的返回值并显示成绩。

算法

步骤 1: 调用头文件 iostream。

步骤 2: 使用命名空间 std。

步骤 3: 声明一个用户定义函数 const char* findGrade(float [], int);

步骤 4: 打开整数类型主函数; int main()。

步骤 5: 声明整数类型变量 I, n. 浮点类型数组 mark[10];

步骤 6: 要求用户输入科目数量

步骤 7:将该数字输入变量 n;

步骤 8: 要求用户输入获得的分数;

步骤 9: 将这些数字输入数组 mark[10];

步骤 10: 调用 step: 13 并获取成绩 

步骤 11:打印成绩; 

步骤 12: 退出;

步骤 13: const char* findGrade(float mark[], int n)
              计算总分并将结果存入变量 sum;
              计算平均值并将结果存入变量 avg;
              将 avg 的值与平均分范围进行比较并返回相应的成绩;

C++ 源代码

                                          #include<iostream>
using namespace std;
const char* findGrade(float [], int);
int main()
{
    int i, n;
    float mark[10];
    cout<<"Enter Number of Subjects (max. 10): ";
    cin>>n;
    cout<<"Enter Marks obtained in "<<n<<" Subjects: ";
    for(i=0; i<n; i++)
        cin>>mark[i];
    cout<<"\nGrade = "<<findGrade(mark, n);
    cout<<endl;
    return 0;
}
const char* findGrade(float mark[], int n)
{
    int i;
    float sum=0, avg;
    for(i=0; i<n; i++)
        sum = sum+mark[i];
    avg = sum/n;
    if(avg>=91 && avg<=100)
        return "A1";
    else if(avg>=81 && avg<91)
        return "A2";
    else if(avg>=71 && avg<81)
        return "B1";
    else if(avg>=61 && avg<71)
        return "B2";
    else if(avg>=51 && avg<61)
        return "C1";
    else if(avg>=41 && avg<51)
        return "C2";
    else if(avg>=33 && avg<41)
        return "D";
    else if(avg>=21 && avg<33)
        return "E1";
    else if(avg>=0 && avg<21)
        return "E2";
    else
        return "Invalid!";
}
                                      

输出

Enter Number of Subjects (max. 10): 6
Enter Marks obtained in 6 Subjects: 69
80
55
74
45
91
Grade = B2