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++编程语言

/**
* 手机通讯录项目
* 基于C++编程语言
* 时间:2020 10 27
* /**
* 手机通讯录项目
* 基于C++编程语言
* 时间:2020 10 27
**/

#include<iostream>
#include<stdlib.h>
#include<sys/fcntl.h>

#define MAX 1000

using namespace std;

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;
}

struct Person{
    string m_Name;
    int m_Sex; //1男 2女
    int m_Age;
    string m_Phone;
    string m_Address;
};

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;

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

        int sex;
        cout<<  "请输入性别(1男 2女):" <<endl;

        while(true){
            cin>>sex;
            if(sex == 1 || sex == 2){
                abs->personArray[abs->m_Size].m_Sex = sex;
                break;
            }else{
                cout<<  "输入错误,请重新输入:" <<endl;
            }
        }
        string phone;
        cout<<  "请输入联系电话:" <<endl;
        cin>>phone;
        abs->personArray[abs->m_Size].m_Phone = phone;

        string address;
        cout<<  "请输入地址:" <<endl;
        cin>>address;
        abs->personArray[abs->m_Size].m_Address = 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_Address <<endl;
        }
    }
}

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

void deletePerson(AddressBooks* abs){
    if(abs->m_Size == 0){
        cout << "通讯录为空,无法进行删除操作" << endl;
        return;
    }else{
    string name;
    cout<< "请输入要删除的联系人的姓名" <<endl;
    cin>>name;
    int ret = isExist(abs,name);
    if(ret == -1){
        cout << "该联系人不存在" << endl;
    }else{
        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){
    string name;
    cout<< "请输入要查找联系人的姓名:" <<endl;
    cin>>name;
    int ret = isExist(abs,name);
    if(ret == -1){
        cout<< "通讯录中不存在此人!" <<endl;
    }else{
        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_Address <<endl;
        cout<<" 查找成功! "<<endl;
    }
}

void changePerson(AddressBooks* abs){
    string name;
    cout<< "请输入你想要修改的联系人:" <<endl;
    cin>>name;
    int ret = isExist(abs,name);
    if(ret == -1){
        cout<< "修改有误,通讯录中不存在此人!" <<endl;
    }else{
        while(true){
            int number;
            cout<< "修改年龄,请输入1; 修改电话,请输入2; 修改地址,请输入3;退出修改,请输入0" <<endl;
            cin>>number;
            if(number == 1 || number == 2 || number == 3 || number == 0){
                if(number == 1){
                    int age;
                    cout<< "请输入年龄:" << endl;
                    cin>>age;
                    abs->personArray[ret].m_Age = age;
                }
                if(number == 2){
                    string phone;
                    cout<< "请输入新的电话:" << endl;
                    cin>>phone;
                    abs->personArray[ret].m_Phone = phone;
                }
                if(number == 3){
                    string address;
                    cout<< "请输入新的地址:" << endl;
                    cin>>address;
                    abs->personArray[ret].m_Address = address;
                }
                else{
                    break;
                }

            }else{
                cout<< "输入有误,请重新进行输入" <<endl;
                break;
            }
       }
        cout<<"修改后的通讯录"<<endl;
        showPerson(abs);
    }
    system("pause");
    system("cls");
}

void emptyPerson(AddressBooks* abs){
    int num = abs->m_Size;
    if(num == 0){
        cout<< "通讯录已经为空!" <<endl;
    }else{
        abs->m_Size == 0;
    }
    system("pause");
    system("cls");
}

int main()
{
    AddressBooks abs;
    abs.m_Size = 0;
    int select;
    while(true){
        showMenu();
        cin>>select;
        switch(select){
        case 1:
            addPerson(&abs);
            break;
        case 2:
            showPerson(&abs);
            break;
        case 3:
            deletePerson(&abs);
            break;
        case 4:
            findPerson(&abs);
            break;
        case 5:
            changePerson(&abs);
            break;
        case 6:
            emptyPerson(&abs);
            break;
        case 0:
            cout<<"*** bye 欢迎下次使用 ***"<<endl;
            return 0;
            break;
        default:
            break;
        }
    }
    return 0;
}

**/
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:48:42  更:2022-03-24 00:50:19 
 
开发: 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/26 11:57:10-

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