急求:C程序设计的通讯录管理系统

要求:信息包含编号,姓名,年龄,电话,通讯地址,电子邮箱。能够提供添加,删除,修改及多种查询通讯信息的功能将通讯录保存在文件夹中;能按表格方式输出通讯录信息。... 要求:信息包含编号,姓名,年龄,电话,通讯地址,电子邮箱。
能够提供添加,删除,修改及多种查询通讯信息的功能
将通讯录保存在文件夹中;
能按表格方式输出通讯录信息。
展开
 我来答
_问答_
2009-09-10
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n=0; /*定义全局变量,用于统计联系人个数*/
struct person
{char name[20];
char WP[20];
char PN[20];
char MPN[20];
char FZ[20];
char EM[20];
char QQ[20];
};

void fun1 (struct person b[100],int B[100]) /*输入函数*/
{int i=0;
int H;
do
{printf("请输入第%d个联系人的信息\n",i+1);
printf("请输入姓名:");
scanf("%s",b[B[i]].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",b[B[i]].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",b[B[i]].PN); printf("\n");
printf("请输入移动电话号码:");
scanf("%s",b[B[i]].MPN); printf("\n");
printf("请输入与本人关系:");
scanf("%s",b[B[i]].FZ); printf("\n");
printf("请输入邮箱:");
scanf("%s",b[B[i]].EM); printf("\n");
printf("请输入QQ号码:");
scanf("%s",b[B[i]].QQ); printf("\n");
i++;n++; /*n统计输入的人数*/
printf("1继续输入;0退出\n");
scanf("%d",&H);
}while(H!=0); /*控制输入的结束*/
printf("\n");
}

void fun2 (struct person F[100],int h[100]) /*分屏显示函数*/
{int i=0,t,k,p,m;
t=n/10;
printf("所有联系人的信息如下:\n");
printf("姓名\t单位\t固定电话\t移动电话\t分类\t邮箱\tQQ\n");
if(t==0)
{for(i=0;i<n;i++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[i]].name,F[h[i]].WP,F[h[i]].PN,F[h[i]].MPN,F[h[i]].FZ,F[h[i]].EM,F[h[i]].QQ);}
else
{for(k=0;k<t;k++)
{for(i=0;i<10;i++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[10*k+i]].name,F[h[10*k+i]].WP,F[h[10*k+i]].PN,F[h[10*k+i]].MPN,F[h[10*k+i]].FZ,F[h[10*k+i]].EM,F[h[10*k+i]].QQ);
printf("输入‘1’显示下一页\n");
scanf("%d",&p);
if(p==1)
system("cls");}/*清屏函数*/
m=10*t;
for(i=0;m<n;m++)
printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[h[m]].name,F[h[m]].WP,F[h[m]].PN,F[h[m]].MPN,F[h[m]].FZ,F[h[m]].EM,F[h[m]].QQ);}
}

