본문/내용
□ 개 요
순차파일을 설계하여 그 파일의 삽입, 갱신, 저장의 기능을 구현하고 출력 파일을 생성할 것
□ 설 계
○ 구조체 설계 : entry directory[30]으로 선언
? 학 번(char num[4])
? 이 름(char name[10])
? 주 소(char address[40])
○ 사용자 정의 함수
? find : 입력값의 존재여부를 판단하여 존재시 1 리턴
? add : find함수로 존재여부 판단 후 학번, 이름, 주소값을 입력
? delete_data : 해당 데이터를 찾고, i번째 데이터에 i+1번째
데이터를 덮어쓰면서 lenth-- 해준다
? modify : 학번을 비교한 후 index번째의 이름과 주소를 수정
? show : 등록된 모든 사람들의 정보 출력
? getNum : 학번이름 입력함수
? getName : 이름 입력함수
? getAddress : 주소 입력함수
? putName : find함수로부터 리턴값을 받아와 학생의 존재
여부를 판별
? WriteData : WB모드로 파일을 레코드 단위로 저장
○ 메인함수
? 전체적으로 do_while문 내에 Switch문을 사용하여 검색,
등록, 삭제, 수정, 출력, 종료의 메뉴로 화면 구성
□ 소 스
#include
#include
#define nameLength 10
#define addressLength 40
#define listLength 30
#define numLength 4
//구조체 선언
typedef struct {
ch…
mLength], entry *directory, int *length) {
int index = 0, i;
while (index < *length && strcmp(directory[index].num, num) != 0)
index++;
if (index < *length) {
for (i = index; i < (*length-1); i++) {
strcpy(directory[i].num, directory[i+1].num);
strcpy(directory[i].name, directory[i+1].name);
strcpy(directory[i].address, directory[i+1].address);
}
(*length)--;
printf("\n자료가 삭제 되었습니다.");
}
else
printf("\n등록되지 않은 사용자입니다. [%s]", num);
}
// 입력받은 이름의 정보를 변경한다.
void modify(char num[numLength], char name[nameLength],char address[addressLength], entry *directory, int *length) {
int index = 0;
while (index < *length && strcmp(directory[index].num, num) != 0)
index++;
if (index < *length) {
printf("\n%s학생의 이름이 %s로 변경 되었습니다.", num, name);
strcpy(directory[index].name, name);
printf("\n%s학생의 주소가 %s로 변경