小工具知识网

当前位置: 首页 > 行业知识 > 进阶C语言-通讯录的实现

行业知识

进阶C语言-通讯录的实现

2026-10-29 03:22:17 来源:互联网转载

通讯录

  • 1.设计要求
  • 2.程序实现
    • 2.1打印菜单及初始化通讯录
    • 2.2显示所有联系人
    • 2.3查找指定的联系人
    • 2.4删除指定的联系人
    • 2.5查找指定的联系人
    • 2.6修改指定联系人
    • 2.7按照年龄排序(以此为例)
  • 3.全部源码以及实现

1.设计要求

通��前面关于结构体及相关自定义类型的学习,我们就可以写上一个通讯录这样的程序,该程序有如下要求:

  1. 可以保存100个人的信息。
  2. 增加人的信息。
  3. 删除指定联系人的信息。
  4. 查找指定联系人的信息。
  5. 修改指定联系人的信息。
  6. 排序通讯录的信息。
  7. 显示所有联系人的信息。

人的信息:

  • 姓名
  • 年龄
  • 性别
  • 电话
  • 地址

✅为了使咱们的程序更加的清晰易懂,我们可以将该工程分为三个文件:

  • test.c-测试代码
  • contact.h-声明
  • contact.c-实现

2.程序实现

2.1打印菜单及初始化通讯录

“contact.h”

#pragma once//类型的声明#include #include #include #define Max 100#define NAME_MAX 10typedef struct PepInfo{   char name[NAME_MAX];int age;char sex[5];char tele[12];char addr[20];}PInfo;typedef struct Contact{   PInfo data[Max];int sz;//用于记录当前通讯录中存放了多少个人的信息}Contact;//初始化通讯录void InitContact(Contact* c);

“contact.c”

#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"void InitContact(Contact *c){   assert(c);c->sz = 0;memset(c->data, 0, sizeof(c->data));}

“test.c”

//文件用于测试通讯录的基本功能。#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"//自己定义的头文件用""void menu(){   printf("***********************************\n");printf("********1.增加联系人***************\n");printf("                                   \n");printf("********2.删除指定联系人的信息*****\n");printf("                                   \n");printf("********3.查找指定联系人的信息*****\n");printf("                                   \n");printf("********4.修改指定联系人的信息*****\n");printf("                                   \n");printf("********5.排序通讯录的信息*********\n");printf("                                   \n");printf("********6.显示所有联系人的信息*****\n");printf("                                   \n");printf("********0.退出程序*****************\n");printf("***********************************\n");}enum Option{   EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT};int main(){   int input = 0;Contact con;//初始化函数InitContact(&con);do{   menu();printf("请输入你的选择:>");scanf("%d", &input);switch (input){   case ADD:break;case DEL:break;case SEARCH:break;case MODIFY:break;case SHOW:break;case SORT:break;case EXIT:printf("退出通讯录\n");break;default:break;}} while (input);return 0;}

2.2显示所有联系人

“contact.h”

//显示所有联系人void ShowContact(const Contact* c);

“contact.c”

void ShowContact(const Contact* c){   assert(c);if (c->sz == 0){   printf("通讯录为空,无需打印!\n");}int i = 0;printf("%-20s%-5s%-5s%-12s%-30s\n", "姓名", "年龄", "性别", "电话", "地址");for (int i = 0; i sz; i++){   printf("%-20s%-5s%-5s%-12s%-30s\n",c->data[i].name, c->data[i].age, c

上一篇:nines这个单词怎么读?

下一篇:【C语言初阶】指针篇—上