通讯录0.1

   > File Name: 1.c
    > Author: zsw
    > Mail: 1832025423@qq.com 
    > Created Time: 2018年02月03日 星期六 11时06分25秒
 ************************************************************************/


#include<stdio.h>
#include<string.h>
#include<stdlib.h>


#define MAX 100
#define true 1
#define false 0


typedef struct 
{
char name[20];
char addr[40];
char mphone[12];
char tel[14];
char sex;
int age;
}data;


typedef struct
{
data a[MAX];
int b;
}c;


char *zhucaidan[]=
{
"***********主菜单************\n",
"1新增联系人\n",
"2删除联系人\n",
"3修改联系人\n",
"4查询联系人\n",
"0退出程序\n",
"*****************************\n",
};


char *find_1[]=
{
"**********查找菜单***********\n",
"1按姓名查找\n",
"2按手机号码查找\n",
"3全部输出\n",
"0退出程序\n",
"*****************************\n",
};
char *delete_1[]=
{
"**********删除菜单***********\n",
"1按姓名删除\n",
"2按手机号码删除\n",
"3全部删除\n",
"0退出当前界面\n",
"*****************************\n",
};


char *change_1[]=
{
"**********删除菜单***********\n",
"1按姓名修改\n",
"2按手机号码修改\n",
"0返回主界面\n",
"*****************************\n",
};


char menu(char *str[],int len)
{
int sel,i;
for(i=0;i<len;i++)
{
printf("%s",str[i]);
}
printf("请输入您的选择:");
scanf("%d",&sel);
getchar();
return sel;
}




int input (data *e)
{
printf("请输入姓名:");
fgets(e->name,12,stdin);
printf("请输入地址:");
fgets(e->addr,40,stdin);
printf("请输入手机号:");
fgets(e->mphone,12,stdin);
printf("请输入电话号码:");
fgets(e->tel,14,stdin);
printf("请输入性别:");
scanf(" %c",&(e->sex));
printf("请输入年龄:");
scanf("%d",&(e->age));
getchar();
return true;
}


int charu(c *l,int i,data e)
{
int j;
if(MAX==l->b)
{
return false;
}
else if(i<0||i>l->b)
{
return false;
}
else
{
for(j=((l->b)-1);j>=i;j--)
{
l->a[j+1]=l->a[j];
}
l->a[i]=e;
l->b++;
return true;
}
}


int output(data e)
{
char sex[3];
printf("姓名:%s",e.name);
printf("地址:%s",e.addr);
printf("手机号:%s",e.mphone);
printf("电话号码:%s",e.tel);
if('0'==e.sex)
{
printf("性别:女\n");
}
else if('1'==e.sex)
{
printf("性别:男\n");
}
else
{
printf("性别:不详\n");
}
printf("年龄:%d\n",e.age);
return true;
}
//查找模块
int find(c l)
{
int i,j,sel=6;
char name[12],mphone[12];
while(0!=sel)
{
sel=menu(find_1,6);
j=1;
switch(sel)
{
case 1:
{
printf("请输入需要查找联系人的姓名:");
fgets(name,12,stdin);
for(i=0;i<l.b;i++)
{
if(0==strcmp(name,l.a[i].name))
{
printf("查找到的第%d位联系人\n",j);
j++;
output(l.a[i]);
}
}
if(j==1)
{
printf("翻了%d个数据也木有找到!\n",l.b);
}
}
break;
case 2:
{
printf("请输入需要查找联系人的手机号:");
fgets(mphone,12,stdin);
for(i=0;i<l.b;i++)
{
if(0==strcmp(mphone,l.a[i].mphone))
{
printf("查找到的第%d位联系人\n",j);
j++;
output(l.a[i]);
}
}
if(j==1)
{
printf("翻了%d个数据也木有找到!\n",l.b);
}
}
break;
case 3:
{
printf("%d发炮弹装填完毕,请按回车确认发射\n",l.b);
getchar();
for(i=0;i<l.b;i++)
{
printf("第%d位联系人\n",j);
j++;
output(l.a[i]);
}
printf("炮弹发射完毕,请按回车继续\n");
getchar();
}
break;
case 0:break;
default:printf("臣妾看不懂啊\n");
break;

}
}
}




