C++求用简单链表写一个通讯录管理,要求可以添加、查看、查询、删除
要用上new和deletenewdelete不会用,添加之后不会保存,希望能帮忙写一个我参考下只会弄添加,不懂建立一个空间存放添加的内容,更别提查看这个空间的内容以及修改...
要用上new和delete
new delete不会用,添加之后不会保存,希望能帮忙写一个我参考下
只会弄添加,不懂建立一个空间存放添加的内容,更别提查看这个空间的内容以及修改,真心不会做,求写出一个完整的程序 展开
new delete不会用,添加之后不会保存,希望能帮忙写一个我参考下
只会弄添加,不懂建立一个空间存放添加的内容,更别提查看这个空间的内容以及修改,真心不会做,求写出一个完整的程序 展开
3个回答
展开全部
#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;
}
#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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要参考的可以去网上搜
追问
我找了一些,都不是用简单链表的
还有一些是C语言的
追答
直接搜“ c++ 链表”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-16
展开全部
找一本C++的数据结构教材就可以了。上面一般都有一个链表的实例。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询