C语言实现简单通讯录

18 篇文章 0 订阅
实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1.    添加联系人信息
2.    删除指定联系人信息
3.    查找指定联系人信息
4.    修改指定联系人信息
5.    显示所有联系人信息
6.    清空所有联系人
7.    以名字排序所有联系人
头文件:
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#define MAX 1000

typedef struct PEO
{
    char name[64];
    char sex[10];
    int age[100];
    char ph_num[12];
    char adder[128];
}peo, *peo_p, **peo_pp;
typedef  struct CONTACT
{
    peo person [MAX];
    int size;
}contact, *contact_p, **contact_pp;

int my_add(contact_p peoinf);
int my_delect(contact_p  peoinf);
int my_clear(contact_p  peoinf);
int my_search(contact_p  peoinf);
int my_modify(contact_p  peoinf);
void my_show(contact_p  peoinf);

#endif
测试函数:

#include"test.h"

//查找联系人信息
int my_search(contact_p  peoinf)
{
    assert(peoinf);
    char name[64];
    printf("请输入要查找联系人的名字:\n");
    scanf("%s", &name);
    int i = 0;
    for (; i < peoinf->size; i++)
    {
        if (strcmp(peoinf->person[i].name, name) == 0)
        {
            return i;//找到了
        }
    }
    return -1;
}
//增加联系人的信息;
int my_add(contact_p peoinf)
{
    assert(peoinf);
    if (peoinf->size == MAX)
    {
        printf("电话本已满!!!\n");
        return -1;
    }
    printf("姓名:\n");
    scanf("%s", peoinf->person[peoinf->size].name);
    printf("性别:\n");
    scanf("%s", peoinf->person[peoinf->size].sex);
    printf("年龄:\n");
    scanf("%d", peoinf->person[peoinf->size].age);
    printf("电话:\n");
    scanf("%s", peoinf->person[peoinf->size].ph_num);
    printf("地址:\n");
    scanf("%s", peoinf->person[peoinf->size].adder);
    peoinf->size++;
    return 1;
}
//删除联系人的信息;
int my_delect(contact_p  peoinf)
{
    int i = 0;
    int ret = my_search(peoinf);
    if (ret != -1)
    {
        for (i = ret; i < peoinf->size - 1; i++)
        {
            peoinf->person[i] = peoinf->person[i + 1];
            peoinf->size--;
        }
        return 1;
    }
    else
    {
        printf("电话本是空的!!\n");
        return -1;
    }
}
//清空联系人的信息;
int my_clear(contact_p  peoinf)
{
    peoinf->size = 0;
    return 1;
}
int find_contcat(contact_p  peoinf)//找到联系人
{
    int ret = my_search(peoinf);
    if (ret != -1)
    {
        printf("姓名:%s", peoinf->person[peoinf->size].name);
        printf("性别:%s", peoinf->person[peoinf->size].sex);
        printf("年龄:%d", peoinf->person[peoinf->size].age);
        printf("电话:%s", peoinf->person[peoinf->size].ph_num);
        printf("地址:%s", peoinf->person[peoinf->size].adder);
        printf("\n");
        return 1;
    }
    else
    {
        printf("联系人不存在!!\n");
        return -1;
    }
}
//修改联系人信息;
int my_modify(contact_p  peoinf)
{
    int ret = my_search(peoinf);
    if (ret != -1)
    {
        printf("请重新输入姓名:\n");
        scanf("%s", peoinf->person[peoinf->size].name);
        printf("请重新输入性别:\n");
        scanf("%s", peoinf->person[peoinf->size].sex);
        printf("请重新输入年龄:\n");
        scanf("%d", peoinf->person[peoinf->size].age);
        printf("请重新输入电话:\n");
        scanf("%s", peoinf->person[peoinf->size].ph_num);
        printf("请重新输入地址:\n");
        scanf("%s", peoinf->person[peoinf->size].adder);
        return 1;
    }
    else
    {
        printf("联系人不存在!!\n");
        return -1;
    }
}
//显示联系人的信息
void show(contact_p  peoinf)
{
    int i = 0;
    printf("姓名\t性别\t年龄\t电话号码\t地址\n");
    for (; i < peoinf->size; i++)
    {
        printf("%s", peoinf->person[peoinf->size].name);
        printf("%s", peoinf->person[peoinf->size].sex);
        printf("%d", peoinf->person[peoinf->size].age);
        printf("%s", peoinf->person[peoinf->size].ph_num);
        printf("%s", peoinf->person[peoinf->size].adder);
    }
    printf("\n");
}

主函数:
#include"test.h"
int main()
{
    int data = 0;
    contact people;
    people.size = 0;
    while (1)
    {
        printf("********************************\n");
        printf("** 1.my_add ***** 2.my_delect **\n");
        printf("** 3.my_search ** 4.my_modify **\n");
        printf("** 5.show  *****  6. my_clear **\n");
        printf("**  7.exit    ******************\n");
        printf("********************************\n");
        printf("please slect:\n");
        scanf("%d",&data );
        switch (data)
        {
        case 1:
            my_add(&people);
            printf("添加联系人成功!!\n");
            break;
        case 2:
            my_delect(&people);
            printf("删除联系人成功!!\n");
            break;
        case 3:
            my_search(&people);
            printf("查找联系人成功!!\n");
            break;
        case 4:
            my_modify(&people);
            printf("修改联系人成功!!\n");
            break;
        case 5:
            show(&people);
            printf("显示联系人成功!!\n");
            break;
        case 6:
            my_clear(&people);
            printf("清空联系人成功!!\n");
            break;
        case 7:
            printf("退出成功!!\n");
            break;
        default:
            printf("你的输入有误!!\n");
            break;
        }
    }
    system("pause");
    return 0;
}




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值