問題の説明がファイルは、最初の行のみを読み込み、その後
を終了し、基本的に、私の「Roster.h」ヘッダファイルの内部では、私は、学生のクラス(から「学生」オブジェクトの配列を持っています関数changeScore、SetID、setTotal、setLetterGrade)を呼び出します。下に添付される関数では、データの最初の行を読み込み、その後while条件で終了します。私は今この問題を何時間も見つめており、2番目(または3番目)の目を使用することができます。私が最も効果的なプログラマーではないことを知っているので、どんな批評も高く評価されています。 "m_studentnum"は、コンストラクターで0に初期化されるプライベートデータです。前もって感謝します!
コード
void Roster::readStudentRecord(string file)
{
ifstream in;
string studentID;
string line;
int ola, cla, quiz, homework, exam, bonus, total, final = 0;
in.open(file.c_str());
getline(in, line);
while (in >> studentID) {
in >> cla >> ola >> quiz >> homework >> exam >> bonus >> total >> final;
m_students[m_studentNum].Student::setID(studentID);
m_students[m_studentNum].Student::changeScore(Student::CLA, cla);
m_students[m_studentNum].Student::changeScore(Student::OLA, ola);
m_students[m_studentNum].Student::changeScore(Student::QUIZ, quiz);
m_students[m_studentNum].Student::changeScore(Student::HOMEWORK, homework);
m_students[m_studentNum].Student::changeScore(Student::EXAM, exam);
m_students[m_studentNum].Student::changeScore(Student::BONUS, bonus);
total = cla + ola + quiz + homework + exam + bonus;
m_students[m_studentNum].Student::setTotal(total);
if (total >= 90) {
m_students[m_studentNum].Student::setLetterGrade('A');
}
else if (total >= 80 && total < 90) {
m_students[m_studentNum].Student::setLetterGrade('B');
}
else if (total >= 70 && total < 80) {
m_students[m_studentNum].Student::setLetterGrade('C');
}
else if (total >= 60 && total < 70) {
m_students[m_studentNum].Student::setLetterGrade('D');
}
else {
m_students[m_studentNum].Student::setLetterGrade('F');
}
m_studentNum++;
}
}
私はgetlineのをやっている -NOTEは、「データ列の
ID CLA OLA Quiz Homework Exam Bonus Total FinalGrade
c088801 10 15 4 15 56 5
c088802 9 12 2 11 46 2
c088803 8 10 3 12 50 1
c088804 5 5 3 10 53 3
c088805 3 11 1 10 45 0
c088806 8 14 2 11 40 -1
c088807 4 12 2 12 48 -2
c088808 10 10 3 11 36 0
c088809 8 8 3 11 39 0
c088810 6 9 4 9 47 3
c088811 8 7 3 13 41 3
c088812 4 11 3 11 37 1
あなたはこのファイルの最初の数行を表示してください。もちろん –
!ごめんなさい!私はそのhahaを含めることを意味しました – gavsta707
あなたは今すぐ編集する必要があります@Someprogrammerdude – gavsta707