#include<stdio.h>
#include<string.h>
struct friend1{ //定义好友
char name[50];
char number[50];
};
friend1 friends[100] ; //好友数组
int num=0;//定义全局变量 ,代表有几个好友
void addfriends() //添加好友
{
printf("请输入好友姓名\n");
scanf("%s",friends[num].name) ;
printf("请输入好友电话号码\n");
scanf("%s",friends[num].number);
printf("添加成功!!!\n") ;
num++;
}
void pai()
{
int j=0,i=1;
for (int i = 0; i < num - 1; i++) {
int min = i;
for (j = i + 1; j < num; j++) {
if (strcmp(friends[min].name,friends[j].name)>0)
{
min = j;
}
}
char temna[50];
char temnu[50];
strcpy(temna,friends[min].name);
strcpy(friends[min].name,friends[j].name);
strcpy(friends[j].name,temna);
strcpy(temnu,friends[min].number);
strcpy(friends[min].number,friends[j].number);
strcpy(friends[j].number,temnu);
}
printf("排序成功\n");
}
int compare(char x[],char y[])//对比两个字符串的函数供后续使用
{
int i=0;
while(x[i]!='\0')
{
if(x[i]!=y[i])
{
return 0;
}
i++;
}
return 1;
}
void start()
{
printf("欢迎使用臧家琦的通讯录系统\n" );
printf("1.添加通讯录好友\n");
printf("2.查找通讯录好友\n");
printf("3.修改好友信息\n");
printf("4.展示所有联系人\n");
printf("5.删除好友\n");
printf("6.好友排序\n");
printf("7.退出\n");
}
void deleted()//删除好友
{
printf("请输入你要删除的好友的姓名或者号码");
char words[100];
int i;
scanf("%s",words);
for( i=0;i<=num;i++)//通过字符数组一一对比找到删除的目标
{
if(compare(words,friends[i].name)==1||compare(words,friends[i].number)==1)
{
printf("%s %s",friends[i].name,friends[i].number);
break;
}
}
while(i<num)
{
strcpy(friends[i].name,friends[i+1].name);
strcpy(friends[i].number,friends[i+1].number);
i++;
}
printf("删除成功\n");
num--;//删除成功后num减一
}
void showall()
{
for(int i=0;i<=num;i++)
{
printf("姓名:%s\n",friends[i].name);
printf("号码:%s\n",friends[i].number);
printf("\n");
}
}
void searchfriends()
{
char words[50];
int i;
printf("请输入好友的姓名或者电话\n");
scanf("%s",words);
for(i=0;i<=num;i++)
{
if(compare(words,friends[i].name)==1||compare(words,friends[i].number)==1)
{
printf("姓名:%s 号码:%s",friends[i].name,friends[i].number);
return;
}
} printf("查无此人");
}
void xiugai()//修改好用信息
{
printf("请输入你要修改的朋友的姓名或者电话号\n");
char words[100];
char newnum[100],newname[100];
scanf("%s",words);
int i=0;
for( i=0;i<=num;i++)
{
if(compare(words,friends[i].name)==1||compare(words,friends[i].number)==1)
{
printf("%s %s",friends[i].name,friends[i].number);
break;
}
}
printf("你想要修改朋友的姓名还是号码,若是姓名请输入2,若是号码请输入1\n");
int word;
scanf("%d",&word);
switch(word){
case 1:
printf("请输入修改后的号码\n");
scanf("%s",newnum);
strcpy(friends[i].number,newnum);
return;
case 2:
printf("请输入修改后的名字\n");
scanf("%s",newname);
strcpy(friends[i].name,newname);
return;
default:
printf("搞毛");
return;
}
}
/*
int main() //淘汰原因;如果输入字母则会功能异常
{
start();
for(;;)
{
char x[50];
scanf("%s",x);
switch (x[50]){
case "1":
addfriends();
break;
case "2":
searchfriends();
break;
case "3":
xiugai();break;
case "4":
showall();break;
case "5":
deleted();break;
case "6":
return 0;
default:
printf("搞毛啊");
break;
}
}
return 0;
}
*/
int main() {
start();
//判断输入的内容是否标准
for(;;){
char str[30];
gets(str);
// 先判断第一个字符是否是数字
int result = -1;
if(strlen(str)==1)//如果长度为一就执行下列判断
//&&(str[0]=='1'||str[0]=='2'||str[0]=='3'||str[0]=='4'||str[0]=='5'||str[0]=='6'))
{
switch (str[0]) {
case '0':
result = 0;
break;
case '1':
result = 1;
break;
case '2':
result = 2;
break;
case '3':
result = 3;
break;
case '4':
result = 4;
break;
case '5':
result = 5;
break;
case '6':
result = 6;
break;
case '7':
result = 7;
break;
default:
result = -1;
break;
}
switch (result){
case 1:
addfriends();
break;
case 2:
searchfriends();
break;
case 3:
xiugai();break;
case 4:
showall();break;
case 5:
deleted();break;
case 6:
pai();break;
case 7:
return 0;
default:
printf("搞毛啊");
break;
}
}
else if(strlen(str)!=1){
printf("搞毛\n");
}
}
return 0;
}