设计一个通讯录。

来源:互联网 发布:淘宝卖的aj哪里来的 编辑:程序博客网 时间:2024/06/04 19:25
#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 20#define MAX 1000typedef struct people{char name[N];char sex[N];int age;char tel[N];char addr[N];}People;typedef struct person{People *user;int user_count;}Person;void AddList(Person *p){int i;printf("请输入所需添加的个数。\n");scanf("%d",&p->user_count);printf("请输入:姓名 性别 年龄 电话 地址 \n");for(i = 0;i < p->user_count;i++){scanf("%s%s%d%s%s",p->user[i].name,p->user[i].sex,&p->user[i].age,p->user[i].tel,p->user[i].addr);}}int find(Person *p){int i;char name[N];printf("输入姓名:");scanf("%s",name);for(i = 0;i < p->user_count;i++){if(strcmp(p->user[i].name,name)==0){return i;}}return -1;}void delet(Person *p){int i = 0;int ret = find(p);if(ret != -1){for(i = ret;i<p->user_count--;i++){p->user[i] = p->user[++i];}}else{printf("不存在\n");exit(-1);}p->user_count--;}void modify(Person *p){int ret = find(p);if(ret != -1){printf("修改姓名:");scanf("%s",p->user[ret].name);}else{printf("没有需要修改的内容\n");exit(-1);}}void clean(Person *p){p->user_count = 0;printf("通讯录已格式化\n");}void show(Person *p){int i = 0;printf("姓名\t\t性别\t\t年龄\t\t电话\t\t地址\n");for(i = 0;i < p->user_count;i++){printf("%s\t\t%s\t\t%d\t\t%s\t\t%s\n",p->user[i].name,p->user[i].sex,p->user[i].age,p->user[i].tel,p->user[i].addr);}}void main(){int n = 1;Person *w = (Person*)malloc(sizeof(Person));if(w == NULL){printf("分配内存失败\n");exit(-1);}w->user = (People*)malloc(MAX * sizeof(People));if(w->user == NULL){printf("分配内存失败\n");exit(-1);}while(n){printf("请选择输入:\t\t1:添加\n\t\t\t2:删除\n\t\t\t3:修改\n\t\t\t4:清理\n\t\t\t5:显示\n\t\t\t0:结束\n");scanf("%d",&n);switch(n){case 1: AddList(w); break;case 2:delet(w);   break;case 3: modify(w);  break;case 4: clean(w);   break;case 5: show(w);    break;case 0: exit(-1);default: break;}}     free(w->user);    free(w);}


 

0 0
原创粉丝点击