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;
}