问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我现在需要一个通讯录的c语言源代码,大家可以帮帮我吗???

发布网友 发布时间:2022-05-05 16:14

我来回答

2个回答

热心网友 时间:2022-06-27 18:12

/********************通讯录应用程序简介************************************
1、设一个通信录由以下几项数据信息构成:
数据项 类型

姓名 字符串
地址 字符串
邮政编码 字符串
电话号码 字符串

2. 实现功能:
1.存取、
2.显示、
3.删除记录、
4.查询记录等功能。

2、要求:界面友好,易于操作
***********************************************************************************/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Telephone
{
char name[20];
char addrass[20];
char zip[20];
char telephone[20];
struct Telephone *next;
};
typedef struct Telephone TEL;
TEL *head=NULL;
void showmenu(); //菜单
void Appenditem(); //添加条目
void print(); //输出条目
void Finditem1(); //查找条目( 按姓名 )
void Removeitem(); //删除信息
void Saveandfree(); //保存到文件
void Open(); //打开文件
void main()
{
char ch;
Open(); //打开文件
while(1)
{
showmenu(); //显示菜单
scanf(" %c",&ch);
switch(ch)
{
case '1':Appenditem(); //添加条目
break;
case '2':print(); //输出条目
break;
case '3':Finditem1(); //查找条目1.按姓名
break;
case '4': Removeitem(); //删除信息
print(); //输出删除后的结果
break;
case '0':Saveandfree(); //保存并释放内存
exit(0); //退出
break;
default:
printf("选择错误!");
break;
}
}
}

//菜单
void showmenu()
{
printf("\n*****************通讯录系统*****************\n");
printf("\t1.添加条目。\n");
printf("\t2.输出输出\n");
printf("\t3.按姓名查询\n");
printf("\t4.删除条目\n");
printf("\t0.保存并退出!\n");
printf("*************************************************\n");
printf("\t请选择:\n");
}

//添加条目
void Appenditem()
{
TEL *p1=NULL,*p2=NULL;
p1=(TEL *)malloc(sizeof(TEL)); //申请结点
printf("输入姓名:\n"); //添加信息
scanf("%s",p1->name);
printf("输入地址:\n");
scanf("%s",p1->addrass);
printf("输入邮编:\n");
scanf("%s",p1->zip);
printf("输入电话:\n");
scanf("%s",p1->telephone);
p1->next=NULL; //保存到链表

if(head==NULL)
{
head=(TEL *)malloc(sizeof(TEL)); //申请空间
head->next=p1;
}
else
{
for(p2=head;p2->next!=NULL;p2=p2->next); //找到结点尾
p2->next=p1;
}
printf("此信息已添加!");
}

//输出学生信息
void print()
{
TEL *p=NULL;
if(head==NULL)
{
printf("此通讯录中无记录,请输入记录后在使用本功能!\n");
return;
}
printf("**************通讯录系统*********************\n"); //输出信息
printf("姓名\t地址\t邮编\t电话\n");
for(p=head->next;p!=NULL;p=p->next)
printf("%s\t%s\t%s\t%s\n",p->name,p->addrass,p->zip,p->telephone);
}

//查找信息1.按姓名
void Finditem1()
{
TEL *p;
char findname[20];
printf("请输入要查找的姓名:\n");
scanf("%s",findname);
printf("**************通讯录系统*********************\n");
printf("姓名\t地址\t邮编\t电话\n");
for(p=head->next;p!=NULL;p=p->next)
{
if(strcmp(p->name,findname)==0)
printf("%s\t%s\t%s\t%s\n",p->name,p->addrass,p->zip,p->telephone);
}
}

