【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)

原创 2016年05月30日 17:15:59
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NAME_MAX 10
#define SEX_MAX 3
#define AGE_MAX 100
#define TEL_MAX 15
#define ADDR_MAX 20
#define PEOPLE_MAX 1000


typedef struct LINK
{
    char name[NAME_MAX];
    char sex[SEX_MAX];
    int age;
    char tel[TEL_MAX];
    char addr[ADDR_MAX];
}linkman;

typedef struct PEOPLE
{
    int num;
    linkman count[1000];
}*people;


int search(people cou, char *name)
{
    int i = 0;
    for (; i < cou->num; i++)
    {
        if (strcmp(name, (cou->count[i]).name) == 0)
            return i;
    }
    return -1;
}

void add_linkman(people cou)//添加联系人
{
    if (cou->num == 1000)
    {
        printf("该通讯录已满,无法录入信息!\n");
    }
    printf("please input name>:\n");
    scanf("%s", (cou->count[cou->num]).name);
    printf("please input the sex>:\n");
    scanf("%s", (cou->count[cou->num]).sex);
    printf("please input the age>:\n");
    scanf("%d", &(cou->count[cou->num]).age);
    printf("please input the telephone>:\n");
    scanf("%s", (cou->count[cou->num]).tel);
    printf("please input the address>:\n");
    scanf("%s", (cou->count[cou->num]).addr);
    cou->num++;
}

void delete_linkman(people cou)//删除联系人
{
    char name[NAME_MAX];
    int i = 0;
    if (cou->num == 0)
    {
        printf("该通讯录已空,无法删除信息!\n");
        return;
    }
    printf("请输入要删除人的名字>:");
    scanf("%s", &name);
    printf("\n");
    int ret = search(cou, name);
    if (ret == -1)
    {
        printf("此人不存在,删除失败!\n");
    }
    else
    {
        for (i = ret; i < cou->num; i++)
        {
            cou->count[i] = cou->count[i + 1];
        }
        cou->num--;
    }
}

void find_linkman(people cou)//查找联系人
{
    char name[NAME_MAX];
    int i = 0;
    printf("请输入要查找人的名字>:");
    scanf("%s", name);
    if (cou->num == 0)
    {
        printf("当前为空表,查找失败!\n");
        return;
    }
    int ret = search(cou, name);
    if (ret != -1)
    {
        printf("%s\t%s\t%d\t%s\t%s\n",
            (cou->count[ret]).name,
            (cou->count[ret]).sex,
            (cou->count[ret]).age,
            (cou->count[ret]).tel,
            (cou->count[ret]).addr);
    }
    else
    {
        printf("此联系人不存在,查找失败!\n");
    }
}

void change_linkman(people cou)//修改指定人信息
{
    char name[NAME_MAX];
    int i = 0;
    printf("请输入要修改人的名字>:");
    scanf("%s", name);
    if (cou->num == 0)
    {
        printf("当前为空表,查找失败!\n");
        return;
    }
    int ret = search(cou, name);
    if (ret != -1)
    {
        printf("please input name again>:\n");
        scanf("%s", (cou->count[ret]).name);
        printf("please input the sex>:\n");
        scanf("%s", (cou->count[ret]).sex);
        printf("please input the age>:\n");
        scanf("%d", &(cou->count[ret]).age);
        printf("please input the telephone>:\n");
        scanf("%s", (cou->count[ret]).tel);
        printf("please input the address>:\n");
        scanf("%s", (cou->count[ret]).addr);
    }
}

void display_linkman(people cou)//显示所有联系人
{
    int i = 0;
    if (cou->num == 0)
    {
        printf("当前为空表,显示失败!\n");
        return;
    }
    for (i = 0; i < cou->num; i++)
    {
        printf("%s\t%s\t%d\t%s\t%s",
            (cou->count[i]).name,
            (cou->count[i]).sex,
            (cou->count[i]).age,
            (cou->count[i]).tel,
            (cou->count[i]).addr);
        printf("\n");
    }
}

void empty_linkman(people cou)//清空所有联系人
{
    cou->num = 0;
}
struct stu
{
    char name[15];
};
void name_sort(people cou)//按名字顺序排序所有人
{
    int i = 0;
    int j = 0;
    if (cou->num == 0)
    {
        printf("当前为空表,排序失败!\n");
        return;
    }
    for (i = 0; i < cou->num - 1; i++)
    {
        for (j = 0; j < cou->num - i - 1; j++)
        {
            if (strcmp(cou->count[j].name, (cou->count[j + 1]).name)>0)
            {
                linkman tmp = cou->count[j];
                cou->count[j] = cou->count[j + 1];
                cou->count[j + 1] = tmp;
            }
        }

    }
}
void menu()
{
    printf("************************************\n");
    printf("**********1.添加联系人信息**********\n");
    printf("********2.删除指定联系人信息********\n");
    printf("********3.查找指定联系人信息********\n");
    printf("********4.修改指定联系人信息********\n");
    printf("********5.显示所有联系人信息********\n");
    printf("********6.清空所有联系人************\n");
    printf("*******7.以名字排序所有联系人*******\n");
    printf("***************0 退出***************\n");
    printf("************************************\n");
}

