急求通讯录管理系统(有链表的)数据结构c语言版的源代码。要求c++可以测试通过
通信录管理系统问题描述设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。基本要求(1)查看功能:选择此功能时显示出此类所有数据中的姓名和电话号码(2)增加功能:...
通信录管理系统
问题描述
设计出模拟手机通信录管理系统,实现对手机中的通信录进行
管理。
基本要求 (1) 查看功能:选择此功能时显示出此类所有数据中的姓名和电话号码 (2) 增加功能:能录入新数据 (3)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (4)删除功能:选某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号 展开
问题描述
设计出模拟手机通信录管理系统,实现对手机中的通信录进行
管理。
基本要求 (1) 查看功能:选择此功能时显示出此类所有数据中的姓名和电话号码 (2) 增加功能:能录入新数据 (3)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (4)删除功能:选某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号 展开
展开全部
这个绝对满足了你的要求了,谢谢采纳`
#include<iostream.h>
#include<string>
#include<stdlib.h>
class List;
class person
{
public:
friend class List;
private:
person() {next=0;}
person *next;
char name[10],tel[15];
};
class List
{
public:
List(){list=0;}
int gncd(); // 功能菜单
int print(); // 输出所有信息
int append(); // 增加一个信息
int revise(); // 根据姓名、电话修改信息
int dele(); // 根据姓名、电话删除信息
int exit(); // 退出
private:
person *end();
person *list;
};
int List::exit()
{
abort();
return 1;
}
int List::gncd()
{
cout<<"************欢迎使用****************************"<<endl;
cout<<"1.输入信息。"<<endl;
cout<<"2.根据姓名、电话修改信息。"<<endl;
cout<<"3.根据姓名、电话删除信息"<<endl;
cout<<"4.输出所有现有成员信息"<<endl;
cout<<"5.退出"<<endl;
cout<<"选择:";
int a;
cin>>a;
switch(a)
{
case(1):this->append();break;
case(2):this->revise();break;
case(3):this->dele();break;
case(4):this->print();break;
case(5):this->exit();break;
}
this->gncd();
return 1;
}
int List::print()
{
if(list==0)
{
cout<<"为空或没输入内容"<<endl;
return 0;
}
person *p=list;
while(p!=NULL)
{
cout<<"姓名:"<<p->name<<endl;
cout<<"电话:"<<p->tel<<endl;
p=p->next;
}
cout<<endl;
return 1;
}
int List::append()
{
person *p=new person;
cout<<"请输入姓名:"<<endl;
cin>>p->name;
cout<<"请输入电话号码:"<<endl;
cin>>p->tel;
char temp;
cout<<"是否继续输入(y/n)";
cin>>temp;
if(temp=='y'||temp=='Y')
this->append();
if(list==0)
list=p;
else
(end())->next=p;
return 1;
}
person *List::end()
{
person *p,*q;
for(q=p=list;p;q=p,p=p->next) ;
return q;
}
int List::revise()
{
person *p=list;
char temp[20];
cout<<"你选择了根据姓名、电话修改信息。"<<endl<<"请输入将要修改的姓名或电话:";
cin>>temp;
int i=0;
while(p!=NULL)
{
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp))
{
i=1;
cout<<"请输入新的姓名:";
cin>>p->name;
cout<<"请输入新的电话号码:";
cin>>p->tel;
}
p=p->next;
}
if(i==1) cout<<"修改成功!"<<endl;
if(i!=1) cout<<"未能找到。"<<endl;
return 1;
}
int List::dele()
{
person *q,*p=list;
char temp[20];
cout<<"你选择了根据姓名、电话删除信息。"<<endl<<"请输入将要删除的姓名或电话:";
cin>>temp;
if(p==NULL)
cout<<"为空或没有输入信息。"<<endl;
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp)) //要删除的结点是第一个时
{
list=p->next;
delete p;
cout<<"删除成功!"<<endl;
}
else
{
while(p!=NULL&&(strcmp(p->name,temp)||strcmp(p->tel,temp)))
{
q=p;
p=p->next;
}
if(p==NULL) return 0;
else if(q==NULL)
cout<<"没能找到。"<<endl;
else
{
q->next=p->next;
delete p;
cout<<"删除成功!"<<endl;
}
}
return 1;
}
void main()
{
List L;
L.gncd();
}
#include<iostream.h>
#include<string>
#include<stdlib.h>
class List;
class person
{
public:
friend class List;
private:
person() {next=0;}
person *next;
char name[10],tel[15];
};
class List
{
public:
List(){list=0;}
int gncd(); // 功能菜单
int print(); // 输出所有信息
int append(); // 增加一个信息
int revise(); // 根据姓名、电话修改信息
int dele(); // 根据姓名、电话删除信息
int exit(); // 退出
private:
person *end();
person *list;
};
int List::exit()
{
abort();
return 1;
}
int List::gncd()
{
cout<<"************欢迎使用****************************"<<endl;
cout<<"1.输入信息。"<<endl;
cout<<"2.根据姓名、电话修改信息。"<<endl;
cout<<"3.根据姓名、电话删除信息"<<endl;
cout<<"4.输出所有现有成员信息"<<endl;
cout<<"5.退出"<<endl;
cout<<"选择:";
int a;
cin>>a;
switch(a)
{
case(1):this->append();break;
case(2):this->revise();break;
case(3):this->dele();break;
case(4):this->print();break;
case(5):this->exit();break;
}
this->gncd();
return 1;
}
int List::print()
{
if(list==0)
{
cout<<"为空或没输入内容"<<endl;
return 0;
}
person *p=list;
while(p!=NULL)
{
cout<<"姓名:"<<p->name<<endl;
cout<<"电话:"<<p->tel<<endl;
p=p->next;
}
cout<<endl;
return 1;
}
int List::append()
{
person *p=new person;
cout<<"请输入姓名:"<<endl;
cin>>p->name;
cout<<"请输入电话号码:"<<endl;
cin>>p->tel;
char temp;
cout<<"是否继续输入(y/n)";
cin>>temp;
if(temp=='y'||temp=='Y')
this->append();
if(list==0)
list=p;
else
(end())->next=p;
return 1;
}
person *List::end()
{
person *p,*q;
for(q=p=list;p;q=p,p=p->next) ;
return q;
}
int List::revise()
{
person *p=list;
char temp[20];
cout<<"你选择了根据姓名、电话修改信息。"<<endl<<"请输入将要修改的姓名或电话:";
cin>>temp;
int i=0;
while(p!=NULL)
{
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp))
{
i=1;
cout<<"请输入新的姓名:";
cin>>p->name;
cout<<"请输入新的电话号码:";
cin>>p->tel;
}
p=p->next;
}
if(i==1) cout<<"修改成功!"<<endl;
if(i!=1) cout<<"未能找到。"<<endl;
return 1;
}
int List::dele()
{
person *q,*p=list;
char temp[20];
cout<<"你选择了根据姓名、电话删除信息。"<<endl<<"请输入将要删除的姓名或电话:";
cin>>temp;
if(p==NULL)
cout<<"为空或没有输入信息。"<<endl;
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp)) //要删除的结点是第一个时
{
list=p->next;
delete p;
cout<<"删除成功!"<<endl;
}
else
{
while(p!=NULL&&(strcmp(p->name,temp)||strcmp(p->tel,temp)))
{
q=p;
p=p->next;
}
if(p==NULL) return 0;
else if(q==NULL)
cout<<"没能找到。"<<endl;
else
{
q->next=p->next;
delete p;
cout<<"删除成功!"<<endl;
}
}
return 1;
}
void main()
{
List L;
L.gncd();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询