main函数入口:

//test.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "address.h" //显示界面
void Interface_Display()
{
printf("**********通讯录**********\n");
printf("****1.添加联系人信息******\n");
printf("****2.删除指定联系人信息**\n");
printf("****3.查找指定联系人信息**\n");
printf("****4.修改指定联系人信息**\n");
printf("****5.显示所有联系人信息**\n");
printf("****6.清空所有联系人******\n");
printf("****7.按名字排序所有联系人\n");
printf("****8.退出通讯录**********\n");
printf("\n");
printf("请输入要操作的序号:\n");
} int main()
{
Con pcon;
int choice=;
Init(&pcon);
while (choice)
{
Interface_Display(); printf("请选择操作序号:>");
scanf("%d", &choice);
switch (choice)
{
case :
Insert(&pcon); //插入
system("cls"); //清屏
break;
case :
Delete(&pcon); //删除
system("cls");
break;
case :
Search(&pcon); //查找
break;
case :
Change(&pcon); //修改
system("cls");
break;
case :
Show(&pcon); //打印
break;
case :
Clear(&pcon);
break; //清除
case :
Sort(&pcon); // 以姓名排序
break;
case :
exit(); //退出
default:
printf("输入有误请重新输入!\n"); break; }
printf("\n"); }
return ;
}
//address.h
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<string.h> #define MAX_SIZE 1000 typedef struct pCON
{
char name[]; //姓名
char sex[]; //性别
char age[]; //年龄
char tele[]; //电话
char address[] ; //地址
}pCon; typedef struct CONTACT
{
struct pCON data[MAX_SIZE]; //存储最大容量
int size; //当前存储容量
}Con; void Init(Con* pcon); //初始化
void Insert(Con* pcon); //插入
void Delete(Con* pcon); //删除
void Search(Con* pcon); //查找
void Change(Con* pcon); //更改
void Show(Con* pcon); //打印
void Clear(Con* pcon); //清除
void Sort(Con* pcon); //以姓名排序
//address.c
#include"address.h"
void Init(Con* pcon) //初始化
{
if (pcon == NULL)
{
printf("非法输入!\n");
return;
}
pcon->size = ;
} int find(Con *pcon, char *name) //根据姓名查找位置
{
int i = ;
for (i = ; i < pcon->size; i++)
{
if (strcmp(name, pcon->data[i].name)==)
{
return i;
}
}
return -;
} void Insert(Con *pcon) //插入
{
if (pcon->size == MAX_SIZE)
{
printf("通讯录已经满了!\n");
return;
}
printf("请输入名字:");
scanf("%s", (pcon->data[pcon->size]).name);
printf("请输入性别:");
scanf("%s", (pcon->data[pcon->size]).sex);
printf("请输入年龄:");
scanf("%s", (pcon->data[pcon->size]).age);
printf("请输入电话:");
scanf("%s", (pcon->data[pcon->size]).tele);
printf("请输入地址:");
scanf("%s", (pcon->data[pcon->size]).address);
pcon->size++;
} void Delete(Con *pcon) //删除
{
char name[];
int ret = ;
printf("请输入要删除人的名字:");
scanf("%s", name);
ret = find(pcon, name);
if (ret!=-)
{
int i = ;
for (i = ret; i < pcon->size-; i++)
{
pcon->data[ret] = pcon->data[ret + ];
}
pcon->size--;
printf("已删除该联系人\n");
}
else
{
printf("此人不存在,删除失败!\n");
}
} void Search(Con *pcon) //查找信息
{
char name[];
int ret = ;
printf("请输入联系人姓名\n");
scanf("%s", name);
ret = find(pcon, name);
if (ret!=-)
{
printf("姓名:%s 性别: %s 年龄 :%s 电话:%s 地址: %s \n",
pcon->data[ret].name, pcon->data[ret].sex,
pcon->data[ret].age, pcon->data[ret].tele,
pcon->data[ret].address );
}
else
{
printf("没有找到\n");
} } void Change(Con* pcon) //修改
{
char name[];
int ret = ;
printf("请输入联系人姓名:\n");
scanf("%s", name);
ret = find(pcon, name);
if (ret!=-)
{
printf("请输入修改后名字:");
scanf("%s", (pcon->data[ret]).name);
printf("请输入修改后性别:");
scanf("%s", (pcon->data[ret]).sex);
printf("请输入修改后年龄:");
scanf("%s", (pcon->data[ret]).age);
printf("请输入修改后电话:");
scanf("%s", (pcon->data[ret]).tele);
printf("请输入修改后地址:");
scanf("%s", (pcon->data[ret]).address);
printf("已经修改\n");
}
} void Show(Con * pcon) //显示
{
if (pcon->size == )
{
printf("通讯录为空!\n");
}
int i = ;
for (i = ; i < pcon->size; i++)
{
printf("姓名:%s 性别: %s 年龄 :%s 电话:%s 地址: %s \n",
pcon->data[i].name, pcon->data[i].sex,
pcon->data[i].age, pcon->data[i].tele,
pcon->data[i].address
);
}
} void Clear(Con *pcon) //清除
{
pcon->size = ;
} void Sort(Con *pcon) //以名字排序
{
int i = ;
int j = ;
for (i = ; i < pcon->size-; i++)
{
for (j = ; j < pcon->size - i - ; j++)
{
if (strcmp(pcon->data[j].name, pcon->data[j + ].name)>)
{
pCon tmp;
tmp = pcon->data[j];
pcon->data[j] = pcon->data[j + ];
pcon->data[j + ] = tmp;
}
}
}
}

