通讯录version1.0(C语言)

    xiaoxiao2022-07-13  136

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> typedef struct PhoneNumber{ char tel[12]; char name[11]; char sex[4]; }PN; typedef struct T{ PN num; struct T* next; }Pointer; Pointer* add(Pointer* c); int dele(Pointer* c); int alter(Pointer* c); int show(Pointer* c); void print(Pointer* p); void meau(); Pointer* Init(Pointer* p); void menu() { printf("******1:添加通讯录好友******\n"); printf("******2:删除通讯录好友******\n"); printf("******3:修改通讯录好友信息******\n"); printf("******4:显示通讯录好友******\n"); printf("******5:退出******\n"); } Pointer* Init(Pointer* p) { p=(Pointer*)malloc(sizeof(Pointer)); p->next=NULL; return p; } Pointer* add(Pointer* c) { int ch; int i; Pointer* s; Pointer* q; if(c==NULL) { c=(Pointer*)malloc(sizeof(Pointer)); c->next =NULL; } q=c; printf("输入1添加,0退出:"); scanf("%d",&ch); getchar(); while(ch==1) { s=(Pointer*)malloc(sizeof(Pointer)); printf("请输入您要添加的好友的电话\n"); scanf("%s",s->num.tel); printf("%s",s->num.tel); printf("请输入您要添加的好友的姓名\n"); scanf("%s",s->num.name); printf("%s",s->num.name); printf("请输入您要添加的好友的性别\n"); scanf("%s",s->num.sex); printf("%s",s->num.sex); printf("添加成功\n"); s->next=q->next ; q->next =s; printf("1继续添加,0退出\n"); scanf("%d",&ch); fflush(stdin); system("cls"); } return c; } int alter(Pointer* c) { int ch;//接收用户的选项 char n[11];//接收用户输入的姓名 Pointer *s; s=c->next; //Pointer *q=c; if(s==NULL) printf("通讯录为空\n"); printf("请输入您要修改的好友的姓名:"); scanf("%s",n); while(s !=NULL) { if(strcmp(s->num.name,n)==0) { printf("请输入您要修改的选项:0表示电话,1表示姓名,2表示性别:"); scanf("%d",&ch); switch(ch) { case 0: printf("请输入新电话:"); scanf("%s",s->num.tel); break; case 1: printf("请输入新姓名:"); scanf("%s",s->num.name); break; case 2: printf("请输入新性别:"); scanf("%s",s->num.sex); break; default: break; } break; } else s=s->next; } if(s==NULL) printf("无此联系人"); system("cls"); return 0; } int dele(Pointer* c) { Pointer* pre; Pointer* q; char n[11];//接受删除的姓名 q=c->next ; pre=c; if(q==NULL) { printf("通讯录查无此人"); } printf("请输入您要删除的好友的姓名:"); scanf("%s",n); //q=q->next; while(q ) { if(!(strcmp(q->num.name,n))) { pre->next=q->next; free(q); printf("删除成功!"); break; } else { pre=q; q=q->next ; } } system("cls"); return 0; } void print(Pointer* p) { int c; printf("请输入您想进行的操作:"); scanf("%d",&c); switch(c) { case 1:add(p);break; case 2:dele(p);break; case 3:alter(p);break; case 4:show(p);break; case 5:exit(0); default:break; } } int show(Pointer* c) { Pointer* s; int i; s=c->next; if(s==NULL) { printf("您还没有通讯录好友!"); } while(s!=NULL) { printf("%s\t",s->num.name); printf("%s\t",s->num.sex); printf("%s\n",s->num.tel); s=s->next; } return 0; } int main() { int ch; Pointer p; Pointer* q=Init(&p); printf("输入0:退出通讯录界面,输入1:继续\n"); while((ch=getchar())) { menu(); print(q); printf("输入0:退出通讯录界面,输入1:继续\n"); printf("\n"); } system("pause"); return 0; }

     

    最新回复(0)