个人通讯录管理系统C语言源程序优秀版1Word格式.docx
《个人通讯录管理系统C语言源程序优秀版1Word格式.docx》由会员分享,可在线阅读,更多相关《个人通讯录管理系统C语言源程序优秀版1Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
/*文件中写入函数*/
voidxiugai();
/*修改联系人函数*/
voidxiugai_xingming();
/*姓名修改*/
voidxiugai_dianhua();
/*电话号码修改*/
voidchazhao();
/*查找联系人函数*/
voidchazhao_xingming();
/*按姓名查找*/
voidchazhao_dianhua();
/*按号码查找*/
voidshanchu();
/*删除联系人函数*/
voidshanchu_quanbu();
/*全部删除*/
voidshanchu_dange();
/*单个删除*/
voidxianshi();
/*号码显示*/
//程序主函数模块六
voidmain()/*主函数main*/
{readfile();
/*读入文件*/
while
(1)/*循环(永远进行)*/
{
zhucaidan();
/*调用主菜单函数*/
}
}
//读取文件函数部分开始模块七
voidreadfile()
if((fp=fopen("
c:
\\通讯录.txt"
"
r"
))==NULL)/*以只读方式打开判定文件是否为空*/
printf("
\n\t\t\t通讯录文件不存在"
);
/*判断结论*/
if((fp=fopen("
同通讯录.txt"
w"
))==NULL)/*只写方式判断*/
{
printf("
\n\t\t建立失败"
/*为空结论*/
exit(0);
/*退出*/
}
else/*不为空则执行else*/
\n\t-----------------欢迎使用通讯录管理系统------------------"
\n\t通讯录文件已建立"
\n\t按任意键进入主菜单"
\n\t---------------------------------------------------------"
getch();
return;
exit(0);
}
fseek(fp,0,2);
/*文件位置指针移动到文件末尾*/
if(ftell(fp)>
0)/*文件不为空*/
rewind(fp);
/*文件位置指针移动到文件开始位置*/
for(n=0;
!
feof(fp)&
&
fread(&
txl[n],sizeof(structtongxunlu),1,fp);
n++);
\n\t----------欢迎使用通讯录管理系统1.0beat版----------------"
\n\t文件导入成功"
\n\t按任意键返回主菜单"
getch();
return;
\n\t------------欢迎使用通讯录管理系统1.0beat版--------------"
\n\t通讯录文件中无任何纪录"
}
//读取文件函数结束
//文件主菜单函数开始模块六
voidzhucaidan()
charc;
system("
cls"
printf("
\n\t\t|-------欢迎您使用通讯录管理系统1.0beat版-----|"
\n\t\t|1-添加联系人2-查询和显示联系人|"
\n\t\t|3-删除联系人4-修改联系人|"
\n\t\t|5-保存退出0-不保存退出|"
\n\t\t|------------------------------------------------|"
\n\t\t请选择您所所要的服务:
"
c=getch();
switch(c)/*对于上边的选择项目*/
case'
1'
:
zengjia();
break;
2'
chazhao();
3'
shanchu();
4'
xiugai();
5'
writefile();
0'
exit(0);
default:
zhucaidan();
/*如果没有则返回主菜单等待输入*/
//文件主菜单函数结束
//添加新联系人函数开始模块一
voidzengjia()
\n\t\t------------------请输入联系人信息--------------------\n"
\n\t\t输入联系人姓名:
scanf("
%s"
txl[n].xingming);
/*键盘输入*/
\n\t\t输入联系人电话号码:
txl[n].dianhua);
\n\t\t输入联系人地址:
txl[n].dizhi);
n++;
/*统计个数*/
\n\t\t是否继续添加联系人?
(Y/N):
/*是否继续输入联系人.*/
if(getch()=='
y'
)
zengjia();
return;
//添加新联系人结束
//写入文件函数开始模块七
voidwritefile()/*联系人写入文件*/
inti;
if((fp=fopen("
))==NULL)
\n\t\t文件打开失败"
for(i=0;
i<
n;
i++)
if(fwrite(&
txl[i],sizeof(structtongxunlu),1,fp)!
=1)
\n\t\t写入文件错误!
\n"
fclose(fp);
/*关闭文件*/
\n\t------------------------------------------------------"
/*输出提示信息*/
\n\t\t通讯录文件已保存"
\n\t\t谢谢使用,欢迎再次使用!
如果对本软件有疑问,请给我们提出您的问题,我们将为您解答.\n"
我们的软件有不足之处,请与我们反映,我们将努力改正!
\n\t\t按任意键退出程序\n\t\t"
/*输出完毕*/
exit(0);
//写入文件函数结束
///查询联系人函数开始模块四----------------------------------------------------
voidchazhao()
\n\t\t-------------------显示和查询联系人------------------"
\n\t\t|1-逐个显示所有2-按姓名查询|"
\n\t\t|3-按电话查询4-返回主菜单|"
\n\t\t|------------------------------------------------------"
switch(c)
xianshi();
/*显示所有号码*/
chazhao_xingming();
/*调用按姓名查询函数*/
chazhao_dianhua();
/*调用按号码查询函数*/
/*主菜单*/
voidxianshi()//显示所有联系人函数
//清楚屏幕
if(n!
=0)
\n\t\t----------欢迎您查询通讯录所有联系人信息-------------"
for(i=0;
i++)/*依次序显示*/
\n\t\t姓名:
%s"
txl[i].xingming);
\n\t\t电话:
txl[i].dianhua);
\n\t\t地址:
txl[i].dizhi);
\n\t\t--------------------------------------------------"
if(i+1<
n)
{
printf("
\n\t\t-----------------------"
system("
pause"
//返回错误信息
}
\n\t\t---------------------------------------------"
else/*无联系人*/
\n\t\t通讯录中无任何纪录"
\n\t\t按任意键返回主菜单:
getch();
//按号码查询函数
voidchazhao_dianhua()
intmark=0;
charphone[15];
\n\t\t-------------------按电话查找-------------------------"
\n\t\t请输入电话号码:
phone);
for(i=0;
if(strcmp(txl[i].dianhua,phone)==0)//对比查找函数
\n\t\t------------以下是您查找的学生信息------------"
\n\t\t------------------------------------------------"
mark++;
return;
if(mark==0)
\n\t\t没有找到联系人的信息"
\n\t\t按任意键返回主菜单"
voidchazhao_xingming()//按姓名查询
{
charname[20];
\n\t\t----------------按姓名查找--------------------"
\n\t\t请输入您要查找的姓名:
name);
if(strcmp(txl[i].xingming,name)==0)
\n\t\t------------以下是您查找的联系人信息---------------"
\n\t\t---------------------------------------------------"
////查询联系人函数结束-----------------------------------------------------
////删除联系人函数部分开始-------------------------------------------------
voidshanchu()
if(n==0)/*如果通讯录中没有一个记录输出以下部分*/
\n\t\t对不起,文件中无任何纪录"
/*清屏*/
\n\t\t-----------------删除菜单----------------------"
\n\t\t|1-删除所有2-删除单个|"
\n\t\t|3-返回主菜单|"
\n\t\t|-------------------------------------------------"
/*输入的赋予choice*/
shanchu_quanbu();
shanchu_dange();
voidshanchu_quanbu()//删除所有联系人
\n\t\t确认删除?
(y/n)"
fclose(fp);
通讯录.txt"
))==NULL)/*文件空输出*/
\n\t\t不能打开文件,删除失败"
readfile();
n=0;
\n\t\t纪录已删除,按任意键返回主菜单"
else
voidshanchu_xingming()//按姓名删除联系人
inti,m,mark=0,a=0;
\n\t\t请输入要删除联系人姓名:
/*键盘输入姓名*/
for(i=a;
if(strcmp(txl[i].xingming,name)==0)//对比字符串查找到要删除的联系人
\n\t\t以下是您要删除的联系人纪录:
\n\t\t--------------------------------"
\n\t\t是否删除?
if(getch()=='
)//实现删除功能
for(m=i;
m<
n-1;
m++)
txl[m]=txl[m+1];
/*将通讯录的想前移*/
n--;
mark++;
\n\t\t删除成功"
\n\t\t是否继续删除?
if(getch()=='
shanchu_xingming();
/*继续调用删除函数*/
return;
else
continue;
\n\t\t没有该联系人的纪录"
if(getch()=='
shanchu_xingming();
voidshanchu_dianhua()//按电话号码删除联系人
inti,m,mark=0;
/*变量定义*/
charphone[20];
\n\t\t请输入要删除联系人电话号码:
if(n==0)
if(strcmp(txl[i].dianhua,phone)==0)
m++)//递推替换实现删除
//记录删除次数
shanchu_dianhua();
continue;
return;
voidshanchu_dange()//删除单个联系人
\n\t----------------------------------------------------------"
\n\t\t1-按姓名删除2-按电话删除"
c=