#include<stdio.h>
#include<string.h>
struct birthday
{
int year;
int month;
int day;
};
struct person
{
char name [10];
struct birthday birth;
char phonenumber[20];
};
int main (void)
{
int i,n,j,choice,index;
char namex[10],namey[10],phonex[20];
struct person persons[50],temp;
printf ("请输入通讯录中的联系人人数:");
scanf ("%d",&n);
for (i=0;i<n;i++)
{
printf ("请输入此联系人的姓名:");
scanf ("%s",persons[i].name);
printf ("请输入生日:");
scanf ("%d.%d.%d",&persons[i].birth.year,&persons[i].birth.month,&persons[i].birth.day);
printf ("请输入联系电话:");
scanf ("%s",&persons[i].phonenumber);
printf ("\n");
}
while (1) {
printf ("\n");
printf ("以下为通讯录功能选项:(输入数字选择功能)\n");
printf ("查询通讯录成员个人信息请输入'1';\n");
printf ("修改通讯录成员电话号码请输入'2';\n");
printf ("将通讯录成员按年龄从大到小排序请输入'3';\n");
printf ("输出通讯录所有信息请输入'4';\n");
printf ("退出通讯录服务请输入'0';\n");
printf ("请输入您的选项(数字):");
scanf ("%d",&choice);
printf ("\n");
if (choice==0)
{
break;
}
switch (choice)
{
case 1:
printf ("请输入您要查找的联系人姓名:");
scanf ("%s",namex);
for (i=0;i<n;i++){
if (strcmp(namex,persons[i].name)==0){
printf ("\n");
printf ("姓名:%s\n",persons[i].name);
printf ("生日:%d.%d.%d\n",persons[i].birth.year,persons[i].birth.month,persons[i].birth.day);
printf ("联系电话:");
puts(persons[i].phonenumber);
printf ("\n");
break;
}
}
break;
case 2:
printf ("请输入您要修改的联系人姓名:");
scanf ("%s",namey);
printf ("请为您的联系人设置新的联系电话:");
scanf ("%s",phonex);
for (i=0;i<n;i++)
{
if (strcmp(namey,persons[i].name)==0){
strcpy (persons[i].phonenumber,phonex);
printf ("\n");
printf ("姓名:%s\n",persons[i].name);
printf ("生日:%d.%d.%d\n",persons[i].birth.year,persons[i].birth.month,persons[i].birth.day);
printf ("联系电话:");
puts(persons[i].phonenumber);
printf ("\n");
break;
}
}
break;
case 3:
for (i=0;i<n-1;i++){
index=i;
for (j=i+1;j<n;j++){
if (persons[j].birth.year<persons[index].birth.year){
index=j;
}
else if(persons[j].birth.year==persons[index].birth.year&&persons[j].birth.month<persons[index].birth.month){
index=j;
}
else if(persons[j].birth.year==persons[index].birth.year&&persons[j].birth.month==persons[index].birth.month&&persons[j].birth.day<persons[index].birth.day){
index=j;
}
}
temp=persons[index];
persons[index]=persons[i];
persons[i]=temp;
}
for (i=0;i<n;i++){
printf ("\n");
printf ("姓名:%s\n",persons[i].name);
printf ("生日:%d.%d.%d\n",persons[i].birth.year,persons[i].birth.month,persons[i].birth.day);
printf ("联系电话:");
puts(persons[i].phonenumber);
printf ("\n");
}
break;
case 4:
for (i=0;i<n;i++){
printf ("\n");
printf ("姓名:%s\n",persons[i].name);
printf ("生日:%d.%d.%d\n",persons[i].birth.year,persons[i].birth.month,persons[i].birth.day);
printf ("联系电话:");
puts(persons[i].phonenumber);
}
break;
default :
printf ("\n");
printf ("\n");
printf ("\n");
printf ("您好!您所输入的数字在程序中没有与之对应的功能。\n");
printf ("\n");
printf ("\n");
printf ("\n");
break;
}
}
printf ("\n");
printf ("\n");
printf ("\n");
printf ("感谢您的使用!\n");
return 0;
}
使用File 创建一个文件,直接保存结构体数组即可。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632