数据结构小项目一一通讯录的完成

来源:互联网 发布:mac dd bs 编辑:程序博客网 时间:2024/05/16 07:32

头文件(.h文件)

#ifndef __TXL__

#define __TXL__
#define OK 0
#define ERROR -1


typedef int ElementType;
typedef struct _Tonxin
{       
    char  name[30];         // 链表的数据区
char  id[50];
char  Tel[100];
char Gtel[40];
char  address[100];
struct _Tonxin *next;   // 指向链表的指针域
}Tonxin;


Tonxin*Creat_List();  // 创建表
// 插入数据
int Insert_last(Tonxin *head,Tonxin *node);
// 删除好友
int Delete_Data(Tonxin *head);
// 显示好友 
void DisPlay_List(Tonxin *head);
// 查找好友
int Find_Element(Tonxin *head, char *name);

#endif

头文件函数.c文件

#include <stdio.h>
#include "1.h"
#include <stdlib.h>
#include <string.h>


Tonxin *Creat_List()
{
Tonxin *head = (Tonxin*)malloc(sizeof(Tonxin)/sizeof(char));
if(head == NULL)
return; 
head->next = NULL;
return head;

}
int Insert_last(Tonxin *head,Tonxin *node) // 尾插法输入数据
{
if(node == NULL)
return ERROR;          
Tonxin *tmp = head;
    while(tmp->next)
{
tmp = tmp->next;
}
tmp->next = node;

return OK;
}
void DisPlay_List(Tonxin *head)
{
Tonxin *tmp = head->next;
int count = 0;
while(tmp)
{

printf ("name = %3s, id = %3s,Gtel = %3s,Tel = %3s, address = %3s\n", tmp->name,tmp->id,tmp->Gtel,tmp->Tel,tmp->address);
tmp = tmp->next;
}
putchar('\n');
}
int Find_Element(Tonxin *head,char *name )
{
Tonxin *tmp = head;
while(tmp!=NULL)
{
if (strcmp(tmp->name,name) == 0)
{
printf("name = %s,id = %s,Gtel = %s,Tel = %s, address = %s\n",tmp->name,tmp->id,tmp->Gtel,tmp->Tel,tmp->address);
break;
}
tmp = tmp->next;
}

if (tmp == NULL)
return ERROR;

return OK;
}
 int Delete_Data(Tonxin *head)   // 根据输入id进行删除
{
char name[100];
printf("请输入查找姓名\n");
scanf("%s",name);
Tonxin *tmp = head->next;
Tonxin *p = head;
if(tmp == NULL)
{
   printf("通讯录为空\n");
return ERROR;
}
while(tmp!=NULL)
{
if (strcmp((tmp->name),name) == 0 )

break;
else
p = tmp;
tmp = tmp->next;
}

if(tmp == NULL)
{
printf("没有找到此人\n");
return ERROR;
}
else
{
p->next = tmp->next;
free(tmp);
}
return OK;
}




主函数文件代码

#include <stdio.h>
#include "1.h"
#include <string.h>
#include <stdlib.h>
void k(Tonxin *head)
{
printf("添加好友信息:\n");
Tonxin *tp = (Tonxin*)malloc(sizeof(Tonxin)/sizeof(char));
printf("请输入姓名:\n");
scanf("%s",tp->name);
printf("请输入id:\n");
scanf("%s",tp->id);
printf("请输入手机号:\n");
scanf("%s",tp->Tel);
printf("请输入住址:\n");
scanf("%s",tp->address);
printf("请输入公司电话:\n");
scanf("%s",tp->Gtel);
Insert_last(head,tp);

}


 void serch(Tonxin*head)
{
char name[100];
printf("请输入查找姓名\n");
scanf("%s",name);

if(Find_Element(head,name) != OK)
{
printf("没有找到\n");
}   
}  


int main()
{
Tonxin *head = Creat_List();
if(head == NULL)
return ERROR;
char *name[] = {"通讯录主要功能","A) 添加好友信息。","B) 列表好友信息。","C) 搜索好友。","D) 删除好友。"};
int len = sizeof(name)/sizeof(char*);
int i;
for(i = 0;i < len;i++)
{
printf("                    %s\n",name[i]);
}
// int data;
char x;
// char y[100];
while(1)
{

printf("请输入要执行的指令:\n");
scanf("%c",&x);
switch(x)
{
case 'A':
k(head);
break;
case 'B':
DisPlay_List(head);
break;
case 'C':
serch(head);
break;
case 'D':
Delete_Data(head);
break;
default:
printf("输入指令无效\n");
break;

}
while( getchar()!= '\n');   // 减少输入垃圾
}


}

原创粉丝点击