Studentsmanage
Studentsmanage
h>
#include <string.h>
#define MAX_NAME 20
#define NUM_SUBJECTS 5
#define NUM_STUDENTS 5
typedef struct {
char name[MAX_NAME];
int age;
int scores[NUM_SUBJECTS];
} Student;
/*students = [
["조수겸", 18, [85, 90, 78, 88, 95]],
["김서준", 17, [92, 86, 98, 77, 89]],
["김래연", 18, [78, 84, 88, 92, 70]],
["우정훈", 17, [95, 91, 93, 89, 82]],
["황태현", 18, [67, 72, 75, 80, 75]]
]
*/
Student students[NUM_STUDENTS] = {
{"조수겸", 18, {85, 90, 78, 88, 95}},
{"김서준", 17, {92, 86, 98, 77, 89}},
{"김래연", 18, {78, 84, 88, 92, 70}},
{"우정훈", 17, {95, 91, 93, 89, 82}},
{"황태현", 18, {67, 72, 75, 80, 75}}
};
void clear_input_buffer() {
int c;
while ((c = getchar()) != '\n' && c != EOF);
}
//if choice == '1':
void print_all_students() {
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("\n 이름: %s, 나이: %d\n", students[i].name, students[i].age);
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("%s: %d 점 (%c)\n",
subjects[j],
students[i].scores[j],
get_grade(students[i].scores[j]));
}
}
}
//elif choice == '2':
void analyze_student() {
char name[MAX_NAME];
int found = 0;
found = 1;
break;
}
}
if (!found) {
printf("해당 이름의 학생을 찾을 수 없습니다.\n");
}
}
//elif choice == '3':
void print_top_scores() {
for (int i = 0; i < NUM_SUBJECTS; i++) {
int max_score = 0;
printf("전체 평균 상위 3 명:\n");
for (int i = 0; i < 3; i++) {
printf("%d. %s: %.2f 점\n", i + 1, avg_scores[i].name, avg_scores[i].avg);
}
}
//def main():
int main() {
int choice;
while (1) {
printf("\n1. 전체 학생 정보 출력\n");
printf("2. 특정 학생의 성적 분석\n");
printf("3. 과목별 최고 점수와 해당 학생\n");
printf("4. 전체 평균 상위 3 명\n");
printf("5. 종료\n");
printf("원하는 기능의 번호를 입력하세요: ");
if (scanf("%d", &choice) != 1) {
printf("잘못된 입력입니다. 다시 시도해주세요.\n");
clear_input_buffer();
continue;
}
clear_input_buffer();
switch (choice) {
case 1:
print_all_students();
break;
case 2:
analyze_student();
break;
case 3:
print_top_scores();
break;
case 4:
print_top_three();
break;
case 5:
printf("프로그램을 종료합니다.\n");
return 0;
default:
printf("잘못된 입력입니다. 다시 시도해주세요.\n");
}
}
return 0;
}