파일 목록
- 1-Time1-.c
- 1-로또 프로그램 만들기.c
- 1-성적 평균 계산.c
- 1-소스.c
- 1-예제1.c
- 10-1.c
- 10-2.c
- 10-3.c
- 10-4.c
- 10-5.c
- 10-6.c
- 11-1.c
- 11-2.c
- 11-3.c
- 11-4.c
- 11-5.c
- 11-6.c
- 11-make.c
- 12-1-1.c
- 12-1-2.c
- 12-1-3.c
- 12-1-4.c
- 12-2-1.c
- 12-2-2.cpp
- 12-2-3.c
- 12-2-4.c
- 12-2-5.c
- 13-1.c
- 13-2.c
- 13-3.c
- 13-4.c
- 13-5.c
- 13-6.c
- 13-make.c
- 14-1-main.c
- 14-1-power.c
- 14-1-power.h
- 14-2-rect.c
- 14-2-rect.h
- 14-2-rect_main.c
- 14-2-소스.c
- 14-2-소스1.c
- 14-main.c
- 14-reserv.c
- 14-reserv.h
- 2-DICE.c
- 2-minimum.c
- 3-TIC_TAC_TOE.c
- 4-1.c
- 4-2.c
- 4-3.c
- 4-Point.c
- 4-주소.c
- 5-1.cpp
- 5-2.c
- 5-3.c
- 5-4.c
- 5-5.c
- 5-6.c
- 5-7.c
- 6-1.c
- 6-2.c
- 6-3.c
- 6-4.c
- 6-5.c
- 6-6.c
- 6-7.c
- 6-8.c
- 6-make.c
- 7-1.c
- 7-10.c
- 7-11.c
- 7-12.c
- 7-2.c
- 7-3.c
- 7-4.c
- 7-5.c
- 7-6.c
- 7-7.c
- 7-8.c
- 7-9.c
- 7-make.c
- 8.c
- 9.c
- sil1.c
- sil2.c
- sil3.c
- Title.png
- 성적받아오기).c
/*****************************************************************
* 8 정리
********************************************************************/
#define _CRT_SECURE_NO_WARNINGS // scanf오류 제거를 위한 코드
#include<stdio.h> // 표준 입출력장치 사용을 위한 헤더파일 로드
#include <string.h> // 문자열 비교를 위한 함수 라이브러리 추가
#define SIZE 100 // 입력받을 인원수를 설정
typedef struct client { // 고객정보 구조체 생성
char ClCode[20]; // 고객 코드
char ClName[20]; // 고객 이름
char ClAdress[50]; // 고객 주소
char ClBlance[20]; // 고객 잔액
}Client; // 고객정보유형 생성
void add_client(Client a[]); // 리스트에 클라이언트 인원을 추가하는 함수
void check_client(Client a[]); // 리스트에 해당 클라이언트가 있는지 확인하는 함수
void variance(Client a[]); // 리스트에 해당하는 클라이언트의 잔액을 변경해주는 함수
int clientNum = 0; // 전역 변수 : 고객 총원 관리용 (클라이언트 늘을때마다 1 증가)
int main()
{
Client (*pf)(Client); // 클라이언트형이 들어가는 함수 포인터 생성
pf = NULL; // pf함수 초기화
int keynum = 1; // while = 1 과 같이 무한 반복을 위한 키로 이용할 숫자
struct client list[SIZE]; // 인원 100명의 고객 배열 실행
Client *cl; // client list와 동기화할 항목 생성
cl = list; // client list와 cl 동기화?
int code = 0; // 이용 항목 적용 코드값
printf("=============================");
while (keynum == 1) // While 1보다 있어보아서 해놓았음/ 이용할 서비스 선택
{
printf("\n이용할 항목을 입력하세요.\n");
printf("1: \"이용 고객 정보 등록\"\n2: \"고객 정보 조회\"\n3: \"잔액 변경\"\n0: \"종료\"\n\n");
scanf("%d", &code); // 이용 항목 선택하기
if (code == 1) // 1번을 고른 경우 클라이언트 인원 추가 함수 실행
pf = add_client;
else if (code == 2) // 2번을 고른 경우 클라이언트 정보 검색 함수 실행
pf = check_client;
else if (code == 3) // 3번을 고른 경우 클라이언트 잔액 변경 함수 실행
pf = variance;
else if (code == 0) // 0번을 고른 경우 알림과 정상 종료
{
printf("프로그램을 종료합니다.");
return 0;
}
pf(*cl); // 선택된 1~3코드에 해당하는 함수 실행
}
}
void add_client(Client cl[SIZE]) // 클라이언트 인원 추가 함수
{
int keyNum = 1; // main 함수와 동일 / 이게 더 있어보여서....
printf("\n"); // 미관을 위해 한 줄 띄어쓰기
while (keyNum == 1)
{
if (clientNum >= SIZE - 1) // 전역변수 clientNum이 100명 꽌찬경우 자동으로 실행하지 않고 뒤로가기
{
printf("등록 가능한 고객 수를 넘겼습니다.\n 처음 화면으로 돌아갑니다.");
keyNum = 0;
break;
}
printf("\n이름을 입력해주세요.\n \"getout\" 입력하고 엔터키를 누르시면 처음 화면으로 돌아갑니다.\n");
scanf("%s", cl[clientNum].ClName);
if (strcmp(cl[clientNum].ClName, "getout") == 0) // getout 이라 입력한 경우 초기 화면으로 돌아감
{
keyNum = 0;
break;
}
printf("고객 번호를 입력해주세요 : \n"); // 고객 번호 입력 및 저장
scanf("%s", cl[clientNum].ClCode);
printf("해당 고객의 주소를 입력하세요 : \n"); // 고객 주소 입력 및 저장 (해당 컴에서 gets 함수사 사용 불가능 상황)
scanf("%s", cl[clientNum].ClAdress);
printf("해당 고객의 잔액을 입력하세요 : \n"); // 고객 잔액 입력 및 저장
scanf("%s", cl[clientNum].ClBlance);
clientNum++; // 전역변수 clientNum 1증가
}
return; // 함수 종료
}
void check_client(Client cl[SIZE]) // 클라이언트 정보 검색 함수
{
int i = 0; // for문용 i변수 초기화
char name[20] = {0}; // 이름 확인 비교용 name 배열 생성
printf("찾으실 고객의 이름을 말씀해주세요\n"); // 고객 이름 입력
scanf("%s", name);
for (i = 0; i < SIZE; i++) // 해당 이름과 동일한 이름을 찾으면 해당 고객 정보를 출력하는 문장
if (strcmp(cl[i].ClName, name) == 0)
printf("\n%s 고객님의 정보입니다.\n고객 번호 : %s\n고객 주소 : %s\n잔액 : %s\n\n",cl[i].ClName, cl[i].ClCode, cl[i].ClAdress, cl[i].ClBlance);
else
{
// 아니면 뭔가를 추가하려다가 말았음
}
printf("");
return; // 함수 종료
}
void variance(Client cl[SIZE]) // 클라이언트 잔역 변경 함수
{
int i = 0; // 찾기 for문용 i변수 0으로 초기화
char clNum[20] = { 0 }; // 고객 대조용으로 고객 번호 입력할 변수 초기화
printf("바꿀 고객님의 고객 번호를 입력해주세요.\n");
scanf("%s", clNum);
for (i = 0; i < SIZE; i++) // 고객이 일치하면 바뀐 금액을 입력받아 저장하고 보여주는 for문
if (cl[i].ClCode == clNum)
{
printf("%s고객님의 현재 잔액은 %s원 입니다.\n변동 후 잔액을 입력해주세요.\n", cl[i].ClName, cl[i].ClBlance);
scanf("%s", cl[i].ClBlance);
printf("%s고객님의 변동 후 잔액은 %s원 입니다.\n", cl[i].ClName, cl[i].ClBlance);
return; // 정보를 보여준 후 처음으로 돌아가기
}
printf("찾으시는 고객 정보가 없습니다."); // 없는경우 결과값
return;
}