c++实例之通讯录管理系统之删除联系人功能四

#include<iostream>
using namespace std;
constexpr auto MAX = 1000;

//联系人结构体
struct Person
{
    string m_name;
    int m_sex;
     m_age;
     m_phone;
     m_address;

};
通讯录结构体
 AddressBooks
{
    联系人数组
     Person personArray[MAX];
    记录联系人个数
     m_size;
};

添加人员
void addPerson(AddressBooks* abs) {
    判断通讯录是否已满,已满就不再添加
    if (abs->m_size == MAX) {
        cout << "通讯录已满" << endl;
    }
    else{
         name;
         sex;
         age;
         phone;
         address;
        cout << 请输入姓名:";
        cin >>while (true) {
            cout << 请输入性别(0代表男,1代表女):;
            cin >> sex;
            if (sex == 0 || sex == 1) {
                break;
            }{
                cout << 您输入有误,请重新输入! endl;
            }
        }
        cout << 请输入年龄: age;
        cout << 请输入电话: phone;
        cout << 请输入地址: address;
        abs->personArray[abs->m_size].m_name = name;
        abs->personArray[abs->m_size].m_sex = sex;
        abs->personArray[abs->m_size].m_age = age;
        abs->personArray[abs->m_size].m_phone = phone;
        abs->personArray[abs->m_size].m_address = address;
        abs->m_size++;
        cout << 添加成功! endl;
        请按任意键继续
        system(pause);
        清屏
        system(cls);
    }
}
显示联系人
void showPerson(AddressBooks*if (abs->m_size == 0) {
        cout << 当前记录为空 endl;
    } {
        for (int i = 0; i < abs->m_size; i++姓名:" << abs->personArray[i].m_name << \t"
                << 性别:" << (abs->personArray[i].m_sex == 0 ? " : ") << 年龄:" << abs->personArray[i].m_age << 电话:" << abs->personArray[i].m_phone << 地址:" << abs->personArray[i].m_address << endl;
        }
    }
    system();
    system();
}
判断联系人是否存在,若存在,则返回所在下标,否则返回-1
int isExist(AddressBooks* abs, name) {
    )
    {
        if (abs->personArray[i].m_name == name) {
            return i;
        }
    }
    return -;
}

真正的删除操作
void del(AddressBooks* abs,1)"> id) {
    int i = id; i < abs->m_size; i++) 
    {
        abs->personArray[i] = abs->personArray[i + ];
    }
    abs->m_size--查找并删除
void deletePerson(AddressBooks* name;
    cout << 请输入要删除的名字:;
    cin >> name;
     tmp;
    tmp = isExist(abs,name);
    if (tmp != -){
        del(abs,tmp);
        cout << 删除成功"<<endl;
    }{
        cout << 查无此人endl;
    }
    system();
}

菜单界面
void showMenu() {
    cout << ************************ endl;
    cout << ***** 1.添加联系人 ********** 2.显示联系人 ********** 3.删除联系人 ********** 4.修改联系人 ********** 5.查找联系人 ********** 6.清空联系人 ********** 0.退出通讯录 ***** endl;
}

 main() {
    创建通讯录结构体变量
    AddressBooks abs;
    abs.m_size = ;
    int select = while(){
        showMenu();
        cout << 请输入相应的选项: endl;
        cin >> select;
        switch (){
        case 1:添加
            addPerson(&abs);
            2:显示
            showPerson(&3:删除
            deletePerson(&4:修改
            5:查找
            6:清空
            0:退出
            cout << 欢迎下次使用 endl;
            system();
            return ;
            ;
        }
    }
}

相关文章

文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...
文章浏览阅读1.8k次,点赞11次,收藏37次。因为自己对决策树...
文章浏览阅读492次。C++ 设计模式之策略模式
文章浏览阅读683次。我也算是个C++的小白,对于C++中的谓语我...
文章浏览阅读225次。又看了一遍操作符的东西,感觉之前对操作...