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;
}
이상 은 모두 자신 을 위해 작성 한 것 입 니 다.개인의 능력 에 한계 가 있 습 니 다.만약 잘못 이 있 으 면 여러분 의 비판 과 지적 을 바 랍 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.