300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言结构体实现存储信息 用C语言结构体实现通讯录

c语言结构体实现存储信息 用C语言结构体实现通讯录

时间:2019-03-30 01:39:23

相关推荐

c语言结构体实现存储信息 用C语言结构体实现通讯录

实现一个通讯录;

通讯录可以用来存储1000个人的信息,每个人的信息包括:

姓名、性别、年龄、电话、住址

提供方法:

1. 添加联系人信息

2. 删除指定联系人信息

3. 查找指定联系人信息

4. 修改指定联系人信息

5. 显示所有联系人信息

6. 清空所有联系人

#include"stdio.h"

#include

#include

struct People//联系人结构体

{

char name[10];

char sex[5];

int age;

char tel[20];

char addr[20];

};

struct Contacts//通讯录结构体

{

struct People person[1000];

int user_count;

};

typedef struct Contacts *pContacts;//自定义指向通讯里结构体的指针变量

int find_entry(pContacts pcon)//查找入口

{

int i = 0 ;

char name[20];

printf("Please input name:");

scanf("%s",name);

for(i = 0;i < pcon->user_count;i++)

{

if(strcmp(pcon->person[i].name ,name) == 0)

{

return i;

}

}

return -1;

}

int add(pContacts pcon)//增加联系人

{

if(pcon->user_count == 1000)

{

printf("Telephone book is full!\n");

return -1;

}

printf("Please input name:");

scanf("%s",pcon->person[pcon->user_count].name);

printf("Please input sex:");

scanf("%s",pcon->person[pcon->user_count].sex);

printf("Please input age:");

scanf("%d",&(pcon->person[pcon->user_count].age));

printf("Please input tele:");

scanf("%s",pcon->person[pcon->user_count].tel);

printf("Please input addr:");

scanf("%s",pcon->person[pcon->user_count].addr);

pcon->user_count++;

return 1;

}

int del(pContacts pcon)//删除联系人

{

int i = 0;

int ret = find(pcon);

if(ret != -1)

{

for(i = ret;i < pcon->user_count-1;i++)

{

pcon->person[i] = pcon->person[i+1];

}

pcon->user_count--;

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

int clear(pContacts pcon) //清理全部联系人

{

pcon->user_count = 0;

return 1;

}

int find(pContacts pcon) //查找联系人

{

int ret = find_entry(pcon);

if(ret != -1)

{

printf("name:%s\n",pcon->person[ret].name);

printf("sex:%s\n",pcon->person[ret].sex);

printf("age:%d\n",pcon->person[ret].age);

printf("tele:%s\n",pcon->person[ret].tel);

printf("addr:%s\n",pcon->person[ret].addr);

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

int modify(pContacts pcon) //编辑联系人

{

int ret = find(pcon);

if(ret != -1)

{

printf("Please input name:");

scanf("%s",pcon->person[ret].name);

printf("Please input sex:");

scanf("%s",pcon->person[ret].sex);

printf("Please input age:");

scanf("%s",pcon->person[ret].age);

printf("Please input tele:");

scanf("%s",pcon->person[ret].tel);

printf("Please input addr:");

scanf("%s",pcon->person[ret].addr);

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

void show(pContacts pcon) //显示全部联系人

{

int i = 0;

for(i = 0;i < pcon->user_count;i++)

{

printf("\n\t\tname:\t%-10s",pcon->person[i].name);

printf("\n\t\tsex:\t%-5s", pcon->person[i].sex);

printf("\n\t\tage:\t%-2d",pcon->person[i].age);

printf("\n\t\ttel:\t%-20s",pcon->person[i].tel);

printf("\n\t\taddr:\t%-20s\n",pcon->person[i].addr);

}

printf("\n");

}

int main()//主函数

{

char flag=1;

struct Contacts person;

person.user_count=0;

printf("\t\t1.增加联系人\n");

printf("\t\t2.删除联系人\n");

printf("\t\t3.修改联系人\n");

printf("\t\t4.查找联系人\n");

printf("\t\t5.显示所有联系人\n");

printf("\t\t6.清空联系人列表\n");

printf("\t\t0.退出通讯录\n");

while(flag>0&&flag<=6)//先进入系统,然后再仅进行操作!

{

printf("\n\n\t\t请键入您要执行操作的序号:");

scanf("%d",&flag);

switch(flag)

{

case 1:add(&person);break;

case 2:del(&person);break;

case 3:modify(&person);break;

case 4:find(&person);break;

case 5:show(&person);break;

case 6:clear(&person);break;

case 0:printf("\n\n\n\t\t*********************exit!********************\n\n\n\n");break;

default :printf("\n\t\tyour enter is error!\n");

}

}

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。