zds212 发表于 2021-4-26 22:22

C++第七天 通讯录试炼

本帖最后由 zds212 于 2021-5-7 22:34 编辑

#include<iostream>
#include<string>
using namespace std;
#define max 1000


//菜单
void caidan()
{
      cout << "\t1.添加联系人\n";
      cout << "\t2.查看联系人\n";
      cout << "\t3.删除联系人\n";
      cout << "\t4.修改联系人\n";
      cout << "\t5.查找联系人\n";
      cout << "\t6.清空联系人\n";
      cout << "\t0(其它).退出\n";
}
//定义属性
struct lianxiren //联系人
{
      string name;
      string sex;
      int haoma;
};
struct tongxunlu
{
      struct lianxiren arr;
      int size;
};
//   1.添加联系人
void addlxr(tongxunlu* abs)
{


      cout << "请输入姓名!\n";
      string name;
      cin >> name;
      abs->arr.name = name;


      cout << "请输入性别!\n\t1.男2.女\n";
      int sex;
      cin >> sex;
      if (sex == 1)
      {
                abs->arr.sex = "男";
      }
      else if (sex == 2)
      {
                abs->arr.sex = "女";
      }


      cout << "请输入手机号!\n";
      int id;
      cin >> id;
      abs->arr.haoma = id;
      abs->size++;
      system("pause");
      system("cls");


}
//   2.查看联系人
void cklxr(struct tongxunlu* abs)
{
      if (abs->size != 0)
      {
                for (int i = 0; i < abs->size; i++)
                {
                        cout << "姓名:" << abs->arr.name << "性别:" << abs->arr.sex << "手机号:" << abs->arr.haoma << endl;
                }
                system("pause");
                system("cls");
      }
      else
      {
                cout << "当前没有联系人,请添加联系人后查看!\n";
                system("pause");
                system("cls");
      }
}
//            3.删除联系人
void sclxr(struct tongxunlu* abs, int xb)
{
      if (xb != -1)
      {
                for (int i = xb; i < abs->size; i++)
                {
                        struct lianxirentemp = abs->arr;
                        abs->arr = abs->arr;
                        abs->arr = temp;
                }
                system("pause");
                system("cls");
                abs->size--;
      }
      else
      {
                cout << "您输入的联系人不存在!\n";
                system("pause");
                system("cls");
      }


}
//            4.修改联系人
void xglxr(struct tongxunlu* abs, int xb)
{
      string name;
      cin >> name;
      cout << "请输入修改的姓名:\n";
      abs->arr.name = name;


      cout << "请输入修改的性别!\n\t1.男2.女\n";
      int sex;
      cin >> sex;
      if (sex == 1)
      {
                abs->arr.sex = "男";
      }
      else if (sex == 2)
      {
                abs->arr.sex = "女";
      }


      cout << "请输入修改的手机号!\n";
      int id;
      cin >> id;
      abs->arr.haoma = id;
      system("pause");
      system("cls");


}
//            5.查找联系人
int czlxr(struct tongxunlu* abs)//查找联系人的所作位置
{


      string name;
      cout << "请输入名称!\n";
      cin >> name;
      for (int i = 0; i < abs->size; i++)
      {
                if (name == abs->arr.name)
                {
                        return i;
                }
      }
      return -1;
}
void czlxr1(struct tongxunlu* abs, int xb)
{
      if (xb != -1)
      {
                cout << "姓名:" << abs->arr.name << "性别:" << abs->arr.sex << "号码:" << abs->arr.haoma << endl;
                system("pause");
                system("cls");
      }
      else
      {
                cout << "查无此人!\n";
                system("pause");
                system("cls");
      }
}
//            6.清空联系人
void qklxr(struct tongxunlu* abs)
{
      int select;
      cout << "确定清空联系人列表吗?\n\t1.确定2.按任意键返回\n";
      cin >> select;
      if (select == 1)
      {
                abs->size = 0;
                cout << "联系人已经清空。\n";
                system("pause");
                system("cls");
      }
      else
      {
                system("cls");
      }
}
int main()
{


      tongxunlu abs;//定义用户
      abs.size = 0;//定义初始用户数量


      int select = 0;//定义用户选择
      int xb = 0;
      while (true)
      {
                caidan();//调用菜单
                cout << "请选择您要操作的选项" << endl;
                cin >> select;
                switch (select)
                {
                case 1://添加联系人
                        addlxr(&abs);
                        break;
                case 2://查看联系人
                        cklxr(&abs);
                        break;
                case 3://删除联系人
                        xb = czlxr(&abs);
                        sclxr(&abs, xb);
                        break;
                case 4://修改联系人
                        xb = czlxr(&abs);
                        xglxr(&abs, xb);
                        break;
                case 5://查找联系人
                        xb = czlxr(&abs);
                        czlxr1(&abs, xb);
                        break;
                case 6://清空联系人
                        qklxr(&abs);
                        break;
                default://退出
                        cout << "欢迎下次使用本程序!\n";
                        system("pause");
                        return 0;
                        break;
                }
      }
      system("pause");
      return 0;
}

兮若求 发表于 2021-4-26 22:55

可以试一试加入保护机制,比如手机号码只能11位等等

zds212 发表于 2021-4-27 09:49

zhenshideziji5 发表于 2021-4-27 07:05
您好,您是用什么编程软件?

Dev-c++   Visual Studio也可以。

zds212 发表于 2021-4-26 22:24

有些细节没修好。基本功能已经全了。 学习试试!

安猪拉掰逼 发表于 2021-4-26 23:49

第七天到这一步已经很厉害了

deTrident 发表于 2021-4-26 23:53

厉害&#128077;&#127995; 进展神速

True_BRS. 发表于 2021-4-27 04:47

厉害厉害!

zhenshideziji5 发表于 2021-4-27 07:05

您好,您是用什么编程软件?

BaconOle 发表于 2021-4-27 07:45

是这个意思,加油

江南云 发表于 2021-4-27 08:09

楼主第七天就会这么多,比较厉害啊,好多代码我都看不懂哦。

PENN922 发表于 2021-4-27 09:06

太厉害了,我需要跟在大佬的步伐后面好好追赶了,收听
页: [1] 2
查看完整版本: C++第七天 通讯录试炼