~cpp
#include <iostream>
#include <stdlib.h>
using namespace std;
void menu1(), menu2(), menu3(), menu4(), sub_menu(), avr(), sort(int, int),
grade(int), prt_select(), prt_all(), error();
const int students = 20;
char name[students][7] = {"", "", "동", "무", "민",
"", "", "", "", "",
"", "", "", "문봉", "대",
"", "", "", "민", ""};
int stats[students][4] = {
{20025301, 85, 90, 80}, {20025302, 80, 88, 85}, {20025303, 88, 93, 75}, {20025309, 75, 85, 70},
{20025307, 73, 83, 77}, {20025304, 95, 88, 80}, {20025308, 85, 65, 90}, {20025305, 94, 70, 65},
{20025306, 80, 75, 88}, {20025310, 65, 73, 94}, {20025313, 77, 78, 99}, {20025312, 80, 77, 85},
{20025311, 95, 80, 95}, {20025315, 78, 90, 75}, {20025314, 90, 95, 65}, {20025316, 88, 88, 80},
{20025317, 83, 76, 75}, {20025318, 75, 68, 70}, {20025319, 65, 70, 80}, {20025320, 88, 85, 90}};
char sort_name[students + 1][7];
int sort_stats[students + 1][4];
int select;
int sum_sub[3], sum_avr;
double avr_ind[students + 1];
int main()
{
for ( ; ; )
{
for (int i = 0 ; i < students ; i++)
{
for (int j = 0 ; j < 7 ; j++)
sort_name[i][j] = name[i][j];
for (j = 0 ; j < 4 ; j++)
sort_stats[i][j] = stats[i][j];
}
system("cls");
cout << " 메뉴n1) 목 리n2) 목 리n3) 리n"
<< "4) 리n5) 료n메뉴를 . ";
cin >> select;
if (select == 1) menu1(); // 맞 를
else if (select == 2) menu2();
else if (select == 3) menu3();
else if (select == 4) menu4();
else if (select == 5) break; // 5번 메뉴는 료
else error(); // 못 러메를 는
system("pause"); // 를 멈
}
cout << "n료.nn"; // 료 료 메를
return 0; // 료
}
void menu1() // 1번 메뉴 : 목 따 면
{
sub_menu(); // 브메뉴
if (select >= 1 && select <= 3) // 브메뉴 따 면 는 를
prt_select();
}
void menu2() // 2번 메뉴 : 목 따 면
{
sub_menu(); // 브메뉴
if (select >= 1 && select <= 3) {
for (int i = 1 ; i < students ; i++)
for (int j = 0 ; j < i ; j++)
if (sort_stats[i][select] > sort_stats[j][select]) // 목 따
sort(i, j); // 를
prt_select(); // 브메뉴 따 는 를
}
}
void menu3() // 모 데 및 따
{
avr(); // 를
cout << "n 리n"; // 메뉴를 면
prt_all(); // 면 데를
}
void menu4() // 모 데 및
{
avr(); // 를
for (int i = 1 ; i < students ; i++) // 따
for (int j = 0 ; j < i ; j++) // 를
if (avr_ind[i] > avr_ind[j])
sort(i, j); // 루 따 i, j 변를
cout << "n 리n"; // 메뉴를 면
prt_all(); // 면 데를
}
void sub_menu() // 1, 2번 메뉴 브 메뉴를 받 메뉴를 는
{
cout << "n1) n2) n3) n떤 목 보? ";
cin >> select; // 브메뉴를 부 받
if (select < 1 || select > 3)
error(); // 못 러메를 는
else cout << endl << (select == 1 ? "" : (select == 2 ? "" : "")) << " 목n"
<< " t 번tn"; // 메뉴를
} // 들는
void prt_select() // 1, 2번 메뉴 브 메뉴 따 면 를
{
for (int i = 0 ; i < students ; i++)
cout << sort_name[i] << "t" << " " << sort_stats[i][0] // 번
<< "t " << sort_stats[i][select] << endl; //
}
void sort(int i, int j) // 따 i, j 변를 받
{
for (int k = 0 ; k < 7 ; k++) { // 데
sort_name[students][k] = sort_name[j][k];
sort_name[j][k] = sort_name[i][k];
sort_name[i][k] = sort_name[students][k];
}
for (k = 0 ; k < 4 ; k++) { // 데 번
sort_stats[students][k] = sort_stats[j][k];
sort_stats[j][k] = sort_stats[i][k];
sort_stats[i][k] = sort_stats[students][k];
}
}
void avr() // 는
{
for (int i = 0 ; i < students ; i++) //
avr_ind[i] = (sort_stats[i][1] + sort_stats[i][2] + sort_stats[i][3]) / 3.0;
if (select == 4) // 메뉴 4번
for (int i = 1 ; i < students ; i++)
for (int j = 0 ; j < i ; j++)
if (avr_ind[i] > avr_ind[j]){ // 따
sort(i, j); // 데
avr_ind[students] = avr_ind[j]; // 따
avr_ind[j] = avr_ind[i];
avr_ind[i] = avr_ind[students];
}
}
void prt_all() // 3, 4번 메뉴를 동 는
{
cout << " t 번ttttttn"; // 명
for (int i = 0 ; i < students ; i++) {
cout << sort_name[i] << "t "; //
for (int j = 0 ; j < 4 ; j++)
cout << sort_stats[i][j] << "t "; // 번
cout << avr_ind[i] << " t ";
grade(i); // 는
sum_avr += avr_ind[i]; //
for (j = 0 ; j < 3 ; j++)
sum_sub[j] += sort_stats[i][j + 1]; // 목 를
}
cout << "n//ttt";
for (i = 0 ; i < 3 ; i++)
cout << sum_sub[i] << "t"; // 목
cout << sum_avr << "n//ttt "; // 들
for (i = 0 ; i < 3 ; i++){ // 목 변를
cout << sum_sub[i] / students << "t "; // 목 변를
sum_sub[i] = 0; // 목 뒤
} // 목 를
cout << sum_avr / students <<"nn"; // 들 뒤
sum_avr = 0; // 들
}
void grade(int i) // 는
{
if (avr_ind[i] >= 95) cout << "A+n"; // 95 A+
else if (avr_ind[i] >= 90) cout << "An"; // 90 A
else if (avr_ind[i] >= 85) cout << "B+n"; // 85 B+
else if (avr_ind[i] >= 80) cout << "Bn"; // 80 B
else if (avr_ind[i] >= 75) cout << "C+n"; // 75 C+
else if (avr_ind[i] >= 70) cout << "Cn"; // 70 C
else if (avr_ind[i] >= 65) cout << "D+n"; // 65 D+
else if (avr_ind[i] >= 60) cout << "Dn"; // 60 D
else cout << "Fn"; // 60 미만 F 를
}
void error() // 메뉴를 못 러 메를 는
{
cout << "n못 .nn";
}