게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++언어 질문좀할게요 ....ㅜ
게시물ID : jisik_134620짧은주소 복사하기
작성자 : 곧츄선남자
추천 : 0
조회수 : 366회
댓글수 : 2개
등록시간 : 2012/10/10 13:47:50

 

 

텍스트 파일을 읽어서 저장한후 출력하는 클래스 입니다!

굵은글씨로 해놓은 부분이 아마 문제인것 같은데요!

왜문제 인지 모르겠습니다 ㅜㅜ

조금만 고쳐주시면 안되겟습니까 ㅜ


#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;
}


 결과물

 

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호