C++ 实现简单的通讯录管理系统

C++ 实现简单的通讯录管理系统

  • 1.废话不多说直接上源码

1.废话不多说直接上源码

/**
  ******************************************************************************
  * @file           : project.cpp
  * @author         : zhong
  * @brief          : None
  * @attention      : None
  * @date           : 2023/7/11
  ******************************************************************************
  */

#include 
using namespace std;

struct Person{
    string name;
    string sex;
    int age;
    long long phone;
    string address;
};

void Menu(){
    printf("*************************\n");
    printf("*****1.添加联系人********\n");
    printf("*****2.显示联系人********\n");
    printf("*****3.删除联系人********\n");
    printf("*****4.查找联系人********\n");
    printf("*****5.修改联系人********\n");
    printf("*****6.清空联系人********\n");
    printf("*****0.退出通讯录********\n");
    printf("*************************\n");
}
/*!
 * 添加联系人
 * @param v
 */
void addPerson(vector<Person> &v) {
    Person p;
    cout << "\n请输入姓名: \t";
    cin >> p.name;
CHOOSESEX:
    cout << "\n请输入性别: 1 男 2 女\t";
    int sex = -1;
    cin >> sex;
    if (sex == 1){
        p.sex = "男";
    }else if(sex == 2){
        p.sex = "女";
    }else{
        goto CHOOSESEX;
    }
    cout << "\n请输入年龄: \t";
    cin >> p.age;
    cout << "\n请输入手机号: \t";
    cin >> p.phone;
    cout << "\n请输入地址: \t";
    cin >> p.address;
    v.push_back(p);
}

/*!
 * 显示联系人
 * @param p
 */
void printPerson(const vector<Person> &p){
    for (auto &v: p) {
        cout << v.name << " " << v.sex << " " << v.age << " " << v.phone << " " << v.address << endl;
    }
    cout << endl;
}
/*!
 * 删除联系人
 * @param v
 */
void deletePerson(vector<Person> &v) {
    string name;
    cout << "请输入删除联系人的姓名:   \t";
    cin >> name;
    int index = 0;
    int flag = -1;
    for (auto &value: v) {
        index++;
        if (value.name == name){
            v.erase(v.begin() + index -1);
            flag=0;
        }
    }
    if (!flag) cout << "没有该联系人,无需删除!" << endl;
}
/*!
 * 查找联系人
 * @param v
 */
void findPerson(const vector<Person> &v) {
    string name;
    cout << "请输入查找联系人的姓名:   \t";
    cin >> name;
    int flag = 0;
    for (auto &value: v) {
        if(value.name == name){
            flag = 1;
            cout << "-----查询到该用户信息-----" << endl;
            cout << value.name << " " << value.sex << " " << value.age << " " << value.phone << " " << value.address << endl;
        }
    }
    if(!flag){
        cout << "未查找到该用户!" << endl;
    }
}

/*!
 * 修改联系人
 * @param v
 */
void setPerson(vector<Person> &v){
    string name;
    cout << "请输入修改联系人的姓名:   \t";
    cin >> name;
    int index = 0;
    int flag = 0;
    for (auto &value: v) {
        if(value.name == name){
            v.erase(v.begin() + index);
            addPerson(v);
            flag = 1;
        }
    }
    if(!flag){
        cout << "未查找到该用户!" << endl;
    }
}

/*!
 * 清空所有联系人
 * @param p
 */
void clearAllPerson(vector<Person> &p){
    p.clear();
}

int main() {
    int chooseMenu = -1;
    vector<Person> v;
    while (chooseMenu!=0){
        Menu();
        cin >> chooseMenu;
        switch(chooseMenu){
            case 1:
                addPerson(v);
                break;
            case 2:
                printPerson(v);
                break;
            case 3:
                deletePerson(v);
                break;
            case 4:
                findPerson(v);
                break;
            case 5:
                setPerson(v);
                break;
            case 6:
                clearAllPerson(v);
                break;
            case 0:
                chooseMenu = 0;
        }
    }
    return 0;
}

你可能感兴趣的:(C++,c++,开发语言,开源)