本文主要详细介绍了简单电子通讯录的C语言实现。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享用C语言实现电子通讯录的具体代码,供大家参考。具体内容如下
做一个电子通讯录,通过它可以输入朋友的身份证号,姓名(英文)和手。
电话号码、家庭住址和公司电话号码。**
原理:分为五个模块,将模块功能实现写入头文件。主要功能部件代码:
Markdown中没有对齐的显示功能部分,表示就这样,凑合吧==
/*******************************************************************
要求:制作一个电子通讯录,通过它可以输入好友的身份证号、姓名(英文)、手。
电话号码、家庭住址和公司电话号码。
模块:
主界面:主要显示软件功能,a)添加好友信息b)列出好友信息。(包括排序
功能)C)搜索好友D)删除好友
a)用户输入插入命令后,让用户输入好友信息。提示成功或失败。
b)用户输入显示命令后,好友信息按升序排列。
c)在用户输入搜索命令后,让用户输入要搜索好友名称查询。如果没有搜索到
请给我一个友好的提醒。如果是,则显示朋友信息。
d)在用户输入删除命令后,让用户输入要删除朋友的名字,如果有相同的名字,则删除该朋友
多个好友的名字,列表,同名好友的所有信息,让用户通过输入身份证号删除。
提示用户删除成功。
**********************************************************************/
#包含“head.h”
int main()
{
int函数;
int I=0;
字符名称[N];
int cho
PNode head _ Node=(PNode)malloc(sizeof(Node)/sizeof(char));
if (NULL==头节点)
{
返回MALLOC _ ERROR
}
head _ node-next=NULL;
while (1)
{
interface _ Display();
scanf ('%d ',函数);
开关(功能)//功能选择
{
1://添加朋友
{
函数=0;
Add_Friend (head_node,I);
int j;
printf(' \ t添加\ n ');
printf(' \ t请稍候');
fflush(stdout);//strong制刷新缓存,输出显示。
for(j=0;j 3;j)
{
睡眠(1);//Linux使用sleep,参数为秒。
printf(' . ');
fflush(stdout);//strong制刷新缓存,输出显示。
}
printf(' \ n ');
printf(' \ t添加成功!\ n’);
printf(' \ t请输入1:'返回主菜单);
scanf ('%d ',CHO);
if (1==cho)
{
打破;
}
其他
{
Printf ('\t对不起!你的输入是错误的!请重新输入:');
scanf ('%d ',CHO);
打破;
}
打破;
}
2://显示朋友信息
{
系统(“clear”);
Printf ('\ t * * * * * * *朋友信息* * * * * * * * \ n ');
printf(' \ n ');
Friend_Information(头节点);
函数=0;
printf(' \ t请输入1:'返回主菜单);
scanf ('%d ',CHO);
if (1==cho)
{
打破;
}
其他
{
Printf ('\t对不起!你的输入是错误的!请重新输入:');
scanf ('%d ',CHO);
打破;
}
打破;
}
3://查找朋友
{
系统(“clear”);
printf(' \ t * * * * * * * * * * *找朋友* * * * * * * * * * * * * * \ n ');
printf(' \ t请输入您要查找的朋友的姓名:');
scanf ('%s ',名称);
printf(' \ n ');
int j;
printf(' \ t查找\ n ');
printf(' \ t请稍候');
fflush(stdout);//strong制刷新缓存,输出显示。
for(j=0;j 3;j)
{
睡眠(1);//Linux使用sleep,参数为秒。
printf(' . ');
fflush(stdout);//strong制刷新缓存,输出显示。
}
printf(' \ n ');
Search_Friend (head_node,Name);
printf(' \ t请输入1:'返回主菜单);
scanf ('%d ',CHO);
if (1==cho)
{
打破;
}
其他
{
Printf ('\t对不起!你的输入是错误的!请重新输入:');
scanf ('%d ',CHO);
打破;
}
打破;
}
案例4: //删除好友
{
系统(“清除”);
printf ('\t********** '删除好友* * * * * * * * * * * * * \ n’);
printf ('\t请输入要删除好友的姓名:');
scanf ('%s ',名称);
printf(' \ n ');
Delete_Friend (head_node,Name);
printf ('\t返回主菜单请输入1:');
scanf ('%d ',CHO);
if (1==cho)
{
打破;
}
其他
{
printf ('\t对不起!您的输入有误!请重新输入:');
scanf ('%d ',CHO);
打破;
}
打破;
}
案例5: //退出通讯录
{
函数=0;
系统(“清除”);
退出(0);
}
默认值://输入有误
{
函数=0;
printf ('\t对不起!您的输入有误!请重新输入:');
scanf ('%d ',函数);
打破;
}
}
}
返回0;
}
head.h部分:
#ifndef HEAD_H_
#定义HEAD_H_
#包含标准库
#包含标准视频
#包含unistd.h //睡眠函数头文件
#定义uint无符号整数
#定义确定0
#定义错误-1
#定义MALLOC _错误-2
#定义N 20
typedef int ElementType
typedef结构节点
{
元素类型ID//ID号
字符名称[N];//姓名
char Mobile _ Phone[N];//手机号码
char Home _ Address[N];//家庭住址
char Company _ Tell[N];//公司电话
结构节点*下一个//节点指针
}节点;
typedef节点* PNode//重命名节点指针类型
//显示操作界面
int Interface_Display().
//添加好友信息(尾插法)
int Add_Friend (PNode head,元素类型num);
//显示所有好友信息
int Friend_Information (PNode头);
//查找好友
int Search_Friend (PNode head,char * Name);
//删除好友
void Delete_Friend (PNode head,char * Name);
#endif
标题c的代码:
#包含" head.h "
//显示操作界面
(同Internationalorganizations)国际组织接口_显示()
{
系统(“清除”);
printf(' \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ');
printf ('\t~欢迎使用通讯录~ \ n ');
printf(' \ t ~ ~ \ n ');
printf ('\t~ 1添加好友信息~ \ n ');
printf ('\t~ 2列表好友信息~ \ n ');
printf ('\t~ 3搜索好友~ \ n ');
printf ('\t~ 4删除好友~ \ n ');
printf ('\t~ 5退出~ \ n ');
printf(' \ t ~ ~ \ n ');
printf(' \ t ~ ~ \ n ');
printf ('\t~作者:相信~ \ n ');
printf(' \ t ~ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ~ \ n ');
printf(' \ n ');
printf(' \ n ');
printf ('\t请输入对应数字选择相应功能:');
}
//添加好友信息(尾插法)
int Add_Friend (PNode head,ElementType num)
{
if (NULL==head)
{
返回错误;
}
//创建一个新的结点
PNode p=(PNode)malloc(sizeof(Node)/sizeof(char));
if (NULL==p)
{
返回MALLOC _错误
}
//将新数据赋给新结点
系统(“清除”);
printf ('\t********** '添加好友* * * * * * * * * * * * * * * \ n’);
p-ID=num;
printf ('\t好友的身份证明为:%d\n ',p-ID);
printf(' \ n ');
printf ('\t请输入好友的名字:');
scanf ('%s ',p-Name);
printf(' \ n ');
printf ('\t请输入好友的手机号:');
scanf ('%s ',p-Mobile _ Phone);
printf(' \ n ');
printf ('\t请输入好友的家庭住址:');
scanf ('%s ',p-Home _ Address);
printf(' \ n ');
printf ('\t请输入好友的公司电话:');
scanf ('%s ',p-Company _ Tell);
printf(' \ n ');
p-next=NULL;
//找到最后一个结点
PNode Ptmp//将头结点地址给临时指针Ptmp
Ptmp=头
while (Ptmp-next)
{
Ptmp=Ptmp-next;
}
ptmp-next=p;
退货OK;
}
//显示所有好友信息
int Friend_Information (PNode头)
{
if (NULL==head)
{
返回错误;
}
PNode p=head-next;
printf ('\tID\t姓名\t\t手机号\t\t住址\t\t\t公司电话\ n’);
while (p)
{
printf(' \ t % d \ t % s \ t \ t % s \ t \ t % s \ t \ t \ t % s \ n ',p-ID,
p-姓名,p-移动电话,p-家庭地址,
p-Company _ Tell);
p=p-next;
}
putchar(' \ n ');
退货OK;
}
//查找好友
int Search_Friend (PNode head,char* Name) //通过名字查找好友
{
PNode p=磁头
PNode q=空
if ((NULL!=p) NULL!=(p-next))
{
while (p-next)
{
q=p-next;
if ((NULL!=q) 0==(strcmp(q-Name,Name)))
{
printf ('\t好友信息:\n\tID:%d\n\t姓名:%s\n\t手机号码:%s\n\t家庭地址:%s\n\t公司电话:%s\n ',q-ID,q-Name,q-Mobile_Phone,q-Home_Address,q-Company _ Tell);
}
其他
{
printf ('\t对不起,您的通讯录没有该好友!\ n’);
}
p=p-next;
}
}
/* 另一种做法
if (NULL==head)
{
返回错误;
}
PNode p;
int flag=1;
for(p=head-next;p!=NULLp=p-下一个)
{
if (0==strcmp(p-Name,Name))
{
flag=0;
printf ('\t好友信息:\n\tID: %d\n\t姓名:%s\n\t手机号码:%s\n\t家庭地址:%s\n\t公司电话:%s\n ',p-ID,p-Name,p-Mobile_Phone,p-Home_Address,p-Company _ Tell);
}
}
fi(标志)
{
printf ('\t对不起,您的通讯录没有该好友!\ n’);
}
putchar(' \ n ');
*/
退货OK;
}
//删除好友
void Delete_Friend (PNode head,char* Name)
{
PNode p=磁头
PNode q=空
while (NULL!=p NULL!=(p-next))
{
q=p-next;
if (NULL!=q 0==strcmp(q-Name,Name))
{
p-next=q-next;
免费(q);
int j;
printf ('\t正在删除\ n’);
printf ('\t请稍候');
fflush(stdout);//strong制刷新缓存,输出显示
for(j=0;j 3;j)
{
睡眠(1);//linux使用睡觉,参数为秒
printf(' . ');
fflush(stdout);//strong制刷新缓存,输出显示
}
printf(' \ n ');
printf ('\t该好友已成功删除!\ n’);
}
else if (NULL==q-next 0!=strcmp(q-Name,Name))
{
printf ('\t您的通讯录没有该好友!\ n’);
}
p=p-next;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。