//封装函数显示该界面
#include <iostream>
#include <string>
#define MAX 1000
using namespace std;
/*添加联系人
  设计联系人结构体
  设计通讯录结构体
  main函数中创建通讯录
  封装添加联系人函数
  测试添加联系人功能*/
//设计联系人结构体
struct Person{
    string Name;
    int Sex;// 1 男 2 女
    int Age;
    string Phone;
    string Address;
};
//设计通讯录结构体
struct Addressbook{
    struct Person personArray[MAX];//保存的联系人数组
    int Size;//记录的联系人个数
};
//添加联系人
void addPerson(Addressbook *abs){
    if(abs->Size==MAX){
        cout<<"通讯录已满,无法添加"<<endl;
        return;
    }
    else{
        //添加具体联系人
        //姓名
        string name;
        cout<<"请输入姓名"<<endl;
        cin>>name;
        abs->personArray[abs->Size].Name=name;
        //性别
        cout<<"请输入性别"<<endl;
        cout<<"1、男"<<endl;
        cout<<"2、女"<<endl;
        int sex=0;
        while(true){
        cin>>sex;
        if(sex==1||sex==2){
            abs->personArray[abs->Size].Sex=sex;
            switch (sex){
                case 1:
                cout<<"男"<<endl;
                break;
                case 2:
                cout<<"女"<<endl;
                break;
            }
            break;
        }
        cout<<"输入错误,请重新输入"<<endl;}
        //年龄
        cout<<"请输入年龄"<<endl;
        int age=0;
        cin>>age;
        abs->personArray[abs->Size].Age=age;
        //联系电话
        cout<<"请输入联系电话"<<endl;
        string phone;
        cin>>phone;
        abs->personArray[abs->Size].Phone=phone;
        //家庭住址
        cout<<"请输入家庭住址"<<endl;
        string address;
        cin>>address;
        abs->personArray[abs->Size].Address=address;
        //更新通讯录人数
        abs->Size++;
        cout<<"添加成功"<<endl;
        system("pause");//按任意键继续
        system("cls");//进行清屏的操作
    }
}
//显示联系人
void showPerson(Addressbook *abs){
    //判断通讯录中人数是否为零
    if(abs->Size==0){
        cout<<"当前记录为空"<<endl;
    }
    else{
        for(int i=0;i<abs->Size;i++){
            cout<<"姓名"<<abs->personArray[i].Name<<"/t";
            cout<<"性别"<<(abs->personArray[i].Sex==1?"男":"女")<<"/t";//<<运算的优先级比三目运算符高,因此要加括号
            cout<<"年龄"<<abs->personArray[i].Age<<"/t";
            cout<<"电话"<<abs->personArray[i].Phone<<"/t";
            cout<<"住址"<<abs->personArray[i].Address<<"/t"<<endl;
        }
    }
    system("pause");
    system("cls");
}
//删除联系人
//检测联系人是否存在,若存在,显示下标位置,不存在显示-1
int Exist(Addressbook *abs,string name){
    for(int i=0;i<abs->Size;i++){
        if(abs->personArray[i].Name==name){
            return i;
        }
    }
    return -1;
}
//封装删除联系人函数
void deleteperson(Addressbook *abs){
    cout<<"请输入您要删除的联系人"<<endl;
    string name;
    cin>>name;
    int rest=Exist(abs,name);//上面的*只是表明abs为指针,实际上abs已经是指针了 *的作用 1.声明指针 2.解引用
    if(rest!=-1){
        for(int i=rest;i<abs->Size;i++){
            abs->personArray[i]=abs->personArray[i+1];//数据前移
        }
        abs->Size--;
        cout<<"删除成功"<<endl;
    }
    else{
        cout<<"查无此人"<<endl;
    }
    system("pause");
    system("cls");
}
//查找联系人
void findPerson(Addressbook *abs){
    cout<<"请输入您要查找的的联系人"<<endl;
    string name;
    cin>>name;
    int rest=Exist(abs,name);
    if(rest!=-1){
        cout<<"姓名 "<<abs->personArray[rest].Name<<"/t";
        cout<<"性别 "<<abs->personArray[rest].Sex<<"/t";
        cout<<"年龄 "<<abs->personArray[rest].Age<<"/t";
        cout<<"电话 "<<abs->personArray[rest].Phone<<"/t";
        cout<<"住址 "<<abs->personArray[rest].Address<<"/t"<<endl;
    }//找到联系人
    else{
        cout<<"查无此人"<<endl;
    }
    system("pause");
    system("cls");
}
//修改联系人
void modifyPerson(Addressbook *abs){
    cout<<"请输入您要修改的的联系人"<<endl;
    string name;
    cin>>name;
    int rest=Exist(abs,name);
    if(rest!=-1){//找到指定联系人
        cout<<"您修改使用的项目有几个"<<endl;
        int modify;
        cin>>modify;
        if(modify<=5 && modify>0){
        cout<<"您想修改的是"<<endl;
        cout<<"1、姓名"<<endl;
        cout<<"2、性别"<<endl;
        cout<<"3、年龄"<<endl;
        cout<<"4、电话"<<endl;
        cout<<"5、住址"<<endl;
        for(int i=0;i<modify;i++){
        cout<<"请输入您要修改的项目的编号"<<endl;
        int select;
        cin>>select;
        switch(select){
            case 1:{
            string rename;
            cout<<"请输入姓名"<<endl;
            cin>>rename;
            abs->personArray[rest].Name=rename;
            break;}
            case 2:{
            cout<<"请输入性别"<<endl;
            cout<<"1、男"<<endl;
            cout<<"2、女"<<endl;
            while(true){
            int resex;
            cin>>resex;
            if(resex==1||resex==2){
            if(resex==1){
                cout<<"男"<<endl;}
            else{
                cout<<"女"<<endl;
            }
            abs->personArray[rest].Sex=resex;
            break;}
            cout<<"输入错误,请重新输入"<<endl;
            continue;}
            break;}
            case 3:{
            cout<<"请输入年龄"<<endl;
            int reage=0;
            cin>>reage;
            abs->personArray[rest].Age=reage;
            break;}
            case 4:{
            cout<<"请输入联系电话"<<endl;
            string rephone;
            cin>>rephone;
            abs->personArray[rest].Phone=rephone;
            break;}
            case 5:{
            cout<<"请输入家庭住址"<<endl;
            string readdress;
            cin>>readdress;
            abs->personArray[rest].Address=readdress;
            break;}}}}
            else{
            cout<<"数据错误"<<endl;
            }}
    else{
        cout<<"查无此人"<<endl;
    }
    system("pause");
    system("cls");
}
//清空联系人
//封装清空联系人函数
void cleanPerson(Addressbook *abs){
    cout<<"您是否真的要清空联系人"<<endl;
    cout<<"1、清空"<<endl;
    cout<<"2、不清空"<<endl;
    cout<<"请输入您要选择的数字"<<endl;
    int younum;
    cin>>younum;
    switch(younum){
    case 1:{
        abs->Size=0;//数量置为零
        cout<<"通讯录已清空"<<endl;
        break;}
    case 2:{
        break;}
    }
    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;
}
//mian函数中做一个调用
int main(){
    system("chcp 65001");
    //创建通讯录的结构体变量
    Addressbook abs;
    //初始化通讯录中当前的人员个数
    abs.Size=0;
    int select=0;//创建用户选择输入的变量
    while(true){
    //菜单调用
    showMenu();
    //菜单调用
    cout<<"你想要使用的项目是"<<endl;
    cin>>select;
    switch (select){
        case 1://添加联系人
            addPerson(&abs);
            break;
        case 2://显示联系人
            showPerson(&abs);
            break;
        case 3://删除联系人
        /*{ cout<<"请输入删除的联系人姓名"<<endl;
            string name;
            cin>>name;
            if(Exist(&abs,name)==-1){
                cout<<"查无此人"<<endl;
            }
            else{
                cout<<"找到此人"<<endl;
            }
        }//switch语句中若break上的代码很多,则可以加{},写成代码段*/
            deleteperson(&abs);
            break;
        case 4://查找联系人
            findPerson(&abs);
            break;
        case 5://修改联系人
            modifyPerson(&abs);
            break;
        case 6://清空联系人
            cleanPerson(&abs);
            break;
        case 0://退出通讯录
            cout<<"欢迎下次使用"<<endl;
            system("pause");
            return 0;
            break;
        default:
            break;
        }

    }   
    system("pause");
    return 0;
}#include <iostream>

int main() {
    std::cout << "Hello world!" << std::endl;
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: