C++에서 STL(Standard Template Library)과 파일 입출력을 이용하여 성적 처리 프로그램을 만드는 방법을 설명하겠습니다. 이 프로그램은 학생의 이름과 성적을 입력받아 파일에 저장하고, 저장된 데이터를 읽어와서 출력하는 기능을 포함합니다.
프로그램 구조 학생 정보를 저장할 구조체: 학생의 이름과 성적을 저장합니다. STL 컨테이너: std::vector를 사용하여 학생 정보를 저장합니다. 파일 입출력: std::ofstream과 std::ifstream을 사용하여 파일에 데이터를 저장하고 읽어옵니다. 코드 예제 cpp
// 학생 정보를 저장할 구조체 struct Student { string name; double score; };
// 학생 정보를 파일에 저장하는 함수 void saveToFile(const vector<Student>& students, const string& filename) { ofstream outFile(filename); if (!outFile) { cerr << "파일을 열 수 없습니다: " << filename << endl; return; }
// 학생 정보를 출력하는 함수 void printStudents(const vector<Student>& students) { cout << "학생 성적 목록:" << endl; for (const auto& student : students) { cout << "이름: " << student.name << ", 성적: " << student.score << endl; } }
int main() { vector<Student> students; string filename = "students.txt"; int numStudents;
cout << "학생 수를 입력하세요: "; cin >> numStudents;
// 학생 정보 입력 for (int i = 0; i < numStudents; ++i) { Student student; cout << "학생 이름: "; cin >> student.name; cout << "학생 성적: "; cin >> student.score; students.push_back(student); }
// 학생 정보를 파일에 저장 saveToFile(students, filename);
// 파일에서 학생 정보 읽기 vector<Student> loadedStudents = loadFromFile(filename);
// 학생 정보 출력 printStudents(loadedStudents);
return 0; } 코드 설명 구조체 정의: Student 구조체는 학생의 이름과 성적을 저장합니다. 파일 저장 함수: saveToFile 함수는 std::ofstream을 사용하여 학생 정보를 파일에 저장합니다. 파일 읽기 함수: loadFromFile 함수는 std::ifstream을 사용하여 파일에서 학생 정보를 읽어와 std::vector에 저장합니다. 출력 함수: printStudents 함수는 학생 정보를 출력합니다. 메인 함수: 사용자로부터 학생 수를 입력받고, 각 학생의 이름과 성적을 입력받아 std::vector에 저장합니다. 학생 정보를 파일에 저장한 후, 파일에서 다시 읽어와 출력합니다. 사용 방법 코드를 컴파일하고 실행합니다. 프로그램이 학생 수를 묻고, 각 학생의 이름과 성적을 입력받습니다. 입력이 완료되면, 학생 정보가 students.txt 파일에 저장됩니다. 프로그램은 파일에서 학생 정보를 읽어와 출력합니다. 이 프로그램은 기본적인 성적 처리 기능을 제공하며, 필요에 따라 추가적인 기능(예: 성적 평균 계산, 성적 정렬 등)을 구현할 수 있습니다.