个人通讯录管理系统源程序绝对无错.docx
- 文档编号:23139426
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:22
- 大小:19.01KB
个人通讯录管理系统源程序绝对无错.docx
《个人通讯录管理系统源程序绝对无错.docx》由会员分享,可在线阅读,更多相关《个人通讯录管理系统源程序绝对无错.docx(22页珍藏版)》请在冰豆网上搜索。
个人通讯录管理系统源程序绝对无错
#include
#include
#include
#include
//定义结构体
structtongxunlu/*定义通讯录结构体变量*/
{
charname[20];/*定义输入名字的数组*/
charphone[20];/*定义输入电话号码的数组*/
charadress[40];/*定义输入地址的数组*/
}txl[100];//默认100个数据
intn=0;//记录数据联系人数量
FILE*fp;/*定义文件*/
//程序用到的所有函数
voidmenu();/*主菜单函数*/
voidaddnew();/*增加联系人函数*/
voidreadfile();/*文件中读入函数*/
voidwritefile();/*文件中写入函数*/
voidmodify();/*修改联系人函数*/
voidmodifyname();/*姓名修改*/
voidmodifyphone();/*电话号码修改*/
voidsearch();/*查找联系人函数*/
voidsearchname();/*按姓名查找*/
voidsearchphone();/*按号码查找*/
voiddeletecd();/*删除联系人函数*/
voiddeleteall();/*全部删除*/
voiddeleteone();/*单个删除*/
voidshowall();/*号码显示*/
//程序主函数模块六
voidmain()/*主函数main*/
{readfile();/*二进制读入文件*/
while
(1)/*循环(永远进行)*/
{
menu();/*调用主菜单函数*/
}
}
//读取文件函数部分开始模块七
voidreadfile()
{
if((fp=fopen("c:
\\txl.txt","r"))==NULL)/*以只读方式打开判定文件是否为空*/
{
printf("\n\t\t\t通讯录文件不存在");/*判断结论*/
if((fp=fopen("txl.txt","w"))==NULL)/*只写方式判断*/
{
printf("\n\t\t建立失败");/*为空结论*/
exit(0);/*退出*/
}
else/*不为空则执行else*/
{
printf("\n\t-----------------欢迎使用通讯录管理系统------------------");
printf("\n\t通讯录文件已建立");
printf("\n\t按任意键进入主菜单");
printf("\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++);
printf("\n\t----------欢迎使用通讯录管理系统1.0beat版----------------");
printf("\n\t文件导入成功");
printf("\n\t按任意键返回主菜单");
printf("\n\t---------------------------------------------------------");
getch();
return;
}
printf("\n\t------------欢迎使用通讯录管理系统1.0beat版--------------");
printf("\n\t文件导入成功");
printf("\n\t通讯录文件中无任何纪录");
printf("\n\t按任意键返回主菜单");
printf("\n\t---------------------------------------------------------");
getch();
return;
}
//读取文件函数结束
//文件主菜单函数开始模块六
voidmenu()
{
charchoic;
system("cls");
printf("\n\t\t|-------欢迎您使用通讯录管理系统1.0beat版-----|");
printf("\n\t\t|1-添加联系人2-查询和显示联系人|");
printf("\n\t\t|3-删除联系人4-修改联系人|");
printf("\n\t\t|5-保存退出0-不保存退出|");
printf("\n\t\t|------------------------------------------------|");
printf("\n\t\t请选择您所所要的服务:
");
choic=getch();
switch(choic)/*对于上边的选择项目*/
{
case'1':
addnew();break;
case'2':
search();break;
case'3':
deletecd();break;
case'4':
modify();break;
case'5':
writefile();break;
case'0':
exit(0);
default:
menu();/*如果没有则返回主菜单等待输入*/
}
}
//文件主菜单函数结束
//添加新联系人函数开始模块一
voidaddnew()
{
printf("\n\t\t------------------请输入联系人信息--------------------\n");
printf("\n\t\t输入联系人姓名:
");
scanf("%s",txl[n].name);/*键盘输入*/
printf("\n\t\t输入联系人电话号码:
");
scanf("%s",txl[n].phone);
printf("\n\t\t输入联系人地址:
");
scanf("%s",txl[n].adress);
n++;/*统计个数*/
printf("\n\t\t是否继续添加联系人?
(Y/N):
");/*是否继续输入联系人.*/
if(getch()=='y')
addnew();
return;
}
//添加新联系人结束
//写入文件函数开始模块七
voidwritefile()/*联系人写入文件*/
{
inti;
if((fp=fopen("c:
\\txl.txt","w"))==NULL)
{
printf("\n\t\t文件打开失败");
}
for(i=0;i { if(fwrite(&txl[i],sizeof(structtongxunlu),1,fp)! =1) { printf("\n\t\t写入文件错误! \n"); } } fclose(fp);/*关闭文件*/ printf("\n\t------------------------------------------------------");/*输出提示信息*/ printf("\n\t\t通讯录文件已保存"); printf("\n\t\t谢谢使用,欢迎再次使用! \n"); printf("如果对本软件有疑问,请到我们官网()提出您的问题,我们将为您解答.\n"); printf("我们的软件有不足之处,欢迎到官网()反映,我们将努力改正! "); printf("\n\t\t按任意键退出程序\n\t\t");/*输出完毕*/ exit(0); printf("\n\t------------------------------------------------------"); } //写入文件函数结束 ///查询联系人函数开始模块四---------------------------------------------------- voidsearch() { charchoic; system("cls"); printf("\n\t\t-------------------显示和查询联系人------------------"); printf("\n\t\t|1-逐个显示所有2-按姓名查询|"); printf("\n\t\t|3-按电话查询4-返回主菜单|"); printf("\n\t\t|------------------------------------------------------"); printf("\n\t\t请选择您所所要的服务: "); choic=getch(); switch(choic) { case'1': showall();break;/*显示所有号码*/ case'2': searchname();break;/*调用按姓名查询函数*/ case'3': searchphone();break;/*调用按号码查询函数*/ case'4': menu();break;/*主菜单*/ } } voidshowall()//显示所有联系人函数 { inti; system("cls");//清楚屏幕 if(n! =0) { printf("\n\t\t----------欢迎您查询通讯录所有联系人信息-------------"); for(i=0;i { printf("\n\t\t姓名: %s",txl[i].name); printf("\n\t\t电话: %s",txl[i].phone); printf("\n\t\t地址: %s",txl[i].adress); printf("\n\t\t--------------------------------------------------"); if(i+1 { printf("\n\t\t-----------------------"); system("pause");//返回错误信息 } } printf("\n\t\t---------------------------------------------"); } else/*无联系人*/ printf("\n\t\t通讯录中无任何纪录"); printf("\n\t\t按任意键返回主菜单: "); getch(); return; } //按手机号码查询函数 voidsearchphone() { intmark=0; inti; charphone[15]; printf("\n\t\t-------------------按电话查找-------------------------"); printf("\n\t\t请输入电话号码: "); scanf("%s",phone); for(i=0;i { if(strcmp(txl[i].phone,phone)==0)//对比查找函数 { printf("\n\t\t------------以下是您查找的学生信息------------"); printf("\n\t\t姓名: %s",txl[i].name); printf("\n\t\t电话: %s",txl[i].phone); printf("\n\t\t地址: %s",txl[i].adress); printf("\n\t\t------------------------------------------------"); printf("\n\t\t按任意键返回主菜单: "); mark++; getch(); return; } } if(mark==0) { printf("\n\t\t没有找到联系人的信息"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } } voidsearchname()//按姓名查询 { intmark=0; inti; charname[20]; printf("\n\t\t----------------按姓名查找--------------------"); printf("\n\t\t请输入您要查找的姓名: "); scanf("%s",name); for(i=0;i { if(strcmp(txl[i].name,name)==0) { printf("\n\t\t------------以下是您查找的联系人信息---------------"); printf("\n\t\t姓名: %s",txl[i].name); printf("\n\t\t电话: %s",txl[i].phone); printf("\n\t\t地址: %s",txl[i].adress); printf("\n\t\t---------------------------------------------------"); mark++; getch(); return; } } if(mark==0) { printf("\n\t\t没有找到联系人的信息"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } } ////查询联系人函数结束----------------------------------------------------- ////删除联系人函数部分开始------------------------------------------------- voiddeletecd() { charchoic; if(n==0)/*如果通讯录中没有一个记录输出以下部分*/ { printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } system("cls");/*清屏*/ printf("\n\t\t-----------------删除菜单----------------------"); printf("\n\t\t|1-删除所有2-删除单个|"); printf("\n\t\t|3-返回主菜单|"); printf("\n\t\t|-------------------------------------------------"); printf("\n\t\t请选择您所所要的服务: "); choic=getch();/*输入的赋予choice*/ switch(choic) { case'1': deleteall();break; case'2': deleteone();break; case'3': menu();break; default: menu();break; } } voiddeleteall()//删除所有联系人 { printf("\n\t\t确认删除? (y/n)"); if(getch()=='y') { fclose(fp); if((fp=fopen("txl.txt","w"))==NULL)/*文件空输出*/ { printf("\n\t\t不能打开文件,删除失败"); readfile(); } n=0; printf("\n\t\t纪录已删除,按任意键返回主菜单"); getch(); return; } else return; } voiddeletename()//按姓名删除联系人 { inti,j,deletemark=0,a=0; charname[20]; printf("\n\t\t请输入要删除联系人姓名: "); scanf("%s",name);/*键盘输入姓名*/ for(i=a;i { if(strcmp(txl[i].name,name)==0)//对比字符串查找到要删除的联系人 { printf("\n\t\t以下是您要删除的联系人纪录: "); printf("\n\t\t--------------------------------"); printf("\n\t\t姓名: %s",txl[i].name); printf("\n\t\t电话: %s",txl[i].phone); printf("\n\t\t地址: %s",txl[i].adress); printf("\n\t\t--------------------------------"); printf("\n\t\t是否删除? (y/n)"); if(getch()=='y')//实现删除功能 { for(j=i;j txl[j]=txl[j+1];/*将通讯录的想前移*/ n--; deletemark++; printf("\n\t\t删除成功"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletename();/*继续调用删除函数*/ return; } else return; } continue; } if(deletemark==0) { printf("\n\t\t没有该联系人的纪录"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletename(); return; } } voiddeletephone()//按电话号码删除联系人 { inti,j,deletemark=0;/*变量定义*/ charphone[20]; printf("\n\t\t请输入要删除联系人电话号码: "); scanf("%s",phone); if(n==0) { printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单"); getch(); return; } for(i=0;i { if(strcmp(txl[i].phone,phone)==0) { printf("\n\t\t以下是您要删除的联系人纪录: "); printf("\n\t\t姓名: %s",txl[i].name); printf("\n\t\t电话: %s",txl[i].phone); printf("\n\t\t地址: %s",txl[i].adress); printf("\n\t\t是否删除? (y/n)"); if(getch()=='y') { for(j=i;j txl[j]=txl[j+1]; n--; deletemark++;//记录删除次数 printf("\n\t\t删除成功"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') deletephone(); return; } else return; } continue; } if(deletemark==0) { printf("\n\t\t没有该联系人的纪录"); printf("\n\t\t是否继续删除? (y/n)"); if(getch()=='y') return; } } voiddeleteone()//删除单个联系人 { charchoic; printf("\n\t----------------------------------------------------------"); printf("\n\t\t1-按姓名删除2-按电话删除"); printf("\n\t\t请选择您所所要的服务: "); printf("\n\t----------------------------------------------------------"); choic=getch(); switch(choic) { case'1': deletename();break; case'2'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 通讯录 管理 系统 源程序 绝对 无错