학생 성적 관리 시스템
#첫 화면
1. 등록된 학생 명단을 출력한다.
2. 학생과 학생의 성적을 등록한다.
3. 반의 세부항목 별 점수를 대표값을 통해 출력한다
4. 학생 별로 총합 점수와 성적을 출력한다.
5. 프로그램 종료
#1번 클릭
1. 등록된 학생의 학번과 이름을 등록된 순서대로 출력한다.
#2번 클릭
1. 학생의 이름과 학번을 입력받는다.
2. 학생의 출석 / 과제 / 중간고사 / 기말고사 / Term Project 점수를 입력받는다.
#3번 클릭
1. 등록된 학생들의 출석 / 과제 / 중간고사 / 기말고사 / Term Project 점수 평균 / 중앙값을 출력한다.
#4번 클릭
1. 학생의 학번과 총합 점수를 출력한다.
2. 총합 점수에 따른 성적 (A,B,C,D,F)를 출력한다.
#5번 클릭
1. 프로그램 종료
built by C
#include <stdio.h>
#include <stdlib.h>
typedef struct class_grade {
char name[30];
int student_id;
int attendence;
int midterm_exam;
int final_exam;
int assignment;
int term_project;
int total_score;
};
typedef struct class_report {
int attendeance;
int midterm_exam;
int final_exam;
int assignment;
int term_project;
int total_score;
}Report;
struct class_grade Grade[80];
void go_back_to_menu();
void menu1();
void menu2();
void menu3();
void menu4();
int Average(int a);
int Median(int a);
int index = 0;
char str[];
int main(void) {
int menu;
do {
go_back_to_menu();
scanf("%d", &menu);
switch (menu) {
case 1:
menu1();
break;
case 2:
menu2();
break;
case 3:
menu3();
break;
case 4:
menu4();
break;
default:
break;
}
} while (menu != 5);
return 0;
}
void go_back_to_menu() {
system("cls");
printf("COSE101 Grade Management System\n");
printf("=================================\n");
printf("1. View Registered Student\n");
printf("2. Add Student\n");
printf("3. Class Report\n");
printf("4. View Final Grade\n");
printf("5. Exit\n");
printf("\n\n");
printf("=================================\n");
printf("Select Menu : ");
}
void menu1() {
int back_check, i;
do {
system("cls");
printf("---------------------------------\n");
printf(" Registered Student \n");
printf("=================================\n");
if (!Grade[0].student_id)
printf("There are no registed students\n");
for (i = 0; Grade[i].student_id; i++)
printf("%d %s\n", Grade[i].student_id, Grade[i].name);
printf("=================================\n");
printf("Enter 1 to Go Back : ");
scanf("%d", &back_check);
} while (back_check != 1);
}
void menu2() {
system("cls");
printf("---------------------------------\n");
printf("Student Name : ");
scanf("%s", &Grade[index].name);
printf("Student ID : ");
scanf("%d", &Grade[index].student_id);
printf("Attendence (0 ~ 10) : ");
scanf("%d", &Grade[index].attendence);
printf("Assignment (0 ~ 10) : ");
scanf("%d", &Grade[index].assignment);
printf("Midterm exam (0 ~ 30) : ");
scanf("%d", &Grade[index].midterm_exam);
printf("Final exam (0~30) : ");
scanf("%d", &Grade[index].final_exam);
printf("Term Project (0~20) : ");
scanf("%d", &Grade[index].term_project);
//*Grade[index].total_score = *Grade[index].attendence + *Grade[index].assignment + *Grade[index].midterm_exam + *Grade[index].final_exam + *Grade[index].term_project;
index++;
}
void menu3() {
int back_check, i;
do {
system("cls");
printf(" Class report \n");
printf("=====================================\n");
printf("Field Average | Median \n");
printf("Attendance : %8d | %8d\n", Average(1), Median(1));
printf("Assignment : %8d | %8d\n", Average(2), Median(2));
printf("Midterm : %8d | %8d\n", Average(3), Median(3));
printf("Final : %8d | %8d\n", Average(4), Median(4));
printf("Term Project: %8d | %8d\n", Average(5), Median(5));
printf("Total : %8d | %8d\n", Average(1)+ Average(2) + Average(3) + Average(4) + Average(5), Median(1)+ Median(2) + Median(3) + Median(4) + Median(5));
printf("=====================================\n");
printf("Enter 1 to Go Back : ");
scanf("%d", &back_check);
} while (back_check != 1);
}
void menu4() {
int total[100];
int back_check;
for (int i = 0; Grade[i].student_id; i++) {
total[i] = Grade[i].attendence + Grade[i].assignment + Grade[i].midterm_exam + Grade[i].final_exam + Grade[i].term_project;
}
do {
system("cls");
printf("========================================\n");
printf(" Final Grade\n");
printf("========================================\n");
printf("Student ID Total Score Grade\n");
for (int j = 0; j < Grade[j].student_id; j++) {
if (total[j] >= 90) {
printf("%8s %8d A\n", Grade[j].name, total[j]);
}
if (80 <= total[j] && total[j] < 90) {
printf("%8s %8d B\n", Grade[j].name, total[j]);
}
if (70 <= total[j] && total[j] < 80) {
printf("%8s %8d C\n", Grade[j].name, total[j]);
}
if (total[j] < 70) {
printf("%8s %8d D\n", Grade[j].name, total[j]);
}
}
printf("Enter 1 to Go Back : ");
scanf("%d", &back_check);
} while (back_check != 1);
}
int Average(int a) {
int i, sum = 0;
switch (a) {
case 1:
for (i = 0; Grade[i].student_id; i++) {
sum += Grade[i].attendence;
}
return sum / i;
case 2:
for (i = 0; Grade[i].student_id; i++) {
sum += Grade[i].assignment;
}
return sum / i;
case 3:
for (i = 0; Grade[i].student_id; i++) {
sum += Grade[i].midterm_exam;
}
return sum / i;
case 4:
for (i = 0; Grade[i].student_id; i++) {
sum += Grade[i].final_exam;
}
return sum / i;
case 5:
for (i = 0; Grade[i].student_id; i++) {
sum += Grade[i].term_project;
}
return sum / i;
}
return sum / i;
}
int Median(int a) {
int temp;
int i;
char str[30];
switch (a) {
case 1:
for (i = 0; Grade[i].student_id; i++) {
str[i] = Grade[i].attendence;
}
for (i = 0; Grade[i].student_id; i++) {
if (str[i] < str[i - 1]) {
temp = str[i];
str[i] = str[i - 1];
str[i - 1] = temp;
}
}
return str[i / 2];
case 2:
for (i = 0; Grade[i].student_id; i++) {
str[i] = Grade[i].assignment;
}
for (i = 0; Grade[i].student_id; i++) {
if (str[i] < str[i - 1]) {
temp = str[i];
str[i] = str[i - 1];
str[i - 1] = temp;
}
}
return str[i / 2];
case 3:
for (i = 0; Grade[i].student_id; i++) {
str[i] = Grade[i].midterm_exam;
}
for (i = 0; Grade[i].student_id; i++) {
if (str[i] < str[i - 1]) {
temp = str[i];
str[i] = str[i - 1];
str[i - 1] = temp;
}
}
return str[i / 2];
case 4:
for (i = 0; Grade[i].student_id; i++) {
str[i] = Grade[i].final_exam;
}
for (i = 0; Grade[i].student_id; i++) {
if (str[i] < str[i - 1]) {
temp = str[i];
str[i] = str[i - 1];
str[i - 1] = temp;
}
}
return str[i / 2];
case 5:
for (i = 0; Grade[i].student_id; i++) {
str[i] = Grade[i].term_project;
}
for (i = 0; Grade[i].student_id; i++) {
if (str[i] < str[i - 1]) {
temp = str[i];
str[i] = str[i - 1];
str[i - 1] = temp;
}
}
return str[i / 2];
}
}
'CS Study > Projects' 카테고리의 다른 글
Project 6 : 마우스 클릭 연습 (0) | 2022.04.08 |
---|---|
Project5 : Gambling game (0) | 2022.04.08 |
Project 4 : Bill Calculator (0) | 2022.04.06 |
Project 3 : 뿌요뿌요 게임 (0) | 2022.04.06 |
Project 2 : 직원 등록 시스템 (0) | 2022.04.06 |