C++实现通讯录管理系统

本文实例为大家分享了C++通讯录管理系统的具体代码,供大家参考,具体内容如下

#include<iostream>
#include<string>
using namespace std;
#define MAX 1000

struct Person
{
 string m_Name;
 int m_Sex;
 int m_Age;
 string m_Phone;
 string m_Addr;
};

struct Addressbooks
{
 struct Person personArray[MAX];
 int m_Size;
};

void addPerson(Addressbooks * abs)
{
 if (abs->m_Size == MAX)
 {
 cout << "通讯录已满,无法添加!" << endl;
 return;
 }
 else
 {
 string name;
 cout << "请输入姓名:" << endl;
 cin >> name;
 abs->personArray[abs->m_Size].m_Name = name;

 cout << "请输入性别:" << endl;
 cout << "1 --- 男" << endl;
 cout << "2 --- 女" << endl;
 int sex = 0;

 while (true)
 {
 cin >> sex;
 if (sex == 1 || sex == 2)
 {
 abs->personArray[abs->m_Size].m_Sex = sex;
 break;
 }
 cout << "输入有误,请重新输入!" << endl;
 }

 cout << "请输入年龄:" << endl;
 int age = 0;
 cin >> age;
 abs->personArray[abs->m_Size].m_Age = age;

 cout << "请输入联系电话:" << endl;
 string phone;
 cin >> phone;
 abs->personArray[abs->m_Size].m_Phone = phone;

 cout << "请输入家庭住址:" << endl;
 string address;
 cin >> address;
 abs->personArray[abs->m_Size].m_Addr = address;

 abs->m_Size++;

 cout << "添加成功" << endl;

 system("pause");
 system("cls");
 }
}

void showPerson(Addressbooks * abs)
{
 if (abs->m_Size == 0)
 {
 cout << "当前记录为空" << endl;

 }
 else
 {
 for (int i = 0; i < abs->m_Size; i++)
 {
 cout << "姓名:" << abs->personArray[i].m_Name << "\t";
 cout << "性别:" << (abs->personArray[i].m_Sex == 1 ? "男":"女" ) << "\t";
 cout << "年龄:" << abs->personArray[i].m_Age << "\t";
 cout << "电话:" << abs->personArray[i].m_Phone << "\t";
 cout << "住址:" << abs->personArray[i].m_Addr << endl;

 }
 }
 system("pause");
 system("cls");

}

int isExist(Addressbooks * abs, string name)
{
 for (int i = 0; i < abs->m_Size; i++)
 {
 if (abs->personArray[i].m_Name == name)
 {
 return i;
 }
 }
 return -1; //没找到
}

//删除联系人
void deletePerson(Addressbooks * abs)
{
 cout << "请输入要删除的联系人:" << endl;
 string name;
 cin >> name;

 int ret = isExist(abs, name);

 if (ret != -1)
 {
 for (int i = ret; i < abs->m_Size; i++)
 {
 abs->personArray[i] = abs->personArray[i + 1];
 }
 abs->m_Size--;
 cout << "删除成功!" << endl;
 }
 system("pause");
 system("cls");
}

//查找联系人
void findPerson(Addressbooks * abs)
{
 cout << "请输入要查找的联系人:" << endl;
 string name;
 cin >> name;

 int ret = isExist(abs, name);

 if (ret != -1)
 {
 cout << "姓名:" << abs->personArray[ret].m_Name << "\t";
 cout << "性别:" << (abs->personArray[ret].m_Sex == 1 ? "男" : "女") << "\t";
 cout << "年龄:" << abs->personArray[ret].m_Age << "\t";
 cout << "电话:" << abs->personArray[ret].m_Phone << "\t";
 cout << "住址:" << abs->personArray[ret].m_Addr << endl;
 }
 else
 {
 cout << "查无此人" << endl;
 }
 system("pause");
 system("cls");
}

//修改联系人
void modifyPerson(Addressbooks * abs)
{
 cout << "请输入要修改的联系人:" << endl;
 string name;
 cin >> name;

 int ret = isExist(abs, name);

 if (ret != -1)
 {
 string name;
 cout << "请输入姓名:" << endl;
 cin >> name;
 abs->personArray[ret].m_Name = name;

 cout << "请输入性别:" << endl;
 cout << "1 --- 男" << endl;
 cout << "2 --- 女" << endl;
 int sex = 0;

 while (true)
 {
 cin >> sex;
 if (sex == 1 || sex == 2)
 {
 abs->personArray[ret].m_Sex = sex;
 break;
 }
 cout << "输入有误,请重新输入!" << endl;
 }

 cout << "请输入年龄:" << endl;
 int age = 0;
 cin >> age;
 abs->personArray[ret].m_Age = age;

 cout << "请输入联系电话:" << endl;
 string phone;
 cin >> phone;
 abs->personArray[ret].m_Phone = phone;

 cout << "请输入家庭住址:" << endl;
 string address;
 cin >> address;
 abs->personArray[ret].m_Addr = address;

 cout << "修改成功" << endl;
 }
 else
 {
 cout << "查无此人" << endl;
 }
 system("pause");
 system("cls");
}

