티스토리 뷰
[C언어 소스] 주소 관리 프로그램 소스
이 포스팅에서는 주소 관리 프로그램 소스를 공개하도록 할게요.
이 주소 관리 프로그램은 사용자 정보(이름, 주소, 전화번호, 휴대폰, e-mail)를 등록하고, 출력하고 삭제할 수 있는 프로그램입니다.
이 소스를 조금 변형하시면 더 멋진 프로그램을 만들 수 있지 않나 싶네요^^
주소 관리 프로그램 소스 공개
아래의 파일을 클릭하시면 다운로드 받으실 수 있습니다.
#include <stdio.h> #include <malloc.h> #include <string.h> struct _node { char name[10]; // 이름 char address[30]; // 주소 char phone[14]; // 전화번호 char mobile[14]; // 핸드폰 char mail[20]; // e-mail struct _node *link; // 다음 노드 }; typedef struct _node node; void Insert(node*); // 노드 삽입 함수 void Delete(node*); // 노드 삭제 함수 void Display(node*); // 노드 정보 출력 함수 int main(void) { node *ptr; int choice; /* 첫번째 노드 생성 동적할당을 통해 공간을 생성하여 노드를 만든다. 다음 노드 위치는 NULL로 초기화한다 */ ptr = (node *)malloc(sizeof(node)); ptr->link = NULL; /* do-while을 이용한 반복 4. 종료를 선택할 때까지 반복한다. */ do { // 메뉴 출력 printf("주소관리 프로그램\n"); printf("1. 등 록\n"); printf("2. 출 력\n"); printf("3. 삭 제\n"); printf("4. 종 료\n"); printf("명령어를 선택하시오: "); // 1문자를 입력받아 숫자로 변환 choice = getchar() - '0'; // 입력 버퍼 초기화 fflush(stdin); /* 입력받은 숫자에 따라 분기 1 : 등록 -> Insert 2 : 출력 -> Display 3 : 삭제 -> Delete */ switch(choice) { case 1 : Insert(ptr); break; case 2 : Display(ptr->link); break; case 3 : Delete(ptr); break; } }while(choice!=4); } void Insert(node *ptr) { while (ptr->link != NULL) ptr = ptr->link; ptr->link = (node*)malloc(sizeof(node)); ptr = ptr->link; printf("이름을 입력하시오: "); gets(ptr->name); printf("주소를 입력하시오: "); gets(ptr->address); printf("전화번호 입력하시오: "); gets(ptr->phone); printf("핸드폰을 입력하시오: "); gets(ptr->mobile); printf("E-Mail을 입력하시오: "); gets(ptr->mail); ptr->link = NULL; printf("\n"); } void Delete(node *ptr) { node *prev; char _phone[14]; printf("삭제할 전화번호를 선택하시오: "); gets(_phone); while (ptr->link != NULL) { prev = ptr; ptr = ptr->link; /* 저장되어 있는 데이터중에서 전화번호를 기준으로 데이터를 삭제 */ if (strcmp(_phone, ptr->phone) == 0) { prev->link = ptr->link; free(ptr); break; } } return; } void Display(node *ptr) { printf("%6s", "이 름") ; printf("%14s", "주 소"); printf("%14s", "전화번호"); printf("%14s", "핸드폰"); printf("%10s\n", "E-Mail"); while (ptr != NULL) { printf("%6s", ptr->name); printf("%14s", ptr->address); printf("%14s", ptr->phone); printf("%14s", ptr->mobile); printf("%10s", ptr->mail); ptr = ptr->link; printf("\n"); } printf("\n"); }
실행화면
아래는 주소 관리 프로그램을 실행한 실행화면입니다.
위 소스에 검색 기능을 추가한 소스
위 소스에 검색 기능을 추가해 보았습니다.
#include <stdio.h> #include <malloc.h> #include <string.h> struct _node { char name[10]; // 이름 char address[30]; // 주소 char phone[14]; // 전화번호 char mobile[14]; // 핸드폰 char mail[20]; // e-mail struct _node *link; // 다음 노드 }; typedef struct _node node; void Insert(node*); // 노드 삽입 함수 void Delete(node*); // 노드 삭제 함수 void Display(node*); // 노드 정보 출력 함수 void Search(node*); // 노드 정보 검색 함수 int main(void) { node *ptr; int choice; /* 첫번째 노드 생성 동적할당을 통해 공간을 생성하여 노드를 만든다. 다음 노드 위치는 NULL로 초기화한다 */ ptr = (node *)malloc(sizeof(node)); ptr->link = NULL; /* do-while을 이용한 반복 4. 종료를 선택할 때까지 반복한다. */ do { // 메뉴 출력 printf("주소관리 프로그램\n"); printf("1. 등 록\n"); printf("2. 출 력\n"); printf("3. 삭 제\n"); printf("4. 검 색\n"); printf("5. 종 료\n"); printf("명령어를 선택하시오: "); // 1문자를 입력받아 숫자로 변환 choice = getchar() - '0'; // 입력 버퍼 초기화 fflush(stdin); /* 입력받은 숫자에 따라 분기 1 : 등록 -> Insert 2 : 출력 -> Display 3 : 삭제 -> Delete 4 : 검색 -> Search */ switch(choice) { case 1 : Insert(ptr); break; case 2 : Display(ptr->link); break; case 3 : Delete(ptr); break; case 4 : Search(ptr); break; } }while(choice!=5); } void Insert(node *ptr) { while (ptr->link != NULL) ptr = ptr->link; ptr->link = (node*)malloc(sizeof(node)); ptr = ptr->link; printf("이름을 입력하시오: "); gets(ptr->name); printf("주소를 입력하시오: "); gets(ptr->address); printf("전화번호 입력하시오: "); gets(ptr->phone); printf("핸드폰을 입력하시오: "); gets(ptr->mobile); printf("E-Mail을 입력하시오: "); gets(ptr->mail); ptr->link = NULL; printf("\n"); } void Delete(node *ptr) { node *prev; char _phone[14]; printf("삭제할 전화번호를 선택하시오: "); gets(_phone); while (ptr->link != NULL) { prev = ptr; ptr = ptr->link; /* 저장되어 있는 데이터중에서 전화번호를 기준으로 데이터를 삭제 */ if (strcmp(_phone, ptr->phone) == 0) { prev->link = ptr->link; free(ptr); break; } } return; } void Display(node *ptr) { printf("%6s", "이 름") ; printf("%14s", "주 소"); printf("%14s", "전화번호"); printf("%14s", "핸드폰"); printf("%10s\n", "E-Mail"); while (ptr != NULL) { printf("%6s", ptr->name); printf("%14s", ptr->address); printf("%14s", ptr->phone); printf("%14s", ptr->mobile); printf("%10s", ptr->mail); ptr = ptr->link; printf("\n"); } printf("\n"); } void Search(node *ptr) { char _name[10]; printf("이름을 입력하시오: "); gets(_name); printf("%6s", "이 름") ; printf("%14s", "주 소"); printf("%14s", "전화번호"); printf("%14s", "핸드폰"); printf("%10s\n", "E-Mail"); while (ptr != NULL) { if (strcmp(_name, ptr->name) == 0) { printf("%6s", ptr->name); printf("%14s", ptr->address); printf("%14s", ptr->phone); printf("%14s", ptr->mobile); printf("%10s", ptr->mail); printf("\n"); } ptr = ptr->link; } }
'IT 이야기 > 프로그래밍' 카테고리의 다른 글
[C언어] 세 개의 단어를 입력받아 사전 순으로 가장 먼저 나오는 단어 출력하기 (0) | 2014.02.25 |
---|---|
[C언어] 분수의 합을 구하는 프로그램 소스 (0) | 2014.02.24 |
JQuery Slider 추천! bxSlider, 간단한 설치, 애니메이션까지 (1) | 2014.02.23 |
[C#] 서버와 클라이언트 파일 전송 기본 예제 (8) | 2013.12.05 |
[C언어] malloc(), free() 함수를 이용한 메모리 동적 할당 예제 (4) | 2013.12.05 |
[HTML5 강의] 5. HTML5 기본태그, 목록 만들기 (0) | 2013.11.22 |
[HTML5 강의] 4. HTML5의 기본 태그, 텍스트 관련 태그 (0) | 2013.11.22 |
[HTML5 강의] 1. HTML5 시작하기 (2) | 2013.11.22 |
[HTML5 강의] 3. HTML5 기본 태그, 시멘틱(semantic) 태그 (2) | 2013.11.21 |
[HTML5 강의] 2.1 HTML5의 기본 (0) | 2013.11.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- W3Schools Online Web Tutorials
- 구차니의 잡동사니 모음
- [IT]블로거팁닷컴
- 비앤아이님의 블로그
- Blog Suspect
- 즐거운하루 blog
- zinicap의 검색엔진 마케팅(SEM)
- 머니야머니야님의 블로그
- [Friend] AtinStory
- [기타배우기]해브원 박스
- [웹표준] SINDB.com
- 해커 C 이야기
- [애드센스] 길라잡이
- 정순봉의 IT SCHOOL
- 씨디맨의 컴퓨터이야기
- 2proo Life Story
- 못된준코의 세상리뷰
- [IT강좌] 정보문화사
- IN 대전
- 에우르트는 나쁜남자 -_-
- 씬의 싱크탱크
- 엔돌슨의 IT이야기
- 진이늘이
- 'Cooltime'의 블로그
- 후이의 Tistory
- Soulstorage
- 앤드&엔드의 블로그
- June Blog
- 노지의 소박한 이야기
- gbWorld
- 인터넷 속 나의 생각
- HarshNix
- ART of WEB
- 녹두장군 - 상상을 현실로
TAG
- php
- JavaScript
- 강의
- 안드로이드 어플 추천
- 소스코드
- 인터넷
- 프로그래밍
- 스마트폰
- 성공
- C언어
- MBTI 자료
- 강좌
- MBTI 강좌
- C언어 문제
- 안드로이드
- MBTI 테스트
- 효과음
- 인터넷 익스플로러
- 리뷰
- MBTI
- C
- 프로그래밍 문제
- MBTI 검사
- 모토로이
- HTML
- 안드로이드 어플
- C언어 소스
- 예제 소스
- 소스
- It
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함