소프트웨어/C++

[2005년 기말 1번] 성적 처리 - 동적 할당 / vector STL

카켈 2007. 3. 9. 00:56




목적
  - 동적 할당에 대해 이해하고 입력을 받아서 자료를 추가 및 처리 할줄 안다.

문제

코드

#include <iostream>
#include <cstring>
#include <vector>

using namespace std;

int main(void)
{
 vector<double> stlVector;
 int i = 0;
 char *sName, *sId;
 char sIn[255] = {0};
 double dIn, dTotal;
 dIn = dTotal = 0.0;
 sName = sId = NULL;

 cout << "학번 : ";
 cin.getline(sIn,255);
 sId = new char[strlen(sIn) + 1];
 strcpy(sId, sIn);

 cout << "이름 : ";
 cin.getline(sIn,255);
 sName = new char[strlen(sIn) + 1];
 strcpy(sName, sIn);

 cout << "네 과목의 성적 : ";
 for(i = 0; i <= 3; i++)
 {
  cin >> dIn;
  stlVector.push_back(dIn);
  dTotal += stlVector[i];

 }
 
 cout << sId << ' ' << sName << " 의 평균 점수는 " << dTotal / i << " 입니다." << endl;
 delete sName, sId;

 return 0;
}

해설
   - vector STL 자료형은 이전 문제에서 자세히 다루었습니다. 참고 하시기 바랍니다.
  - 나머지 부분은 크게 어렵지 않습니다.
  - 문자열 포인터를 생성후 동적으로 입력 받은 글자의 길이만큼 새로 생성하여 추가하는 방식을 썼습니다. 생성 및 삭제에 new / delete 명령어가 쓰입니다.

참고
  - vector STL 다루었던 문제