通讯录项目

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 100
typedef struct student STU;
int person=0;
struct student
{
char name[20];
int age;
int phone;
};
void welcome()
{
system(“clear”);
printf("\n\n\n**************************************\n");
printf(“欢迎来到通讯录!***”);
}

void menu()
{
system(“clear”);
printf("\n\n\n***********************************************\n");
printf(“1、添加信息 2、查看信息\n”);
printf(“3、查找信息 4、删除信息\n”);
printf(“5、修改信息 6、退出\n”);
printf("***********************************************\n");
}

void AddInfo(STU *s[])
{
printf(“请依次输入姓名,年龄,号码,以空格隔开,输入bye结束\n”);
while(1)
{
s[person]=(STU *)malloc(sizeof(STU));

	scanf("%s",s[person]->name);
	if(!strcmp(s[person]->name,"bye"))
	{
		break;
	}
	scanf("%d %d",&s[person]->age,&s[person]->phone);
	person++;
	
}

}

void Display(STU *s[])
{
int i,j;
STU *tmp;
tmp=(STU *)malloc(sizeof(STU));
for(i=0;i<person-1;i++)
{
for(j=i+1;j<person;j++)
{
if(strcmp(s[i]->name,s[j]->name)==1)
{

			tmp=s[i];
			s[i]=s[j];
			s[j]=tmp;
		}
	}
}
printf("姓名\t\t年龄\t\t号码\n");
for(i=0;i<person;i++)
{
	printf("%s\t\t%d\t\t%d\n",s[i]->name,s[i]->age,s[i]->phone);
}

printf("\n输入0退出\n");
int aaa=1;
while(1)
{		
	scanf("%d",&aaa);
	if(aaa==0)
	{
		break;
	}	
}

}

void Find(STU *s[])
{
int i;
char findname[20];
printf(“请输入姓名:\n”);
scanf("%s",findname);
printf(“姓名\t\t年龄\t\t号码\n”);
for(i=0;i<person;i++)
{
if(strcmp(findname,s[i]->name)0)
{
printf("%s\t\t%d\t\t%d\n",s[i]->name,s[i]->age,s[i]->phone);
}
}
printf("\n输入0退出\n");
int aaa=1;
while(1)
{
scanf("%d",&aaa);
if(aaa
0)
{
break;
}
}
}

void Delete(STU *s[])
{
int i,j,k;
STU *tmp;
tmp=(STU *)malloc(sizeof(STU));
for(i=0;i<person-1;i++)
{
for(j=i+1;j<person;j++)
{
if(strcmp(s[i]->name,s[j]->name)==1)
{

			tmp=s[i];
			s[i]=s[j];
			s[j]=tmp;
		}
	}
}
printf("姓名\t\t年龄\t\t号码\n");
for(i=0;i<person;i++)
{
	printf("%s\t\t%d\t\t%d\n",s[i]->name,s[i]->age,s[i]->phone);
}
char deletename[20];
printf("请输入想删除联系人姓名:\n");
scanf("%s",deletename);
for(i=0;i<person;i++)
{
	if(strcmp(deletename,s[i]->name)==0)
	{
		int j;
		for(j=i;j<=person-2;j++)
		{
			s[j]=s[j+1];
		}
		s[person]=NULL;
		person--;
	}
}	

}

void Change(STU *s[])
{
int i;
char changename[20];
printf(“请输入要修改联系人姓名:\n”);
scanf("%s",changename);
for(i=0;i<person;i++)
{
if(strcmp(changename,s[i]->name)==0)
{
int changepart,afterage,afterphone;
char aftername[0];
printf(“姓名\t\t年龄\t\t号码\n”);
printf("%s\t\t%d\t\t%d\n",s[i]->name,s[i]->age,s[i]->phone);
printf(“修改姓名请输1; 修改年龄请输2; 修改号码请输3”);
scanf("%d",&changepart);
printf(“修改为:\t”);
switch(changepart)
{
case 1:
scanf("%s",aftername);
strcpy(s[i]->name,aftername);
break;
case 2:
scanf("%d",&afterage);
s[i]->age=afterage;
break;
case 3:
scanf("%d",&afterphone);
s[i]->phone=afterphone;
break;
default:
break;
}
}
}
}

int main()
{
int i;
struct student *stu[SIZE]={0};
int choice;
welcome();
while(1)
{
menu();
scanf("%d",&choice);
switch(choice)
{
case 1:
AddInfo(stu);
break;
case 2:
Display(stu);
break;
case 3:
Find(stu);
break;
case 4:
Delete(stu);
break;
case 5:
Change(stu);
break;
case 6:
exit(0);
break;
default:
break;
}
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值