연결 리스트를 이용하여 주소록을 만드는 프로그램
Posted 2007/11/13 20:29, Filed under: programming/C++문제8
연결 리스트(linked list)를 이용하여 주소록을 만드는 프로그램을 작성하시오. 주소록 파일은 학번, 이름, 주민번호, 주소, 휴대폰번호, 집전화번호로 구성되어 있다.
#include <stdio.h>
#include <malloc.h>
struct addr_list
{ char st_no[10];
char name[12];
char id_no[14];
char addr[30];
char hp[12];
char home_ph[12];
struct addr_list *next;
};
int count(struct addr_list* cur)
{ if (cur == NULL) return 0;
else return (1 + count(cur -> next));
}
void print_list(struct addr_list* cur)
{ while(1)
{ printf("\n학번 %s\n", cur->st_no);
printf("이름 %s\n", cur->name);
printf("주민번호 %s\n", cur->id_no);
printf("주소%s\n", cur->addr);
printf("휴대번호%s\n", cur->hp);
printf("집전화%s\n", cur->home_ph);
printf("----->");
if(cur->next = NULL) break;
cur = cur -> next;
}
}
int main(void)
{ struct addr_list *head=NULL, *list, *pre_list;
while(1)
{ list = (struct addr_list*) malloc(sizeof(struct addr_list));
if (head ==NULL)
head = list;
else pre_list->next = list;
printf("\n학번을 입력하시오:, 입력의 끝은 Enter를 누르시오!");
gets(list->st_no);
if (*(list->st_no) == '\0')
{ free (list);
pre_list->next = NULL;
break;
}
printf("이름을 입력하시오:");
gets(list -> name);
printf("주민번호를 입력하시오:");
gets(list -> id_no);
printf("주소를 입력하세요:");
gets(list -> addr);
printf("휴대폰 번호를 입력하시오:");
gets(list -> hp);
printf("집 전화번호를 입력하시오:");
gets(list -> home_ph);
list -> next = NULL;
pre_list = list;
}
printf("The Resulting List is");
print_list(head);
printf("\nThis list has %d elements\n", count(head));
free(head);
}
'programming > C++' 카테고리의 다른 글
| 2008/03/13/ #1 (0) | 2008/03/13 |
|---|---|
| 연결 리스트를 이용하여 주소록을 만드는 프로그램 (0) | 2007/11/13 |
| linked list를 이용하여 주소록 관리 프로그램 (0) | 2007/11/13 |
| 스택을 이용 5칙 연산을 수행하는 간단한 계산기 프로그램 (2) | 2007/11/05 |
Trackback URL : http://trustnoone.tistory.com/trackback/425
이올린에 북마크하기
이올린에 추천하기