当前位置:首页 » 《随便一记》 » 正文

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

11 人参与  2024年02月09日 19:16  分类 : 《随便一记》  评论

点击全文阅读


在这里插入图片描述

通讯录

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

?1.设计要求

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

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

?人的信息:

姓名 年龄 性别 电话 地址

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

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

?2.程序实现

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

contact.h

#pragma once//类型的声明#include <stdio.h>#include <assert.h>#include <string.h>#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 < c->sz; i++){   printf("%-20s%-5s%-5s%-12s%-30s\n",c->data[i].name, c->data[i].age, c

点击全文阅读


本文链接:http://zhangshiyu.com/post/67974.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • (番外)+(全书)乔喜商凛(也曾偷藏欢喜结局+番外)全书在线_(乔喜商凛)列表_笔趣阁(也曾偷藏欢喜结局+番外)
  • 「为你归雪满舟」精彩章节试读_谢景期俞诗俞家独家章节限时试读
  • (番外)+(全书)男友帮假千金冒充我,我靠弹幕杀疯了(陈子期林依然+番外+全书)_(男友帮假千金冒充我,我靠弹幕杀疯了+番外+全书)免费_笔趣阁(陈子期林依然)
  • (番外)+(全书)商凛乔喜乔雪眠(乔喜商凛乔雪眠+后续+结局)_商凛乔喜乔雪眠免费列表_笔趣阁(乔喜商凛乔雪眠+后续+结局)
  • 许我三千繁星愿结局+番外(楚砚风慕星眠)完结_(许我三千繁星愿结局+番外)列表_笔趣阁(楚砚风慕星眠)
  • 时年田野田欣瑶男友为妹妹推迟婚宴后我上了别人的婚车全书+后续+结局列表_笔趣阁(男友为妹妹推迟婚宴后我上了别人的婚车全书+后续+结局时年田野田欣瑶)
  • 裴谨言桑年你是我未拆的遗书结局+番外列表_笔趣阁(你是我未拆的遗书裴谨言桑年结局+番外)
  • 也曾偷藏欢喜全书+后续列表_也曾偷藏欢喜全书+后续(乔喜商凛)
  • 许我永远爱你结局+番外免费_(沧溟星茗姬俏)许我永远爱你结局+番外全书列表
  • 「爱意尘封,青灯祭情」章节彩蛋限时释出‌_云婉谢舒鸣老公后续已完结
  • 若许君心似我心结局+番外(宋元初萧乘风)若许君心似我心结局+番外_(宋元初萧乘风)列表_笔趣阁(若许君心似我心结局+番外)宋元初萧乘风
  • (番外)+(全书)也曾偷藏欢喜乔喜结局+番外(乔喜商凛乔雪眠)完结_(也曾偷藏欢喜乔喜结局+番外)列表_笔趣阁(乔喜商凛乔雪眠)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1