void fun3(struct person d[100],int e[100]) /*查找信息函数*/
{char x[20],p[2];
int D,i;
do{int m=0;
printf("请输入要查找的信息:\n");
scanf("%s",&x);
for(i=0;i<n;i++)
if(!strcmp(d[e[i]].name,x)||!strcmp(d[e[i]].WP,x)||!strcmp(d[e[i]].PN,x)||!strcmp(d[e[i]].MPN,x)||!strcmp(d[e[i]].FZ,x)
||!strcmp(d[e[i]].EM,x)||!strcmp(d[e[i]].QQ,x)) /*比较每个人的信息与查找信息是否相同*/
{D=e[i]; /*记录查找人数组下标*/
printf("要查询的联系人信息如下:\n");
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",d[D].name,d[D].WP,d[D].PN,d[D].MPN,d[D].FZ,d[D].EM,d[D].QQ);}
printf("输入Y或y继续查询,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}

void fun4(struct person c[100],int k[100]) /*删除数据函数*/
{char d[20]; char p[2];
int t[10],j,i,x;
do{printf("请输入要删除的联系人信息:\n");
scanf("%s",&d);
for(i=0;i<n;i++)
if(!strcmp(d,c[k[i]].name)||!strcmp(d,c[k[i]].WP)||!strcmp(d,c[k[i]].PN)||!strcmp(d,c[k[i]].MPN)||!strcmp(d,c[k[i]].FZ)||!strcmp(d,c[k[i]].EM)||!strcmp(d,c[k[i]].QQ))
j=k[i];
for(x=j;x<n;x++)
k[x]=x+1;
n--;
printf("输入Y或y继续,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}

void fun5(struct person b[100],int B[100]) /*添加数据函数*/
{int H;
do
{printf("请输入添加联系人的信息\n");
printf("请输入姓名:");
scanf("%s",b[B[n]].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",b[B[n]].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",b[B[n]].PN); printf("\n");
printf("请输入移动电话号码:");
scanf("%s",b[B[n]].MPN); printf("\n");
printf("请输入与本人关系:");
scanf("%s",b[B[n]].FZ); printf("\n");
printf("请输入邮箱:");
scanf("%s",b[B[n]].EM); printf("\n");
printf("请输入QQ号码:");
scanf("%s",b[B[n]].QQ); printf("\n");
n++; /*n统计输入的人数*/
printf("1继续添加;0退出\n");
scanf("%d",&H);
}while(H!=0); /*控制输入的结束*/
printf("\n");
}

void fun6(struct person T[100],int r[100]) /*修改数据函数*/
{char p[2],d[20];
int i,t;
do
{printf("请输入要修改联系人信息:\n");
scanf("%s",&d);
for(i=0;i<n;i++)
if(!strcmp(d,T[r[i]].name)||!strcmp(d,T[r[i]].WP)||!strcmp(d,T[r[i]].PN)||!strcmp(d,T[r[i]].MPN)||!strcmp(d,T[r[i]].FZ)||!strcmp(d,T[r[i]].EM)||!strcmp(d,T[r[i]].QQ)) /*依次比较与要删除人的名字的名字是否相同*/
{t=r[i];
printf("请输入改后联系人的信息\n");
printf("请输入姓名:");
scanf("%s",T[t].name); printf("\n");
printf("请输入工作地址:");
scanf("%s",T[t].WP); printf("\n");
printf("请输入固定电话号码:");
scanf("%s",T[t].PN); printf("\n");
printf("请输入移动电话号码:");
scanf("%s",T[t].MPN); printf("\n");
printf("请输入与本人关系:");
scanf("%s",T[t].FZ); printf("\n");
printf("请输入邮箱:");
scanf("%s",T[t].EM); printf("\n");
printf("请输入QQ号码:");
scanf("%s",T[t].QQ); printf("\n");
}
printf("输入Y或y继续,输入N或n退出\n");
scanf("%s",&p);
}while(!strcmp(p,"Y")||!strcmp(p,"y"));
}

void main()
{struct person a[100]; /*定义结构体数组*/
int A[100],i,X;
for(i=0;i<100;i++)
A[i]=i;
do
{printf("*************************菜单************************\n");
printf(" 请选择要进行的操作\n");
printf(" 1 : 输入联系人信息\n");
printf(" 2 :分屏显示所有联系人信息\n");
printf(" 3 : 查找联系人信息\n");
printf(" 4 : 删除联系人信息\n");
printf(" 5 : 增加联系人信息\n");
printf(" 6 : 修改联系人信息\n");

printf(" 0 :退出\n");
scanf("%d",&X); /*菜单选择*/
printf("*************************菜单************************\n");
switch(X)
{case 1: fun1(a,A);break;
case 2: fun2(a,A);break;
case 3: fun3(a,A);break;
case 4: fun4(a,A);break;
case 5: fun5(a,A);break;
case 6: fun6(a,A);break;

}
}while(X!=0);
}

把结构题中的成员改一改就行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式