VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1482|回复: 9

[分享] c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-7 00:04:19 | 显示全部楼层 |阅读模式
本帖最后由 小白学编程 于 2021-4-7 23:33 编辑


非常适合我这个小白练手c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过
通讯录是一个可以记录亲人、好友信息的工具。
系统中需要实现的功能如下:
* 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
* 显示联系人:显示通讯录中所有联系人信息
* 删除联系人:按照姓名进行删除指定联系人
* 查找联系人:按照姓名查看指定联系人信息
* 修改联系人:按照姓名重新修改指定联系人
* 清空联系人:清空通讯录中所有信息
* 退出通讯录:退出当前使用的通讯录

#include <iostream>
#include <string>
using namespace std;
#define  MAX  1000
1-----//设计联系人的结构体
struct Person
{
        //姓名
        string m_Name;
        //性别
        int m_Sex;
        //年龄
        int m_Age;
        //电话
        string m_Phone;
        //住址
        string m_Addr;
};
2----------//设计通讯录的结构体
struct Addressbooks
{
        //通讯录中保存的联系人数组
        struct Person personArray[MAX];
        //通讯录中当前联系人个数
        int m_Size;
};

3------//添加联系人
void addPerson(Addressbooks *abs)
{
        //判断通讯录是否已满,满了就不在添加
        if (abs->m_Size==MAX)
        {
                cout << "通讯录已满,无法添加" << endl;
                return;
        }
        else
        {
                //姓名
                string name;
                cout << "请输入姓名:" << endl;
                cin >> name;
                abs->personArray[abs->m_Size].m_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->m_Size].m_Sex = sex;
                                break;
                        }
                        cout << "输入有误,请重新输入" << endl;
                }
               
                //年龄
                cout << "请输入年龄:" << endl;
                int age = 0;
                cin >> age;
                abs->personArray[abs->m_Size].m_Age = age;
                //电话
                cout << "请输入电话:" << endl;
                string phone;
                cin >> phone;
                abs->personArray[abs->m_Size].m_Phone = phone;
                //住址
                cout << "请输入住址:" << endl;
                string address;
                cin >> address;
                abs->personArray[abs->m_Size].m_Addr = address;
                //更新通讯录人数
                abs->m_Size++;
                cout << "添加成功" << endl;
                system("pause");
                        system("cls");//清空屏幕
        }
}

4-----//显示所有联系人
void showPerson(Addressbooks * abs)
{
        //判断通讯录中人数是否为0
        if (abs->m_Size==0)
        {
                cout << "当前记录为空" << endl;
        }
        else
        {
                for (int i=0;i<abs->m_Size;i++)
                {
                        //姓名
                        cout << "姓名" << abs->personArray.m_Name << "\t";
                        //年龄
                        cout << "年龄" << abs->personArray.m_Age << "\t";
                        //性别
                        cout << "性别" << (abs->personArray.m_Sex==1?"男":"女")<<"\t";
                        //电话
                        cout << "电话" << abs->personArray.m_Phone << "\t";
                        //住址
                        cout << "住址" << abs->personArray.m_Addr << endl;
                }
        }
        system("pause");
        system("cls");
}

5------//检测联系人是否存在,如果存在,返回联系人所在的数组中的具体位置,不存在返回-1
int isExist(Addressbooks * abs, string name)
{
        for (int i = 0; i < abs->m_Size; i++)
        {
                //找到用户输入的姓名了
                if (abs->personArray.m_Name==name)
                {
                        return i;
                }
        }
        return -1; //如果遍历结束都没有找到,返回-1
}

6-------//删除指定联系人
void deletePerson(Addressbooks * abs)
{
        cout << "请输入你要删除的联系人" << endl;
        string name;
        cin >> name;
        //ret==-1未查到
        //ret!=1查到了
        int ret = isExist(abs, name);
        if (ret != -1)
        {
                for (int i=ret;i<abs->m_Size;i++)
                {
                        abs->personArray = abs->personArray[i + 1];
                }
                abs->m_Size--; //更新通讯录的人员数
        }
        else
        {
                cout << "查无此人" << endl;
        }
}

