编写通讯录
实现了(1)添加联系人(2)删除联系人(3)修改联系人(4)选择排序
#include<stdio.h>
#include<string>
int screen(); //主界面
void add(); //新建联系人
void del(); //删除联系人
void mod(); //修改联系人信息
void px(); //排序显示方式
struct demo
{
int tel; //电话
int id; //学号
char name[30]; //姓名
char address[30]; //地址
char qq[20]; //qq
}list[10];
int main() //开始
{
int i,k;
printf("是否进入主界面,是1,否0\n");
scanf("%d",&k);
if(k == 1)
screen(); //进入操作界面
for(i=0;i<10 ;i++)
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
return 0;
}
int screen()
{
int i;
while(1)
{
printf("请输入0退出,1添加,2删除,3修改,4选择排序\n");
scanf("%d",&i);
if(1 == i)
add();
if(2 == i)
del();
if(3 == i)
mod();
if(4 == i)
px();
if(i==0)
main(); //返回主程序
}
return 0;
}
void add() //新建联系人
{
int i,j=0,t=0,k=1;
for(i=0;i<10;i++)
{
if(strcmp(list[i].name,"") == 0)
{
//添加联系人信息
printf("请输入姓名:");
scanf("%s",list[i].name);
printf("学号:");
scanf("%d",&list[i].id);
printf("电话:");
scanf("%d",&list[i].tel);
printf("地址:");
scanf("%s",list[i].address);
printf("QQ:");
scanf("%s",list[i].qq);
printf("添加成功\n");
//显示新添加的联系人信息
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
j++;
k=0;
}
if(k == 0)
{
printf("是否继续添加\n");
printf("输1退出,输2继续添加\n");
scanf("%d",&t);
if(t == 1) //回主界面
screen();
}
if(j == 10)
{
printf("联系人已满\n");
break;
}
}
}
void del() //删除联系人
{
char a[30];
int i,j,f;
printf("显示删除前所有联系人的信息\n");
for(i=0;i<10 ;i++) //把删除后的通讯录显示出来
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
printf("选择要删除的联系人\n");
scanf("%s",a);
for(i=0;i<10;i++)
{
if(strcmp(list[i].name,a) == 0)
{
for(j=i;strcmp(list[i].name,"") == 0;j++)
{
strcpy(list[j].name,list[j+1].name);
strcpy(list[j].address,list[j+1].address);
strcpy(list[j].qq,list[j+1].qq);
list[j].id=list[j+1].id;
list[j].tel=list[j+1].tel;
printf("删除成功\n");
}
break;
}
}
if(i ==10)
printf("没有名为%s的联系人\n",a);
printf("显示删除后所有联系人的信息\n");
for(i=0;i<10 ;i++) //把删除后的通讯录显示出来
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
printf("是否再次选择删除联系人,是1,回主界面0\n");
scanf("%d",&f);
if(f == 1)
del();
if(f == 0)
screen();
}
void mod() //修改联系人信息
{
char a[30];
int i,b,f=0;
printf("显示没有修改之前所有联系人的信息\n");
for(i=0;i<10 ;i++) //显示没有修改之前所有联系人的信息
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
printf("请选择要修改联系人的姓名:\n");
scanf("%s",a);
printf("请选择要修改联系人的信息:1姓名,2学号,3电话,4地址,5QQ\n");
scanf("%d",&b);
for(i=0;i<10;i++)
{
if(strcmp(a,list[i].name) == 0)
{
if(b == 1)
scanf("%s",list[i].name);
if(b == 2)
scanf("%d",&list[i].id);
if(b == 3)
scanf("%d",&list[i].tel);
if(b == 4)
scanf("%s",list[i].address);
if(b == 5)
scanf("%s",list[i].qq);
f=1;
break;
}
}
if(i == 10)
printf("没有你要修改的联系人\n");
if(f == 1)
{
printf("显示修改之后所有联系人的信息\n");
for(i=0;i<10 ;i++) //显示修改之后所有联系人的信息
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
}
printf("是否再次修改其他联系人信息:1是,0回主界面\n");
scanf("%d",&b);
if(b == 1)
mod();
if(b == 0)
screen();
}
void px() //排序显示方式
{
char a[30],a1[30],a2[30];
int b,c,d,i;
printf("显示排序之前所有联系人的信息\n");
for(i=0;i<10 ;i++) //显示没有排序之前所有联系人的信息
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
printf("请选择排序的方式:1 姓名 2 学号 3 地址\n");
scanf("%d",&b);
if(b == 1)
{
for(i=0;i<9;i++)
{
if(strcmp(list[i].name,list[i+1].name) > 0)
{
strcpy(a,list[i].name); //名字交换
strcpy(list[i].name,list[i+1].name);
strcpy(list[i+1].name,a);
c=list[i].id; //学号
list[i].id=list[i+1].id;
list[i+1].id=c;
d=list[i].tel; //电话
list[i].tel=list[i+1].tel;
list[i+1].tel=d;
strcpy(a1,list[i].address); //地址交换
strcpy(list[i].address,list[i+1].address);
strcpy(list[i+1].address,a1);
strcpy(a2,list[i].qq); //qq交换
strcpy(list[i].qq,list[i+1].qq);
strcpy(list[i+1].qq,a2);
}
}
}
if(b == 2)
{
for(i=0;i<9;i++)
{
if(list[i].id > list[i+1].id)
{
strcpy(a,list[i].name); //名字交换
strcpy(list[i].name,list[i+1].name);
strcpy(list[i+1].name,a);
c=list[i].id; //学号
list[i].id=list[i+1].id;
list[i+1].id=d;
d=list[i].tel; //电话
list[i].tel=list[i+1].tel;
list[i+1].tel=d;
strcpy(a1,list[i].address); //地址交换
strcpy(list[i].address,list[i+1].address);
strcpy(list[i+1].address,a1);
strcpy(a2,list[i].qq); //qq交换
strcpy(list[i].qq,list[i+1].qq);
strcpy(list[i+1].qq,a2);
}
}
}
if(b == 2)
{
for(i=0;i<9;i++)
{
if(strcmp(list[i].address,list[i+1].address) > 0)
{
strcpy(a,list[i].name); //名字交换
strcpy(list[i].name,list[i+1].name);
strcpy(list[i+1].name,a);
c=list[i].id; //学号
list[i].id=list[i+1].id;
list[i+1].id=d;
d=list[i].tel; //电话
list[i].tel=list[i+1].tel;
list[i+1].tel=d;
strcpy(a1,list[i].address); //地址交换
strcpy(list[i].address,list[i+1].address);
strcpy(list[i+1].address,a1);
strcpy(a2,list[i].qq); //qq交换
strcpy(list[i].qq,list[i+1].qq);
strcpy(list[i+1].qq,a2);
}
}
}
printf("显示排序之后所有联系人的信息\n");
for(i=0;i<10 ;i++) //显示没有修改之后所有联系人的信息
{
printf("姓名:");
printf("%s\t",list[i].name);
printf("学号:");
printf("%d\t",list[i].id);
printf("电话:");
printf("%d\t",list[i].tel);
printf("地址:");
printf("%s\t",list[i].address);
printf("QQ:");
printf("%s\t",list[i].qq);
printf("\n");
}
printf("是否再次排序:是 1 否 0 \n");
scanf("%d",&b);
if(b == 1)
px();
if(b == 0)
screen();
}