实现:通讯录管理系统(未完成)

#include<iostream>
#include<string>
#define MAX 1000

using namespace std;

//定义通信结构体
struct Person {
        string Name; //姓名
        int Sex; //性别:1男 2女
        int Age; //年龄
        string Phone; //电话
        string Address; //住址
};

struct Addressbook {
    int size; //记录通信条数
    struct Person p[MAX]; // 来储存Person的结构体
};

void add_person(struct Addressbook * abs) {
    //姓名
    string name;
    cout << "输入你要储存的姓名" << endl;
    cin >> name;
    abs->p[abs->size].Name = name;

    //性别
    int sex;
    cout << "输入该人的性别" << endl;
    cin >> sex;
    abs->p[abs->size].Sex = sex;

    //年龄
    int age;
    cout << "输入该人的年龄" << endl;
    cin >> age;
    abs->p[abs->size].Age = age;
    
    //电话
    string phone;
    cout << "输入该人的电话" << endl;
    cin >> phone;
    abs->p[abs->size].Phone = phone;
    
    //地址
    string address;
    cout << "输入该人的地址" << endl;
    cin >> address;
    abs->p[abs->size].Address = address;
    
    // 计数器自增
    abs->size++;

    cout << "添加成功" << endl;
    system("pause");
    system("cls");
}

void display_person(struct Addressbook * abs) {
    if (abs->size == 0) {
        cout << "结构体数据为空" << endl;
    }
    else {
        for (int i = 0; i < abs->size; i++) {
            cout << "姓名为:" << abs->p->Name << "\t性别:" << abs->p->Sex << "\t年龄:" << abs->p->Age << "\t电话:" << abs->p->Phone << "\t地址为:" << abs->p->Address << 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() {
    struct Addressbook abs; //定义一个Addressbook的结构体
    abs.size = 0; //初始化num的值
    int choose = 0; //初始化choose的值
    while (true) {
        showMenu();
        cout << "输入你想进行操作的序号:";
        cin >> choose;
        switch (choose) {
        case 1:
            //添加联系人
            add_person(&abs); //这里为什么要传地址呢,因为我们输入的数据都要保存,而不是函数中允许完就消失
            //cout << abs.p[abs.size-1].Name; // 这个用来调试下,输出上一个size的记录数
            break;
        case 2:
            //显示联系人
            display_person(&abs); //这里可以传地址也可以传值,因为只需要输出就够了,但是还需要知道当前的结构体中的数量len,用于循环次数
            break;
        case 3:
            //删除联系人
            //del_person();
            break;
        case 4:
            //查找联系人
            //find_person();
            break;
        case 5:
            //修改联系人
            //edit_person();
            break;
        case 6:
            //清空联系人
            //clear_person();
            break;
        case 0:
            //退出通讯录
            cout << "欢迎下次使用!" << endl;
            system("pause");
            return 0;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/zpchcbd/p/11845913.html