c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版)
此项目适合c++初学者,针对c++基础知识,涉及到变量、结构体定义使用、数组定义使用、指针定义使用等。
运行之后的结果如下:
代码:
#include <iostream>
#include <string>
using namespace std;
#define MAX 1000//定义通讯录最大容量为1000
//联系人结构体
struct person
{
string name;
int sex;
int age;
string address;
};
//通讯录结构体
struct contact
{
struct person p[MAX];
int size;
};
//操作菜单
void showMenu() {
cout << "*********通讯录管理系统**********" << endl;
cout << "********* 1.增加联系人 **********" << endl;
cout << "********* 2.删除联系人 **********" << endl;
cout << "********* 3.修改联系人 **********" << endl;
cout << "********* 4.查询联系人 **********" << endl;
cout << "********* 5.显示联系人 **********" << endl;
cout << "********* 6.清空通讯录 **********" << endl;
cout << "********* 0.退出通讯录 **********" << endl;
}
//封装查询联系人是否存在
int isExist(contact* con, string name) {
; i < con->size; i++) {
if (con->p[i].name == name) {
return i;
}
}
;
}
//添加联系人函数
void addPerson(contact *con){//传入数组的指针
if (con->size == MAX) {
cout << "通讯录已满"<<endl;
}
else {
cout << "输入姓名";
string name;
cin >> name;
cout << "输入年龄";
int age;
cin >> age;
cout << "输入性别1:女 2:男";
int sex;
cin >> sex;
cout << "输入地址";
string address;
cin >> address;
con->p[con->size].name = name;
con->p[con->size].age = age;
con->p[con->size].sex = sex;
con->p[con->size].address = address;
con->size++;
}
cout << "添加成功"<<endl;
system("pause");
}
//删除联系人函数
void deletecon(contact* con) {
string name;
cout << "输入要删除的姓名";
cin >> name;
int res = isExist(con,name);
) {
for (int i = res; i < con->size; i++) {
con->p[res] = con->p[res + ];
}
cout << "删除成功" << endl;
con->size--;
}
else {
cout << "查无此人"<<endl;
}
system("pause");
}
//修改联系人函数
void updateContact(contact* con) {
string name;
cout << "输入要修改的联系人姓名查询" << endl;
cin >> name;
int res = isExist(con, name);
) {
cout << ? "女" : "男") << "地址:" << con->p[res].address << endl;
cout << "输入修改姓名";
string nametemp;
cin >> nametemp;
con->p[res].name = nametemp;
cout << "输入修改年龄" << endl;
int age;
cin >> age;
con->p[res].age = age;
cout << "输入修改性别1:女2:男" << endl;
int sex;
cin >> sex;
con->p[res].sex = sex;
cout << "输入修改地址" << endl;
string address;
cin >> address;
con->p[res].address = address;
cout << "修改成功" << endl;
}
else {
cout << "查无此人" << endl;
}
system("pause");
}
//查询联系人函数
void search(contact *con) {
string name;
cout << "输入姓名查询"<<endl;
cin >> name;
int res = isExist(con, name);
) {
cout << ?"女":"男")<<endl;
}
else {
cout << "查无此人" << endl;
}
system("pause");
}
//清空联系人函数
void clearContact(contact* con) {
con->size = ;
cout << "已清空通讯录"<<endl;
system("pause");
}
//显示联系人函数
void showContact(contact* con) {
) {
cout << "暂无联系人"<<endl;
}
else {
; i < con->size; i++) {
cout <<?"女":"男") << endl;
}
}
system("pause");
}
//退出系统函数
int exitapp() {
exit();
}
/**
通讯录管理系统主程序
*/
int main() {
contact con;
con.size = ;
while (true)
{
system("cls");//清屏
showMenu();
cout << "输入你的选择";
int select;
cin >> select;
switch (select) {
:
addPerson(&con);
break;
:
deletecon(&con);
break;
:
updateContact(&con);
break;
:
search(&con);
break;
:
showContact(&con);
break;
:
clearContact(&con);
break;
://退出
exitapp();
break;
}
}
}
获取源码关注公众号 java一号 回复 通讯录即可。

