一、通讯录
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Tx1;
int Rand(struct Tx1 *pa,int length);
void Steam();
void Printf(struct Tx1 *pa,int length);
int add(struct Tx1 *pa,int length);
int Delete(struct Tx1 *pa,int length);
void Find(struct Tx1 *pa,int length);
void Change(struct Tx1 *pa,int length);
struct Tx1 //结构体
{
int id;
long iphone;
char name[10];
};
int main()
{
Steam();
return 0;
}
int Rand(struct Tx1 *pa,int length) //产生随机数
{
int i,sum = 0;
int temp = 1;
srand(time(NULL));
while(temp)
{
for(i = 0; i < 5 ; i++)
{
sum = sum * 10 + rand()%10;
}
temp = 0;
if(sum < 10000)
{
sum = 0;
temp = 1;
}
for(i = 0; i < length; i++)
{
if(sum == pa[i].id)
{
temp = 1;
sum = 0;
}
}
}
return sum;
}
void Steam() //功能菜单
{
int com = 0;
struct Tx1 a[10] = {0};
int len = 0;
while(1)
{
printf("--------------------------\n");
printf("1、请输入电话号码和联系人\n");
printf("2、删除电话号码和联系人\n");
printf("3、查找电话号码和联系人\n");
printf("4、修改电话号码和联系人\n");
printf("5、查看电话号码和联系人\n");
printf("--------------------------\n");
scanf("%d",&com);
switch(com)
{
case 1:
len = add(a,len);
break;
case 2:
len = Delete(a,len);
break;
case 3:
Find(a,len);
break;
case 4:
Change(a,len);
break;
case 5:
Printf(a,len);
break;
default:
printf("无效选择\n");
break;
}
}
}
void Printf(struct Tx1 *pa,int length) //打印信息
{
int i;
printf("**%%**%%**%%**%%**%%**%%**%%**%%**%%**%%**%%****%%**%%**%%**%%**%%**\n");
for(i = 0; i < length; i++)
{
printf("**%d\t",pa[i].id);
printf("电话号码:%ld\t",pa[i].iphone);
printf("联系人:%s\n",pa[i].name);
}
printf("**%%**%%**%%**%%**%%**%%**%%**%%**%%**%%**%%****%%**%%**%%**%%**%%**\n");
}
int add(struct Tx1 *pa,int length) //添加信息
{
int i;
printf("请输入联系人\n");
scanf("%s",pa[length].name);
printf("请输入电话号码\n");
scanf("%ld",&pa[length].iphone);
printf("---------------------\n");
pa[length].id = Rand(pa,length); //每添加一组信息加一个随机的id(判断不对)
for(i = 0 ; i < length ;i++) //用于判断的时候有没有重复的
{
if(pa[length].iphone == pa[i].iphone)
{
printf("数据重复\n");
length--;
}
break;
}
++length;
return length;
}
int Delete(struct Tx1 *pa,int length) //删除信息
{
int j = 0;
int i;
char Search[11];
printf("请输入电话或者联系人姓名\n");
scanf("%s",Search);
for(i = 0 ; i < length ; i++)
{
if(pa[i].iphone == atol(Search) || strcmp(pa[i].name,Search) == 0) //查找要删除的信息
{
pa[i].iphone = pa[i+1].iphone;
strcpy(pa[i].name,pa[i+1].name);
length--;
j = 1;
break;
}
}
if(1 == j)
{
j = 0;
printf("信息已经删除\n");
}
else
printf("无此人信息\n");
return length;
}
void Find(struct Tx1 *pa,int length) //查找信息
{
int i;
int j = 0;
char Search[11];
printf("请输入要查找的电话或者联系人姓名\n");
scanf("%s",Search);
for(i = 0 ; i < length ; i++)
{
if(pa[i].iphone == atol(Search) || strcmp(pa[i].name,Search) == 0)
{
printf("电话号码:%ld\t",pa[i].iphone);
printf("联系人:%s\n",pa[i].name);
j = 1;
}
}
if(1 == j) //判断功能是否使用
{
j = 0;
printf("信息已经找到\n");
}
else
{
printf("无此人信息\n");
}
}
void Change(struct Tx1 *pa,int length) //修改信息
{
int i;
int j = 0;
char Search[11];
printf("请输入要查找的电话或者联系人姓名\n");
scanf("%s",Search);
for(i = 0 ; i < length ; i++)
{
if(pa[i].iphone == atol(Search) || strcmp(pa[i].name,Search) == 0)
{
printf("修改电话号码:%ld\t",pa[i].iphone);
scanf("%s",Search);
pa[i].iphone = atol(Search);
printf("修改联系人:%s\t",pa[i].name);
scanf("%s",Search);
strcpy(pa[i].name,Search);
printf("\n");
j = 1;
break;
}
}
if(1 == j) //判断功能是否使用
{
printf("信息已经修改\n");
j = 0;
}
else
{
printf("没有修改\n");
}
}
总结:一些功能还没实现,有些小偷懒没有将一些部分分开写,注释不够详细,格式不够规范等等这些问题将会在接下来的几天慢慢解决和添加。