성적 입력받아 배열에 저장하는 프로그램
#include <iostream>
using namespace std;
void main() {
int num = 0;
cout << "학생 수 입력: ";
cin >> num;
addScore(num);
}
void addScore(int num) {
//성적 정보(num(총 학생 수) 만큼 성적 배열 생성)
int* stu_no = new int[num]; // 포인터 이용해 배열 동적 할당
int* ko_score = new int[num];
int* en_score = new int[num];
int* mt_score = new int[num];
float* avg = new float[num];
//종료여부
bool boo = true;
//현재 성적 입력한 학생 수
int all_std = 0;
//프로그램 실행
while (boo) {
cout << "\n----------메뉴----------\n";
cout << "1. 성적추가\n";
cout << "2. 전체 성적 보기\n";
cout << "3. 종료하기\n";
cout << "\n-----------------------\n";
cout << "번호 입력: ";
char selNum;
cin >> selNum;
//선택한 메뉴 처리 위한 조건문
switch (selNum) {
//성적 조회
case '1':
{
//입력받은 학생수가 총 학생수와 같으면 실행 x
if (all_std == num) {
cout << "모든 학생의 성적이 입력되었습니다.\n";
break;
}
//성적 입력받고 성적 리스트에 저장
cout << endl << "성적추가 메뉴 선택 \n";
int ko, en, mt;
cout << "국,영,수 점수 입력: ";
cin >> ko >> en >> mt;
float av = (ko + en + mt) / 3.0f;
stu_no[all_std] = all_std+1;
ko_score[all_std] = ko;
en_score[all_std] = en;
mt_score[all_std] = mt;
avg[all_std] = av;
all_std++;
break;
}
case '2':
cout << "\n전체 성적 보기 선택\n";
//현재 입력된 학생 수 만큼 성적 출력
for (int i = 0; i < all_std; i++) {
cout << stu_no[i] << "번 학생 성적\n";
cout << "국어: " << ko_score[i] << " 수학: " << mt_score[i] << " 영어: "
<< en_score[i] << " 총점: "<< avg[i] << endl;
cout << endl;
}
break;
case '3':
cout << "\n종료\n";
//동적 할당받은 배열들 삭제 후 bool 타입 false 설정하여 종료
free(ko_score);
free(en_score);
free(mt_score);
free(avg);
boo = false;
break;
default:
cout << "\n잘못된 입력\n";
}
}
}