c++ 포토 폴리오
2024. 12. 3. 13:45ㆍ카테고리 없음
반응형
- 1학년 2학기 C++ 과목을 통해서 객체지향언어의 기본적인 문법을 익혔습니다.
C++11이후 바뀐 모던 C++의 특징에 대해서도 학습하였습니다.
- 클래스를 통해 캡슐화하는 방법, 다형성으로 함수 오버로딩, 상속과 overriding을 통해
코드 재사용 등의 특징을 학습했습니다.
- 또한, template, STL, exception handing, 파일 입출력 등의 문법도 익혀서
C++로 실무 프로젝트를 진행하는데 무리가 없도록 기본 문법을 확실히 이해하고 있습니다.
- 포트폴리오?
구글링/AI : C++ stl file 성적처리
- 직접 만드는 것도 좋지만 좋은 소스를 많이 보고 만들기
- 블로그 관리(저작권, 복붙, 비공개, 꾸준, 습관)
단계별로 성적 처리 프로그램을 만들기
1단계: 필요한 헤더 파일 포함 및 네임스페이스 선언
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iomanip>
using namespace std;
2단계: 학생 구조체 정의
struct Student {
string name;
int id;
vector<int> scores;
};
```
3단계: 학생 정보 입력 함수 구현
Student inputStudent() {
Student s;
cout << "이름 입력: ";
cin >> s.name;
cout << "학번 입력: ";
cin >> s.id;
cout << "성적 입력 (3과목, 공백으로 구분): ";
for (int i = 0; i < 3; i++) {
int score;
cin >> score;
s.scores.push_back(score);
}
return s;
}
```
4단계: 파일에 학생 정보 저장 함수 구현
void saveToFile(const vector<Student>& students, const string& filename) {
ofstream file(filename);
for (const auto& s : students) {
file << s.name << " " << s.id;
for (int score : s.scores) {
file << " " << score;
}
file << endl;
}
file.close();
}
```
5단계: 파일에서 학생 정보 불러오기 함수 구현
vector<Student> loadFromFile(const string& filename) {
vector<Student> students;
ifstream file(filename);
string name;
int id;
while (file >> name >> id) {
Student s;
s.name = name;
s.id = id;
for (int i = 0; i < 3; i++) {
int score;
file >> score;
s.scores.push_back(score);
}
students.push_back(s);
}
file.close();
return students;
}
```
6단계: 학생 정보 출력 함수 구현
```cpp
void printStudent(const Student& s) {
cout << "이름: " << s.name << ", 학번: " << s.id << ", 성적: ";
for (int score : s.scores) {
cout << score << " ";
}
cout << endl;
}
```
7단계: 메인 함수 구현
int main() {
vector<Student> students;
string filename = "students.txt";
int choice;
do {
cout << "\n1. 학생 정보 입력\n2. 학생 정보 출력\n3. 파일에 저장\n4. 파일에서 불러오기\n5. 종료\n선택: ";
cin >> choice;
switch(choice) {
case 1:
students.push_back(inputStudent());
break;
case 2:
for (const auto& s : students) {
printStudent(s);
}
break;
case 3:
saveToFile(students, filename);
cout << "파일에 저장되었습니다." << endl;
break;
case 4:
students = loadFromFile(filename);
cout << "파일에서 불러왔습니다." << endl;
break;
case 5:
cout << "프로그램을 종료합니다." << endl;
break;
default:
cout << "잘못된 선택입니다." << endl;
}
} while (choice != 5);
return 0;
}
```
이 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다:
```
1. 학생 정보 입력
2. 학생 정보 출력
3. 파일에 저장
4. 파일에서 불러오기
5. 종료
선택: 1
이름 입력: 홍길동
학번 입력: 20230001
성적 입력 (3과목, 공백으로 구분): 90 85 95
1. 학생 정보 입력
2. 학생 정보 출력
3. 파일에 저장
4. 파일에서 불러오기
5. 종료
선택: 2
이름: 홍길동, 학번: 20230001, 성적: 90 85 95
1. 학생 정보 입력
2. 학생 정보 출력
3. 파일에 저장
4. 파일에서 불러오기
5. 종료
선택: 3
파일에 저장되었습니다.
1. 학생 정보 입력
2. 학생 정보 출력
3. 파일에 저장
4. 파일에서 불러오기
5. 종료
선택: 5
프로그램을 종료합니다.
```
이 프로그램은 학생 정보를 입력받고, 출력하며, 파일에 저장하고 불러올 수 있습니다.
STL의 vector를 사용하여 학생 정보를 관리하고, 파일 입출력을 통해 데이터를 영구적으로 저장할 수 있습니다.