int main()
{
    int opp = 1;
    struct PEOPLE cou;
    cou.num = 0;
    while (opp)
    {
        menu();
        printf("请选择>:");
        scanf("%d", &opp);
        switch (opp)
        {
        case 0:
            exit(EXIT_FAILURE);
            break;
        case 1:
            add_linkman(&cou);
            break;
        case 2:
            delete_linkman(&cou);
            break;
        case 3:
            find_linkman(&cou);
            break;
        case 4:
            change_linkman(&cou);
            break;
        case 5:
            display_linkman(&cou);
            break;
        case 6:
            empty_linkman(&cou);
            break;
        default:
        {
                   printf("输入有误,请重新输入>:\n");
                   break;
        }
        }
    }
    system("pause");
    return 0;
}

    如下图(部分截图):

wKioL1ZcSrCx-KNNAAB4ZBqSNqs288.png

wKioL1ZcSrKh3gKkAACGYedkY_A292.png


模拟通讯录系统的简单实现

题目要求: 实现一个通讯录;通讯录可以用来存储1000个人的信息. 每个人的信息包括:姓名、性别、年龄、电话、住址 等。 实现功能: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系...
  • her__0_0
  • her__0_0
  • 2016年05月13日 23:49
  • 1588

Android通讯录开发之实现删除功能

Android通讯录开发之实现删除功能 2014年1月15日 无论是Android开发或者是其他移动平台的开发,ListView肯定是一个大咖,那么对ListView的操作肯定是不会少的,上一篇博...
  • wwj_748
  • wwj_748
  • 2014年01月15日 10:40
  • 9911

用C语言模拟实现一个通讯录,要求实现其添加、删除、修改、查找、显示和排序联系人信息的功能

题目:用C语言模拟实现一个通讯录,要求实现其添加、删除、修改、查找、显示和排序联系人信息的功能 解析:原代码如下: #define _CRT_SECURE_NO_WARNINGS #include...
  • yanxiaolx
  • yanxiaolx
  • 2016年11月25日 15:50
  • 3468

iPhone通讯录联系人的增加、删除、修改的操作

1.需要引入AddressBook.framework框架 2.iPhone通讯录的增加联系人的操作,代码如下(放到项目中可直接运行): // 初始化一个ABAddressBookRef对象,...
  • yongyinmg
  • yongyinmg
  • 2014年05月20日 16:24
  • 9971

数据结构通讯录查询系统

1 .需求分析 •          为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的电话与地址。设计散列表存储,设计并实现通讯录查找系统。 1.基本要求 •          (1)每...
  • Justin_bibo
  • Justin_bibo
  • 2016年11月08日 14:01
  • 2542

谈谈Android 不能通讯录增删改查 包括Android 6.0 等问题

基础操作不讲,别人链接: http://blog.csdn.net/xiazdong/article/details/7713419 首先权限问题: 如果你的应用是在API 23(A...
  • qq_26818029
  • qq_26818029
  • 2016年05月11日 16:03
  • 208

Android手机通讯录的读取、添加、删除、查找

Android联系人数据库文件(contact2.db) 有研究过手机通讯录数据的童鞋肯定知道一个数据库文件:目前是contact2.db(哥的手机是Android4.04的) 在此路径下可以...
  • cbk861110
  • cbk861110
  • 2016年03月19日 14:11
  • 1668

数据结构课程设计-通讯录管理系统c++版(顺序表存储,折半查找,递增排序)

1:要求 通讯录管理系统 (1)用顺序表作为通讯录的存储结构。每条通讯录包含:姓名,城市,电话。表中的记录按姓名非递减有序,每插入一条记录后,应使表中记录仍保持按姓名非递减排序。 (2)实现插入、删...
  • u010187139
  • u010187139
  • 2014年11月03日 21:35
  • 2028

用python字典写的一个简单的通讯录小系统

直接上代码: mydic={} while True: print("="*7,"通讯录管理系统","="*7) print("1.增加姓名和手机") print("2.删除...
  • diye666
  • diye666
  • 2017年12月19日 16:18
  • 175

ObjectC----实现简单的通讯录(增删改查)

// Created By 郭仔 2015年04月09日21:27:50 经过两天的低迷,状态在慢慢的回归了,生活还要继续,人生还需奋斗! 祝:好人一生平安!!! ==================...
  • guoxianzhuang
  • guoxianzhuang
  • 2015年04月09日 21:52
  • 10503
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【通讯录系统】:实现一个通讯录(可添加、删除、修改、查找、显示、清空、排序)
举报原因:
原因补充:

(最多只允许输入30个字)