[C언어] 학생관리
Main.h
//************************************************************************* //include //************************************************************************* #include <stdio.h> #include <string.h> #include <stdlib.h> #include <malloc.h> //************************************************************************* //struct //************************************************************************* typedef struct student { int Snum; char *Major; char Sname[20]; }STUDENT;
#define SIZE 100
void AppRun();//메인 루프 void display();//메인 보기 //fnc void insert(STUDENT **); void del(STUDENT **); void Find(STUDENT **); void Print(STUDENT **); |
2.c
#include "main.h"
void AppRun() { int key; STUDENT * SList[SIZE]={NULL}; while(1) { display(); printf("input : "); scanf("%d", &key);
switch(key) { case 1:insert(SList);break; case 2:del(SList);break; case 3:Find(SList);break; case 4:Print(SList);break; case 0:exit(0);break;
} }
} void insert(STUDENT **SList) { char temp_Buf[100]; int i;
for(i=0;i<SIZE; i++) { if(SList[i] == NULL) { SList[i]=(STUDENT*)malloc(sizeof(STUDENT)); printf("학번을 입력하세요:"); scanf("%d", &SList[i]->Snum); fflush(stdin); printf("이름을 선택하세요:"); gets(SList[i]->Sname);
printf("전공을 선택하세요:"); gets(temp_Buf);
SList[i]->Major=(char*)malloc(sizeof(char)*strlen(temp_Buf)+1); strcpy(SList[i]->Major,temp_Buf);
return ; }
}
} void del(STUDENT **SList) { int i,key; char name[20]; //전체 삭제
printf("1. 전체 삭제 2. 부분삭제 :"); scanf("%d", &key);
if(key==1) {
for(i=0; i<SIZE; i++) { if(SList[i] !=NULL) { free(SList[i]->Major);//마지막 부분을 지우는 코드 free(SList[i]); SList[i]=NULL; } } } else {
//부분 삭제 printf("이름을 입력하세요:"); scanf("%s", name);
for(i=0; i<SIZE; i++) { if(SList[i] !=NULL && (strcmp(SList[i]->Sname, name)==0)) { free(SList[i]->Major);//마지막 부분을 지우는 코드 free(SList[i]); SList[i]=NULL; } } }
} void Find(STUDENT **SList) { int i; char name[20];
printf("이름을 입력하세요:"); scanf("%s", name);
for(i=0; i<SIZE; i++) { if(SList[i] !=NULL && (strcmp(SList[i]->Sname, name)==0)) { printf("%d %s %s \n",SList[i]->Snum,SList[i]->Major,SList[i]->Sname); }
} } void Print(STUDENT **SList) { int i; puts("----------------------"); for(i=0; i<SIZE; i++) { if(SList[i] !=NULL) { printf("%d %s %s \n",SList[i]->Snum,SList[i]->Major,SList[i]->Sname); }
}
}
void display(STUDENT **SList) { puts("--Menu---"); puts("1. 입력"); puts("2. 삭제"); puts("3. 검색"); puts("4. 출력"); puts("0. 종료"); } 1.c
|
'프로그래밍 > Language C' 카테고리의 다른 글
변수 표기법(헝가리안, 파스칼, 낙타, 언더바) (0) | 2013.08.09 |
---|---|
[C언어] String 함수 구현(cmp, len, cpy, rev) (0) | 2011.11.15 |
[C언어] 변수 표기법 정리 PPT (0) | 2011.11.15 |
[C언어] 계산기 프로젝트(공학용 계산기 C로 구현 최대한) (31) | 2011.11.15 |
[C언어] 영화관 연습 by Hwang (4) | 2011.11.15 |
댓글
이 글 공유하기
다른 글
-
변수 표기법(헝가리안, 파스칼, 낙타, 언더바)
변수 표기법(헝가리안, 파스칼, 낙타, 언더바)
2013.08.09 -
[C언어] String 함수 구현(cmp, len, cpy, rev)
[C언어] String 함수 구현(cmp, len, cpy, rev)
2011.11.15 -
[C언어] 변수 표기법 정리 PPT
[C언어] 변수 표기법 정리 PPT
2011.11.15 -
[C언어] 계산기 프로젝트(공학용 계산기 C로 구현 최대한)
[C언어] 계산기 프로젝트(공학용 계산기 C로 구현 최대한)
2011.11.15