#include "stdafx.h"
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
struct TelePhonePeople
{
char name[200];
char telephone[200];
};
typedef struct TelePhone
{
struct TelePhonePeople person;
struct TelePhone *nxt;
}TelePhone,*LinkList;
void SearchPerson(LinkList &dd, int k)
{
LinkList p;
p = dd;
int i;
for (i = 1; i <=k; i++)
{
p = p->nxt;
if (p== NULL)
{
cout << "查找错误,请确认位置后再查找" << endl;
return;
}
}
if (p != NULL)
{
cout <<"联系人姓名"<< p->person.name<<"联系人电话"<<p->person.telephone << endl;
}
else
{
cout << "查找错误,请确认位置后再查找" << endl;
return;
}
}
void Addpeople(TelePhonePeople pp, LinkList &dd)
{
LinkList p;
p= (LinkList)malloc(sizeof(TelePhone));
LinkList q;
q = dd;
while (q->nxt!=NULL)
{
q = q->nxt;
}
q->nxt = p;
p->person = pp;
p->nxt = NULL;
cout << "完成添加" << endl;
}
void PutPerson(LinkList &dd)
{
LinkList p;
p = dd;
while (p->nxt!=NULL)
{
p = p->nxt;
cout << "联系人姓名" << p->person.name << "联系人电话" << p->person.telephone << endl;
}
cout << endl;
//cout << "联系人姓名" << p->person.name << "联系人电话" << p->person.telephone << endl;
}
void DeletePerson(LinkList &dd, int k)
{
LinkList p;
p = dd;
int i;
for (i = 1; i <= k-1; i++)
{
if (p == NULL)
{
cout << "查找错误,请确认位置后再查找" << endl;
return;
}
p = p->nxt;
}
if (p != NULL)
{
if ((p->nxt)->nxt == NULL)
{
p->nxt = NULL;
}
else
{
p->nxt = (p->nxt)->nxt;
}
cout << "完成删除" << endl;
}
else
{
cout << "查找错误,请确认位置后再查找" << endl;
return;
}
}
void Addpp(int k, LinkList &dd, TelePhonePeople pp)
{
LinkList p;
p = (LinkList)malloc(sizeof(TelePhone));
LinkList q;
q = dd;
int i;
for (i = 1; i <= k - 1; i++)
{
if (q == NULL)
{
cout << "查找错误,请确认位置后再查找" << endl;
return;
}
q = q->nxt;
}
p = q->nxt;
p->person = pp;
p->nxt = q->nxt->nxt;
cout << "完成添加" << endl;
}
int main()
{
LinkList head;
string x;
int k;
TelePhonePeople person;
head = (LinkList)malloc(sizeof(TelePhone));
head->nxt = NULL;
for (;;)
{
cout << "添加联系人请输入+" << endl;
cout << "查找某个位置联系人请输入*" << endl;
cout << "删除某个位置联系人请输入-" << endl;
cout << "在位置添加联系人请输入." << endl;
cout << "打印联系表请输入/" << endl;
cout << "退出该程序请输入!" << endl;
cout << endl;
cin >> x;
if (x == "+")
{
//cout << endl;
cout << "输入联系人名字" << endl;
cin >> person.name;
cout << "请输入联系人电话" << endl;
cin >> person.telephone;
//cout << endl;
Addpeople(person, head);
}
else if (x == ".")
{
//cout << endl;
cout << "输入联系人名字" << endl;
cin >> person.name;
cout << "请输入联系人电话" << endl;
cin >> person.telephone;
cout << "插入位置" << endl;
cin >> k;
Addpp(k, head, person);
}
else if(x=="*")
{
cin >> k;
SearchPerson(head, k);
}
else if(x=="-")
{
cin >> k;
DeletePerson(head,k);
}
else if(x=="/")
{
PutPerson(head);
}
else
{
return 0;
}
}
}
链表通讯录demo
最新推荐文章于 2022-08-15 15:34:14 发布