通讯录的实现的功能
通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址,实现最基本的增删改查功能外,并实现显示所有信息、清空所有联系人、以名字排序所有联系人等功能
将主要代码分成了三个源文件,main.c,txl.c,txl.h,其中main.c实现通讯录的主逻辑,txl.c实现代码中的各个函数,txl.h实现用到的各种头文件与函数声明
考虑到存储通讯录联系人的信息,用结构体实现比较方便,其详细代码如下:
txl.h
#ifndef _TXL_H_
#define _TXL_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <Windows.h>
#pragma warning(disable:4996)
#define NUM 1000
#define NAME_SIZE 50
#define SEX_SIZE 10
#define TEL_SIZE 50
#define ADDR_SIZE 150
//姓名、性别、年龄、电话、住址
typedef struct people{
char name[NAME_SIZE];
char sex[SEX_SIZE];
int age;
char telephone[TEL_SIZE];
char address[ADDR_SIZE];
}people_t,*people_p;
typedef struct contact{
int cap;
int num;//标识当前可插入的位置
people_t humans[NUM];
}contact_t,*contact_p,**contact_pp;
//0. 初始化通讯录
int InitContact(contact_pp ct_p);
//1. 添加联系人信息
int Add(contact_p ct);
//2. 删除指定联系人信息
int Delete(contact_p ct);
//3. 查找指定联系人信息
int Search(contact_p ct);
//4. 修改指定联系人信息
int Modify(contact_p ct);
//5. 显示所有联系人信息
void Display(contact_p ct);
//6. 清空所有联系人
void Clear(contact_p ct);
//7. 以名字排序所有联系人
void Sort(contact_p ct);
void DestoryContact(contact_p ct);
void Menu();
#endif
main.c
#include "txl.h"
#pragma warning(disable:4996)
int main()
{
contact_p ct = NULL;
if (InitContact(&ct) == -1){
return 1;
}
int quit = 0;
int select = 0;
while (!quit){
Menu();
scanf("%d", &select);
switch (select){
case 1:
Add(ct);
break;
case 2:
Delete(<