完成了新建,显示,删除,修改,排序这几种功能
代码如下
#include<stdio.h>
#include<string.h>
#include<math.h>
void del();
void creat();
void change();
void find();
int scream();
void show();
void cmp();
struct frien
{
int cod;
char name[20];
int tel;
char sex[10];
}member[20];
void creat() //创建
{
int x,y;
int i;
printf("已有联系人如下:\n");
printf("序号 姓名 电话 性别\n");
printf("\n");
for(i=0;i<20;i++)
{
printf("%d %s %d %s\n", member[i].cod, member[i].name, member[i].tel, member[i].sex);
printf("\n");
}
printf("请输入你想创建的联系人信息:\n");
printf("序号:");
scanf("%d",&x);
if(member[x-1].cod==x)
{
printf("改位置已有内容,请选择其他位置或修改\n");
creat();
}
else
{
member[x-1].cod=x;
printf("\n");
printf("姓名:");
scanf("%s",member[x-1].name);
printf("\n");
printf("电话:");
scanf("%d",&member[x-1].tel);
printf("\n");
printf("性别:");
scanf("%s",member[x-1].sex);
printf("\n");
printf("输入完成");
printf("\n");
printf("是否想要继续输入? 1:是 2:否\n");
printf("请输入:");
scanf("%d", &y);
printf("\n");
if(y==1)
{
creat();
}
else
printf("完成");
scream();
}
}
void del() //删除
{
int i,j,flag=0,k;
char mz[10];
printf("已有联系人如下:\n");
printf("序号 姓名 电话 性别\n");
printf("\n");
for(i=0;i<20;i++)
{
printf("%d %s %d %s\n", member[i].cod, member[i].name, member[i].tel, member[i].sex);
printf("\n");
}
printf("请输入你想删除的联系人\n");
printf("请输入:");
scanf("%s", mz);
for(i=0;i<20;i++)
{
if(strcmp(member[i].name , mz)==0)
{
printf("所得结果:");
printf("%d %s %d %s\n",member[i].cod, member[i].name, member[i].tel, member[i].sex);
flag=i+1;
}
}
if(flag==0)
{
printf("未找到结果\n");
}
else
{
printf("是否确认删除?1:是,2:否\n");
printf("请输入:");
scanf("%d",&j);
printf("\n");
if(j==1)
{
for(i=flag-1;i<=20;i++)
{
member[i]=member[i+1];
member[i].cod=i+1;
// member[flag-1].name=member[flag].name;
// member[flag-1].tel=member[flag].tel;
// member[flag-1].sex=member[flag].sex;
}
for(i=0;i<20;i++)
{
if(member[i].tel==0)
{
member[i].cod=0;
}
}
printf("完成\n");
}
else
{
printf("已取消\n");
}
printf("是否要继续删除信息? 1 yes 2 no\n");
printf("请输入:");
scanf("%d",&k);
if(k==1)
{
del();
}
else
{
scream(); //要返回屏幕函数
}
}
}
void find() //查找
{
int x,y,z;
int i;
char str[10];
printf("请输入你想使用的查找方式\n");
printf("1:序号 2:姓名 3:电话 4:性别\n");
scanf("%d",&x);
if(x==1)
{
printf("输入序号:");
scanf("%d",&y);
for(i=0;i<20;i++)
{
if(member[i].cod==y)
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
}
if(x==2)
{
printf("输入姓名:");
scanf("%s",str);
for(i=0;i<20;i++)
{
if( strcmp( member[i].name, str)==0 )
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
}
if(x==3)
{
printf("输入电话:");
scanf("%d",&y);
for(i=0;i<20;i++)
{
if(member[i].tel==y)
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
}
if(x==4)
{
printf("输入性别:");
scanf("%s",str);
for(i=0;i<20;i++)
{
if( strcmp( member[i].sex, str)==0 )
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
}
printf("是否要继续查找?\n");
printf("请输入:1 是 2 否\n");
scanf("%d",&z);
if(z==1)
{
find();
}
else
{
printf("完成");
scream(); //返回屏幕函数
}
}
void change()
{
int x,y,i,j,k,m,z,p=0,l;
char str[10];
printf("请选择你要使用的查找方式:1 序号 2 姓名 3 电话\n");
scanf("%d",&x);
if(x==1)
{
printf("输入序号:");
scanf("%d",&y);
for(i=0;i<20;i++)
{
if(member[i].cod==y)
{
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
printf("请输入你想修改的项: 1 姓名 2 电话 3 性别\n");
printf("请输入:");
scanf("%d",&k);
if(k==1)
{
printf("修改为:");
scanf("%s",member[i].name);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
if(k==2)
{
printf("修改为:");
scanf("%d",&member[i].tel);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
if(k==3)
{
printf("修改为:");
scanf("%s",member[i].sex);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
break;
}
}
if(p==0)
{
printf("没有找到结果\n");
}
printf("是否修改完成? 1:是 2:否\n");
printf("请输入:");
printf("\n");
scanf("%d",&z);
if(z==1)
{
printf("完成");
scream(); //返回屏幕函数
}
else
{
change();
}
}
if(x==2)
{
printf("输入姓名:");
scanf("%s",str);
for(i=0;i<20;i++)
{
if( strcmp( member[i].name, str)==0 )
{
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
printf("请输入你想修改的项: 1 序号 2 电话 3 性别\n");
printf("请输入:");
scanf("%d",&k);
if(k==1)
{
printf("修改为:");
scanf("%d",&m);
if(member[m-1].cod==m)
{
printf("已有该序号");
change();
}
else
{
member[m-1]=member[i];
member[m-1].cod=m;
member[i].cod=0;
strcpy(member[i].name, " ");
member[i].tel=0;
strcpy(member[i].sex, " ");
}
printf("现在的内容为:");
printf("%d %s %s %d\n",member[m-1].cod, member[m-1].name, member[m-1].sex, member[m-1].tel);
}
if(k==2)
{
printf("修改为:");
scanf("%d",&member[i].tel);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
if(k==3)
{
printf("修改为:");
scanf("%s",member[i].sex);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
p++;
break;
}
}
if(p==0)
{
printf("没有找到结果\n");
}
printf("是否修改完成? 1:是 2:否\n");
printf("请输入:");
scanf("%d",&z);
printf("\n");
if(z==1)
{
printf("完成");
scream(); //返回屏幕函数
}
else
{
change();
}
}
if(x==3)
{
printf("输入电话:");
scanf("%d",&y);
for(i=0;i<20;i++)
{
if(member[i].tel==y)
{
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
printf("请输入你想修改的项: 1 序号 2 姓名 3 性别\n");
printf("请输入:");
scanf("%d",&k);
if(k==1)
{
printf("修改为:");
scanf("%d",&m);
if(member[m-1].cod==m)
{
printf("已有该序号");
change();
}
else
{
member[m-1]=member[i];
member[m-1].cod=m;
member[i].cod=0;
strcpy(member[i].name, "");
member[i].tel=0;
strcpy(member[i].sex, "");
}
printf("现在的内容为:");
printf("%d %s %s %d\n",member[m-1].cod, member[m-1].name, member[m-1].sex, member[m-1].tel);
}
if(k==2)
{
printf("修改为:");
scanf("%s",member[i].name);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
if(k==3)
{
printf("修改为:");
scanf("%s",member[i].sex);
printf("现在的内容为:");
printf("%d %s %s %d\n",member[i].cod, member[i].name, member[i].sex, member[i].tel);
}
p++;
break;
}
}
if(p==0)
{
printf("没有找到结果\n");
}
printf("是否修改完成? 1:是 2:否\n");
printf("请输入:");
scanf("%d",&z);
printf("\n");
if(z==1)
{
printf("完成");
scream(); //返回屏幕函数
}
else
{
change();
}
}
}
void show()
{
int i,x;
printf("已有联系人如下:\n");
printf("序号 姓名 电话 性别\n");
printf("\n");
for(i=0;i<20;i++)
{
printf("%d %s %d %s\n", member[i].cod, member[i].name, member[i].tel, member[i].sex);
printf("\n");
}
printf("请输入你想要进行的操作:\n");
printf("1 新建 2 删除 3 查找 4 修改 5 返回\n");
scanf("%d",&x);
switch(x)
{
case 1 : creat();
break;
case 2 : del();
break;
case 3 : find();
break;
case 4 : change();
break;
case 5 : scream();
break;
default : printf("无效命令\n");
show();
}
}
int scream()
{
int x;
printf("$$$$$$$$$$$$$$$$$$$$$$\n");
printf("$$$$$$$$通讯录$$$$$$$$\n");
printf("按1*************显示录\n");
printf("按2***************新建\n");
printf("按3***************删除\n");
printf("按4***************查找\n");
printf("按5***************修改\n");
printf("按6***************排序\n");
printf("按7***************结束\n");
printf("$$$$$$$$$$$$$$$$$$$$$$\n");
printf("$$$$$$$$$$$$$$$$$$$$$$\n");
printf("请输入指令: ");
scanf("%d",&x);
switch(x)
{
case 1 : show();
break;
case 2 : creat();
break;
case 3 : del();
break;
case 4 : find();
break;
case 5 : change();
break;
case 6 : cmp();
break;
case 7 : return;
default : printf("你是看不懂中文吗?????\n");
printf("\n");
printf("\n");
printf("\n");
scream();
}
}
void cmp()
{
int x,y;
int i,j;
struct frien compare[20];
printf("选择你想要使用的排序方法: 1 序号 2 姓名 3 电话 4 性别\n");
printf("都为从大到小\n");
printf("请输入:");
scanf("%d",&x);
if(x==1)
{
for(i=1;i<20;i++)
{
for(j=0;j<20;j++)
{
if(member[j].cod<member[j+1].cod)
{
compare[j]=member[j];
member[j]=member[j+1];
member[j+1]=compare[j];
}
}
}
}
else if(x==2)
{
for(i=1;i<20;i++)
{
for(j=0;j<20;j++)
{
if((strcmp(member[j].name, member[j+1].name))<0)
{
compare[j]=member[j];
member[j]=member[j+1];
member[j+1]=compare[j];
}
}
}
}
else if(x==3)
{
for(i=1;i<20;i++)
{
for(j=0;j<20;j++)
{
if(member[j].tel<member[j+1].tel)
{
compare[j]=member[j];
member[j]=member[j+1];
member[j+1]=compare[j];
}
}
}
}
else if(x==4)
{
for(i=1;i<20;i++)
{
for(j=0;j<20;j++)
{
if( (strcmp(member[j].sex, member[j+1].sex) )<0)
{
compare[j]=member[j];
member[j]=member[j+1];
member[j+1]=compare[j];
}
}
}
}
else
{
printf("我叫你输入1234,看不懂吗??? 再来一遍!\n");
cmp();
}
printf("排序后通讯录列表如下:\n");
printf("序号 姓名 电话 性别\n");
for(i=0;i<20;i++)
{
printf("%d %s %d %s\n", member[i].cod, member[i].name, member[i].tel, member[i].sex);
printf("\n");
}
printf("你想换个姿势再来一遍吗? 1 yes 2 no\n");
printf("请输入:");
scanf("%d",&y);
if(y==1)
{
cmp();
}
else
{
printf("排序完成\n");
scream();
}
}
int main()
{
scream();
// creat();
// del();
// find();
// change();
// show();
}