C++手机通讯录代码帮忙改写下!用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 30
用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。(一)功能要求(1)查看功能:选择此功能时,列出下列三类选择。A办公类B个人类C商务类,当选中某类...
用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
(一) 功能要求
(1) 查看功能:选择此功能时,列出下列三类选择。
A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2) 增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如
杨春 13589664454 商务类 chuny@126.com
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上显示出此人的电话号码中的各个数字。
(4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改
(5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
建议使用结构和链表等数据结构
用C++编写的,有人愿意的话可以发我邮箱。 672512155@qq.com 展开
(一) 功能要求
(1) 查看功能:选择此功能时,列出下列三类选择。
A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2) 增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如
杨春 13589664454 商务类 chuny@126.com
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上显示出此人的电话号码中的各个数字。
(4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改
(5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
建议使用结构和链表等数据结构
用C++编写的,有人愿意的话可以发我邮箱。 672512155@qq.com 展开
1个回答
展开全部
class X
{ public:
static new_handler set_new_handler(new_handler p);
static void* operator new(size_t siz);
private:
static new_handler currentHandler;
};
new_handler X::currentHandler;//初始化为0
new_handler X::set_new_handler(new_handler p)
{ new_handler oldHandler = currentHandler;//保留当前new_handler
currentHandler = p;//再设置当前new_handler
return oldHandler;
}
void *X::operator new(size_t size) //调用一次特定处理方法,用毕恢复
{ newHandler globalHandler=std::set_new_handler(currentHandler);
//配置新new_handler 保存globalHandler
void *memory;
try{
memory = ::oprator new(size); //试分配内存
}
catch(std::bad_alloc&){
std::set_new_handler(globalHandler); //恢复原有处理方法
throw; //传播异常
}
std::set_new_handler(globalHandler): //恢复原有处理方法
return memory;
}
//应用
void nomoreMemory( );
X::set_new_handler(nomoreMemory);
X *px1 = new X; //如果内存分配失败,调用nomoreMemory( )
string *ps = new string; //如果内存分配失败,调用globalHandler
X:: set_new_handler(0);
X *px2 = new X; //如果内存分配失败,立即抛出异常
可以做一个混合风格基类允许 “设定class专属new_handler”
template<class T>
{ public:
static new_handler set_new_handler(new_handler p);
static void* operator new(size_t siz);
private:
static new_handler currentHandler;
};
new_handler X::currentHandler;//初始化为0
new_handler X::set_new_handler(new_handler p)
{ new_handler oldHandler = currentHandler;//保留当前new_handler
currentHandler = p;//再设置当前new_handler
return oldHandler;
}
void *X::operator new(size_t size) //调用一次特定处理方法,用毕恢复
{ newHandler globalHandler=std::set_new_handler(currentHandler);
//配置新new_handler 保存globalHandler
void *memory;
try{
memory = ::oprator new(size); //试分配内存
}
catch(std::bad_alloc&){
std::set_new_handler(globalHandler); //恢复原有处理方法
throw; //传播异常
}
std::set_new_handler(globalHandler): //恢复原有处理方法
return memory;
}
//应用
void nomoreMemory( );
X::set_new_handler(nomoreMemory);
X *px1 = new X; //如果内存分配失败,调用nomoreMemory( )
string *ps = new string; //如果内存分配失败,调用globalHandler
X:: set_new_handler(0);
X *px2 = new X; //如果内存分配失败,立即抛出异常
可以做一个混合风格基类允许 “设定class专属new_handler”
template<class T>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询