//删除信息
void Removeitem()
{
char findname[20]; //先查找 后删除
TEL *p = head->next, *pr = head->next;
printf("请输入要删除的姓名:\n");
scanf(" %s",findname);
if (head->next == NULL)
{
printf("无此节点!\n");
return;
}
while ((strcmp(p->name,findname)!=0 )&& p->next != NULL)
{
pr =p;
p =p->next;
}
if (strcmp(findname, p->name)==0) //输出删除信息
{
printf("%s\t%s\t%s\t%s\n",p->next->name,p->next->addrass,\
p->next->zip,p->next->telephone);
if (p == head->next)
head->next = p->next;
else
pr->next = p->next;
free(p);
}
printf("此信息已删除!");
}
//保存链表信息到文件并释放内存空间
void Saveandfree()
{
TEL *p=NULL;
FILE *fp;
char *Book="books.txt";
if(head==NULL)
{
printf("\n记录为空!\n");
return;
}
else
p=head->next;
if((fp=fopen(Book,"wb+"))==NULL)
{
printf("\n打不开文件!\n");
return;
}
while(p!=NULL) //保存信息
{
fwrite(p,sizeof(TEL),1,fp);
p=p->next;
}
printf("保存完毕!");
fclose(fp);
//*****释放链表空间*****
for(;head->next!=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
}
//文件信息输出到链表
void Open()
{
FILE *fp;
TEL *p1=NULL,*p2=NULL,*temp=NULL;
if((fp=fopen("books.txt","rb+"))==NULL)
{
printf("\n****************这是一个新的通讯录管理系统******************\n");
return;
}
head=(TEL *)malloc(sizeof(TEL));
head->next=NULL;
temp=p2=head;
while(! feof(fp)) //循环读取
{
p1=(TEL *)malloc(sizeof(TEL));
temp=p2;
p2->next=p1;
p2=p1;
fread(p1,sizeof(TEL),1,fp);
}
temp->next=NULL;
fclose(fp); //关闭文件
}

热心网友 时间:2022-06-27 18:12

http://download.csdn.net/source/332495
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
是选诺顿杀毒软件好还是NOD32好? 诺顿好还是NOD32好???请高手指点 诺顿安全软件和ESET NOD32安全软件相比,谁的防护.杀毒更强,功能更多... 诺顿和NOD32这两个杀毒软件哪个比较好? 什么是土地二次抵押 "口似含莲,乾姜之手"是什么意思? 乾姜的意思是什么 都说Pinnacle Food公司各方面做的好,有对这家了解的吗 空调蒸发箱多久清洗一次 空调蒸发箱需要清洗吗 苹果xr流量设置 安卓短信拦截马,源码有谁在买呢? 算法也能够准确的预测人类寿命,人工智能究竟会有多么 android 通讯录 怎么改联系人 用人工智能预测用户投诉的相关算法和实例有哪些 android 实现微信通讯录(联系人分类,并有边栏字母滑动效果,并可以查询联系人) 源代码 求Android通讯录备份源代码, 人工智能中有哪些算法是能够根据以往数据预测以后的数据的? 为什么我在eclipse导入Android自带通讯录源码有那么多错误,好像是缺少几个包,求解 安卓通讯录的开发代码 车辆解压可以推迟多久? 我买的车子贷款已还完现在要解压公司没有给我委托书和公章怎么搞? 为什么QQ聊天时视频发过去了,对方没接到 和别人都有用。。。 汽车抵押贷款还清了手续拿到后没去车管所办理,现在银行机构代码证复印件有效期过期了还能办理吗 注销了的qq号还可以给他发信息他能收到,打视频怎么收不到啊 现在报考教师资格证前需要通过《教育学》《心理学》考试吗? 我是缅甸人要去中国工作需要什么证件 缅甸签证如何办理 缅甸签证要求是什么? 去缅甸签证怎么办呢?介绍一下 缅甸人到中国来打工需要办什么手续 我是缅甸人 想去中国打工 要办什么证 那里有安卓短信拦截马,源码可以买啊? android控制第三方应用软件访问通信录的权限 急求通讯录管理系统(有链表的)数据结构c语言版的源代码。要求c++可以... 中检注册鉴定师是做什么用 中检认证鉴定师靠谱吗 中检注册鉴定评估师好考吗?都要学习哪些方面的知识?可以自学吗?在哪里可以考? 中检鉴定师资格证学什么专业考的 中检证书哪里考 什么是侧向力和侧偏力?求知道 什么叫做侧向力,最好简洁明了,谢谢。 轮胎的侧向力是什么力? 侧向力是什么东西 什么是侧向力和张力? 汽车ABS,与滑移率有关的车轮侧向力是什么意思? 侧向力,侧偏力,侧偏角,偏回正力矩之间的关系是什么样?方向又怎么判断呢? 侧倾转向(又称轴转向、运动学侧偏)? 探针侧向力计算公式 直升机旋翼侧向力和后向力如何计算? 侧偏方向和侧向力的方向相同会怎么样?不同会怎么样? 筒体结构在侧向力作用下有哪些受力特点