c++实现通讯录管理系统(控制台版)的更多相关文章
- Java小例子(学习整理)-----学生管理系统-控制台版
1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息: 按照学号(精确查询) 按照姓名(模糊查询) 打 ...
- C++入门-控制台版的通讯录管理系统
通讯录管理系统 1.系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别 ...
- 美萍超市销售管理系统标准版access数据库密码mp611
美萍超市销售管理系统标准版access数据库密码mp611 作者:admin 来源:本站 发表时间:2015-10-14 19:01:43 点击:199 美萍超市销售管理系统标准版access后 ...
- iOS学习之Object-C语言简单的通讯录管理系统
用这几天学的OC的知识,写了一个实现简单功能的通讯录管理系统,在这里分享给大家: 通讯录管理系统 * 需求: 1.定义联系人类Contact.实例变量:姓名(拼音,首字母大写).性别.电话号码.住址 ...
- c/c++ 贪吃蛇控制台版
贪吃蛇控制台版(操作系统win7 64位:编译环境gcc, vs2017通过,其它环境未测试 不保证一定通过) 运行效果: #include <iomanip> #include < ...
- 基于TCP协议的聊天室控制台版
我之前写过一篇博客,主要是基于TCP协议实现的聊天室swing版,在此再写一个基于TCP协议实现的聊天室控制台版,便于学习和比较. package 聊天室console版.utils; import ...
- c语言实现通讯录管理系统(c课程设计)
工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...
- 蓝点通用管理系统V13版发布了!
蓝点通用管理系统13版已发布! 重磅新功能:系统的通知和提醒功能,增加微信方式,微信通知.微信查询数据.微信拍照上传....... 蓝点的客户管理系统.进销存管理系统.产品管理系统.工作流管理系统.投 ...
- 5分钟快速部署PESCMS TEAM 团队任务管理系统开发版
所在的公司也经历过小团队的发展,为了高效率,通常都是面对面交流,很多时候事情谈论过后不久就已经淡忘了.而且工作任务不能全局观察,成员之间基本上都要主动去询问,效率反而低下.所以今天就介绍一款中小团队的 ...
随机推荐
- 2016/09/27 Hadoop Yarn
1.1 YARN基本架构 YARN是Hadoop2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceMana ...
- SpringBoot电商项目实战 — 商品的SPU/SKU实现
最近事情有点多,所以系列文章已停止好多天了.今天我们继续Springboot电商项目实战系列文章.到目前为止,整个项目的架构和基础服务已经全部实现,分布式锁也已经讲过了.那么,现在应该到数据库设计及代 ...
- 01-EF Core笔记之创建模型
使用EF Core的第一步是创建数据模型,模型建的好,下班走的早.EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名.主键字段等,毕竟约定大于配置嘛.如果你想改变默认值,很简单,E ...
- Thread.Sleep线程休眠-小白向
try { Thread.sleep(); } catch (InterruptedException e) { } 首先这段代码的作用是使当前进程沉睡2S,展现给用户的结果就是画面维持两秒,有个“正 ...
- c++--语言本身
c++ 面向对象概念(cout cin 类.对象 面向对象和面向过程求解问题) 易犯错误模型(引入成员函数的必要性) C语言和C++语言的关系 namespace 定义(嵌套).使用.标准命名空间st ...
- Gradle for Android ( 构建变体 )
链接: http://77blogs.com/?p=38 https://www.cnblogs.com/tangZH/p/10999060.html 有时候我们一个app需要有不同的版本,不同的版本 ...
- ubuntu虚拟环境的操作
查看已经安装的虚拟环境:workon 退出虚拟环境,home目录下执行:deactivate 进入虚拟环境:workon 虚拟环境名
- linux下安装与配置nfs服务器
NFS 什么是NFS?(NAS) NFS(网络文件系统):它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录.NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的N ...
- 14集超详细视频教程,手把手教你用数据神器Hawk!
沙漠君在闭关4个月后,终于把开源数据神器Hawk(详细介绍在这里)的文档和教学视频基本录制完毕, 并同步更新在有爱无广告二次元的B站! 教程总时间超过3个小时,覆盖了网页采集器,数据清洗,文件读写等方 ...
- ts--泛型
//泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性,组件不仅要能支持当前的数据类型,同时也能支持未来的数据类型 //泛型就是解决 类 接口 方法的复用性 以及对不特定 ...