#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct person
{
char em[20];
char tel[20];
char name[20];
char home[20];
char sex[20];
} phone;
void print_tel(struct person phone[],int i)//显示指定联系人
{
printf("\n");
printf("\t\t\t姓名:%s \n",phone[i].name);
printf("\t\t\t性别:%s\n",phone[i].sex);
printf("\t\t\t电话号码:%s\n",phone[i].tel);
printf("\t\t\t住址:%s\n",phone[i].home);
printf("\t\t\tE-mail:%s\n",phone[i].em);
}
void show_tel(struct person phone[],int num)//显示所有联系人
{
system("CLS");
int i;
int m=1;
printf("电话簿中所有联系人信息如下:第%d页\n",m);
if(num==0)
{
printf("电话簿为空!!!\n");
system("PAUSE");
system("CLS");
}
else
{
for(i=0;i<num;i++)
{
printf("姓名:%s\n",phone[i].name);
printf("住址:%s\n",phone[i].home);
printf("电话号码:%s\n",phone[i].tel);
printf("E-mail:%s\n",phone[i].em);//新增翻页
printf("性别:%s\n",phone[i].sex);
}
printf("您的电话簿中共有%d位联系人\n",num);
printf("\n");
system("PAUSE");
system("CLS");//暂停并清屏
}
}
int add_tel(struct person phone[],int num)//添加新的联系人
{
system("CLS");
printf("请输入联系人的姓名:");
scanf("%s",phone[num].name);
printf("请输入联系人的性别:");
scanf("%s",phone[num].sex);
printf("请输入联系人的住址:");
scanf("%s",phone[num].home);
printf("请输入联系人的电话号码:");
scanf("%s",phone[num].tel);
printf("请输入联系人的邮件:");
scanf("%s",phone[num].em);
printf("添加成功!!!\n");
system("PAUSE");
system("CLS");
num++;
return num;
}
int del_tel(struct person phone[],int num )//删除一个联系人
{
system("CLS");
int i,j;
char i_name[20];//用于存放名字
char flag;
int a=0;
printf("\t\t\t请输入需要删除的联系人的姓名:\n\t\t\t");
scanf("%s",i_name);
if(num==0)
{
printf("\t\t\t暂无可删除的联系人!!!\n");
system("PAUSE");
system("CLS");
}
else
{
for(i=0;i<num;i++)
{
if(strcmp(i_name,phone[i].name)==0)
{
a=1;
print_tel(phone,i);
printf("\t\t\t是否删除该联系人?'T'or'F'\n");
scanf("%s",&flag);
if(flag=='T'||flag=='t')
{
for(j=i+1;j<num;j++)
{
phone[i]=phone[j];
}
printf("\t\t\t已成功删除该联系人!!!\n");
system("PAUSE");
system("CLS");
return num-1;
}
else
{
printf("\t\t\t已取消删除!!!\n");
system("PAUSE");
system("CLS");
return num;
}
}
}
if(a==0)
{
printf("\t\t\t电话簿中没有该联系人!!!\n");
return num;
}
}
}
void modify_tel(struct person phone[],int num)//修改联系人信息
{
system("CLS");
int i,a=0;
char i_name[20],flag;
struct person phone0;//创建结构体,进行临时信息的储存
printf("请输入要修改的联系人:");
scanf("%s",i_name);
for(i=0;i<num;i++)//遍历电话薄
{
if(strcmp(i_name,phone[i].name)==0)//找到要修改联系人
{
print_tel(phone,i);//利用函数print_person打印出该联系人的信息
printf("请输入联系人的姓名:");
scanf("%s",phone0.name);
printf("请输入联系人的性别:");
scanf("%s",phone0.sex);
printf("请输入联系人手机号:");
scanf("%s",phone0.tel);
printf("请输入联系人家庭住址:");
scanf("%s",phone0.home);
printf("请输入联系人的电子邮箱:");
scanf("%s",phone0.em);
printf("是否确认修改 T/F:");
scanf("%s",&flag);
if(flag=='T'||flag=='t')
{
phone[i]=phone0;//将临时储存的信息赋予给电话薄
printf("修改成功!\n");
system("PAUSE");
system("CLS");
//系统暂停
}
else{
printf("已取消修改!\n");
system("PAUSE");
system("CLS");
//系统暂停
}
a=1;
}
}
if(a==0)
{
printf("查无此人!\n");
system("PAUSE");
system("CLS");
}
}
void search_tel(struct person phone[],int num)//查询联系人
{
system("CLS");
int i;
char i_name[20];
printf("请输入要查询联系人:");
scanf("%s",i_name);//输入要查询联系人
for(i=0;i<num;i++)//遍历电话薄
{
if(strcmp(phone[i].name,i_name)==0)//如果
{
printf("已查询到该联系人!");
print_tel(phone,i);
system("PAUSE");
system("CLS");
break;
}
}
if(i==num)
{
printf("未查询到该联系人!\n");
system("PAUSE");
system("CLS");
}
}
void sortname_tel(struct person phone[],int num)//按照姓名排序
{
int i,j;
struct person i_name;//定义结构体
system("CLS");
int flag;
if(num==0)
printf("该电话簿暂无联系人!\n");
else
{
printf("请选择将联系人降序排列or升序排列:1.升序 2.降序\n");
scanf("%d",&flag);
switch(flag)
{
case 1:
{
for(i=0;i<num-1;i++)
{
for(j=i+1;j<num;j++)
{
if(strcmp(phone[i].name,phone[j].name)>0)//判断如果前面的更大
{
i_name=phone[i];
phone[i]=phone[j];
phone[j]=i_name;//前后进行位置交换
}
}
}
printf("修改成功!\n");
break;
}
case 2:
{
for(i=0;i<num-1;i++)
{
for(j=i+1;j<num;j++)
{
if(strcmp(phone[i].name,phone[j].name)<0)//判断如果后面的更大
{
i_name=phone[j];
phone[j]=phone[i];
phone[i]=i_name;//前后进行位置交换
}
}
}
printf("修改成功!\n");
break;
}
}
}
system("PAUSE");
system("CLS");
}
int main()
{
struct person phone[100];
int num=0;
int menu_num;
while(1)
{
printf("\n");
printf("\t\t\t欢迎使用电话薄系统\n");
printf("\t\t\t1.显示当前所有号码\n");
printf("\t\t\t2.添加新的号码。\n");
printf("\t\t\t3.删除指定号码。\n");
printf("\t\t\t4.修改联系人。\n");
printf("\t\t\t5.查询联系人。\n");
printf("\t\t\t6.将联系人进行排序。\n");
scanf("%d",&menu_num);
switch(menu_num)
{
case 1: show_tel(phone,num);break;
case 2: num=add_tel(phone,num);break;
case 3: num=del_tel(phone,num);break;
case 4: modify_tel(phone,num); break;
case 5: search_tel(phone,num);break;
case 6: sortname_tel(phone,num);break;
}
}
return 0;
}
|