用C语言完成通讯录小项目(无动态内存版本)

本文描述了一个使用C语言实现的通讯录项目,包括菜单设计、功能模块如增加、删除、查找和修改等操作,以及如何通过结构体和头文件组织代码。还讨论了内存管理和持久化存储的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目目的:

制作一个通讯录项目,通过通讯录能够存入好友的id号,姓名,性别,手机号和地址

菜单功能:

菜单显示通讯录的主要功能:增加、删除、查找、修改、排序、显示、退出、保存

创建文件:

test.c:主要完成整个项目的规划(功能模块)

contact.c:主要用来实现函数

contact.h:只做函数的声明和一些其他预处理指令所进行的,编译后不产生代码

首先将功能模块在test.c中用函数的形式做成一个菜单

void menu()
{
  printf("*******  1. add    ********\n");
  printf("*******  2. del    ********\n");
  printf("*******  3. search ********\n");
  printf("*******  4. modify ********\n");
  printf("*******  5. show   ********\n");
  printf("*******  6. sort   ********\n");
  printf("*******  0. exit   ********\n");
  printf("*******  7. save   ********\n");
}

将大致思路写在test.c的mian函数中

int main()
{
  int input=0;
  int size=0;//通讯录中好友的个数
  struct InforContact con[MAX];//创建一个存有1000个人信息的通讯录
  InitContact(&con,size);//初始化通讯录
  do
  {
    menu();
    switch(input)
    {
        //case后面的数字是和上面菜单上对应的
      case 0:
        break;
      case 1:
        break;
      case 2:
        break;
      case 3:
        break;
      case 4:
        break;
      case 5:
        break;
      case 6:
        break;
      case 7:
        break;
      default:
        printf("选择错误\n");
        break;
    }
  }while(input);
}

1.由于case后面的数字可读性很低,所以这里可以借助枚举类型增强代码的可读性

2.通讯录的功能都是要用函数来实现的,所以传参数时都需要将&con和size传递到功能函数中所以这里我们可以再创建一个结构体,将这两个变量包含进去

3.创建结构体变量和函数声明都是在contact.h中实现的,所以test.c和contact.c中都应该包含头文件#include"contact.h"

通过上述的分析,我们可以修改代码:

  • test.c
#include"contact.h"
void menu() 
{
  printf("*******  1. add    ********\n");
  printf("*******  2. del    ********\n");
  printf("*******  3. search ********\n");
  printf("*******  4. modify ********\n");
  printf("*******  5. show   ********\n");
  printf("*******  6. sort   ********\n");
  printf("*******  0. exit   ********\n");
  printf("*******  7. save   ********\n");
}
int main()
{
  int input=0;
  //int size=0;//通讯录中好友的个数
  //struct InforContact con[MAX];//创建一个存有1000个人信息的通讯录
  struct Contact con;
  InitContact(&con);//初始化通讯录
  do
  {
    menu();
    switch(input)
    {
        //case后面的数字是和上面菜单上对应的
      case EXIT:
        break;
      case ADD:
        break;
      case DEL:
        break;
      case SEARCH:
        break;
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写不出bug的小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值