DEV简单的C GPA计算器问题



我正在尝试通过使用gradePoint((函数来创建GPA计算器,以进行实际转换,而int main((用于CIN和COUT。

我被困了几个小时。我尝试了许多不同的事情,并查找了许多不同的教程,但似乎没有什么样的与我需要做的一样。

gradePoint((功能要求如下。

此功能将导致两个结果之一。如果参数在0到100之间,则该函数将将等级舍开至最接近的整数,并返回等效的GPA值。否则,如果进入的成绩不在0到100之间,则该功能将抛出std :: out_of_range异常。

int main((要求如下。

提示用户输入等级并确保其数字。请勿验证范围,因为这将在GradePoint((函数中完成。

#include <iostream>
#include <iomanip>
using namespace std; 
//function prototypes 
double GradePoint(double p);
// testing some funtions
int main()
{
    double p = 0.0; 
    cout << "Please a percentage grade to convert to grade points: "; 
    cin >> p; 
    while(!(cin >> p))
    {
        cin.clear();
        cin.sync();
        cout << "Please enter a numeric value: ";
    }
    cout << "A percentage grade of " << p; 
    cout << " Is a grade point average of " << GradePoint;
    return 0;
}
double GradePoint(double p)
{
    double g;
    if (p >=90 && p <=100)
        g = 5.0;
    else if (p >=85 && p <=89)
        g = 4.5;
    else if (p >=80 && p <=84)
        g = 4.0; 
    else if (p >=75 && p <=79)
        g = 3.5;
    else if(p >=70 && p <=74)
        g = 3.0; 
    else if (p >=65 && p <=69)
        g = 2.5;
    else if (p >=60 && p <=64)
        g = 2.0; 
    else if (p >=55 && p <=59)
        g = 1.5; 
    else if (p >=50 && p <=54)
        g = 1.0;
    else if (p <50)
        g = 0.0;
    return g; 
}

首先在GradePoint中的代码可能会更加清洁。平均成绩大约为百分比/20,并且使用并使用Math.h在此处显示:http://www.cplusplus.com/reference/reference/cmath/round/您可以将百分比圆成最接近的百分比。

double GradePoint(double p){
double g;
g = round(p) / 20;
return g;
}

接下来,在编译代码时,除非将P传递给坡度参数,否则它似乎无法正常工作。

    cout << " Is a grade point average of " << GradePoint(p);

最新更新