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 团队任务管理系统开发版
所在的公司也经历过小团队的发展,为了高效率,通常都是面对面交流,很多时候事情谈论过后不久就已经淡忘了.而且工作任务不能全局观察,成员之间基本上都要主动去询问,效率反而低下.所以今天就介绍一款中小团队的 ...
随机推荐
- 【NPM】使用学习
[NPM]使用学习 转载: 目录 ============================================== 1.修改 npm 模块的安装路径 2.淘宝 NPM 镜像 3.vue-c ...
- CCF-CSP题解 201509-4 高速公路
有点忧愁.\(CSP\)也考\(Tarjan\)缩点的嘛. 原理咱也不明白,咱也不敢学,找到模板就是抄. #include<bits/stdc++.h> const int maxn = ...
- java基础-类成员访问权限控制
一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...
- 面向对象的进阶(item系列,__new__,__hash__,__eq__)
面向对象的进阶(item系列,__new__,__hash__,__eq__) 一.item系列 getitem.setitem.delitem(操作过程达到的结果其实就是增删改查) class ...
- linux环境下zookeeper下载安装
步骤一:安装配置jdk环境 1.下载解压jdk-8u221-linux-x64.tar.gz 2.打开 配置文件,vim /etc/profile,添加如下配置,添加完成记得source /etc/p ...
- Windows密码获取和破解(初探)
Windows密码获取和破解 本文只是简单的讲明密码获取和破解 具体的操作细节均以模糊或具体代码混淆等方式避开 如有兴趣请自行研究,本文不做细说~~~ 获取思路: Windows密码一般是以" ...
- HTTP_header安全选项(浅谈)
HTTP报文头-安全问题 Mirror王宇阳 2019-10-01 参考:MDN技术文档:<http头安全相关的选项_by`myh0st> 认识HTTP协议 https://www.cnb ...
- 《Hands-On System Programming with Go》之目录操作
开一个新书<Hands-On System Programming with Go>,系统的了解一下, 这方面的东东,以前用C语言实现过, 现在用GO,重新来!! package main ...
- Builder模式的目的是解耦构建过程,为什么要用内部类?
还没有看过Builder模式的作用,看过一篇介绍Builder模式的文章,这里是关于Builder模式的思考:思考是否有比新建一个内部类更好的方法,首先想到的是 package xyz.n490808 ...
- js的cookies及html5的localStorage、sessionStorage
1.首先,理解什么是cookies? cookies:存储在客户端,数据量小的,会过期的数据,以字符串形式存储 cookie操作代码示例: <script> window.onload = ...