2、C语言实现通讯录
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语言实现通讯录的更多相关文章
- C语言之通讯录的模拟实现
C语言之通讯录的模拟实现 在C语言学习结束之际,谨以此篇文章来对C语言的学习告一段落. 纲要: 通讯录的静态版本 通讯录的动态版本 通讯录的带文件版本 因为三种实现方法除了储存形式不同,其他都基本相同 ...
- c语言实现通讯录管理系统(c课程设计)
工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...
- C语言-《通讯录》
黑白的通讯录 --1-- 需求分析 1.1 需求 1.2 原型展示 1.3 功能分析 --2-- 代码实现 2.1 外部声明.变量.宏 2.2 模块实现 ----------------------- ...
- Iphone 英语语言下通讯录排序问题
Iphone 如果把界面语言设置成English,那么通讯录默认排序是通过拼音来排的,如果联系人信息中没有设置名字的拼音,那么这些联系人都会被放到#中. 批量添加拼音的解决方案: https://gi ...
- C语言实现通讯录
<span style="font-size:18px;">#include<stdio.h> #include<string.h> #incl ...
- C语言可以开发哪些项目?
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...
- (一〇一)集成静态库RHAddressBook实现OC访问通讯录
使用官方的AddressBook框架仅能使用C语言访问通讯录,十分不便,这里介绍集成第三方框架RHAddressBook的方法,该框架可以通过OC访问和操作通讯录. 该框架是一个静态库,集成比较复杂. ...
- C语言可以开发哪些项目?(转)
原文地址:https://www.cnblogs.com/shiyanlou/p/6098661.html 知乎:https://www.zhihu.com/question/20564904 C语言 ...
- 17个C语言可以做的小案例项目
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中……,这些迷茫也导致了我们在学习的过程 ...
随机推荐
- Mac和window生成ssh和查看ssh key
一.MAC系统 mac 系统开始就已经为我们安装了ssh 如果没有安装,首先安装 打开终端:$ ssh -v 查看ssh版本 OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec ...
- delphi 运算符重载
譬如上面的 record 可以这样声明: type TMyRec = record name: string; age: Word; class operator Grea ...
- Type-C转接头 还是别用了,影响速率啊
今天用Type-C转接USB头传照片真慢! 在数码配件领域,越是不起眼的小外设,隐藏其背后的猫腻和水分也就越多.就拿常见的Micro USB转USB Type-C转接头和TF转SD卡套而言,你觉得 ...
- Unix下可用的五种 I/O 模型
介绍 当TCP客户端同时处理两个输入时:标准输入和TCP套接字,当客户端fgets(在标准输入上)被阻塞并且服务器进程被终止时,我们遇到了问题.服务器TCP正确地将FIN发送到客户端TCP,但由于客户 ...
- openresty开发系列20--lua的时间操作
openresty开发系列20--lua的时间操作 在 Lua 中,函数 time.date 和 difftime 提供了所有的日期和时间功能.在 OpenResty 的世界里,不推荐使用这里的标准时 ...
- ISO/IEC 9899:2011 条款6.5——表达式
6.5 表达式 1.一个表达式是操作符与操作数的一个序列,这些操作符与操作数指定了一个值的计算,或指派一个对象或一个函数,或是生成副作用,或执行上述操作的组合.对一个操作符的操作数的值计算顺序排在对该 ...
- Scala里面的排序函数的使用
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith 分别介绍下他们的功能: (1)sorted 对一个集合进行自然排序,通过传递 ...
- Python3基础 bool True为1 False为0
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- ROS学习笔记(三)
机器人建模与仿真URDF(Unified Robot Descrption Format,统一机器人描述格式),ROS提供了URDF的c++解析器.安装语法检查工具sudo apt-get insta ...
- 算法习题---5.2木块问题(UVa101)
一:题目 输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置.现对这些木块进行操作,操作分为四种. .move a onto b:把木块a.b上的木块放回各自的原位,再把a放 ...