Hisworld.tistory.com
The hisWorld
(140)
hisworld_new
(0)
hisOld
(138)
Android
(7)
Computer Vision
(18)
JAVA
(4)
C/C++
(26)
열혈강의 C
(32)
TCP/IP socket
(12)
WinAPI
(16)
System Programming
(0)
etc
(23)
Plan
(0)
hisWorld
(0)
hiStory
(0)
hiStudy
(0)
hiSnap
(0)
홈
태그
미디어로그
위치로그
방명록
Windows Live Messenger
winapi
Join C
대학생 공모전
The Turing test page
훈스닷넷
C/C++ Reference
WIKI
/
/
블로그 내 검색
쓰레기 code
URUZ-7
2008. 4. 12. 04:07
2008. 4. 12. 04:07
//func.c #include "std.h" //초기화 함수 void fnInit() { fprnSlogo(); //시작 로고 출력 fnDataInit(); //데이터 초기화 } //데이터 초기화 함수 void fnDataInit() { int i; FILE *fp; //학생 정보 파일을 만드려면 != NULL로 변경하여 입력 if( (fp=fopen("data.txt","rb")) == NULL) { fprnLoadF(); fInpData(); } else { fprnLoading(); fread(&cnt,sizeof(int),1,fp); for(i=0; i<cnt; i++) { person[i] = (STU*)malloc(sizeof(STU)); fread(person[i],sizeof(STU),1,fp); } fprnLoad(); } } //데이터 입력 void fInpData() { int i=0; char name[20] = "0"; char input; int status=-1; while(1) { fflush(stdin); system("cls"); printf("학생 정보를 입력 하세요.\n"); printf("------------------------\n"); person[i]=(STU*)malloc(sizeof(STU)); printf("이 름 : "); gets(name); //이름은 빈칸이 될 수 없다. if(name[0]==0) { fprnEInput(); continue; } else strcpy(person[i]->name,name); printf("학 번 : "); scanf("%d",&person[i]->number); printf("입력된 학번->%d i->%d\n",person[i]->number,i); //학번은 유일해야 함으로 중복을 배제 if(i>0) if( (status=fnChkNum(person[i]->number,i)) !=-1) { fprnSame(); continue; } printf("나 이 : "); scanf("%d",&person[i]->age); printf("\n\n"); LoSub(i); //수강신청 while(1) { system("cls"); printf("%d명 추가 입력 가능\n",DATA_MAX-i-1); printf("\n[1] 추가 입력, [2] 입력 종료 : "); input = getch(); if(input == '1') { i++; break; } else if(input == '2') { cnt=i+1; return; } else fprnEInput(); } if(i >= DATA_MAX-1) //최대 입력 인원수 DATA_MAX 초과시 입력 모드 종료 { fprnFull(); return; } } } //학번 중복 검사 int fnChkNum(int hak, int n) { int j; for(j=0 ; j<n; j++) { if(person[j]->number == hak) { return j; //학번 일치 하는 인덱스 리턴 } else continue; } return -1; //일치 값 없으면 인덱스 값이 될 수 없는 값 리턴 } //프로그램 실행 void fnRun() { char input; do { fprnMenu(); input = getch(); fflush(stdin); }while(fnMenu(input) != -1); //메뉴분기 함수, 리턴값 -1 종료 } //메뉴 분기 함수 int fnMenu(int input) { switch(input) { case '1' : LoSubMo(); break; //수강신청 수정 (학번으로 검색) case '2' : LoDataVu(); break; //개인정보 보기 (이름으로 검색) case '3' : LoAllPrn(); break; case '4' : return -1; break; //종료 조건 default : fprnEInput(); //잘못된 입력 } return 1; //비종료 조건 } //프로그램 종료 void fnExit() { fnDatSave(); //데이터 저장 fprnElogo(); //종료 로고 출력 } //DATA 저장, 메모리 할당 해제 void fnDatSave() { int i; FILE *fp; if( (fp=fopen("data.txt","wb")) == NULL) { fprnLoadF(); } else { fwrite(&cnt,sizeof(int),1,fp); for(i=0; i<cnt; i++) { fwrite(person[i],sizeof(STU),1,fp); free(person[i]); person[i] = NULL; } fprnSave(); } }
추가 필요사항 : 각 입력 DATA 길이에 제한을 둘 것.
공유하기
게시글 관리
구독하기
Hisworld.tistory.com
+ Recent posts
Powered by
Tistory
, Designed by
wallel
Rss Feed
and
Twitter
,
Facebook
,
Youtube
,
Google+
티스토리툴바