通讯录管理系统源代码文档格式.docx
《通讯录管理系统源代码文档格式.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统源代码文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
intlist();
intsearch();
intdisplay();
intadd();
intlistbyname();
intdele();
intsave();
intexit();
voidmain()
system("
cls"
);
for(;
;
)
{
switch(menu_select())
case0:
adduser();
break;
case1:
list();
case2:
search();
case3:
display();
case4:
add();
case5:
listbyname();
case6:
dele();
case7:
save();
case8:
exit(0);
}
}
}
menu_select()
chars[80];
inta;
printf("
*_*pressanykeyentermenu!
*_*\n"
getch();
\t\t********************MENU*********************\n\n"
\t\t0.输入记录\n"
\t\t1.显示记录\n"
\t\t2.按查找\n"
\t\t3.按查找\n"
\t\t4.插入记录\n"
\t\t5.按排序\n"
\t\t6.删除记录\n"
\t\t7.记录保存文件\n"
\t\t8.Quit\n"
\t\t***********************************************\n"
do{
\nEnteryouchoice(0~11):
"
scanf("
%s"
s);
a=atoi(s);
while(a<
0||a>
11);
returna;
adduser()
\n\t\t****************请输入用户信息****************\n"
\n\t\t输入:
&
student[num].name);
student[num].phone);
\n\t\t输入地址:
student[num].adress);
\n\t\t输入邮编:
student[num].postcode);
student[num].e_mail);
num++;
\n\t\t是否继续添加?
(Y/N):
if(getch()=='
y'
)
adduser();
return(0);
}
list()
inti;
if(num!
=0)
{
\n\t\t***************以下为通讯录所有信息************"
for(i=0;
i<
num;
i++)
\n\t\t:
%s"
student[i].name);
student[i].phone);
\n\t\t地址:
student[i].adress);
\n\t\t邮编:
student[i].postcode);
student[i].e_mail);
\t\t"
if(i+1<
num)
\n\t\t__________________________"
pause"
\n\t\t************************************************"
else
\n\t\t通讯录中无任何纪录"
\n\t\t按任意键返回主菜单:
return(0);
search()
intmark=0;
inta=0;
\n\t\t*****************按查找*******************"
charname[20];
\n\t\t请输入:
name);
for(i=a;
if(strcmp(student[i].name,name)==0)
\n\t\t*************以下是您查找的用户信息***********"
mark++;
if((i+1)<
\n\t\t是否继续查找相同名字的用户信息:
(y/n)"
if(getch()=='
a=i;
continue;
\n\t\t按任意键返回主菜单"
if(mark!
\n\t\t没有相同的用户纪录"
display()
intmark=0;
inti;
inta=0;
printf("
\n\t\t******************按查找******************"
charphone[10];
scanf("
phone);
for(i=0;
if(strcmp(student[i].phone,phone)==0)
\n\t\t**************以下是您查找的用户信息**********"
if(mark==0)
\n\t\t没有改用户的信息"
add()
if((fp=fopen("
student.bin"
"
wb"
))==NULL)
\n\t\t文件打开失败"
if(fwrite(&
student[i],sizeof(structrecord),1,fp)!
=1)
\n\t\t写入文件错误!
\n"
fclose(fp);
\n\t\t通讯录文件已保存"
\n\t\t按任意键退出程序\n\t\t"
exit(0);
voiddeletebyphone()
inti,j;
intdeletemark=0;
\n\t\t请输入要删除用户:
if(num==0)
\n\t\t对不起,文件中无任何纪录"
return;
if(strcmp(student[i].phone,phone)==NULL)
\n\t\t以下是您要删除的用户纪录:
\n\t\t是否删除?
for(j=i;
j<
num-1;
j++)
student[j]=student[j+1];
num--;
deletemark++;
\n\t\t删除成功"
\n\t\t是否继续删除?
deletebyphone();
if(deletemark==0)
\n\t\t没有该用户的纪录"
voiddeletebyname()
intfindmark=0;
intj;
for(i=a;
if(strcmp(student[i].name,name)==NULL)
findmark++;
\n\t\t________________________________"
if((i+1)<
\n\t\t是否继续删除相同的用户信息?
deletebyname();
else
continue;
if((deletemark==0)&
&
(findmark==0))
elseif(findmark!
\n\t\t没有重名信息"
dele()
charchoic;
\n\t\t1-按删除2-按删除"
\n\t\t请选择:
choic=getch();
switch(choic)
case'
1'
:
deletebyphone();
2'
deletebyname();
listbyname()
inti,j;
structrecordtmp;
for(i=1;
if(strcmp(student[i].name,student[i-1].name)<
0)
tmp=student[i];
j=i-1;
do
student[j+1]=student[j];
j--;
}while((strcmp(tmp.name,student[j].name)<
0&
j>
=0));
student[j+1]=tmp;
\n\t\t排序成功,是否显示?
list();
save()
intj;
FILE*fp;
fp=fopen("
student.txt"
w"
if(fp==NULL)
can'
topenthefile."
=0)
for(j=0;
j++)
fwrite(student,sizeof(student),1,fp);
保存成功!