通讯录不完整版

main.c

#include <stdio.h>
#include "LinkList.h"
int g_id=1;
enum menu{ADD = '1', DISPLAY, SEARCH, DELETE };


void add(List *ls)
{
	Data data;
	data.id=g_id++;
	
	printf("\t\t 请输入好友姓名: ");
	scanf("%s",data.name);
	printf("\t\t 请输入好友家庭住址: ");
	scanf("%s",data.addr);
	printf("\t\t 请输入好友手机号码: ");
	scanf("%lld",&data.tel);
	printf("\t\t 请输入好友公司电话: ");
	scanf("%lld",&data.off);
	
	Insert_Last(ls, data);
	
	printf("\t\t好友添加成功\n");
	
}


	

void find(List *ls)
{
	char g_name[20];
	printf("\t\t请输入你想要查找的好友姓名\n");
	printf("\t\t");
	scanf("%s",g_name);
	getchar();
	
	Node *tmp=ls->head;
	printf("\t\t");
	while(tmp->next)
	{
		if(strcmp(tmp->next->data.name, g_name)==0)
		{
			printf("-------------------\n");
			printf("\t\t您查找的好友信息如下\n");
			printf("\t\t id: %d\n",tmp->next->data.id);
			printf("\t\t 姓名: %s\n",tmp->next->data.name);
			printf("\t\t 家庭住址:%s\n",tmp->next->data.addr);
			printf("\t\t 手机号码:%lld\n",tmp->next->data.tel);
			printf("\t\t 公司电话:%lld\n",tmp->next->data.off);
			printf("\t\t--------------------\n");
			break;
		}
	}
}	
	
int main()
{
	List *ls = CreateList();
	if (NULL == ls)
	{
		printf ("创建链表失败\n");
	}
	
	printf ("创建链表成功\n");
	
	char order[10];
	while(1)
	{
		system("clear");
		printf("\t\t--------------\n");
		printf("\t\t 1:添加好友信息\n");
		printf("\t\t 2:列表好友信息\n");
		printf("\t\t 3:搜索好友\n");
		printf("\t\t 4:删除好友\n");
		printf("\t\t--------------\n");
		
		printf("\t\t请输入你需要操作的指令序号\n");
		printf("\t\t");
		fgets(order,10, stdin);
		system("clear");
		
		
		switch(order[0])
		{
			case ADD:
				add(ls);
				break;
			case DISPLAY:
				Display(ls);
				break;
			case SEARCH:
				find(ls);
				break;
			case DELETE:
				Delete_Data(ls);
				break;
			default:
				printf ("\t\t指令错误\n");
				break;
		}
		printf ("\t\t按Enter键返回\n");
		getchar();
	}

	return 0;
}





LinkList.h

#ifndef _LINKLIST_H_
#define _LINKLIST_H_



typedef enum {TRUE, FALSE, ERROR}  BOOL;

typedef struct data
{
	int id;
	char name[20];
	char addr[20];
	long long tel;
	long long off;
}Data;

typedef struct node
{
	Data data;
	struct node *next;
}Node;

typedef struct _list
{
	Node *head;
}List;


// 创建链表
List* CreateList();


//尾插
BOOL Insert_Last(List *ls,Data data);



//删除特定位置的数据
//pos:第pos个结点位置
BOOL Delete_Data(List *ls);



void Destroy(List *ls);

void Display(List *ls);




#endif // _LINKLIST_H_

LinkList.c

#include <stdio.h>
#include "LinkList.h"
int g_id=1;
enum menu{ADD = '1', DISPLAY, SEARCH, DELETE };


void add(List *ls)
{
	Data data;
	data.id=g_id++;
	
	printf("\t\t 请输入好友姓名: ");
	scanf("%s",data.name);
	printf("\t\t 请输入好友家庭住址: ");
	scanf("%s",data.addr);
	printf("\t\t 请输入好友手机号码: ");
	scanf("%lld",&data.tel);
	printf("\t\t 请输入好友公司电话: ");
	scanf("%lld",&data.off);
	
	Insert_Last(ls, data);
	
	printf("\t\t好友添加成功\n");
	
}


	

void find(List *ls)
{
	char g_name[20];
	printf("\t\t请输入你想要查找的好友姓名\n");
	printf("\t\t");
	scanf("%s",g_name);
	getchar();
	
	Node *tmp=ls->head;
	printf("\t\t");
	while(tmp->next)
	{
		if(strcmp(tmp->next->data.name, g_name)==0)
		{
			printf("-------------------\n");
			printf("\t\t您查找的好友信息如下\n");
			printf("\t\t id: %d\n",tmp->next->data.id);
			printf("\t\t 姓名: %s\n",tmp->next->data.name);
			printf("\t\t 家庭住址:%s\n",tmp->next->data.addr);
			printf("\t\t 手机号码:%lld\n",tmp->next->data.tel);
			printf("\t\t 公司电话:%lld\n",tmp->next->data.off);
			printf("\t\t--------------------\n");
			break;
		}
	}
}	
	
int main()
{
	List *ls = CreateList();
	if (NULL == ls)
	{
		printf ("创建链表失败\n");
	}
	
	printf ("创建链表成功\n");
	
	char order[10];
	while(1)
	{
		system("clear");
		printf("\t\t--------------\n");
		printf("\t\t 1:添加好友信息\n");
		printf("\t\t 2:列表好友信息\n");
		printf("\t\t 3:搜索好友\n");
		printf("\t\t 4:删除好友\n");
		printf("\t\t--------------\n");
		
		printf("\t\t请输入你需要操作的指令序号\n");
		printf("\t\t");
		fgets(order,10, stdin);
		system("clear");
		
		
		switch(order[0])
		{
			case ADD:
				add(ls);
				break;
			case DISPLAY:
				Display(ls);
				break;
			case SEARCH:
				find(ls);
				break;
			case DELETE:
				Delete_Data(ls);
				break;
			default:
				printf ("\t\t指令错误\n");
				break;
		}
		printf ("\t\t按Enter键返回\n");
		getchar();
	}

	return 0;
}





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值