电话联系人管理界面

#include<iostream>
#include<string>
using namespace std;
#define max 200 //表示这个通讯录管理系统最多存储200个联系人
struct lxr //创建联系人数据类型
{
    string name; //姓名
    int age;    //年龄
    int haoma;  //电话号码
    string xb;  //性别
};
void show() //界面展示,让人知道管理界面有哪些功能,并根据需要输入相应数字
{
    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;
}
void txl(lxr *s,int wz) //保存通讯录存储联系人的相关属性,这里有姓名、年龄等
{
    cout << "请输入要存储联系人的姓名:" ;
    cin >> s[wz].name;
    cout << "请输入要存储联系人的年龄:" ;
    cin >> s[wz].age;
    cout << "请输入要存储联系人的号码:";
    cin >> s[wz].haoma;
    cout << "请输入要存储联系人的性别:" ;
    cin >> s[wz].xb;
    while (s[wz].xb != "男" && s[wz].xb != "女") { //性别只能为男/女,当输入其他数据时会提醒出错
        cout << "联系人性别输入错误,请输入男或女,请重新输入:";
        cin >> s[wz].xb;
    }
    cout << "保存成功!" << endl;
}
void xianshi(lxr *s,int wz) //显示通讯录已存储联系人的信息
{
    if (wz == 0) { 
        cout << "没有保存任何联系人!" << endl; 
    }
    else {
        cout << "已保存联系人信息如下:" << endl;
        for (int i = 0; i < wz; i++) //按照存储的先后顺序来展示联系人信息
        {
            cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
                << "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
        }
    }
}
void shanchu(lxr * s,int wz) //删除通讯录联系人的操作 
{
    int x = 0;
    if (wz == 0) {
        cout << "没有保存任何联系人,无法删除!" << endl;
    }
    else {
        for (int i = 0; i < wz; i++) //按存储的先后顺序来排序,以相应序列号来删除对应联系人
        {
            cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
                << "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
        }
        cout << "请输入你想删除联系人号数:";
        cin >> x;
        for (int i = x - 1; i < wz - 1; i++) //删除第i个人 = 让第i号联系人的后续所有联系人向前进一个存储单元
        {
            s[i] = s[i + 1];
        }
        cout << "删除成功!" << endl;
    }
}
void chazhao(lxr* s, int wz) //根据姓名查找相应联系人,并展示其相应信息
{
    int panduan = 0;//判断 想要查看的姓名是否存在
    string sname;
    if (wz == 0) {
        cout << "没有保存任何联系人,无法查找!" << endl;
    }
    else {
    FA:
        cout << "请输入你想查找联系人姓名:";
        cin >> sname;
        for (int i = 0; i < wz; i++)
        {
            if (sname == s[i].name) {
                cout << "已找到相应联系人信息如下:" << endl;
                cout << "该联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
                    << "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
                panduan = 1;
            }
        }
        if (panduan == 0) {
            cout << "该联系人不存在,请重新输入想要查询联系人的姓名:" << endl;
            goto FA;
        }
    }
}
void xiugai(lxr* s, int wz) //如果发现存储联系人的某些信息出错了,可以修改
{
    int haoshu = 0;
    if (wz == 0) {
        cout << "没有保存任何联系人,无法修改!" << endl;
    }
    else {
        cout << "已保存联系人信息如下:" << endl;
        for (int i = 0; i < wz; i++)
        {
            cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age 
                << "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
        }
        cout << "请输入你想要修改联系人信息的号数:";
    DA:
        cin >> haoshu;
        if (haoshu >= wz || haoshu <= 0) {
            cout << "该联系人不存在!请重新输入想要修改联系人信息的号数:";
            goto DA;
        }
        else {
            cout << "你想将其姓名修改为:"; cin >> s[haoshu - 1].name;
            cout << "你想将其年龄修改为:"; cin >> s[haoshu - 1].age;
            cout << "你想将其号码修改为:"; cin >> s[haoshu - 1].haoma;
            cout << "你想将其性别修改为:"; cin >> s[haoshu - 1].xb;
            cout << "修改成功!" << endl;
        }
    }
}
void qingkong(lxr* s, int wz)//清空通讯录所有联系人信息
{
        cout << "删除成功!" << endl;
}
int main() //主函数
{
    bool wdnmd = 1; //后续while函数判断条件,让while函数一直运行下去,直到使用者按0退出通讯录管理系统
    int select = 0; // 使用者看到通讯录有哪些功能后,输入select的值来使用相应功能,这里赋select初值为0
    static lxr s[max]; //定义一个可以存储max=200个人的通讯录管理系统
    int wz = 0;//wz=存储人数-1;序列号
    while (wdnmd) {
    SA:
    show();
    cout << "请输入你的选择:";
    cin >> select;
    switch (select) {
    case 1: txl(s, wz); wz++; break;
    case 2: xianshi(s, wz); break;
    case 3: shanchu(s, wz); wz--; break;
    case 4: chazhao(s, wz); break;
    case 5: xiugai(s, wz); break;
    case 6: qingkong(s, wz); wz = 0; break;
    case 0: goto XA;
    default:cout << "输入的数字不对,请重新输入!" << endl; goto SA; 
    } 
    system("pause");
    system("cls");//清屏操作
    }
XA:
    cout << "感谢使用,下次再见!" << endl;
    system("pause");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值