HALP!
Dec 11, 2012 at 5:51pm Dec 11, 2012 at 5:51pm UTC
How do I make it so if the person has 2 or less absences, it adds 2 points to their average? Help!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#include <iostream>
#include <ctime>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Grade
{
std::string last,
first,
middle,
absence;
double test1,
test2,
test3;
friend std::istream &operator >>(std::istream &in, Grade &s)
{
return in >> s.last >> s.first >> s.middle >> s.test1 >> s.test2 >> s.test3 >> s.absence;
}
friend std::ostream &operator <<(std::ostream &out, const Grade &s)
{
return out << "Name: " << s.first << " " << s.middle << " " << s.last << std::endl
<< "Test Average: " << (s.test1+s.test2+s.test3)/3 << std::endl
<< "Absences: " << s.absence << std::endl;
}
};
void main ()
{
std::vector<Grade> grades;
{
std::ifstream infile ("students.txt" );
Grade temp;
while (infile >> temp)
{
grades.push_back(temp);
}
}
for (size_t i = 0; i < grades.size(); ++i)
{
std::cout << grades[i] << std::endl;
}
}
Dec 11, 2012 at 7:47pm Dec 11, 2012 at 7:47pm UTC
I assume this is copy pasta'd code? Why is absence a string? Maybe have a method that actually computes the average, instead of sticking everything in operator<<. Then it's just a simple test.
Topic archived. No new replies allowed.