문제 설명이파일 읽기 기능은 첫 번째 줄은 다음
은 기본적으로 내 "Roster.h"헤더 파일의 내부, 난 (학생 클래스에서 "학생"객체의 배열을 가지고있는이 포함되어 종료 읽어 함수 changeScore, SetID, setTotal, setLetterGrade)를 호출합니다. 아래에 첨부 될 함수에서 첫 번째 데이터 행을 읽은 다음 while 조건에서 종료합니다. 나는 몇 시간 동안이 문제를 꼼짝 않고 바라 보았고 두 번째 (또는 세 번째) 쌍의 눈을 사용할 수있었습니다. 모든 비판은 또한 내가 가장 효과적인 프로그래머가 아니라는 것을 알고 있습니다. "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을하고있는 중이 야 - 주는 "데이터 열의
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
읽고 싶은 파일의 처음 몇 줄을 보여 주시겠습니까? 물론 –
! 죄송합니다! 나는 그 하하를 포함 할 예정이었습니다 – gavsta707
지금 편집을해야합니다 @Someprogrammerdude – gavsta707