본문 바로가기

CS Study/Projects

Project 1 : 성적 관리 시스템

학생 성적 관리 시스템

#첫 화면

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