c语言小项目——通讯录(动态版)(下)

简介: c语言小项目——通讯录(动态版)

查找好友信息

void SearchContact(const struct Contact* ps)
{
  printf("请输入要查找人的名字\n");
  char name[MAX_NAME];
  scanf("%s", &name);
  int i = FindByName(ps, name);
  if (i == -1)
  {
    printf("查无此人\n");
  }
  else
  {
    printf("%-20s\t%-4s\t%-5s\t%-12s\t%-20s\n", "名字", "年龄", "性别", "电话", "地址");
    printf("%-20s\t%-4d\t%-5s\t%-12s\t%-20s\n",
      ps->data[i].name,
      ps->data[i].age,
      ps->data[i].sex,
      ps->data[i].tele,
      ps->data[i].addr);
  }
}

修改好友信息

void ModifyContact(struct Contact* ps)
{
  int pos = 0;
  char name[MAX_NAME];
  printf("请输入要修改人的名字:");
  scanf("%s", name);
   pos = FindByName(ps, name);
  if (pos == -1)
    printf("要修改人的信息不存在\n");
  else
  {
    printf("请输入名字:");
    scanf("%s", ps->data[pos].name);
    printf("请输入年龄:");
    scanf("%d", &(ps->data[pos].age));
    printf("请输入性别:");
    scanf("%s", ps->data[pos].sex);
    printf("请输入电话:");
    scanf("%s", ps->data[pos].tele);
    printf("请输入地址:");
    scanf("%s", ps->data[pos].addr);
    ps->size++;
    printf("用户修改成功\n");
  }
}

打印好友信息

void ShowContact(const struct Contact* ps)
{
  if (ps->size == 0)
    printf("通讯录为空\n");
  else
  {
    int i = 0;
    //标题
    printf("%-20s\t%-4s\t%-5s\t%-12s\t%-20s\n", "名字", "年龄", "性别", "电话", "地址");
    for (i = 0; i < ps->size; i++)
    {
      printf("%-20s\t%-4d\t%-5s\t%-12s\t%-20s\n",
        ps->data[i].name,
        ps->data[i].age,
        ps->data[i].sex,
        ps->data[i].tele,
        ps->data[i].addr);
    }
  }
}

按名字排序好友信息

int compar(const void* e1,const void* e2)
{
    return strcmp(((struct PeoiInfor*)e1)->name, ((struct PeoiInfor*)e2)->name);
}
void SortContact(struct Contact *ps)
{
    qsort(ps->data, ps->size, sizeof(ps->data[0]), compar);
    if (ps->size == 0)
        printf("通讯录为空\n");
    else
    {
        int i = 0;
        //标题
        printf("%-20s\t%-4s\t%-5s\t%-12s\t%-20s\n", "名字", "年龄", "性别", "电话", "地址");
        for (i = 0; i < ps->size; i++)
        {
            printf("%-20s\t%-4d\t%-5s\t%-12s\t%-20s\n",
                ps->data[i].name,
                ps->data[i].age,
                ps->data[i].sex,
                ps->data[i].tele,
                ps->data[i].addr);
        }
    }
}

退出销毁内存

//退出销毁内存
void DestroyContact(struct Contact* ps)
{
  free(ps->data);
  ps->data;
}
相关文章
|
1月前
|
存储 搜索推荐 算法
【C语言】C语言—通讯录管理系统(源码)【独一无二】
【C语言】C语言—通讯录管理系统(源码)【独一无二】
|
1月前
|
存储 数据可视化 C语言
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
|
3月前
|
C语言
C语言实战项目——学生试卷分数统计
C语言实战项目——学生试卷分数统计
|
3月前
|
机器学习/深度学习 搜索推荐 程序员
C语言实现个人通讯录(功能优化)-2
C语言实现个人通讯录(功能优化)
C语言实现个人通讯录(功能优化)-2
|
3月前
|
存储 C语言 索引
C语言实现个人通讯录(功能优化)-1
C语言实现个人通讯录(功能优化)
C语言实现个人通讯录(功能优化)-1
|
3月前
|
C语言
C语言学习记录——通讯录(静态内存)
C语言学习记录——通讯录(静态内存)
26 2
|
3月前
|
存储 人机交互 C语言
【C语言项目实战】使用单链表实现通讯录
【C语言项目实战】使用单链表实现通讯录
|
3月前
|
存储 C语言
C语言学习记录——通讯录(动态内存)
C语言学习记录——通讯录(动态内存)
26 0
|
3月前
|
C语言
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
36 0
|
4月前
|
C语言 C++
C语言项目(1)----扫雷小游戏的实现
C语言项目(1)----扫雷小游戏的实现
46 0