2、C语言实现通讯录的更多相关文章

  1. C语言之通讯录的模拟实现

    C语言之通讯录的模拟实现 在C语言学习结束之际,谨以此篇文章来对C语言的学习告一段落. 纲要: 通讯录的静态版本 通讯录的动态版本 通讯录的带文件版本 因为三种实现方法除了储存形式不同,其他都基本相同 ...

  2. c语言实现通讯录管理系统(c课程设计)

    工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...

  3. C语言-《通讯录》

    黑白的通讯录 --1-- 需求分析 1.1 需求 1.2 原型展示 1.3 功能分析 --2-- 代码实现 2.1 外部声明.变量.宏 2.2 模块实现 ----------------------- ...

  4. Iphone 英语语言下通讯录排序问题

    Iphone 如果把界面语言设置成English,那么通讯录默认排序是通过拼音来排的,如果联系人信息中没有设置名字的拼音,那么这些联系人都会被放到#中. 批量添加拼音的解决方案: https://gi ...

  5. C语言实现通讯录

    <span style="font-size:18px;">#include<stdio.h> #include<string.h> #incl ...

  6. C语言可以开发哪些项目?

    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...

  7. (一〇一)集成静态库RHAddressBook实现OC访问通讯录

    使用官方的AddressBook框架仅能使用C语言访问通讯录,十分不便,这里介绍集成第三方框架RHAddressBook的方法,该框架可以通过OC访问和操作通讯录. 该框架是一个静态库,集成比较复杂. ...

  8. C语言可以开发哪些项目?(转)

    原文地址:https://www.cnblogs.com/shiyanlou/p/6098661.html 知乎:https://www.zhihu.com/question/20564904 C语言 ...

  9. 17个C语言可以做的小案例项目

    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中……,这些迷茫也导致了我们在学习的过程 ...

随机推荐

  1. SQL学习笔记(三)

    左连接 格式:select * from 表1 left join 表2 on 表1.列=表2.列 例1:查询所有学生的成绩,包括没有成绩的学生. 例2:查询所有学生的成绩,包括没有成绩的学生,需要显 ...

  2. SQL Server 2012 无人值守安装

    方法1,通过指定条个參数安装   setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=<validpid> /F ...

  3. 肿瘤免疫疗法 | 细胞治疗和PD1/PDL1 | Tumor immunotherapy | cell therapy

    人类肿瘤治疗史上的里程碑无疑一定有一座是肿瘤免疫疗法的. 而肿瘤免疫疗法的主要两大领域,细胞治疗以及以PD1/PDL1为代表的免疫检查点抑制剂都在飞速发展. 目前,已经有5种抗PD1/PDL1抗体药物 ...

  4. org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

    编程中遇到:org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot ...

  5. F12找到页面某一元素所绑定的点击事件

    比如我要查看银行账号这个标签所绑定的事件. 操作过程中使用的是谷歌浏览器 第一步:在该元素上右键→检查 第二步:点击Event Listeners 这样就能看到该元素绑定的所有事件了 第三步:展开cl ...

  6. 办公室上网慢原因排查 有人下载东西 设置行为管理 宽带分配设置独立下行宽带 TL-WVR1200L

    办公室上网慢原因排查 有人下载东西  设置行为管理 宽带分配设置独立下行宽带

  7. git clone时报错“Failed to connect to 127.0.0.1 port 2453: Connection refused”如何处理?

    1. 查看git的配置 git config --global --list| grep -i proxy 如果有内容输出,那么unset配置项,如: git config --global --un ...

  8. flutter drawer 自定义图标 icon 手动打开drawer

    方法1:GlobalKey import "package:flutter/material.dart"; class Test extends StatefulWidget { ...

  9. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...

  10. Python“文件操作”Excel篇(上)

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...