//清空联系人
void cleanPerson(Addressbooks * abs)
{
 abs->m_Size = 0;
 cout << "通讯录已清空" << endl;

 system("pause");
 system("cls");
}
//显示菜单
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;

}

int main()
{
 Addressbooks abs;
 abs.m_Size = 0;
 int select = 0;

 while (true)
 {
 showMenu();

 cin >> select;
 switch (select)
 {
 case 1: //添加联系人
 addPerson(&abs);
 break;
 case 2: //显示联系人
 showPerson(&abs);
 break;
 case 3: //删除联系人
 /*{
 cout << "请输入删除联系人姓名:" << endl;
 string name;
 cin >> name;
 if (isExist(&abs, name) == -1)
 {
 cout << "查无此人" << endl;
 }
 else
 {
 cout << "找到此人" << endl;
 }
 }*/
 deletePerson(&abs);
 break;
 case 4: //查找联系人
 findPerson(&abs);
 break;
 case 5: //修改联系人
 modifyPerson(&abs);
 break;
 case 6: //清空联系人
 cleanPerson(&abs);
 break;
 case 0:
 cout << "欢迎下次使用" << endl;
 system("pause");
 return 0;
 break;
 default:
 break;
 }
 }

 system("pause");
 return 0;
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++实现简单通讯录

    本文实例为大家分享了C++实现简单通讯录的具体代码,供大家参考,具体内容如下 说明: 1 程序中运用到两个类,一个是Person类,另一个是List类.前者存储用户信息,后者主要用于操作,如增删改查等.但由于本程序中没有涉及到太复杂的功能,用户信息可以由一个简单的结构体表示,但是为了以后拓展方便,和达到学习运算符重载的目的,还是使用了类. 2 List类中的Reflush()方法用户刷新文件内容,即每次修改了vector后要将最新内容写入到文件.因此增删改操作中都要调用该操作,这种方法在数据库开

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • C++实现通讯录管理系统

    本文实例为大家分享了C++通讯录管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<string> using namespace std; #define MAX 1000 struct Person { string m_Name; int m_Sex; int m_Age; string m_Phone; string m_Addr; }; struct Addressbooks { struct Person personA

  • C++链表实现通讯录管理系统

    用数据结构里面线性结构的链表实现,供大家参考,具体内容如下 文件操作未写 有登录操作,复制源码需要更改登录模块的密码文件存放位置 使用VS2017编译器需要保留开头: #define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include "iostream" #include "cstdio" #include "fstream" #include "stdli

  • C语言实现个人通讯录管理系统

    如何用c语言制作简易的个人通讯录管理系统?想必这是每一位初步学习c语言的同学需要解决的一个大问题.如何将这些数据类型不完全相同的数据元素存储并访问呢?采用结构体便能轻松解决这个问题! #include<stdio.h> #include<string.h> #include<stdlib.h> #include<windows.h> struct stu //第一部分:声明结构体类型struct stu { char name[100];//姓名为字符串型

  • 基于C语言实现个人通讯录管理系统

    之前利用C语言完成了一个关于个人通讯录管理系统的课题,主要是关于联系人的添加.查找.删除.修改.输出以及文件的写入与读出,还有一个甜点功能-模拟通话,它的实现原理也很容易理解,文章末尾会介绍到. 主框架: 1.函数声明 关于这里的函数声明,主要是为了可以清楚的了解整个系统的功能,这里不做过多介绍.还有结构体链表的创建,贯穿了各个功能代码部分,必不可少. 2.联系人的添加 这部分主要涉及联系人的姓名.地址.电话.QQ号和邮箱(当然需要其他功能可自行添加),考虑到数组操作不便前提下,使用链表的尾插法

  • java实现通讯录管理系统

    本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 完成项目的流程: 1.根据需求,确定大体方向 2.功能模块分析 3.界面实现 4.功能模块设计 5.coding 6.代码测试 下面是源代码: import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j

  • C语言实现通讯录管理系统

    本文实例为大家分享了C语言实现通讯录管理系统的具体代码,供大家参考,具体内容如下 工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号.性别.籍贯.政治面貌.手机号.QQ号.宿舍等.主要用到了指针.结构体.遍历链表.文件读取等知识点. 运行效果: 代码: #include<stdio.h> #include<string.h> #inc

  • python实现学生通讯录管理系统

    本文实例为大家分享了python实现学生通讯录管理系统的具体代码,供大家参考,具体内容如下 功能模块分析: 1.首页(菜单功能) 2.添加学生 3.删除学生 4.修改学生 5.统计通讯录联系人人数 6.获取所有学生通讯信息 代码如下: def main(): while True: menu() number = int(input("请输入需要实现的操作的序号:")) if number==1: insert() #添加学生 if number==2: delete() #删除学生

  • C语言单链表实现通讯录管理系统

    本文实例为大家分享了C语言单链表实现通讯录管理系统的具体代码,供大家参考,具体内容如下 本人前几天刚刚自学了单链表,趁热打铁,赶紧写一个小小的项目练练手. 单链表的实现在本人之前的博客中有:C语言编写一个链表 通讯录管理系统 保存人的信息有:  名字   name 电话   telephone 性别   sex 年龄   age 用一个结构体来装这些信息: struct infor{ char name[20]; int age; char sex[8]; char telephone[16];

随机推荐