用C语言实现简易通讯录

2020-01-06 18:42:59王冬梅

C语言实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括:

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

**提供方法:

1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人**

思路分析:

首先我们可以分三个模块来解决这个问题,第一个模块我们需要一个头文件,这个头文件里可以包含一些相应信息,当实现文件和测试文件包含自己定义的头文件时便可以获得一些相关的信息。所以头文件里应该包括一个结构体,这个结构体里应包含姓名,性别,年龄,电话,住址。同时还可以定义一个结构体,这个结构体里包含通讯录,同时通讯录里人员的计数变量,将通讯录的地址传到别的地方便可以实现对它遍历或者其他操作。
第二个模块便是我们的测试函数,测试函数便可以实现我们的菜单打印,同时由我们接收不同的值便可以实现不同的操作,就是相应的方法的实现,这里很明显可以通过一个switch语句来进行控制。
第三个模块便是我们的方法实现的函数,将模块2里定义的类型为通讯录的地址传到各个方法里,这样便可以实现对通讯录的操作。
1.linkman.h(头文件)

 


#ifndef __LINKMAN_H__
#define __LINKMAN_H__

#include<stdio.h>
#include<windows.h>
#include<string.h>
#pragma warning (disable:4996)
typedef struct LINKMAN//建立结构体,存放联系人信息
{
  char name[20];
  char sex[10];
  int age;
  int tel[12];
  char addr[50];
}LINKMAN;

typedef struct Statis //把通讯录和人员统计放在结构体内
{
  LINKMAN num[1000];
  int count;
}Statis;

void inint_linkman(Statis *p);//初始化数组
void Add_linkman(Statis *p);// 添加联系人信息
void Dele_linkman(Statis *p);//删除指定联系人信息
void Find_linkman(Statis *p);//查找指定联系人信息
void Revise_linkman(Statis *p);//修改指定联系人信息
void Display_linkman(Statis *p);//显示所有联系人信息
void Empty_linkman(Statis *p);//清空所有联系人 
void sort_linkman(Statis *p);//以名字排序所有联系人
#endif

2.test.c(测试)


#include "linkman.h"
Statis sta;
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");

}

void test()
{
  int i = 0;
  do
  {
    menu();
    printf("请输入你要进行的选项:");
    scanf("%d", &i);
    switch (i)
    {
    case 1:
      Add_linkman(&sta);
      break;
    case 2:
      Dele_linkman(&sta);
      break;
    case 3:
      Find_linkman(&sta);
      break;
    case 4:
      Revise_linkman(&sta);
      break;
    case 5:
      Display_linkman(&sta);
      break;
    case 6:
      Empty_linkman(&sta);
      break;
    case 7:
      sort_linkman(&sta);
      break;
    case 0:
      exit(1);
      break;
    default:
      printf("输入错误n");
      break;
    }
  } while (i);
}


int main()
{
  inint_linkman(&sta);
  test();
  system("pause");
  return 0;
}