C语言实现通讯录(简易版)

本文通过C语言详细介绍了如何实现一个简易通讯录系统,包括通讯录的创建与初始化、增加联系人、删除联系人、查找联系人、修改联系人信息、排序联系人以及打印通讯录等功能。通讯录中每个联系人包含姓名、性别、年龄、联系方式和家庭住址等信息,使用结构体和枚举类型进行数据结构设计,并借助于memset和qsort等库函数实现各种操作。
摘要由CSDN通过智能技术生成

一、前言

本文将会用C语言实现通讯录系统。

此通讯录的联系人的信息由---姓名---性别---年龄---联系方式---家庭住址---这五个部分组成。

通讯录的功能包含以下6点

  1. 增加联系人

  1. 删除目标联系人

  1. 查找目标联系人

  1. 修改目标联系人的信息

  1. 排序通讯录的联系人

  1. 打印通讯录联系人的信息

二、通讯录如何实现

  1. 菜单的创建和选择

为通讯录打造一个菜单,以便用户了解通讯录的相关功能。

首先需要建立一个菜单,便于用户了解此通讯录

代码如下:

使用printf引用头文件

#include <stdio.h>

void menu()
{
    printf("*****************************************\n");
    printf("*******    1.Add     2.Erase       ******\n");
    printf("*******    3.Search   4.Amend      ******\n");
    printf("*******    5.Sort     6.Print      ******\n");
    printf("***********     0.Exit     **************\n");
}

运行效果如下:

根据菜单里的选项进行相关功能的实现

采用枚举类型的结构体,成员变量的大小是从0开始,依次递增

enum option
{
    EXIT,
    ADD,
    ERASE,
    SEARCH,
    AMEND,
    SORT,
    PRINT
};

EXIT代表0依次递增

写代码实现菜单功能使用do while语句进行最少一次的循环

int main()
{
    int input = 0;
    do
    {
        menu();
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
        case ADD:
            break;
        case ERASE:
            break;
        case SEARCH:
            break;
        case AMEND:
            break;
        case SORT:
            break;
        case PRINT:
            break;
        case EXIT:
            printf("退出通讯录\n");
            break;
        default:
            printf("选择错误,重新输入\n");
            break;
        }
    } while(input);
}
  1. 联系人如何创建

一个人联系人由---姓名--性别--年龄--联系方式--家庭住址,这五个部分组成。

所以用结构体来组成联系人信息。

typedef struct peoinfo    //typedef结构体定义一个新的名字
{
    char name[NAME_MAX];
    char set[SET_MAX];
    int age;
    char tele[TELE_MAX];
    char addr[ADDR_MAX];
}peoinfo;

//静态版本
//创建一个结构体变量包含     data数组&&sz
typedef struct contack
{
    peoinfo data[MAX];//1000个结构体为peoinfo中存放的信息
    int sz;//记录当前通讯录中有效信息的个数
}contack;

以上是两个结构体

第一个结构体组成联系人的信息

第二个结构体以data命名peoinfo这个结构体 data[MAX]为表示有MAX个数组,记录此通讯录当前有效信息的个数。

对MAX以及第一个结构体的元素数组进行宏定义以便更好的维护

如下代码:

#define NAME_MAX 20
#define SET_MAX 10
#define TELE_MAX 20
#define ADDR_MAX 10
#define MAX 1000
  1. 通讯录功能实现
(1) 通讯录的创建和初始化

首先需要创建通讯录在将其初始化

初始化函数使用memset这个库函数

memset的作用是将某一块内存中的内容全部设置为指定的值

使用memset函数引用头文件

#include <string.h>

    contack con;//创建通讯录

    initcontack(&con);//初始化通讯录
//初始化函数实现如下
void initcontack(contack* p)
{
    p->sz = 0;//sz为当前通讯录中有效信息的个数
    memset(p->data, 0, sizeof(p->da
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值