[C.C++] C语言 —— 通讯录

376 0
Honkers 2025-5-30 12:39:35 来自手机 | 显示全部楼层 |阅读模式

引言

通讯录是C语言中非常简单且实用的小项目,涉及C语言中很多基础知识,能够独立写出通讯录这个小项目,证明自身对C语言知识有了一定的掌握。今天来探讨通讯录三种版本的实现

一、静态版通讯录

contact.h

pragma once 是防止头文件在程序运行时在内存的反复调用

string.h 头文件是调用字符串函数

stdio.h 就不必多说了

assert.h 头文件是在引用assert函数,防止一些指针为NULL,影响程序运行

 enum 是用来枚举出通信录八大主功能,增加代码可读性和规范性

在contact.h里面直接将contact.c中大量出现的变量进行定义,之后遇到这些变量就不用重复定义了,提高代码效率

 创建一个结构体,存放联系人信息

再创建一个结构体

data [MAX] 是一个能存放1000个Ploinfo(也就是上一个结构体)信息的数组

sz是用来纪录联系人个数

  1. #pragma once
  2. #include<string.h>
  3. #include<stdio.h>
  4. #include<assert.h>
  5. //类型的声明
  6. enum Option
  7. {
  8. EXIT,
  9. ADD,
  10. DEL,
  11. SEARCH,
  12. MODIFY,
  13. PRINT,
  14. CLEAR,
  15. SORT
  16. };
  17. #define MAX 1000
  18. #define NAME_MAX 20
  19. #define SEX_MAX 5
  20. #define ADDR_MAX 30
  21. #define TELE_MAX 12
  22. typedef struct Ploinfo
  23. {
  24. char name[NAME_MAX]; //姓名
  25. char sex[SEX_MAX]; //性别
  26. int age; //年龄
  27. char addr[ADDR_MAX]; //地址
  28. char tele[TELE_MAX]; //电话号码
  29. }Ploinfo;
  30. typedef struct Contact
  31. {
  32. struct Ploinfo data[MAX]; //存放联系人的数组
  33. int sz; //统计联系人的个数
  34. }Contact;
  35. //函数的声明
  36. //contact 初始化
  37. void InitContact(Contact* pc);
  38. //Contact 增加联系人的信息
  39. void AddContact(Contact* pc);
  40. //Contact 打印联系人的信息
  41. void PrintContact(const Contact* pc);//只是打印,不会改变Contact里面的数据,所以可以const来修饰
  42. //Contact 删除指定联系人
  43. void DelContact(Contact* pc);
  44. //Contact 查找指定联系人
  45. void SearchContact(Contact* pc);
  46. //Contact 修改指定联系人信息
  47. void ModifyContact(Contact* pc);
  48. //Contact 通讯录信息排序
  49. void sortContact(Contact* pc);
  50. //Contact 通讯录信息清空
  51. void ClearContact(Contact* pc);
复制代码

contact.h

contact.h是我们自主创建的头文件,里面包含了我们运行contact.c需要的所有头文件和变量

在contact.c开头只需要引用这一个contact.h头文件就行了

InitContact函数是用来初始化通讯录的,在添加联系人信息之前,需要把data和sz全都初始化为0

assert是防止pc为NULL

memset是字符串函数,这里的作用是把data [MAX] 里面的空间全部设置为0

AddContact函数是用来添加联系人信息的

在添加之前需确认通讯录空间是否足够,如果不够是无法添加的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4014
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行