linuxC学习第十九天

一、通讯录

#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");
	}		
}

总结:一些功能还没实现,有些小偷懒没有将一些部分分开写,注释不够详细,格式不够规范等等这些问题将会在接下来的几天慢慢解决和添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值