분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
텍스트 파일을 읽어서 저장한후 출력하는 클래스 입니다!
굵은글씨로 해놓은 부분이 아마 문제인것 같은데요!
왜문제 인지 모르겠습니다 ㅜㅜ
조금만 고쳐주시면 안되겟습니까 ㅜ
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//****************
// Course 클래스
//****************
class CourseType
{
public:
CourseType(); // 디폴트 생성자
CourseType(string name, int credits, char grade); // 생성자
void setCourse(string name, int credits, char grade); // 과목 정보를 설정하는 함수
string &getName()
{
return courseName;
}
// 과목 이름을 반환하는 함수
int &getCredits()
{
return courseCredits;
}
// 학점수를 반환하는 함수
char &getGrade()
{
return courseGrade;
}
// 성적을 반환하는 함수
void print(ostream& out); // 과목 정보를 파일에 출력하는 함수
protected:
string courseName; // 과목명을 저장하는 변수
int courseCredits; // 학점수를 저장하는 변수
char courseGrade; // 학점을 저장하는 변수
};
CourseType::CourseType()
{
courseName = "";
courseCredits = 0;
courseGrade = ' ';
}
CourseType::CourseType(string name, int credits, char grade)
{
setCourse(name, credits, grade);
}
void CourseType::setCourse(string name, int credits, char grade)
{
courseName = name;
courseCredits = credits;
courseGrade = grade;
}
//****************
// Student 클래스
//****************
class StudentType : public CourseType
{
public:
StudentType(); // 디폴트 생성자
StudentType(int num, string name, int nCourse, CourseType* co); // 생성자
~StudentType(); // 소멸자
void setStudent(int num, string name, int nCourse, CourseType* co); // 학생 정보를
//..설정하는 함수
int getTotalCredits(); // 학생이 수강하는 과목의 총 학점 수를 반환하는 함수
float getGpa(); // 평균 성적을 반환하는 함수
void print(ostream& out); // 학생 정보를 출력하는 함수
int &getCourse()
{
return numCourse;
}
string &getsname()
{
return sname;
}
int &getsno()
{
return sno;
}
private:
int sno; // 학번을 저장하는 변수
string sname; // 학생 이름을 저장하는 변수
int numCourse; // 과목 수를 저장하는 변수
CourseType* course; // 수강하는 과목의 동적 배열을 만들기 위한 포인터
};
StudentType::StudentType()
{
sno = 0;
sname = "";
numCourse = 0;
course = NULL;
}
StudentType::StudentType(int num, string name, int nCourse, CourseType* co)
{
setStudent(num, sname, nCourse, co);
}
StudentType::~StudentType()
{
delete []course;
}
void StudentType::setStudent(int num, string name, int nCourse, CourseType* co)
{
sno = num;
sname = name;
numCourse = nCourse;
course = new CourseType[nCourse];
for (int i = 0; i < nCourse; i++)
course[i].setCourse(co[i].getName(), co[i].getCredits(), co[i].getGrade());
}
void getStudentData(istream &inFile, StudentType s[], int& num )
{
int sno; // 학번을 저장하는 변수
string sname; // 학생 이름을 저장하는 변수
int numCourse;
CourseType * course;
string courseName; // 과목명을 저장하는 변수
int courseCredits; // 학점수를 저장하는 변수
char courseGrade;
int i=0;
while(!inFile.eof())
{
inFile >> sno>> sname>> numCourse;
for(i=0; i<numCourse; i++)
{
inFile >> courseName >> courseCredits >> courseGrade ;
}
s[i++].getsname(), s[i++].getsname(), s[i++].getCourse();
num++; //이부분에서 inFile >> courseName >> courseCredits >> courseGrade ;
를 s 배열에 넣는 방법도 모르겠고요 ㅜㅜ
}
}
void printGradeReports(ostream &outFile, StudentType s[], int num)
{
for(int i=0; i< num; i++)
{
cout<< s[i].getsno() << " "<< s[i].getName() << " " <<s[i].getCourse() <<endl;
}
}
void getStudentData(istream& inFile, StudentType s[], int& num);
void printGradeReports(ostream& outFile, StudentType s[], int num);
const int NUM_STUDENT = 100;
int main()
{
ifstream inFile;
ofstream outFile;
inFile.open("input.txt");
StudentType studentArray[NUM_STUDENT];
int numStudent=0;
if (!inFile)
{
cerr << "Input file does not exist. "
<< "Program terminates. "<< endl;
exit(1);
}
outFile.open("output.txt");
getStudentData(inFile, studentArray, numStudent);
printGradeReports(outFile, studentArray, numStudent);
inFile.close();
outFile.close();
return 0;
}
결과물
죄송합니다. 댓글 작성은 회원만 가능합니다.