int delete(c *l)
{
int i,j,sel=8,m=0;
char k;
char name[12],mphone[12];
while(0!=sel)
{
sel=menu(delete_1,6);
switch(sel)
{
case 1:
{
m=0;
printf("请输入姓名:");
fgets(name,12,stdin);
   for(i=0;i<l->b;i++)
   {
k='*';
if(0==strcmp(name,l->a[i].name))
{
m=m+1;
printf("找到第%d匹配的联系人\n",m);
output(l->a[i]);
while(k=='*')
{
printf("是否删除?(y/n)");
scanf(" %c",&k);
if('y'==k||'Y'==k)
{
for(j=i;j<l->b;j++)
{
l->a[j]=l->a[j+1];
}
l->b--;
}
else if('n'==k||'N'==k) 
{
printf("放弃删除此条记录\n");
}
else
{
printf("兄弟你按错了是y/n,来再来一次!\n");
k='*';
}
}
}
}
if(m==0)
{
printf("臣妾找不到啊!\n");
}
   }
break;
case 2:
{
m=0;
printf("请输入手机号码:");
fgets(mphone,12,stdin);
for(i=0;i<l->b;i++)
{
if(0==strcmp(mphone,l->a[i].mphone))
{
k='*';
m=m+1;
printf("找到匹配的联系人\n");
output(l->a[i]);
while(k=='*')
{
printf("是否删除?(y/n)");
scanf(" %c",&k);
if('y'==k||'Y'==k)
{
for(j=i;j<l->b;j++)
{
l->a[j]=l->a[j+1];
}
l->b--;
}
else if('n'==k||'N'==k) 
{
printf("放弃删除此条记录\n");
}
else
{
printf("兄弟你按错了是y/n,来再来一次!\n");
k='*';
}


}
   }
   }
if(m==0)
{
printf("臣妾找不到啊!\n");
}
}
break;
case 3:
{
printf("兄弟你真的要全部删除吗?\n");
printf("想好的话那就回车确定吧\n");
getchar();
l->b=0;
printf("删除完毕!请回车继续!\n");
}
break;
case 0:break;
default:printf("臣妾看不懂啊\n");break;
}
}
}


int change(c *l)
{
int i,j,sel=8,m=0;
char name[12],mphone[12];
data e;
while(0!=sel)
{
sel=menu(change_1,5);
switch(sel)
{
case 1:
{
m=0;
printf("请输入姓名:");
fgets(name,12,stdin);
   for(i=0;i<l->b;i++)
   {
if(0==strcmp(name,l->a[i].name))
{
printf("第%d位匹配的联系人\n",m);
output(l->a[i]);
printf("请输入新的联系人信息:");
input(&e);
l->a[i]=e;
m=m+1;
printf("修改完毕!");
}
}
if(m==0)
{
printf("臣妾找不到啊!\n");
}
}
break;
case 2:
{
m=0;
printf("请输入手机号码:");
fgets(mphone,12,stdin);
   for(i=0;i<l->b;i++)
   {
if(0==strcmp(mphone,l->a[i].mphone))
{
printf("第%d位匹配的联系人\n",m);
output(l->a[i]);
printf("请输入新的联系人信息:");
input(&e);
l->a[i]=e;
m=m+1;
printf("修改完毕!\n");
}
}
if(m==0)
{
printf("臣妾找不到啊!\n");
}
}
break;
case 0:break;
default:printf("错误输入\n");break;
}
}
}


int main()
{
int i,j,k,sel;
c txl;
txl.b=0;
data e;
while(1)
{
sel=menu(zhucaidan,7);
switch(sel)
{
case 1:
{
menset(&e,0,sizeof(data));
input (&e);
charu(&txl,txl.b,e);
}break;
case 2:delete(&txl);break;
case 3:change(&txl);break;
case 4:find(txl);break;
case 0:exit(0);break;
default:printf("臣妾看不懂啊\n");break;
}
}

虚拟机版本太老就段错误,换到优麒麟一点是木有,有的没换行,下次再说。


  return 0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值