C 언어 실현 간이 주소록

13218 단어 C 언어통신 록
본 논문 의 사례 는 C 언어 가 간단 한 주소록 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
기능 설명:
1.연락처 의 관련 정 보 를 저장 하 는데 이름,성별,전화번호,비고 포함
2.모든 정 보 를 출력 할 수 있 습 니 다.
3.주소록 의
4.사용자 인 터 랙 션 인터페이스
5.새로운 연락처 정보 삽입
6.연락 처 를 찾 는데'이름 으로 찾기'와'전화번호 로 찾기'두 가 지 를 포함한다.
7.연락 처 를 삭제 하 는데'이름 으로 삭제'와'전화번호 로 삭제'두 가 지 를 포함한다.
8.성별 에 따라 연락처 정 보 를 선별 합 니 다.
이번 주소록 의 작성 코드 에는 지침,구조 체,데이터 구조(링크)등 C 고급 과 데이터 구조 에 관 한 지식 이 포함 되 어 있 습 니 다. 
코드:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 20
#define OK 1
#define Error 0
typedef struct Node //            
{            
 char name[SIZE];
 char s;
 long int number;
 char remark[SIZE];
 struct Node *next;
}Node;
typedef struct Node *LinkList; //        
 
/************        ,     ***************/
LinkList CreateEmptyLinkList()
{
 LinkList p;
 p=(LinkList)malloc(sizeof(Node));  //           ,       
 if(p==NULL)
 {
 printf("CreateEmptyLinkList Error
"); exit(0); } p->next=NULL; return p; } /************ ************************/ int CreateLinkList(LinkList Q) { LinkList p; char name[SIZE],s,remark[SIZE]; long int num; p=(LinkList)malloc(sizeof(Node)); if(p==NULL) { printf("CreateLinkList Error
"); return Error; } printf(" :"); scanf("%s",name); strcpy(p->name,name); printf(" (m/ ,f/ ):"); scanf("%s",&s); while(s!='m'&&s!='f') { printf("
"); printf(" (m/ ,f/ ):"); scanf("%s",&s); } printf(" :"); scanf("%ld",&num); printf(" :"); scanf("%s",remark); p->s=s; p->number=num; strcpy(p->remark,remark); p->next=Q->next; Q->next=p; return OK; } /********************* ****************/ int FirstCreateLinkList(LinkList Q) { LinkList x,y,z; x=(LinkList)malloc(sizeof(Node)); if(x==NULL) { printf("CreateLinkList Error
"); return Error; } strcpy(x->name,"LiLi"); x->s='f'; x->number=10110; x->next=Q->next; strcpy(x->remark,"LiLi"); Q->next=x; y=(LinkList)malloc(sizeof(Node)); if(y==NULL) { printf("CreateLinkList Error
"); return Error; } strcpy(y->name,"NaNa"); y->s='f'; y->number=11100; strcpy(y->remark,"NaNa"); y->next=Q->next; Q->next=y; z=(LinkList)malloc(sizeof(Node)); if(z==NULL) { printf("CreateLinkList Error
"); return Error; } strcpy(z->name,"LiuLiu"); z->s='m'; z->number=10000; strcpy(z->remark,"LiuLiu"); z->next=Q->next; Q->next=z; return OK; } /***************** ****************************/ int DeleteNameLinkList(LinkList L,char name1[SIZE]) { LinkList p,q; p=L; while(p->next && strcmp(p->next->name,name1)) { p=p->next; } if(!p->next) { printf(" , !
"); return Error; } else { q=p->next; printf(" :
"); printf(" :%s
",q->name); if(q->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",q->number); printf(" :%s
",q->remark); p->next=q->next; free(q); return OK; } } /***************** ****************************/ int DeleteNumLinkList(LinkList L,long int j) { LinkList p,q; p=L; while((p->next->number!=j)&&((p->next)!=NULL)) { p=p->next; if((p->next)==NULL) { printf(" , !
"); return Error; } } q=p->next; printf(" :
"); printf(" :%s
",q->name); if(q->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",q->number); printf(" :%s
",q->remark); p->next=q->next; free(q); return OK; } /****************** ****************************/ int FindNameLinkList(LinkList L,char name2[SIZE]) { LinkList p,q; p=L; while(strcmp(p->next->name,name2)!=0&&(p->next!=NULL)) { p=p->next; if(p->next==NULL) { printf(" ,
"); return Error; } } q=p->next; printf(" :
"); printf(" :%s
",q->name); if(q->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",q->number); printf(" :%s
",q->remark); printf("*********************************
"); return OK; } /****************** ****************************/ int FindNumLinkList(LinkList L,long int j) { LinkList p,q; p=L; while((p->next->number!=j)&&((p->next)!=NULL)) { p=p->next; if((p->next)==NULL) { printf(" ,
"); return Error; } } q=p->next; printf(" :
"); printf(" :%s
",q->name); if(q->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",q->number); printf(" :%s
",q->remark); printf("*********************************
"); return OK; } /****************** ****************************/ int FindLinkList(LinkList L) { LinkList head = L; printf("*********************************
"); printf(" :
"); printf("1:
"); printf("2:
"); printf("0:
"); printf("*********************************
"); printf(" :"); int k=3; // while while(k) { scanf("%d",&k); char Delname1[SIZE]; long int N; if(k>2||k<0) { printf(" , :"); scanf("%d",&k); while(getchar()!='
') printf("
"); } switch(k) { case 1: printf(" :"); scanf("%s",Delname1); FindNameLinkList(head,Delname1); k=0; break; case 2: printf(" :"); scanf("%ld",&N); FindNumLinkList(head,N); k=0; break; } } } /******************** *************************/ int ClearLinkList(LinkList L) { LinkList p,q; p=L->next; while(p) { q=p->next; free(p); p=q; } L->next=NULL; printf("
"); return OK; } /********************* **********************/ int ScreenMaleLinkList(LinkList L) { LinkList p; p=L->next; int i=0; while(p) { if(p->s=='m') { printf(" :%s
",p->name); if(p->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",p->number); printf(" :%s
",p->remark); printf("*********************************
"); } p=p->next; i++; } if(i==0&&!p) { printf("
"); } return OK; } /********************* **********************/ int ScreenFemaleLinkList(LinkList L) { LinkList p; p=L->next; int i=0; while(p) { if(p->s=='f') { printf(" :%s
",p->name); if(p->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",p->number); printf(" :%s
",p->remark); printf("*********************************
"); } p=p->next; i++; } if(i==0&&!p) { printf("
"); } return OK; } /************************ *****************/ void FunctionalInterface() { system ("clear"); printf("*********************************
"); printf(" Linux !
"); printf("*********************************
"); printf("1:
"); printf("2:
"); printf("3:
"); printf("4:
"); printf("5:
"); printf("6:
"); printf("7:
"); printf("0:
"); printf("*********************************
"); } /***************** ****************************/ int DeleteLinkList(LinkList L) { LinkList head = L; printf("*********************************
"); printf(" :
"); printf("1:
"); printf("2:
"); printf("0:
"); printf("*********************************
"); printf(" :"); int i=3; while(i) { scanf("%d",&i); char Delname[SIZE]; long int j; if(i>2||i<0) { printf(" , :"); scanf("%d",&i); while(getchar()!='
') printf("
"); } switch(i) { case 1: printf(" :"); scanf("%s",Delname); DeleteNameLinkList(head,Delname); i=0; break; case 2: printf(" :"); scanf("%ld",&j); DeleteNumLinkList(head,j); i=0; break; } } } /******************* **********************/ int PrintfLinkList(LinkList L) { LinkList p,q; q=p=L->next; int i=0; while(q) { i++; q=q->next; if(i==0&&!p) { printf("
"); } } printf(" %d
",i); while(p) { printf("*********************************
"); printf(" :%s
",p->name); if(p->s=='m') printf(" :
"); else printf(" :
"); printf(" :%ld
",p->number); printf(" :%s
",p->remark); p=p->next; } printf("*********************************
"); return OK; } int main() { int a; LinkList head; head=CreateEmptyLinkList(); FirstCreateLinkList(head); FunctionalInterface(); while(a) { printf(" :"); scanf("%d",&a); if(a>7||a<0) { printf(" , :"); scanf("%d",&a); while(getchar()!='
') printf("
"); } switch(a) { case 1: PrintfLinkList(head); break; case 2: CreateLinkList(head); break; case 3: DeleteLinkList(head); break; case 4: FindLinkList(head); break; case 5: ClearLinkList(head); break; case 6: ScreenMaleLinkList(head); break; case 7: ScreenFemaleLinkList(head); break; } if(a!=0) { printf(" :"); getchar(); if(getchar()=='
') FunctionalInterface(); } } printf("
"); return 0; }
이상 은 모두 자신 을 위해 작성 한 것 입 니 다.개인의 능력 에 한계 가 있 습 니 다.만약 잘못 이 있 으 면 여러분 의 비판 과 지적 을 바 랍 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기