[C언어 소스] 10 명의 국어 성적을 관리하는 프로그램
#include <stdio.h>
#pragma warning(disable:4996)
#define MAX_STUDENT 10
int scores[MAX_STUDENT];
void Init();//초기화
void Run(); //사용자와 상호 작용
char SelectMenu(); //메뉴 선택
void InputScore(); //성적 추가
void DeleteScore();//성적 삭제
void SearchScore();//성적 조회
void ListScore(); //전체 성적 보기
void ViewScore(int num);//특정 학생 성적 보기
int main()
{
Init();
Run();
return 0;
}
void Init()
{
int i = 0;
for (i = 0; i<MAX_STUDENT; i++)
{
scores[i] = -1;
}
}
void Run()
{
char key = 0;
while ((key = SelectMenu()) != 'e')
{
switch (key)
{
case 'i': InputScore(); break;
case 'd': DeleteScore(); break;
case 's': SearchScore(); break;
case 'l': ListScore(); break;
default: printf("잘못 선택하였습니다.\n"); break;
}
}
}
char SelectMenu()
{
char key[256] = "";
printf("[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기\n");
scanf("%s", key);
return key[0];
}
void InputScore()
{
int num = 0;
printf("성적을 추가할 학생 번호를 입력:");
scanf("%d", &num);
if ((num >= 1) && (num <= MAX_STUDENT))
{
int score = 0;
printf("성적:");
scanf("%d", &score);
scores[num - 1] = score;
}
else
{
printf("유효하지 않은 번호입니다.\n");
}
}
void DeleteScore()
{
int num = 0;
printf("성적을 삭제할 학생 번호를 입력:");
scanf("%d", &num);
if ((num >= 1) && (num <= MAX_STUDENT))
{
scores[num - 1] = -1;
}
else
{
printf("유효하지 않은 번호입니다.\n");
}
}
void SearchScore()
{
int num = 0;
printf("성적을 조회할 학생 번호를 입력:");
scanf("%d", &num);
if ((num >= 1) && (num <= MAX_STUDENT))
{
ViewScore(num);
}
else
{
printf("유효하지 않은 번호입니다.\n");
}
}
void ListScore()
{
int index = 0;
for (index = 0; index < MAX_STUDENT; index++)
{
ViewScore(index + 1);
}
}
void ViewScore(int num)
{
if (scores[num - 1] != -1)
{
printf("[%d 번]:[성적: %d]\n", num, scores[num - 1]);
}
else
{
printf("[%d 번]:[성적: 입력하지 않음]\n", num);
}
}
실행 결과
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
i
성적을 추가할 학생 번호를 입력:5
성적:90
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
i
성적을 추가할 학생 번호를 입력:3
성적:80
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
l
[1 번]:[성적: 입력하지 않음]
[2 번]:[성적: 입력하지 않음]
[3 번]:[성적: 80]
[4 번]:[성적: 입력하지 않음]
[5 번]:[성적: 90]
[6 번]:[성적: 입력하지 않음]
[7 번]:[성적: 입력하지 않음]
[8 번]:[성적: 입력하지 않음]
[9 번]:[성적: 입력하지 않음]
[10 번]:[성적: 입력하지 않음]
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
s
성적을 조회할 학생 번호를 입력:3
[3 번]:[성적: 80]
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
d
성적을 삭제할 학생 번호를 입력:3
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
l
[1 번]:[성적: 입력하지 않음]
[2 번]:[성적: 입력하지 않음]
[3 번]:[성적: 입력하지 않음]
[4 번]:[성적: 입력하지 않음]
[5 번]:[성적: 90]
[6 번]:[성적: 입력하지 않음]
[7 번]:[성적: 입력하지 않음]
[8 번]:[성적: 입력하지 않음]
[9 번]:[성적: 입력하지 않음]
[10 번]:[성적: 입력하지 않음]
[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기
e
본문
'C언어 > 디딤돌 C언어 예제' 카테고리의 다른 글
[C언어 소스] 정적변수와 지역변수를 비교하는 예 (0) | 2016.11.28 |
---|---|
[C언어 소스] 지역변수의 값을 전달하여 구조적으로 작성한 예 (0) | 2016.11.28 |
[C언어 소스] 두 수를 바꾸는 함수 (0) | 2016.11.27 |
[C언어 소스] 특정 범위 내의 정수 합계를 구하는 함수 (0) | 2016.11.27 |
[C언어 소스] 함수 선언문, 정의문, 호출문 (0) | 2016.11.27 |