c语言通讯录打电话,C语言实现简易通讯录 | 术与道的分享
#include
#include
#include
#include
#include
#pragma warning (disable:4996)
enum Contact //枚举变量
{
Quit, //默认为0,下面依次递增+1
Add, //1
Delect, //2
Select, //3
Alter, //4
Show, //5
Empty, //6
Sort //7
};
//打印菜单
void menu()
{
printf("#########################################################\n");
printf("############## C语言实现简易通讯录 #############\n");
printf("############## 1.添加联系人 #############\n");
printf("############## 2.删除联系人 #############\n");
printf("############## 3.查找联系人 #############\n");
printf("############## 4.修改联系人 #############\n");
printf("############## 5.显示所有联系人 #############\n");
printf("############## 6.清空联系人 #############\n");
printf("############## 7.按联系人名字排序 #############\n");
printf("############## 0.退出 #############");
}
//定义一个结构体
typedef struct Peo
{
char name[10];
char sex[5];
char Old[10];
char Phone_num[20];
char adrress[30];
}people;
people Peo[1000]; //定义一个可以存储1000用户的结构图数组
//添加联系人
int Add_Peo(people Peo[], int n)
{
int i = 0;
char select = 0;
char Rem[20];
while (select != 'N') //判断是否继续添加联系人
{
printf("姓名:");
scanf("%s", &Peo[n + i].name);
printf("性别:");
scanf("%s", &Peo[n + i].sex);
printf("年龄:");
scanf("%s", &Peo[n + i].Old);
printf("电话:");
scanf("%s", &Peo[n + i].Phone_num);
printf("地址:");
scanf("%s", &Peo[n + i].adrress);
gets(Rem); //读取字符串
printf("\n是否继续添加?(Y/N):");
scanf("%c", &select);
i++;
}
return (n + i);
}
//删除联系人
int Del_Peo(people Peo[], int n)
{
int i = 0;
int j = 0;
char Name[15];
printf("请输入你要删除联系人的姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{ //判断输入的与结构体数组中存在的是否匹配,此处为不匹配,且未到达联系人上限
i++;
}
if (i == n) //结构体的出口,说明到达联系人上限
{
printf("没有此联系人!\n\n");
return n;
}
for (j = i; j < n - 1; j++) //找到匹配的联系人,删除后,将删除处之后的数据前移一位
{
strcpy(Peo[j].name, Peo[j + 1].name);
strcpy(Peo[j].sex, Peo[j + 1].sex);
strcpy(Peo[j].Old, Peo[j + 1].Old);
strcpy(Peo[j].Phone_num, Peo[j + 1].Phone_num);
strcpy(Peo[j].adrress, Peo[j + 1].adrress);
}
printf("删除成功!\n");
return (n - 1);
}
//查找联系人
void Sel_Peo(people Peo[], int n)
{
char Name[15];
int i = 0;
printf("请输入要查看联系人的姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{
i++;
}
if (i == n)
{
printf("查找的联系人不存在!\n\n");
}
else
{
printf("姓名:%s\n", Peo[i].name);
printf("性别:%s\n", Peo[i].sex);
printf("年龄:%s\n", Peo[i].Old);
printf("电话:%s\n", Peo[i].Phone_num);
printf("地址:%s\n", Peo[i].adrress);
}
printf("\n");
}
//修改联系人信息
void Alter_Peo(people Peo[], int n)
{
int i = 0;
char Name[15];
printf("请输入你要修改的联系人姓名:");
scanf("%s", Name);
while ((strcmp(Peo[i].name, Name) != 0) && (i < n))
{
i++;
}
if (i == n)
{
printf("未查到此联系人!\n\n");
}
else
{
printf("姓名:");
scanf("%s", &Peo[i].name);
printf("性别:");
scanf("%s", &Peo[i].sex);
printf("年龄:");
scanf("%s", &Peo[i].Old);
printf("电话:");
scanf("%s", &Peo[i].Phone_num);
printf("地址:");
scanf("%s", &Peo[i].adrress);
}
}
//显示所有联系人信息
void Show_Peo(people Peo[], int n)
{
int i = 0;
printf(" 姓名 性别 年龄 电话 地址\n");
for (i = 0; i < n; i++)
{
printf("%7s%6s%8s%14s%15s\n", Peo[i].name, Peo[i].sex, Peo[i].Old, Peo[i].Phone_num, Peo[i].adrress);
}
printf("\n");
}
//清空联系人信息
void Empty_Peo(people Peo[], int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
*Peo[i].name = '\0';
*Peo[i].sex = '\0';
*Peo[i].Old = '\0';
*Peo[i].Phone_num = '\0';
*Peo[i].adrress = '\0';
}
printf("\n");
}
//按联系人名字排序
void Sort_Peo(people Peo[], int n)
{
int i = 0;
int j = 0;
struct Peo tmp;
for (i = 0; i < n - 1; i++)
{
for (j = i; j < n; j++)
{
if ((strcmp(Peo[i].name, Peo[j].name)) > 0)
{
tmp = Peo[i];
Peo[i] = Peo[j];
Peo[j] = tmp;
}
}
}
}
int main()
{
int input = 1;
int ret = 0;
while (input)
{
menu();
printf("\n请选择-->");
scanf("%d", &input);
switch (input)
{
case Add:
ret = Add_Peo(Peo, ret);
break;
case Delect:
ret = Del_Peo(Peo, ret);
break;
case Select:
Sel_Peo(Peo, ret);
break;
case Alter:
Alter_Peo(Peo, ret);
break;
case Show:
Show_Peo(Peo, ret);
break;
case Empty:
Empty_Peo(Peo, ret);
break;
case Sort:
Sort_Peo(Peo, ret);
break;
case Quit:
exit(0);
break;
default:
break;
}
}
system("pause");
return 0;
}
c语言通讯录打电话,C语言实现简易通讯录 | 术与道的分享相关推荐
- JAVA散列表个人通讯录_散列表实现简易通讯录
散列表实现通讯录 1.项目研究背景与意义 背景:随着信息活动在国民经济中主导地位的确立和信息产业的崛起,信息资源管理作为一个专有名词和独立的学科逐渐发展起来.如何积极开发.合理配置和有效利用信息资源, ...
- c语言对称矩阵的压缩存储_C++实现对称矩阵的压缩存储 | 术与道的分享
压缩存储数据是一个比较高效.节省空间的方法,当我们存储的数据足够大时,我们要尽量避免数据的冗余重复,减少空间的浪费.对阵矩阵的压缩存储就是一个简单的实例. 算法分析与设计 如下图所示,我们要存储的是一 ...
- C语言实现简易通讯录
实现一个通讯录: 通讯录可以用来存储联系人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系人信 ...
- 个人通讯管理程序C语言,个人通讯录管理系统C语言源程序(优秀版)[1]
个人通讯录管理系统C语言源程序(优秀版)[1] 更新时间:2017/2/22 1:03:00 浏览量:613 手机版 C语言个人通讯录系统源程序: #include /*头文件*/ #includ ...
- 【C语言进阶】C语言程序设计:动态通讯录(顺序表实现)
目录 动态通讯录的实现 一.实验的目的和意义 二.实验内容描述 三.功能描述 四.数据结构 1.三大模块 2.结构设计 3.动态开辟 4.文件操作 5.主要函数 五.流程图及模块算法 1.Contac ...
- 【C语言进阶】C语言实现通讯录
目录 一.引言 二.如何实现通讯录 1.通讯录要求 2.创建主菜单 3.初步设置主函数 4.创建通讯录 5.初始化通讯录 6.case 1(增加联系人) 7.case 5(显示通讯录中的信息) 8.c ...
- C语言 --- 动态内存管理(上)+优化版通讯录+笔试题
文章目录 前言 一.为什么存在动态内存分配 二.动态内存函数的介绍 2.1.malloc函数+free函数 2.2.calloc函数+free函数 2.3.realloc函数 三.常见的动态内存错误 ...
- 数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)
数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...
- 通讯录管理系统 C语言课程设计实验报告
通讯录管理系统C语言课程设计 一.实验目的 1.巩固和加深学生对C语言课程的基本知识的理解和掌握 2.掌握C语言编程和程序调试的基本技能 3.利用C语言进行基本的软件设计 4.掌握书写程序设计说明文档 ...
最新文章
- vue中常碰见的坑_Vue 与 Vuex 的第一次接触遇到的坑
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
- 创建WCF第一个应用程序
- Neural Networks神经网络编程入门
- 吴恩达 coursera AI 专项四第四课总结+作业答案
- ef 数据迁移mysql_Windows下重装xampp并做MySQL数据迁移的步骤
- arm引脚复用linux,ARM知识分享-i.MX6Q GPIO复用修改方法
- 测试面试题集-3.生活物品测试:行李箱、电梯、洗衣机
- 如何暴力破解wifi密码
- java满天星星代码_纯Java代码实现流星划过天空
- Verilog TestBench 高级教程
- CSRF攻击、防止CSRF攻击原理及配置
- 蛮力法基本了解及练习
- Java课程实验报告一:初识java
- 区块链之java(六) 合约监听
- JDBC基础工具类的实现
- sketch创建组建
- YOLOv5被禁用!Kaggle全球小麦检测竞赛结果惹争议
- 这几款免费的解说配音软件,非常适合制作解说视频
- BOM、body的位置属性