c++ gpa计算器不接受成绩输入

c++ gpa calculator not accepting grade input

本文关键字:输入 不接受 gpa 计算器 c++      更新时间:2023-10-16
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int course, numberOfClasses; //declare variables
    double gradePointTotal = 0, gradePointAve; //initialize to 0
    string grade;
    cout << "GPA Calculator n";
    cout << "n Enter the number of classes ";
    cin >> numberOfClasses; // enter number of classes
    for (course = 1; course <= numberOfClasses; course++ ) // define loop
    {
        cout << "n Enter a letter grade for class number " << course << ": ";
        cin >> grade; //Enter grade
        if ( grade == "A" || grade == "a") //accepts upper and lower case
            gradePointTotal = gradePointTotal + 4;
        else if ( grade == "B" || grade == "b")
            gradePointTotal = gradePointTotal + 3;
        else if ( grade == "C" || grade == "c")
            gradePointTotal = gradePointTotal + 2;
        else if ( grade == "D" || grade == "d")
            gradePointTotal = gradePointTotal + 1;
        else if ( grade == "F" || grade == "f")
            gradePointTotal = gradePointTotal + 0;
        gradePointAve = gradePointTotal / numberOfClasses; // calculate the GPA
        cout << "n Your GPA is: " << gradePointAve << endl; // display GPA
    }
}

我是c++新手。我不太确定为什么……但是我的输出不正确。这个程序计算gpa。我可以输入我正在使用的课程的数量,但是我不能输入字母成绩。我得到了一个错误与我的行:>>级;但我能够通过添加#include来修复错误信息。然而,它并没有做预期的....为什么当控制台屏幕弹出时,我不能输入我的字母成绩?

gradePointAve = gradePointTotal / numberOfClasses; // wrong

是错误的,因为您暗示了gradePointTotal包含所有等级。但是因为你是在循环,所以不是这样的。您需要设置course,而不是numberOfClasses作为商:

gradePointAve = gradePointTotal / course; // correct

至少给你正确的结果。

去掉#include "stdafx.h",你不需要它。在项目文件夹中放置标准库并不是很好。同样,代码不需要它