C++求用简单链表写一个通讯录管理,要求可以添加、查看、查询、删除

要用上new和deletenewdelete不会用,添加之后不会保存,希望能帮忙写一个我参考下只会弄添加,不懂建立一个空间存放添加的内容,更别提查看这个空间的内容以及修改... 要用上new和delete

new delete不会用,添加之后不会保存,希望能帮忙写一个我参考下
只会弄添加,不懂建立一个空间存放添加的内容,更别提查看这个空间的内容以及修改,真心不会做,求写出一个完整的程序
展开
 我来答
sir_tian
推荐于2018-04-11 · TA获得超过153个赞
知道答主
回答量:72
采纳率:0%
帮助的人:57.8万
展开全部
#include<iostream>
#include<iomanip>
using namespace std;

struct Phone
{
char name[10];
char number[12];
struct Phone *next;
};

typedef struct Phone Node;
typedef Node *pNode;

void Check(pNode pHead)
{
pNode ptr;
ptr=pHead;
char ckName[10];
cout<<"请输入您要查询人的姓名:"<<endl;
cin>>ckName;
while (ptr)
{
if (strcmp(ptr->name,ckName)==0)
{
cout<<"您要查询的人的号码是:"<<ptr->number<<endl;
break;
}
else
{
ptr=ptr->next;
}
cout<<"您要查询的人的号码不存在!"<<endl;
}
}
void AddNewItem(pNode &pHead)
{
pNode ptr;
pNode newnode=new Node;
ptr=NULL;

cout<<"请输入您要添加人的姓名:"<<endl;
cin>>newnode->name;
cout<<"请输入您要添加人的电话号码:"<<endl;
cin>>newnode->number;

if (pHead)
{
ptr=pHead;
while (ptr->next)
{
ptr=ptr->next;
}
newnode->next=NULL;
ptr->next=newnode;
}
else
{
newnode->next=pHead;
pHead=newnode;
ptr=pHead;
}
cout<<"添加成功!"<<endl;
}

void view(pNode pHead)
{
pNode ptr;
ptr=pHead;
while (ptr)
{
cout<<ptr->name<<setw(12)<<ptr->number<<endl;
ptr=ptr->next;
}
}

void DeleteItem(pNode &pHead)
{
pNode ptr,pBefore;
ptr=pBefore=pHead;
char ckName[10];
cout<<"请输入您要删除人的姓名:"<<endl;
cin>>ckName;
while (ptr!=NULL)
{
if (strcmp(ptr->name,ckName)==0)
{
break;
}
else
{
pBefore=ptr;
ptr=ptr->next;
}
}

if (ptr)
{
if (ptr==pHead)
{
pHead=ptr->next;
delete ptr;
}
else
{
pBefore->next=ptr->next;
delete ptr;
}
cout<<"删除成功!"<<endl;
}
}
int main()
{
pNode pHead;
pHead=NULL;
int iChoice;
cout<<"1."<<"添加 ";
cout<<"2."<<"查看 ";
cout<<"3."<<"查询 ";
cout<<"4."<<"删除 ";
cout<<"5."<<"退出 "<<endl;
cout<<"请选择您要做的操作:"<<endl;
while (cin>>iChoice)
{
switch (iChoice)
{
case 1:
AddNewItem(pHead);
break;
case 2:
cout<<"您要查看的记录有:"<<endl;
view(pHead);
break;
case 3:
Check(pHead);
break;
case 4:
DeleteItem(pHead);
break;
case 5:
cout<<"退出成功!"<<endl;
return 0;
}
cout<<"1."<<"添加 ";
cout<<"2."<<"查看 ";
cout<<"3."<<"查询 ";
cout<<"4."<<"删除 ";
cout<<"5."<<"退出 "<<endl;
cout<<"请选择您要做的操作:"<<endl;
}
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1b9539c0c
2011-03-16 · TA获得超过734个赞
知道大有可为答主
回答量:2241
采纳率:33%
帮助的人:734万
展开全部
要参考的可以去网上搜
追问
我找了一些,都不是用简单链表的
还有一些是C语言的
追答
直接搜“ c++    链表”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-16
展开全部
找一本C++的数据结构教材就可以了。上面一般都有一个链表的实例。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式