2017-01-01 4 views
0

Я новичок в C++ и написал простую программу калькулятора GPA.
В основном он запрашивает количество классов, которые у вас есть, и берет оценку каждого из них.
Затем он преобразует оценки букв в числовые.
И, наконец, он суммирует числовые оценки и позволяет их усреднить.
Мой вопрос: как именно я получаю результат GPA в форматах 4.00, 3.00, 2.00 и т. Д.?Как получить номер в форме «.00»?

#include <iostream> 
using namespace std; 

int main(){ 
    int grades_size; 
    cout << "Enter the number of classes you are taking: "; 
    cin >> grades_size; 

    int *grades; 
    grades = new int[grades_size]; 
    float *conversion; 
    conversion = new float[grades_size]; 

    float sum = 0; 

    cout << endl << "Enter your grade percentage of each class as a number 0-100." << endl; 

    for (int i = 0; i < grades_size; i++) { 
     cout << "Grade " << i + 1 << ": "; 
     cin >> grades[i]; 

     if (grades[i] <= 100 && grades[i] >= 90) { 
      conversion[i] = 4.00; 
     } else if (grades[i] < 90 && grades[i] >= 80) { 
      conversion[i] = 3.00; 
     } else if (grades[i] < 80 && grades[i] >= 70) { 
      conversion[i] = 2.00; 
     } else if (grades[i] < 70 && grades[i] >= 60) { 
      conversion[i] = 1.00; 
     } else if (grades[i] < 60 && grades[i] >= 0) { 
      conversion[i] = 0.00; 
     } 

     sum += conversion[i]; 
    } 

    float GPA = sum/grades_size; 
    cout << endl << "--- Your GPA is: " << GPA; 
} 
+1

Предполагая, что вы только что говорили о показе определенного количества знаков после запятой: http://stackoverflow.com/questions/22515592/how-to-use-setprecision-in-c –

+0

Чтобы показать десятичные вы можете используйте библиотеку #include и, в частности, фиксированную и setprecision (x). Например: cout << "Печать этого числа до двух знаков после запятой" << fixed << setprecision (2) << number << endl; –

+0

Используйте трехзначные числа для представления значений числа gpa, затем разделите их на 100 ... например, 321/100,00 = 3,21 ... или 300/100,00 = 3,00 – aguertin

ответ

1

std::setprecision (в заголовке iomanip), а также std::fixed (включен iostream уже), может быть полезным здесь.

setprecision: Устанавливает десятичную точность при печати значений с плавающей запятой.

исправлено: значения поплавка печатаются в фиксированных обозначениях. При использовании с setprecision печатный номер всегда, что много цифр.

#include <iomanip> // std::setprecision 
... 
cout << endl << "--- Your GPA is: " << std::fixed << std::setprecision(2) << GPA; 
+0

Спасибо Тейлор Х. –