C++实现管理系统
概述
系统中需要实现的功能如下:
- 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
- 显示联系人:显示通讯录中所有的联系人信息
- 删除联系人:按照姓名进行删除指定联系人
- 查找联系人:按照姓名查看指定联系人信息
- 修改联系人:按照姓名重新修改指定联系人
- 清空联系人:清空通讯录中所有信息
- 退出通讯录:退出当前使用的通讯录
步骤
新建结构体
contact.h
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include<iostream>#include<string>using namespace std;struct Contact{ string name;//姓名 string sex;//性别 int age;//年龄 int phoneNumber;//联系电话 string address;//家庭地址};void printContactInfo(const Contact *p); |
定义
contact.cpp
|
1
2
3
4
5
6
7
8
9
10
|
#include "Contact.h"void printContactInfo(const Contact * p){ cout << "姓名:" << p->name << "---性别:" << p->sex << "---年龄:" << p->age << "---联系电话:" << p->phoneNumber << "---家庭地址:" << p->address << endl;} |
ContactManager.h
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include<iostream>#include "Contact.h"using namespace std;#define MAX 1000struct ContactManager{ //联系人数组 Contact contactArr[MAX]; //当前联系人数量 int size;};void showMenu();void exitSys();void addContact(ContactManager *manager);void showContactList(ContactManager *manager);void delContactByName(ContactManager *manager);void findContactByName(ContactManager *manager);void updateContactByName(ContactManager *manager);void clearManager(ContactManager *manager); |
实现管理者
实现菜单功能
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include "ContactManager.h"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; cout << "*********************************************" << endl; cout << "-----> 请选择操作项并输入操作项编号:" << endl;} |
实现退出功能
|
1
2
3
4
5
|
void exitSys(){ cout << "欢迎下次使用,再见" << endl; system("pause");} |
新增联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
void addContact(ContactManager *manager){ cout << "请输入联系人姓名:"; cin >> manager->contactArr[manager->size].name; cout << "请输入联系人性别:"; cin >> manager->contactArr[manager->size].sex; cout << "请输入联系人年龄:"; cin >> manager->contactArr[manager->size].age; cout << "请输入联系人号码:"; cin >> manager->contactArr[manager->size].phoneNumber; cout << "请输入联系人地址:"; cin >> manager->contactArr[manager->size].address; cout << "添加联系人成功!!!" << endl; manager->size++; system("pause"); system("cls");} |
展示联系人列表
|
1
2
3
4
5
6
7
8
9
|
void showContactList(ContactManager * manager){ for (int i = 0; i < manager->size; i++) { printContactInfo(&manager->contactArr[i]); } system("pause"); system("cls");} |
删除联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
void delContactByName(ContactManager * manager){ cout << "请输入要删除联系人的姓名:"; string name; cin >> name; int pos = isExist(manager, name); if (pos == -1) { cout << "联系人不存在!!" << endl; } else { cout << "联系人的位置在" << pos << endl; //数据前移 for (int i = pos; i < manager->size; i++) { manager->contactArr[pos] = manager->contactArr[pos + 1]; } cout << "删除联系人成功!!" << endl; manager->size--; } system("pause"); system("cls");} |
查找联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
void findContactByName(ContactManager * manager){ cout << "请输入要查找联系人的姓名:"; string name; cin >> name; int pos = isExist(manager, name); if (pos == -1) { cout << "联系人不存在!!" << endl; } else { printContactInfo(&manager->contactArr[pos]); } system("pause"); system("cls");} |
更新联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
void updateContactByName(ContactManager * manager){ cout << "请输入要修改联系人的姓名:"; string name; cin >> name; int pos = isExist(manager, name); if (pos == -1) { cout << "联系人不存在!!" << endl; } else { cout << "请输入联系人性别:"; cin >> manager->contactArr[pos].sex; cout << "请输入联系人年龄:"; cin >> manager->contactArr[pos].age; cout << "请输入联系人号码:"; cin >> manager->contactArr[pos].phoneNumber; cout << "请输入联系人地址:"; cin >> manager->contactArr[pos].address; cout << "修改联系人成功!!!" << endl; } system("pause"); system("cls");} |
清空通讯录
|
1
2
3
4
5
6
7
|
void clearManager(ContactManager * manager){ manager->size = 0; cout << "清空联系人成功!!!" << endl; system("pause"); system("cls");} |
运行截图









C++实现管理系统的更多相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)
开发工具:VS2015(2012以上)+SQL2008R2以上数据库 您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB 升级后界面效果如下: 任务调度系统界面 http: ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统 (源码购买说明)
系列目录 升级日志 !!!重大版本更新:于2016-12-20日完成了系统的结构重构并合并简化了T4(这是一次重要的更新,不需要修改现有功能的代码),代码总行数比上个版本又少了1/3.更新了代码生成器 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- ShenNiu.MVC管理系统
本篇将要和大家分享的是一个简单的后台管理系统,这里先发个地址http://www.lovexins.com:8081/(登陆账号:youke,密码:123123:高级用户账号:gaoji,密码:123 ...
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展
系列目录 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结.首先这是一个团队开发项目,基于接 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(23)-权限管理系统-角色组模块
系列目录 距离上次发布22讲已经有少许日子了,真是太抱歉,最近年关项目比较急,时间太紧,没有时间发布.请大家见谅 接下来我们的目标是 角色组管理 角色组权限设置 用户管理 把角色组授权给用户 给用户分 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(34)-文章发布系统①-简要分析
系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与,虽然有点没有目的的学习,但还是了解了Andro ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(35)-文章发布系统②-构建项目
系列目录 注:阅读本文,需要阅读本系列的之前文章 代码生成器下载地址(文章开头处) 接下来我们建立数据库的表和各层的代码 我们只需要两张表,文章列表(MIS_Article)和类别表(MIS_Arti ...
随机推荐
- 深入浅出具有划时代意义的G1垃圾回收器
G1诞生的背景 Garbage First(简称G1)收集器是垃圾收集器技术发展历史上的里程碑式的成果,它开创了收集器面向局部收集的设计思路和基于Region的内存布局形式.HotSpot开发团队最初 ...
- STM32之旅6——WWDG
WWDG是stm32f103的窗口看门狗,使用的时钟是APB1的时钟,在使用wwdg是被一个小问题困扰了很久--没有打开中断,无法喂狗,一直复位. 初始化完之后需要使能中断: __HAL_WWDG_E ...
- 搭建go-stress-testing压力测试
参考地址:https://github.com/link1st/go-stress-testing安装golang环境 yum install -y golang 下载软件包 wget -q http ...
- shell-变量输入内置read命令详解
1. shell变量的输入 shell变量除了可以直接赋值或脚本传参外,还可以使用read命令从标准输入得. [语法格式] read [参数] [变量名] [常用参数] -p:指定读取值时的提示符: ...
- devops工具链概述
1. devops工具链概述 1)devops工具篇 2) 持续集成 3) 持续交付 4) 持续部署 2. devops工具链概述
- Makefile-3-书写规则
目录 前言 概念 Chapter 3:书写规则 3.3 在规则中使用通配符 3.4 文件搜索 3.8 自动生成依赖性 原理 * 直接解析例子 ** sed 命令 参考 书籍 前言 本笔记主要记录Mak ...
- oracle 11g linux 导入中文字符乱码问题解决
1. 涉及的字符集 这个可以分成三块,数据库服务器字符集(server).实例字符集(instance), 会话字符集(session) 2. 乱码的原因 session 的字符集和 server 的 ...
- 16.Android-activity生命周期与启动模式
1.activity共有4个状态 如下图所示: 运行状态 如果一个活动位于屏幕的前台(可见的),那么它就是活动的或正在运行的. 暂停状态 如果一个活动失去了焦点,但仍然可见(也就是说,一个新的非全尺寸 ...
- Struts2 学习记录-第一天
Struts2 -01 struts2框架认识 struts2框架是web层框架.struts2框架=webwork+strut1框架发展过来的.struts2框架设计主要用到技术:通过过滤器进行请求 ...
- ASP课程实例1——简易的手机号抽奖
本程序用到了最基本的vbscript函数. 请大家注意它们的用法并熟悉asp网页的基本结构. inputbox,mid() ,replace(),rnd(),fix(),document.write ...