c语言通讯录源代码.docx
《c语言通讯录源代码.docx》由会员分享,可在线阅读,更多相关《c语言通讯录源代码.docx(33页珍藏版)》请在冰豆网上搜索。
c语言通讯录源代码
#include
#include
#include
#include
structperson
{
charname[15];
charsex[2];
intnianling;
longintyoubian;
charaddr[50];
charcelephone[22];
charhomephone[22];
charcompany[20];
charemail[40];
longintQQ;
}per[500];
intnum=0;//*外部变量num为文件中的纪录数*//
FILE*fp;
voidmainmenu();//*主菜单*//
voidnewrecord();//新添纪录*//
voidxiugaimenu();//*修改菜单*//
voidxiugaibyname();//*按姓名修改*//
voidxiugaibycelephone();//*按手机号码修改*//
voidxiugaixiangmu(inta);//*修改项目*//
voidsearchmenu();//*查询菜单*//
voidsearchbyname();//*按姓名查询*//
voidsearchbycelephone();//*按手机号码查询*//
voidsearchbyhomephone();//*按家庭电话号码查询*//
voidsearchbyqq();//*按QQ查询*//
voiddeletemenu();//*删除菜单*//
voiddeleteall();//*删除所有信息*//
voiddeleteone();//*删除单个*//
voidshowall();//*输出全部信息*//
voidreadfromfile();//*读取文件*//
voidwritetofile();//*写入文件*///
voiddeletebycelephone();//*按手机号码删除*//
voiddeletebyname();//*按姓名删除*/
voidlistbycelephone();//*按手机号码排序*//
voidlistbyname();//*按姓名排序*//
voidlistmenu();//*排序菜单*//
voidmain()//*主函数*//
{
system("cls");
readfromfile();
while
(1)
{
mainmenu();
}
}//*主函数结束*//
voidmainmenu()//*主菜单函数*//
{
inta;
system("cls");
system("color2a");
printf("\n\t您好!
欢迎使用通讯录!
\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("9:
删除所有\n");
printf("0:
退出\n");
printf("请输入您的数字选择:
");
loop1:
scanf("%d",&a);
switch(a)
{
case1:
newrecord();break;
case2:
searchmenu();break;
case3:
deletemenu();break;
case4:
xiugaimenu();break;
case5:
listmenu();break;
case6:
showall();break;
case7:
writetofile();break;
case8:
readfromfile();break;
case9:
deleteall();break;
case0:
exit(0);
default:
printf("对不起!
您的输入有误!
请重新输入:
");gotoloop1;
}
}
voidnewrecord()//*添加纪录*//
{
inta;
system("cls");
system("color2a");
loop:
printf("\n\n\n\n\t\t请输入您要添加的联系人的信息:
\n");
printf("\n请输入姓名:
\n");
name:
scanf("%s",&per[num].name);
if(strlen(per[num].name)>15)
{
printf("对不起!
您的输入有误!
请重新输入");
gotoname;
}
printf("\n请输入性别:
\n");
sex:
scanf("%s",&per[num].sex);
if(strlen(per[num].sex)==0)
{
printf("对不起!
您的输入有误!
请重新输入");
gotosex;
}
printf("\n请输入年龄:
");
nianling:
scanf("%d",&per[num].nianling);
if(per[num].nianling<10||per[num].nianling>110)
{
printf("对不起!
您的输入有误!
请重新输入");
gotonianling;
}
printf("\n请输入邮编\n");
youbian:
scanf("%d",&per[num].youbian);
if(per[num].youbian<10000||per[num].youbian>999999)
{
printf("对不起!
您的输入有误!
请重新输入");
gotoyoubian;
}
printf("\n请输入地址\n");
addr:
scanf("%s",&per[num].addr);
if(strlen(per[num].addr)>50||strlen(per[num].addr)<4)
{
printf("对不起!
您的输入有误!
请重新输入\n");
gotoaddr;
}
printf("\n请输入手机号码:
\n");
celephone:
scanf("%s",&per[num].celephone);
if(strlen(per[num].celephone)!
=11)
{
printf("对不起!
您的输入有误!
请重新输入\n");
gotocelephone;
}
printf("\n请输入家庭电话号码:
\n");
homephone:
scanf("%s",&per[num].homephone);
if(strlen(per[num].homephone)!
=11)
{
printf("对不起!
您的输入有误!
请重新输入\n");
gotohomephone;
}
printf("\n请输入公司名称:
");
company:
scanf("%s",&per[num].company);
if(strlen(per[num].company)>20||strlen(per[num].company)<10)
{
printf("对不起!
您的输入有误!
请重新输入");
gotocompany;
}
printf("\n输入电子邮箱:
");
email:
scanf("%s",&per[num].email);
if(strlen(per[num].email)>30||strlen(per[num].email)<4)
{
printf("对不起!
您的输入有误!
请重新输入");
gotoemail;
}
printf("\n输入QQ号码:
");
QQ:
scanf("%ld",&per[num].QQ);
if(per[num].QQ>00||per[num].QQ<)
{
printf("对不起!
您的输入有误!
请重新输入");
gotoQQ;
}
num++;
printf("\n是否继续添加?
\n");
printf("\n请按1和2(1代表继续;2代表不继续)\n");
printf("请输入您的选择");
scanf("%d",&a);
if(a==1)
{
gotoloop;
}
else
{
return;
}
}
voidsearchmenu()//*查询菜单*//
{
inta;
system("cls");
system("color2a");
printf("\n\t\t欢迎使用查询菜单");
printf("\n\t\t1-按手机号码查询");
printf("\n\t\t2-按姓名查询");
printf("\n\t\t3-按家庭电话号码查询");
printf("\n\t\t4-按QQ查询");
printf("\n\t\t5-返回主菜单");
printf("\n\t\t");
printf("请输入您的选择");
scanf("%d",&a);
switch(a)
{
case1:
searchbycelephone();break;
case2:
searchbyname();break;
case3:
searchbyhomephone();break;
case4:
searchbyqq();break;
case5:
mainmenu();break;
}
}
voidsearchbycelephone()//*按手机号码查询*//
{
intmark=0;
inti,j;
inta=0;
charcelephone[11];
printf("\n按手机号码查找\n");
printf("\n请输入手机号码:
\n");
scanf("%s",celephone);
for(i=0;i{
if(strcmp(per[i].celephone,celephone)==0)
{
printf("\n以下是您查找的联系人的信息");
printf("\n________________________________");
printf("\n名字:
%s",per[i].name);
printf("\n性别:
%s",per[i].sex);
printf("\n年龄:
%d",per[i].nianling);
printf("\n邮编:
%ld",per[i].youbian);
printf("\n地址:
%s",per[i].addr);
printf("\n手机号码:
%s",per[i].celephone);
printf("\n家庭电话号码:
%s",per[i].homephone);
printf("\n公司名称:
%s",per[i].company);
printf("\n电子邮件:
%s",per[i].email);
printf("\nQQ号码:
%ld",per[i].QQ);
printf("\n________________________________");
printf("\n请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if(mark==0)
{
printf("\n对不起!
没有该联系人的信息!
");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
voidsearchbyname()//*按姓名查询*//
{
intmark=0;
inti,j,findmark=0;
inta=0;
charname[15];
printf("\n按姓名查找");
printf("\n请输入姓名:
");
scanf("%s",name);
for(i=a;i{
if(strcmp(per[i].name,name)==0)
{
findmark++;
printf("\n\t\t以下是您查找的联系人的信息");
printf("\n\t\t________________________________");
printf("\n\t\t名字:
%s",per[i].name);
printf("\n\t\t性别:
%s",per[i].sex);
printf("\n\t\t年龄:
%d",per[i].nianling);
printf("\n\t\t邮编:
%ld",per[i].youbian);
printf("\n\t\t地址:
%s",per[i].addr);
printf("\n\t\t手机号码:
%s",per[i].celephone);
printf("\n\t\t家庭电话号码:
%s",per[i].homephone);
printf("\n\t\t公司名称:
%s",per[i].company);
printf("\n\t\t电子邮件:
%s",per[i].email);
printf("\n\t\tQQ号码:
%ld",per[i].QQ);
printf("\n\t\t________________________________");
if((i+1){
printf("\n是否继续查找相同名字的联系人的信息?
(1代表继续;2代表不继续)");
scanf("%d",&j);
if(j==1)
{
a=i;
mark++;
continue;
}
else
break;
}
else
{
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
}
if(mark!
=0)
{
printf("\n对不起!
没有相同名字的该联系人的信息!
!
");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
elseif(findmark==0)
{
printf("\n对不起!
没有该联系人的信息!
");
printf("\n请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
voidsearchbyhomephone()//*按家庭电话号码查询*//
{
intmark=0;
inti,j;
inta=0;
charhomephone[11];
printf("\n\t\t按家庭电话号码查找");
printf("\n请输入家庭电话号码:
");
scanf("%s",homephone);
for(i=0;i{
if(strcmp(per[i].homephone,homephone)==0)
{
printf("\n\t\t以下是您要查找的联系人的信息");
printf("\n\t\t________________________________");
printf("\n\t\t名字:
%s",per[i].name);
printf("\n\t\t性别:
%s",per[i].sex);
printf("\n\t\t年龄:
%d",per[i].nianling);
printf("\n\t\t邮编:
%ld",per[i].youbian);
printf("\n\t\t地址:
%s",per[i].addr);
printf("\n\t\t手机号码:
%s",per[i].celephone);
printf("\n\t\t家庭电话号码:
%s",per[i].homephone);
printf("\n\t\t公司名称:
%s",per[i].company);
printf("\n\t\t电子邮件:
%s",per[i].email);
printf("\n\t\tQQ号码:
%ld",per[i].QQ);
printf("\n\t\t________________________________");
printf("\n\t\t请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if(mark==0)
{
printf("\n\t\t对不起!
没有该联系人的信息!
");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
voidsearchbyqq()//*按QQ查询*//
{
intmark=0;
inti,j;
longintQQ;
printf("\n\t\t按QQ号码查找\n");
printf("\n请输入QQ号码:
");
scanf("%ld",&QQ);
for(i=0;i{
if(per[i].QQ==QQ)
{
printf("\n\t\t以下是您查找的联系人的信息");
printf("\n\t\t________________________________");
printf("\n\t\t名字:
%s",per[i].name);
printf("\n\t\t性别:
%s",per[i].sex);
printf("\n\t\t年龄:
%d",per[i].nianling);
printf("\n\t\t邮编:
%ld",per[i].youbian);
printf("\n\t\t地址:
%s",per[i].addr);
printf("\n\t\t手机号码:
%s",per[i].celephone);
printf("\n\t\t家庭电话号码:
%s",per[i].homephone);
printf("\n\t\t公司名称:
%s",per[i].company);
printf("\n\t\t电子邮件:
%s",per[i].email);
printf("\n\t\tQQ号码:
%ld",per[i].QQ);
printf("\n\t\t________________________________");
printf("\n\t\t请按任意数字键返回主菜单");
mark++;
scanf("%d",&j);
return;
}
}
if(mark==0)
{
printf("\n\t\t对不起!
没有该联系人的信息!
");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
}
voiddeletemenu()//*删除菜单*//
{
inti,j;
system("cls");
system("color3b");
if(num==0)
{
printf("\n\t\t对不起!
文件中无任何纪录!
");
printf("\n\t\t请先添加个人信息!
");
printf("\n\t\t请按任意数字键返回主菜单");
scanf("%d",&j);
return;
}
else
{
printf("\n\t\t删除菜单");
printf("\n\t\t1-删除单个");
printf("\n\t\t2-返回主菜单");
printf("\n\t\t");
printf("\n\t\t请输入您的数字选择:
");
loop4:
scanf("%d",&i);
switch(i)
{
case1:
deleteone();break;
case2:
mainmenu();break;
default:
printf("对不起!
您的输入有误!
请重新输入:
");gotoloop4;
}
}
}
voiddeleteone()//*删除单个*//
{
inti;
printf("\n\t\t1-按手机号码删除2-按姓名删除");
printf("\n\t\t请输入您的选择:
");
loop5:
scanf("%d",&i);;
switch(i)
{
case1:
deletebycelephone();break;
case2:
deletebyname();break;
default:
printf("对不起!
您的输入有误!
请重新输入:
");gotoloop5;
}
}
voiddeletebyname()//姓名删除*//
{
inta=0;
intfindmark=0;
inti,j,k;
intdeletemark=0;
charname[15];
printf("\n\t