7--------//查找指定联系人信息
void findPerson(Addressbooks * abs)
{
        cout << "请输入你要查找的联系人" << endl;
        string name;
        cin >> name;
        //判断指定的联系人是否在通讯录中
        int ret = isExist(abs, name);
        if (ret!=-1)
        {
                //姓名
                cout << "姓名" << abs->personArray[ret].m_Name << "\t";
                //性别
                cout << "性别" << abs->personArray[ret].m_Sex << "\t";
                //年龄
                cout << "年龄" << abs->personArray[ret].m_Age << "\t";
                //电话
                cout << "电话" << abs->personArray[ret].m_Phone << "\t";
                //住址
                cout << "住址" << abs->personArray[ret].m_Addr << "\t";
        }
        else
        {
                cout << "查无此人" << endl;
        }
        system("pause");
        system("cls");
}

8------------//修改指定联系人信息
void modifyPerson(Addressbooks * abs)
{
        cout << "请输入你要修改的联系人" << endl;
        string name;
        cin >> name;
        int ret = isExist(abs, name);
        if (ret != -1)
        {
                //姓名
                string  name;
                cout << "请输入姓名" << endl;
                cin >> name;
                abs->personArray[ret].m_Name = name;
                //性别
                cout << "请输入性别" << endl;
                cout << "1---男" << endl;
                cout << "2---女" << endl;
                int sex = 0;

                while (true)
                {
                        cin >> sex;
                        if (sex == 1 || sex == 2)
                        {
                                abs->personArray[ret].m_Sex = sex;
                                break;
                        }
                        cout << "输入有误,请重新输入" << endl;
                }
                //年龄
                cout << "请输入年龄" << endl;
                int age = 0;
                cin >> age;
                abs->personArray[ret].m_Age = age;
                //电话
                cout << "请输入电话" << endl;
                string phone;
                cin >> phone;
                abs->personArray[ret].m_Phone = phone;
                //住址
                cout << "请输入住址" << endl;
                string address;
                cin >> address;
                abs->personArray[ret].m_Addr = address;
                cout << "修改成功" << endl;
        }
        else
        {
                cout << "查无此人" << endl;
        }
        system("pause");
        system("cls");
}

9----------------//清空所有联系人
void cleanPerson(Addressbooks *abs)
{
        abs->m_Size = 0;
        cout << "通讯录已清空" << endl;
        system("pause");
        system("cls");
}

