设为首页 加入收藏

TOP

怎么用C语言实现一个通讯录?(一)
2018-05-21 15:48:29 】 浏览:518
Tags:怎么 语言 实现 一个 通讯录

实现一个通讯录

要求

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

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

提供方法

1. 添加联系人信息

2. 删除指定联系人信息

3. 查找指定联系人信息

4. 修改指定联系人信息

5. 显示所有联系人信息

6. 清空所有联系人

7. 以名字排序所有联系人

思路

TDD(测试驱动开发)思想,模块化编程

代码实现

头文件Contact的实现

#ifndef _CONTACT_H__
#define _CONTACT_H__

#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_PHONE 20
#define MAX_ADDR 30
#define MAX_PEO 1000

enum OPTION //通讯录的功能选项
{
    EXIT, //退出
    ADD, //添加联系人信息
    DELETE, //删除指定联系人信息
    SEARCH, //查找指定联系人信息
    MODIFY, //修改指定联系人信息
    SHOW, //显示所有联系人信息
    EMPTY, //清空所有联系人
    SORT, //以名字排序所有联系人
};

enum Mod_list//修改联系人信息的选项
{
    EXITMODIFY,
    NAME,
    SEX,
    AGE,
    PHONE,
    ADDRESS,
};

enum Sort_list//排序方式的选项
{
    EXIT_SORT,
    NAME_SORT,
    AGE_SORT,
    PHONE_SORT,
    ADDRESS_SORT,
};

typedef struct PeoInfo
{
    char name[MAX_NAME];//名字
    char sex[MAX_SEX];//性别
    int age;//年龄
    char phone[MAX_PHONE];//电话
    char address[MAX_ADDR];//地址
}PeoInfo;

typedef struct Contact
{
    PeoInfo data[MAX_PEO];//通讯录
    int count;//通讯录人数
}Contact,*pContact;


void menu();
void InitContact(pContact pc);//初始化通讯录函数
void AddContact(pContact pc);//添加联系人信息函数
void DeleteContact(pContact pc);//删除指定联系人信息函数
void SearchContact(pContact pc);//查找指定联系人信息函数
void ModifyContact(pContact pc);//修改指定联系人信息函数
void ShowContact(pContact pc);//显示所有联系人信息函数
void EmptyContact(pContact pc);//清空所有联系人函数
void SortContact(pContact pc);//排序所有联系人函数

#endif
头文件Bubble_sort的实现
#ifndef _BUBBLE_SORT_H__
#define _BUBBLE_SORT_H__

void bubble_sort(void *base, int sz, int width, int(*cmp)(const void *e1, const void *e2));
int cmp_name(const void* e1, const void* e2);
int cmp_age(const void* e1, const void* e2);
int cmp_phone(const void* e1, const void* e2);
int cmp_address(const void* e1, const void* e2);

#endif
Contact定义函数的实现
#define _CRT_SECURE_NO_WARNINGS 1
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include "Contact.h" #include "Bubble_sort.h" void menu()//功能选择菜单 { printf("*****************************************\n"); printf("********* 1.ADD 2.DELETE *********\n"); printf("********* 3.SEARCH 4.MODIFY *********\n"); printf("********* 5.SHOW 6.EMPTY *********\n"); printf("********* 7.SORT 0.EXIT *********\n"); printf("*****************************************\n"); } void Mod_list()//修改信息选择菜单 { printf("*****************************************\n"); printf("********* 1.name 2.sex *********\n"); printf("********* 3.age 4.phone *********\n"); printf("********* 5.address 0.exit *********\n"); printf("*****************************************\n"); } void Sort_list()//排序方式选择菜单 { printf("*****************************************\n"); printf("********* 1.name 2.age *********\n"); printf("********* 3.phone 4.address *********\n"); printf("********* 0.exit *********\n"); printf("*****************************************\n"); } int find_person(pContact pc)//查找有无该联系人,若有,则返回该联系人下标;若无,返回-1 { char person_name[MAX_NAME]; int i = 0; assert(pc); printf("请输入要查找人的姓名:"); assert(1 == scanf("%s", person_name)); for (i = 0; i < pc->count; i++) { if (strcmp(person_na
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言函数传递指针参数的问题详解 下一篇C语言如何实现交换两个数?

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目