C语言课程设计通讯录管理系统源程序文件.docx
《C语言课程设计通讯录管理系统源程序文件.docx》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统源程序文件.docx(15页珍藏版)》请在冰点文库上搜索。
C语言课程设计通讯录管理系统源程序文件
#include"stdio.h"
#include
#include"string.h"
#defineheader1"|--------------电话簿------------------|\n"
#defineheader2"|name|phonenum|adress|\n"
#defineheader3"|----------|----------------|----------|\n"
#defineend"|-----------------结束------------------|"
typedefstruct_CStudent
{
charszName[20];/*学生姓名*/
doublenumber;/*电话*/
charadress[100];/*地址*/
}CStudent;
voidmenu();
intduqu(int*len);
intzengjia(int*k,int*len);
intchaxun(int*len);
intxiugai(int*len);
intshanchu(int*len);
intinput(CStudent*p);/*从键盘输入*/
intoutput(int*len);/*向屏幕输出*/
intsearch(CStudentp,int*j,CStudentc[3],int*len);
intsname(CStudentp,int*len);/*姓名查询*/
intsnumber(CStudentp,int*len);/*电话查询*/
voidxname(CStudentq[100],inti);/*姓名修改*/
voidxnumber(CStudentq[100],inti);/*号码修改*/
voidxadress(CStudentq[100],inti);/*地址修改*/
intsput(int*len,CStudentq[100]);/*删除的处理模块*/
main()
{
staticintlen=1;
inti,j=0,k=0;
while(j==0)
{
menu();
do
{
printf("请选择你需要的服务:
\n");
scanf("%d",&i);
}
while(i<0||i>5);
//system("cls");
switch(i)
{
case1:
{j=zengjia(&k,&len);break;}/*增加*/
case2:
{j=duqu(&len);break;}/*读取*/
case3:
{j=chaxun(&len);break;}/*查找*/
case4:
{j=xiugai(&len);break;}/*修改*/
case5:
{j=shanchu(&len);break;}/*删除*/
default:
{printf("|**欢迎下次使用电话薄管理系统!
**|\n");j=1;break;}
}
}
}
intduqu(int*len)
{
CStudentp[100];
inti;
FILE*fp;
system("cls");
printf("\n\t\t|*****欢迎进入读取联系人界面!
*****|\n\n");
if((fp=fopen("e:
//file3","r"))==NULL)
{
printf("error!
\n");
return-1;
}
printf("%s%s%s",header1,header2,header3);
for(i=0;i<*len;i++)
{
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
printf("|%s|%.0lf|%s|\n",p[i].szName,p[i].number,p[i].adress);
}
printf("%s\n",end);
system("pause");
return0;
}
voidmenu()
{
system("cls");
system("color1F");
printf("\n\n\n");/*输出主菜单*/
printf("\t\t|*****欢迎进入通讯录管理系统!
*****|\n");
printf("\t\t|********************menu********************|\n");
printf("\t\t||\n");
printf("\t\t|1增加2读取|\n");
printf("\t\t||\n");
printf("\t\t|3查找4修改|\n");
printf("\t\t||\n");
printf("\t\t|5删除0退出|\n");
printf("\t\t||\n");
printf("\t\t|********************************************|\n");
}
intzengjia(int*k,int*len)
{
CStudentp[100];
inti,j;
FILE*fp;
system("cls");
printf("\n\t\t|*****欢迎进入增加联系人界面!
*****|\n\n");
printf("请输入增加的个数:
\n");
scanf("%d",&j);
k=&j;
(*len)+=j;
//system("cls");
if((fp=fopen("e:
//file3","a+"))==NULL)
{
printf("error!
\n");
return-1;
}
for(i=0;i{
printf("姓名:
");
scanf("%s",&p[i].szName);
printf("电话:
");
scanf("%lf",&p[i].number);
printf("地址:
");
scanf("%s",p[i].adress);
}
for(i=0;ifprintf(fp,"\n%s%lf%s",p[i].szName,p[i].number,p[i].adress);
fclose(fp);
output(len);
return0;
}
intchaxun(int*len)
{
inti;
CStudentaa,cc;
system("cls");
printf("\n\t\t|*****欢迎进入查询联系人界面!
*****|\n\n");
do
{
printf("|-------查找功能------|\n");
printf("||\n");
printf("|1按电话号码查找|\n");
printf("||\n");
printf("|2按姓名查找|\n");
printf("||\n");
printf("|0退出|\n");
printf("||\n");
printf("请输入:
\n");
scanf("%d",&i);
}
while(i>2||i<0);
if(i==2)
{
printf("请输入姓名:
\n");
scanf("%s",&aa.szName);
sname(aa,len);
}
elseif(i==1)
{
printf("请输入号码:
\n");
scanf("%lf",&cc.number);
snumber(cc,len);
}
else
printf("欢迎下次使用电话薄管理系统!
\n");
return0;
}
intxiugai(int*len)
{
CStudentp[100],q[100],a;
inti,j,b;
FILE*fp;
system("cls");
printf("\n\t\t|*****欢迎进入修改联系人界面!
*****|\n\n");
printf("请输入修改人的姓名:
\n");
scanf("%s",a.szName);
if((fp=fopen("e:
//file3","r+"))==NULL)
{
printf("error!
\n");
return-1;
}
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
for(i=0;i<*len;i++)
{
strcpy(q[i].szName,p[i].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=p[i].number;}
for(i=0;i<*len;i++)
{
if(strcmp(p[i].szName,a.szName)==0)
{
j=1;
break;
}
}
if(j==1)
{
printf("|-------修改功能------|\n");
printf("||\n");
printf("|1修改姓名|\n");
printf("||\n");
printf("|2修改号码|\n");
printf("||\n");
printf("|3修改地址|\n");
printf("||\n");
do
{
printf("请选择修改内容:
\n");
scanf("%d",&b);
if(b==1)
xname(q,i);
if(b==2)
xnumber(q,i);
if(b==3)
xadress(q,i);
}
while(b>3||b<1);
printf("修改的联系人重新保存!
\n");
sput(len,q);
}
else
{
printf("|*****通讯录中没有该人的信息!
******|\n");
system("pause");
}
fclose(fp);
output(len);
return0;
}
voidxname(CStudentq[100],inti)
{
printf("姓名重置:
");
scanf("%s",q[i].szName);
}
voidxnumber(CStudentq[100],inti)/*号码修改*/
{
printf("电话重置:
");
scanf("%lf",&q[i].number);
}
voidxadress(CStudentq[100],inti)/*地址修改*/
{
printf("地址重置:
");
scanf("%s",q[i].adress);
}
intshanchu(int*len)
{
CStudentp[100],q[100],a;
inti,j;
FILE*fp;
system("cls");
printf("\n\t\t|*****欢迎进入删除联系人界面!
*****|\n\n");
printf("请输入删除人的姓名:
\n");
scanf("%s",a.szName);
if((fp=fopen("e:
//file3","r+"))==NULL)
{
printf("error!
\n");
return-1;
}
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
for(i=0;i<*len;i++)
{
strcpy(q[i].szName,p[i].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=p[i].number;}
for(i=0;i<*len;i++)
{
if(strcmp(p[i].szName,a.szName)==0)
{
j=1;
break;
}
}
if(j==1)
{
for(;i<*len-1;i++)
{
strcpy(q[i].szName,q[i+1].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=q[i+1].number;
}
printf("删除成功!
\n");
(*len)--;
sput(len,q);
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);
output(len);
}
else
printf("|*****通讯录中没有该人的信息!
******|\n");
fclose(fp);
return0;
}
intsput(int*len,CStudentq[100])
{
inti;
FILE*fp;
if((fp=fopen("e:
//file3","w"))==NULL)
{
printf("error!
\n");
return-1;
}
for(i=0;i<*len;i++)
fprintf(fp,"%s%lf%s",q[i].szName,q[i].number,q[i].adress);
fclose(fp);
return0;
}
search(CStudentp,int*j,CStudentc[100],int*len)/*查询*/
{
FILE*fp;
inti,flag=0;
if((fp=fopen("e:
\\file3","r"))==NULL)
{
printf("cannotwritefile\n");
return-1;
}
for(i=0;i<*len;i++)
{
fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);
if(strcmp(c[i].szName,p.szName)==0)
{flag=1;break;}
if(c[i].number==p.number)
{flag=2;break;}
}
*j=i;
fclose(fp);
returnflag;
}
intsname(CStudentp,int*len)
{
CStudentc[100];
inti,flag;
flag=search(p,&i,c,len);
if(flag==1)
{
printf("%s%s%s",header1,header2,header3);
printf("|%s|%.0lf|%s|\n",c[i].szName,c[i].number,c[i].adress);
printf("%s",end);
printf("\n");
}
else
printf("NotFound\n");
system("pause");
return0;
}
intsnumber(CStudentp,int*len)
{
CStudentc[100];
inti,flag;
flag=search(p,&i,c,len);
if(flag==2)
{
printf("%s%s%s",header1,header2,header3);
printf("|%s|%.0lf|%s|\n",c[i].szName,c[i].number,c[i].adress);
printf("%s",end);
printf("\n");
}
else
printf("NotFound\n");
system("pause");
return0;
}
intoutput(int*len)/*向屏幕输出*/
{
CStudentp[100];
inti;
FILE*fp;
if((fp=fopen("e:
//file3","r"))==NULL)
{
printf("error!
\n");
return-1;
}
printf("%s%s%s",header1,header2,header3);
for(i=0;i<*len;i++)
{
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
printf("|%s|%.0lf|%s|\n",p[i].szName,p[i].number,p[i].adress);
}
printf("%s",end);
printf("\n");
system("pause");
return0;
}