컴퓨터/C
본문에서는 지금껏 배운 C언의 기초적인 지식을 가지고 응용을 해 간단한 결과를 만들어보도록 하겠습니다.
C언어를 공부하면 다양한 교제에서 학생관리, 성적관리 등으로 비슷한 형태의 예제가 나오는데 배운 것들을 응용해서 소스코드를 만들어 보도록 하겠습니다. 기존에 배웠던 개념들을 정리하면서 익숙해지도록 한번 해보겠습니다.
본문에서 요구하는 최소한의 요구사항에 대한 문제를 먼저 제시하도록 하겠습니다.
위 제시한 문제를 하나의 구조체와 main함수에 만들어 보도록 합시다.
콘솔 창을 제어를 하지 않아 약간 지저분한 면은 있지만, 기능적으로 정상 작동은 하고 있습니다.
한번 본인들의 아이디어로 만들고 소스코드를 비교해 보세요.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//학생 구조체의 정의
typedef struct _Student
{
char name[20];
int Kor;
int Eng;
int Math;
float Avg; // 평균을 위한 실수 처리
}Student;
int main()
{
Student student[30]; // _Student 자료형 배열 선언
int count = 0; // 등록된 학생의 수를 파악하기 위해 count 변수 선언 및 초기화
//화면의 구조 만들기
while (1) // 종료전까지 계속해서 반복을 하기 위한 반복문 선억
{
//메인 화면 출력하기
printf("===== 학생 성적 관리 프로그램 =====\n");
printf("1. 학생 정보 입력하기 \t 2. 학생 정보 출력하기 \t 3. 프로그램 종료하기 \n");
printf("원하는 메뉴를 입력하세요 : ");
// 메뉴 번호를 제어할 입력변수 선언 및 입력
int input;
scanf("%d", &input);
printf("\n\n");
if (input == 1) // 1입력시 : 학생 정보 입력
{
//만약 학생 수가 이미 꽉찾다면
if (count == 30)
{
printf("이미 30명의 학생의 정보를 모두 추가 했습니다.\n");
printf("더 이상 추가 할 수 없습니다.\n\n");
}
else
{
//기본 정보 입력
printf("===== 학생 정보 입력하기 [%d / 30] =====\n", count + 1);
printf("이름 : ");
scanf("%s", &student[count].name);
printf("국어 : ");
scanf("%d", &student[count].Kor);
printf("영어 : ");
scanf("%d", &student[count].Eng);
printf("수학 : ");
scanf("%d", &student[count].Math);
// 평균값 계산을 위해서는 소수점 아래까지 계산하기 위해 flaot로 형변환
student[count].Avg = (float)(student[count].Kor + student[count].Eng + student[count].Math) / 3.0f;
// 학생의 수 증가 시키기
count++;
}
}
else if (input == 2) // 2입력시 : 학생 정보 출력
{
printf("===== 학생 정보 출력하기 =====\n");
for (int i = 0; i < count ; i++) // count의 수만큼 반복해서 정보들 출력하기
{
printf("학생 [%d/30]\n", i + 1);
printf("이름 : %s \t 국어 : %d \t 영어 : %d \t 수학 : %d \t [평균 점수 : %f] \n\n",
student[i].name,student[i].Kor,student[i].Eng,student[i].Math,student[i].Avg); // 이런식으로 ; 없다면 줄을 내려서 정리 가능
}
}
else if (input == 3) // 3입력시 : 프로그램 종료
{
printf("프로그램을 종료합니다.\n");
break; // 반복문의 탈출
}
else // 그 이외의 숫자 입력시 잘못된 입력입니다 출력 후 초기화면 진입하기
{
printf("잘못된 메뉴를 선택 했습니다. 다시 입력해 주세요\n\n");
}
}
return 0;
}
C언어 문법의 기본적인 요소들을 통해서 간단한 실습 예제를 해봤습니다. 이제 이 예제를 통해서 다양한 C언어의 기능들을 추가해서 살을 붙이고 업그레이드를 차근차근해보도록 하겠습니다.
C 언어 - 실습 - 학생관리 프로그램Ver2(함수화) (0) | 2021.07.13 |
---|---|
C 언어 - 디버깅해보기 (0) | 2021.07.12 |
C 언어 - void 키워드 (0) | 2021.07.10 |
C 언어 - 문자열을 숫자로 atoi / atol / atoll / atof (0) | 2021.07.08 |
C 언어 - 동적 메모리 할당 - malloc 함수 (0) | 2021.07.06 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet