IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 通讯录管理系统 -> 正文阅读

[C++知识库]通讯录管理系统

题目描述:

  • 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
  • 显示联系人:显示通讯录中所有联系人信息
  • 删除联系人:按照姓名进行删除指定联系人
  • 查找联系人:按照姓名查看指定联系人信息
  • 修改联系人:按照姓名重新修改指定联系人
  • 清空联系人:清空通讯录中所有信息
  • 退出通讯录:退出当前使用的通讯录
#include <iostream>
#include <string>
#define MAX 1000
using namespace std;
typedef struct TONGXUNLU
{
    struct PERSON
    {
        string name, number, address;
        bool sex;
        int age;
    } person[MAX];
    int length = 0;
} TONGXUNLU;
int findNameF(const TONGXUNLU * const tongXunLu, const string findName)
{
    for (int i = 0; i < tongXunLu->length; i++)
        if (findName == tongXunLu->person[i].name)
            return i;
    return -1;
}
void changePersonF(TONGXUNLU * const tongXunLu, const int index)
{
    string name;
    while (true)
    {
        cout << "请输入名字:";
        cin >> name;
        if (findNameF(tongXunLu, name) == -1)
        {
            tongXunLu->person[index].name = name;
            break;
        }
        cout << "输入错误!" << endl;
    }
    cout << "请输入号码:";
    cin >> tongXunLu->person[index].number;
    cout << "请输入地址:";
    cin >> tongXunLu->person[index].address;
    int sex;
    while (true)
    {
        cout << "请输入性别:";
        cin >> sex;
        if (sex == 1 || sex == 0)
        {
            tongXunLu->person[index].sex = sex;
            break;
        }
        cout << "输入错误" << endl;
    }
    cout << "请输入年龄:";
    cin >> tongXunLu->person[index].age;
}
void showPersonF(const TONGXUNLU * const tongXunLu, const int index)
{
    cout << "======" << index + 1 << "======" << endl;
    cout << "姓名:\t" << tongXunLu->person[index].name << endl;
    cout << "地址:\t" << tongXunLu->person[index].address << endl;
    cout << "性别:\t" << (tongXunLu->person[index].sex == true ? "男" : "女") << endl;
    cout << "年龄:\t" << tongXunLu->person[index].age << endl;
    cout << "号码:\t" << tongXunLu->person[index].number << endl;
}
void addPerson(TONGXUNLU * const tongXunLu)
{
    string name;
    int sex;
    if (tongXunLu->length > MAX)
        cout << "已经被填满了!" << endl;
    else if (tongXunLu->length = 0)
        cout << "这里什么也没有" << endl;
    else
    {
        changePersonF(tongXunLu, tongXunLu->length);
        tongXunLu->length++;
    }
}
void showPersons(const TONGXUNLU * const tongXunLu)
{
    for (int i = 0; i < tongXunLu->length; i++)
        showPersonF(tongXunLu, i);
}
void deletePerson(TONGXUNLU * const tongXunLu)
{
    string deleteName;
    cout << "请输入要删除人的名字:";
    cin >> deleteName;
    int deleteIndex = findNameF(tongXunLu, deleteName);
    if (deleteIndex != -1)
    {
        for (int i = deleteIndex; i < tongXunLu->length; i++)
            tongXunLu->person[i] = tongXunLu->person[i + 1];
        tongXunLu->length--;
        cout << "删除成功!" << endl;
    }
    else
        cout << "查无此人!" << endl;
}
void findPerson(const TONGXUNLU * const tongXunLu)
{
    string findName;
    cout << "请输入要查找联系人名字:";
    cin >> findName;
    int findIndex = findNameF(tongXunLu, findName);
    if (findIndex != -1)
        showPersonF(tongXunLu, findIndex);
    else
        cout << "查无此人!" << endl;
}
void changePerson(TONGXUNLU * const tongXunLu)
{
    string changeName;
    cout << "请输入要修改联系人名字:";
    cin >> changeName;
    int changeIndex = findNameF(tongXunLu, changeName);
    if (changeIndex != -1)
        changePersonF(tongXunLu, changeIndex);
    else
        cout << "查无此人!" << endl;
}
void showMenu()
{
    cout << "***************************" << endl;
    cout << "*****  1、添加联系人  *****" << endl;
    cout << "*****  2、显示联系人  *****" << endl;
    cout << "*****  3、删除联系人  *****" << endl;
    cout << "*****  4、查找联系人  *****" << endl;
    cout << "*****  5、修改联系人  *****" << endl;
    cout << "*****  6、清空联系人  *****" << endl;
    cout << "*****  7、[清除屏幕]  *****" << endl;
    cout << "*****  0、退出通讯录  *****" << endl;
    cout << "***************************" << endl;
}
int main(int argc, char const *argv[])
{
    TONGXUNLU tongxunlu;
    int choose;
    while (true)
    {
        showMenu();
        cout << "请选择:";
        cin >> choose;
        switch (choose)
        {
        case 1:
            addPerson(&tongxunlu);
            break;
        case 2:
            showPersons(&tongxunlu);
            break;
        case 3:
            deletePerson(&tongxunlu);
            break;
        case 4:
            findPerson(&tongxunlu);
            break;
        case 5:
            changePerson(&tongxunlu);
            break;
        case 6:
            tongxunlu.length = 0;
            break;
        case 7:
            system("cls");
            break;
        case 0:
            return 0;
        default:
            continue;
        }
    }
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:30:30  更:2022-03-21 20:34:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:25:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码