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

简介: C语言实现简易通讯录(上)

普通版


功能需求


实现通讯录的增加、删除、查找、修改、显示


模块设计


分为三个模块

test.c      测试通讯录

contact.h     函数和类型的声明

contact.c     函数的实现


test.c模块实现


首先我们得有我们的主函数

1. int main()
2. {
3.  test();
4.  return 0;
5. }

然后我们在实现test函数时,我们需要完成通讯录的显示菜单,还需要操作者可以进行选择

具体实现如下


1. void menu()
2. {
3.  printf("***********      通讯录     *************\n");
4.  printf("******* 1 添加联系人  2 删除联系人 ******\n");
5.  printf("******* 3 查找联系人  4 修改联系人 ******\n");
6.  printf("******* 5 显示通讯录  0 退出通讯录 ******\n");
7.  printf("*****************************************\n");
8. }
9. 
10. void test()
11. {
12.   int input = 0;
13.   Contact con;//创建通讯录
14.   InitContact(&con);
15.   do
16.   {
17.     menu();
18.     printf("请选择:");
19.     scanf("%d", &input);
20.     switch (input)
21.     {
22.     case ADD :
23.       AddContact(&con);
24.       break;
25.     case DEL :
26.       DelContact(&con);
27.       break;
28.     case SEARCH :
29.       SearchContact(&con);
30.       break;
31.     case MODIFY :
32.       ModifyContact(&con);
33.       break;
34.     case SHOW :
35.       ShowContact(&con);
36.       break;
37.     case EXIT :
38.       printf("退出通讯录\n");
39.       break;
40.     default: printf("输入错误,重新输入\n");
41.       break;
42.     }
43.   } while (input);
44. 
45. }

而在此处出现的结构体Contact与枚举会在contact.h模块进行声明,还有函数InitContact声明也会在contact.h说明,具体实现会在contact.c模块进行实现


contact.h模块实现

类型的声明


1. 
2. //类型的声明
3. 
4. typedef struct PeoInfo
5. {
6.  char name[MAX_NAME];
7.  int age;
8.  char sex[MAX_SEX];
9.  char tele[MAX_TELE];
10.   char addr[MAX_ADDR];
11. }PeoInfo;
12. 
13. 
14. //通讯录
15. 
16. typedef struct Contact
17. {
18.   PeoInfo data[MAX];
19.   int sz;
20. }Contact;

sz存在的意义为可以知道通讯录里有多少联系人


函数的声明


1. //函数声明
2. 
3. //初始化通讯录
4. void InitContact(Contact* pc);
5. 
6. //增加联系人
7. void AddContact(Contact* pc);
8. 
9. //显示所有联系人的信息
10. void ShowContact(const Contact* pc);
11. 
12. //删除指定联系人
13. void DelContact(Contact* pc);
14. 
15. //查找指定联系人
16. void SearchContact(const Contact* pc);
17. 
18. //修改指定联系人
19. void ModifyContact(Contact* pc);

头文件、枚举、宏定义


1. #include <stdlib.h>
2. #include <string.h>
3. #include <assert.h>
4. #include <stdio.h>
5. #define MAX 100
6. #define MAX_NAME 20
7. #define MAX_SEX 5
8. #define MAX_TELE 12
9. #define MAX_ADDR 30
10. enum OPTION//枚举
11. {
12.   EXIT,//0
13.   ADD,
14.   DEL,
15.   SEARCH,
16.   MODIFY,
17.   SHOW
18. };

contact.c 模块实现

初始化通讯录


1. void InitContact(Contact* pc)
2. {
3.  assert(pc);//断言,防止pc为空指针
4.  memset(pc->data, 0, sizeof(pc->data));//进行复制,每个字节都为0
5.  pc->sz = 0;
6. }

增加联系人


这里注意我们需要我们需要进行判断如果通讯录已满,我们就得进行提醒

1. void AddContact(Contact* pc)
2. {
3.  assert(pc);
4.  if (pc->sz >= MAX)
5.  {
6.    printf("通讯录已满,无法添加");
7.    return;
8.  }
9.  printf("请输入名字:>");
10.   scanf("%s", pc->data[pc->sz].name);
11.   printf("请输入年龄:>");
12.   scanf("%d", &(pc->data[pc->sz].age));
13.   printf("请输入性别:>");
14.   scanf("%s", pc->data[pc->sz].sex);
15.   printf("请输入电话:>");
16.   scanf("%s", pc->data[pc->sz].tele);
17.   printf("请输入地址:>");
18.   scanf("%s", pc->data[pc->sz].addr);
19.   pc->sz++;
20.   printf("成功增加联系人\n");
21. }
相关文章
|
1月前
|
存储 C语言
探索C语言数据结构:利用顺序表完成通讯录的实现
本文介绍了如何使用C语言中的顺序表数据结构实现一个简单的通讯录,包括初始化、添加、删除、查找和保存联系人信息的操作,以及自定义结构体用于存储联系人详细信息。
19 2
|
1月前
|
存储 C语言
手把手教你用C语言实现通讯录管理系统
手把手教你用C语言实现通讯录管理系统
|
6月前
|
C语言
C语言——通讯录系统—基于 VS2022
C语言——通讯录系统—基于 VS2022
|
3月前
|
存储 搜索推荐 算法
【C语言】C语言—通讯录管理系统(源码)【独一无二】
【C语言】C语言—通讯录管理系统(源码)【独一无二】
|
3月前
|
存储 数据可视化 C语言
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
|
5月前
|
机器学习/深度学习 搜索推荐 程序员
C语言实现个人通讯录(功能优化)-2
C语言实现个人通讯录(功能优化)
C语言实现个人通讯录(功能优化)-2
|
5月前
|
存储 C语言 索引
C语言实现个人通讯录(功能优化)-1
C语言实现个人通讯录(功能优化)
C语言实现个人通讯录(功能优化)-1
|
5月前
|
C语言
C语言学习记录——通讯录(静态内存)
C语言学习记录——通讯录(静态内存)
32 2
|
6月前
|
存储 C语言
C语言实现通讯录
C语言实现通讯录
40 2
|
6月前
|
存储 C语言
C语言实验-动态顺序表实现简易通讯录(二)
在这个C语言实验中,你将实现一个简单的通讯录,它使用动态顺序表来存储联系人信息。
51 2