파일구조[난수생성, 정렬부분] - 순차파일을 설계하여 그 파일의 삽입, 갱신, 저장의 기능을 구현하고 출력 파일을 생성할 것
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

□ 개 요

□ 설 계
 ○ 구조체 설계 : entry directory[30]으로 선언
 ○ 사용자 정의 함수
 ○ 메인함수

□ 소 스
 //구조체 선언
 //전역변수로 선언
 // 입력받은 이름의 존재 여부를 찾아 0과 1을 Return 해 준다.
 // 새로운 자료를 Directory에 등록한다.
 // 입력받은 이름의 자료를 삭제한다
 // 입력받은 이름의 정보를 변경한다.
 // Directory에 등록된 모든 사람들의 정보를 보여준다.
 // 학번을 입력 받는다.
 // 이름을 입력 받는다.
 // 주소를 입력 받는다.
 // 학생정보의 존재여부를 출력한다.
 // wb모드로 파일을 저장한다
 //do-while문으로 sel-menu가 0이 아니라면 수행

□ 출력결과
 ○ 등 록(프로그램)
 ○ 등 록(출력파일)
 ○ 검 색
 ○ 수 정
 ○ 삭 제

□ 소 감

본문내용

"\n%s학생의 이름이 %s로 변경 되었습니다.", num, name);
strcpy(directory[index].name, name);
printf("\n%s학생의 주소가 %s로 변경 되었습니다.", num, address);
strcpy(directory[index].address, address);
} else
printf("\n등록되지 않은 사용자입니다. [%s]", name);
}
// Directory에 등록된 모든 사람들의 정보를 보여준다.
void show(entry *directory, int *length) {
int i;
if (length == 0)
printf("\n등록된 데이타가 없습니다.");
else
for (i = 0; i < *length; i++)
printf("\n Directory[%d]. %s %s %s", i, directory[i].num, directory[i].name, directory[i].address);
}
// 학번을 입력 받는다.
void getNum() {
printf("\n학번을 입력 하십시오. : ");
scanf("%s", num);
}
// 이름을 입력 받는다.
void getName() {
printf("\n이름을 입력 하십시오. : ");
scanf("%s", &name);
}
// 주소를 입력 받는다.
void getAddress() {
printf("\n주소를 입력 하십시오. : ");
scanf("%s", &address);
}
// 학생정보의 존재여부를 출력한다.
void putName(int number) {
if (number == 0)
printf("\n등록되지 않은 사용자입니다.");
else
printf("\n \"%s\" 학생의 자료가 있습니다", num);
}
// wb모드로 파일을 저장한다
void WriteData()
{
FILE *fp;
fp = fopen("data.txt","wb");
if (fp == NULL) {
puts("파일을 생성할 수 없습니다.");
} else {
fwrite(directory,sizeof(entry),listLength,fp);
fclose(fp);
puts("\n\n파일을 저장했습니다.");
}
}
void main() {
int sel_menu;
//do-while문으로 sel-menu가 0이 아니라면 수행
length = 0;
do {
printf("\n 1.찾기 2.등록 3.삭제 4.수정 5.출력 0.종료");
printf("\n 번호를 선택하세요 .... : ");
scanf("%d", &sel_menu);
switch (sel_menu)
{
case 1 : // 자료 찾기
getNum();
putName(find(num, directory, length));
break;
case 2 : // 자료 추가
getNum();
getName();
getAddress();
add(num, name, address, directory, &length);
WriteData();
break;
case 3 : // 자료 삭제
getNum();
delete_data(num, directory, &length);
break;
case 4 : // 자료 수정
getNum();
getName();
getAddress();
modify(num, name, address, directory, &length);
break;
case 5 : // 모든 자료 보기
show(directory, &length);
break;
case 0 : // 프로그램 종료
printf("Good bye!");
break;
default :
printf("번호를 잘못 선택하였습니다.\n");
sel_menu = -1;
}
} while (sel_menu != 0);
}
□ 출력결과
○ 등 록(프로그램)
○ 등 록(출력파일)
○ 검 색
○ 수 정
○ 삭 제
□ 소 감
파일구조를 배운지 어느덧 2개월이 지났습니다. 저는 데이터 정보학과 학생으로 소프트웨어 공학을 부전공으로 신청하여 수업을 듣고 있습니다. 파일구조의 선행과목이라는 데이터 구조라는 수업을 듣지 못해서 많이 해메었던 것 같습니다. 이번 과제를 통해 저의 부족한 점을 다시 한번 되돌아 볼 수 있었고, 파일을 다루는 것 조차 못했었던 몇일 전의 저를 생각해 보면서 순차파일의 갱신, 삽입, 삭제를 트랜잭션 파일을 이용하여 완성하는 과제를 시일이 걸릴거라 예상되지만 완성하는대로 다시 교수님께 메일로라도 제출하겠습니다.
  • 가격2,300
  • 페이지수9페이지
  • 등록일2012.04.15
  • 저작시기2012.3
  • 파일형식한글(hwp)
  • 자료번호#740061
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니