10------------void showMoun()
{
        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()
{
        //创建通讯录结构体变量
        Addressbooks abs;
        //初始化通讯录中当前人员个数
        abs.m_Size = 0;
        int select = 0; //用户选择输入的变量
       
       
        while (true)
        {
                showMoun();  //调用菜单
                cin >> select;
                switch (select)
                {
                case 1:  //1.添加联系人
                        addPerson(&abs);
                        break;
                case 2:   //2.显示联系人
                        showPerson(&abs);
                        break;
                case 3:   //3.删除联系人
                        deletePerson(&abs);
                        break;
                case 4:   //4.查找联系人
                        findPerson(&abs);
                        break;
                case 5:   //5.修改联系人
                        modifyPerson(&abs);
                        break;
                case 6:   //6.清空通讯录
                        cleanPerson(&abs);
                        break;
                case 0:   //0.退出通讯录
                        cout << "欢迎下次使用" << endl;
                        system("pause");
                        system("cls");
                        return 0;
                default:
                        break;
                }
        }
        system("pause");
        return 0;
}

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 学习了

查看全部评分





上一篇:一起跟我学习c++之路的点点滴滴,从入门学到废
下一篇:VS2010怎么打开高版本工程或解决方案
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-4-7 08:49:30 | 显示全部楼层
很赞,不过能不能把代码放到代码块里呢,这么多代码看着怪别扭的,看一眼直接失去耐心了c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过
96_avatar_middle
最佳答案
0 
donate_vip 发表于 2021-4-7 08:57:22 | 显示全部楼层
运行报错,
13_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2021-4-7 23:35:12 | 显示全部楼层
tony666 发表于 2021-4-7 08:49
很赞,不过能不能把代码放到代码块里呢,这么多代码看着怪别扭的,看一眼直接失去耐心了

怎么编辑,不会啊   怎么放代码块??  我想图片和代码编辑搞不清楚怎么弄   上传一张图片看不到
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-4-8 08:56:18 | 显示全部楼层
本帖最后由 tony666 于 2021-4-8 08:57 编辑
小白学编程 发表于 2021-4-7 23:35
怎么编辑,不会啊   怎么放代码块??  我想图片和代码编辑搞不清楚怎么弄   上传一张图片看不到


编辑里的 <>就是  ,
c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过

图片上传之后 需要再点一下
c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过
13_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2021-4-8 16:11:08 | 显示全部楼层
tony666 发表于 2021-4-8 08:56
编辑里的 就是  ,

c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过非常感谢你指导 学会编辑了
37_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-8 16:39:34 | 显示全部楼层
学习了return 0;
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-4-9 08:39:55 | 显示全部楼层
小白学编程 发表于 2021-4-8 16:11
非常感谢你指导 学会编辑了

感谢分享这么多东西c++学习之路的点滴记录(利用基础语法)打造通讯录系统,大牛飘过
45_avatar_middle
最佳答案
0 
在线会员 发表于 2022-5-19 22:28:33 | 显示全部楼层
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. #define  MAX  1000

  5. /**
  6. 实现的功能
  7. * 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
  8. * 显示联系人:显示通讯录中所有联系人信息
  9. * 删除联系人:按照姓名进行删除指定联系人
  10. * 查找联系人:按照姓名查看指定联系人信息
  11. * 修改联系人:按照姓名重新修改指定联系人
  12. * 清空联系人:清空通讯录中所有信息
  13. * 退出通讯录:退出当前使用的通讯录  **/

  14. //1---- -设计联系人的结构体
  15. struct Person
  16. {
  17.         //姓名
  18.         string m_Name;
  19.         //性别
  20.         int m_Sex;
  21.         //年龄
  22.         int m_Age;
  23.         //电话
  24.         string m_Phone;
  25.         //住址
  26.         string m_Addr;
  27. };
  28. //2----------设计通讯录的结构体
  29. struct Addressbooks
  30. {
  31.         //通讯录中保存的联系人数组
  32.         struct Person personArray[MAX];
  33.         //通讯录中当前联系人个数
  34.         int m_Size;
  35. };

  36. //3------添加联系人
  37. void addPerson(Addressbooks *abs)
  38. {
  39.         //判断通讯录是否已满,满了就不在添加
  40.         if (abs->m_Size == MAX)
  41.         {
  42.                 cout << "通讯录已满,无法添加" << endl;
  43.                 return;
  44.         }
  45.         else
  46.         {
  47.                 //姓名
  48.                 string name;
  49.                 cout << "请输入姓名:" << endl;
  50.                 cin >> name;
  51.                 abs->personArray[abs->m_Size].m_Name = name;
  52.                 //性别
  53.                 cout << "请输入性别:" << endl;
  54.                 cout << "1-----男" << endl;
  55.                 cout << "2-----女:" << endl;
  56.                 int sex = 0;

  57.                 while (true)
  58.                 {
  59.                         cin >> sex;
  60.                         if (sex == 1 || sex == 2)
  61.                         {
  62.                                 abs->personArray[abs->m_Size].m_Sex = sex;
  63.                                 break;
  64.                         }
  65.                         cout << "输入有误,请重新输入" << endl;
  66.                 }

  67.                 //年龄
  68.                 cout << "请输入年龄:" << endl;
  69.                 int age = 0;
  70.                 cin >> age;
  71.                 abs->personArray[abs->m_Size].m_Age = age;
  72.                 //电话
  73.                 cout << "请输入电话:" << endl;
  74.                 string phone;
  75.                 cin >> phone;
  76.                 abs->personArray[abs->m_Size].m_Phone = phone;
  77.                 //住址
  78.                 cout << "请输入住址:" << endl;
  79.                 string address;
  80.                 cin >> address;
  81.                 abs->personArray[abs->m_Size].m_Addr = address;
  82.                 //更新通讯录人数
  83.                 abs->m_Size++;
  84.                 cout << "添加成功" << endl;
  85.                 system("pause");
  86.                 system("CLS");//清空屏幕
  87.         }
  88. }

  89. //4---- -显示所有联系人
  90. void showPerson(Addressbooks *abs)
  91. {
  92.         //判断通讯录中人数是否为0
  93.         if (abs->m_Size == 0)
  94.         {
  95.                 cout << "当前记录为空" << endl;
  96.         }
  97.         else
  98.         {
  99.                 for (int i = 0; i < abs->m_Size; i++)
  100.                 {
  101.                         //姓名
  102.                         cout << "姓名" << abs->personArray[i].m_Name << "\t";
  103.                         //年龄
  104.                         cout << "年龄" << abs->personArray[i].m_Age << "\t";
  105.                         //性别
  106.                         cout << "性别" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t";
  107.                         //电话
  108.                         cout << "电话" << abs->personArray[i].m_Phone << "\t";
  109.                         //住址
  110.                         cout << "住址" << abs->personArray[i].m_Addr << endl;
  111.                 }
  112.         }
  113.         system("pause");
  114.         system("CLS");
  115. }

  116. //5------检测联系人是否存在,如果存在,返回联系人所在的数组中的具体位置,不存在返回-1
  117. int isExist(Addressbooks * abs, string name)
  118. {
  119.         for (int i = 0; i < abs->m_Size; i++)
  120.         {
  121.                 //找到用户输入的姓名了
  122.                 if (abs->personArray[i].m_Name == name)
  123.                 {
  124.                         return i;
  125.                 }
  126.         }
  127.         return -1; //如果遍历结束都没有找到,返回-1
  128. }

  129. //6------ -删除指定联系人
  130. void deletePerson(Addressbooks * abs)
  131. {
  132.         cout << "请输入你要删除的联系人" << endl;
  133.         string name;
  134.         cin >> name;
  135.         //ret==-1未查到
  136.         //ret!=1查到了
  137.         int ret = isExist(abs, name);
  138.         if (ret != -1)
  139.         {
  140.                 for (int i = ret; i < abs->m_Size; i++)
  141.                 {
  142.                         abs->personArray[i] = abs->personArray[i + 1];
  143.                 }
  144.                 abs->m_Size--; //更新通讯录的人员数
  145.         }
  146.         else
  147.         {
  148.                 cout << "查无此人" << endl;
  149.         }
  150. }

  151. //7--------查找指定联系人信息
  152. void findPerson(Addressbooks * abs)
  153. {
  154.         cout << "请输入你要查找的联系人" << endl;
  155.         string name;
  156.         cin >> name;
  157.         //判断指定的联系人是否在通讯录中
  158.         int ret = isExist(abs, name);
  159.         if (ret != -1)
  160.         {
  161.                 //姓名
  162.                 cout << "姓名" << abs->personArray[ret].m_Name << "\t";
  163.                 //性别
  164.                 cout << "性别" << abs->personArray[ret].m_Sex << "\t";
  165.                 //年龄
  166.                 cout << "年龄" << abs->personArray[ret].m_Age << "\t";
  167.                 //电话
  168.                 cout << "电话" << abs->personArray[ret].m_Phone << "\t";
  169.                 //住址
  170.                 cout << "住址" << abs->personArray[ret].m_Addr << "\t";
  171.         }
  172.         else
  173.         {
  174.                 cout << "查无此人" << endl;
  175.         }
  176.         system("pause");
  177.         system("CLS");
  178. }

  179. //8------------修改指定联系人信息
  180. void modifyPerson(Addressbooks * abs)
  181. {
  182.         cout << "请输入你要修改的联系人" << endl;
  183.         string name;
  184.         cin >> name;
  185.         int ret = isExist(abs, name);
  186.         if (ret != -1)
  187.         {
  188.                 //姓名
  189.                 string  name;
  190.                 cout << "请输入姓名" << endl;
  191.                 cin >> name;
  192.                 abs->personArray[ret].m_Name = name;
  193.                 //性别
  194.                 cout << "请输入性别" << endl;
  195.                 cout << "1---男" << endl;
  196.                 cout << "2---女" << endl;
  197.                 int sex = 0;

  198.                 while (true)
  199.                 {
  200.                         cin >> sex;
  201.                         if (sex == 1 || sex == 2)
  202.                         {
  203.                                 abs->personArray[ret].m_Sex = sex;
  204.                                 break;
  205.                         }
  206.                         cout << "输入有误,请重新输入" << endl;
  207.                 }
  208.                 //年龄
  209.                 cout << "请输入年龄" << endl;
  210.                 int age = 0;
  211.                 cin >> age;
  212.                 abs->personArray[ret].m_Age = age;
  213.                 //电话
  214.                 cout << "请输入电话" << endl;
  215.                 string phone;
  216.                 cin >> phone;
  217.                 abs->personArray[ret].m_Phone = phone;
  218.                 //住址
  219.                 cout << "请输入住址" << endl;
  220.                 string address;
  221.                 cin >> address;
  222.                 abs->personArray[ret].m_Addr = address;
  223.                 cout << "修改成功" << endl;
  224.         }
  225.         else
  226.         {
  227.                 cout << "查无此人" << endl;
  228.         }
  229.         system("pause");
  230.         system("CLS");
  231. }

  232. //9----------------清空所有联系人
  233. void cleanPerson(Addressbooks *abs)
  234. {
  235.         abs->m_Size = 0;
  236.         cout << "通讯录已清空" << endl;
  237.         system("pause");
  238.         system("CLS");
  239. }

  240. //10------------
  241. void showMoun()
  242. {
  243.         cout << "**************************" << endl;
  244.         cout << "*****  1.添加联系人  *****" << endl;
  245.         cout << "*****  2.显示联系人  *****" << endl;
  246.         cout << "*****  3.删除联系人  *****" << endl;
  247.         cout << "*****  4.查找联系人  *****" << endl;
  248.         cout << "*****  5.修改联系人  *****" << endl;
  249.         cout << "*****  6.清空联系人  *****" << endl;
  250.         cout << "*****  0.退出通讯录  *****" << endl;
  251.         cout << "**************************" << endl;
  252. }

  253. int main()
  254. {
  255.         //创建通讯录结构体变量
  256.         Addressbooks abs;
  257.         //初始化通讯录中当前人员个数
  258.         abs.m_Size = 0;
  259.         int select = 0; //用户选择输入的变量


  260.         while (true)
  261.         {
  262.                 showMoun();  //调用菜单
  263.                 cin >> select;
  264.                 switch (select)
  265.                 {
  266.                 case 1:  //1.添加联系人
  267.                         addPerson(&abs);
  268.                         break;
  269.                 case 2:   //2.显示联系人
  270.                         showPerson(&abs);
  271.                         break;
  272.                 case 3:   //3.删除联系人
  273.                         deletePerson(&abs);
  274.                         break;
  275.                 case 4:   //4.查找联系人
  276.                         findPerson(&abs);
  277.                         break;
  278.                 case 5:   //5.修改联系人
  279.                         modifyPerson(&abs);
  280.                         break;
  281.                 case 6:   //6.清空通讯录
  282.                         cleanPerson(&abs);
  283.                         break;
  284.                 case 0:   //0.退出通讯录
  285.                         cout << "欢迎下次使用" << endl;
  286.                         system("pause");
  287.                         system("CLS");
  288.                         return 0;
  289.                 default:
  290.                         break;
  291.                 }
  292.         }
  293.         system("pause");
  294.         return 0;
  295. }
复制代码
92_avatar_middle
最佳答案
0 
在线会员 发表于 2022-6-21 23:11:38 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-7-5 21:48

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表