编写初级通讯录、复习指针部分

完成了新建,显示,删除,修改,排序这几种功能

代码如下

#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();

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值