服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++实现简单通讯录系统

C++实现简单通讯录系统

2023-02-08 14:47hypnumberone C/C++

这篇文章主要为大家详细介绍了C++实现简单通讯录系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现简单通讯录系统的具体代码,供大家参考,具体内容如下

需求分析:

1.通讯录可以添加联系人。

2.通讯录可以显示所有联系人。

3.通讯录可以查找联系人。

4.通讯录可以删除联系人。

5.通讯录可以修改联系人。

6.可以清空通讯录。

7.退出通讯录。

项目代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
#define MAX 1000
typedef struct person {                     //定义一个联系人的结构体
    string name;
    string sex;
    int age;
    int telnumber;
    string addr;
}person;
typedef struct Addressbooks {                 //定义一个通讯录,自带一个联系人数组,里面可以存放MAX个联系人
    struct person personArray[MAX];
    int m_size=0;
}Addressbooks;
void Menu() {                                  //菜单函数
    cout << "                                                    通讯录管理系统" << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "                                                    1--添加联系人" << endl;
    cout << "                                                    2--显示联系人" << endl;
    cout << "                                                    3--删除联系人" << endl;
    cout << "                                                    4--查找联系人" << endl;
    cout << "                                                    5--修改联系人" << endl;
    cout << "                                                    6--清空联系人" << endl;
    cout << "                                                    7--退出联系人" << endl;
}
void addPerson(Addressbooks* abs) {                 //添加联系人的函数实现
    if (abs->m_size == MAX) {
        cout << "此通讯录已满,不能添加\n" << endl;
    }
    else {
        string name;
        string sex;
        int age;
        int telnumber;
        string addr;
        cout << "请输入联系人姓名:" << endl;
        cin >> name;
        abs->personArray[abs->m_size].name = name;
        cout << "请输入联系人性别:" << endl;
        cin >> sex;
        abs->personArray[abs->m_size].sex = sex;
        cout << "请输入联系人年龄:" << endl;
        cin >> age;
        abs->personArray[abs->m_size].age = age;
        cout << "请输入联系人电话号码:" << endl;
        cin >> telnumber;
        abs->personArray[abs->m_size].telnumber = telnumber;
        cout << "请输入联系人家庭住址:" << endl;
        cin >> addr;
        abs->personArray[abs->m_size].addr = addr;
        abs->m_size++;
        cout << "添加成功!!!" << endl;
        system("pause");                                //利用这行语句达到一个显示按任意键继续的效果
        system("cls");                                  //清空整个屏幕,刷新屏幕
    }
}
void showPerson(Addressbooks* abs) {                    //显示整个通讯录中联系人的函数实现
    for (int i = 0; i < abs->m_size; i++) {
        cout << abs->personArray[i].name << " " << abs->personArray[i].sex << " " << abs->personArray[i].age << " " << abs->personArray[i].telnumber << " " << abs->personArray[i].addr << endl;
    }
    system("pause");
    system("cls");
}
int selectPerson(Addressbooks* abs,string name) {                   //查询输入的联系人是否存在,存在返回联系人坐在的下标值,不存在则返回-1
    for (int i = 0; i < abs->m_size; i++) {
        if (abs->personArray[i].name == name) {
            return i;
        }
    }
    return -1;
}
void deletePerson(Addressbooks* abs) {                              //删除联系人的函数实现
    string name;
    cout << "请输入删除联系人的名字:" << endl;
    cin >> name;
    if (selectPerson(abs, name) != -1) {
        for (int i = selectPerson(abs, name); i < abs->m_size;i++) {
            abs->personArray[i] = abs->personArray[i + 1];
        }
        abs->m_size--;
        cout << "删除成功" << endl;
    }
    else {
        cout << "查无此人" << endl;
    }
    system("pause");
    system("cls");
}
void searchPerson(Addressbooks* abs) {                      //查询联系人并输出相关信息的函数实现
    string name;
    cout << "请输入联系人姓名:" << endl;
    cin >> name;
    int ret = selectPerson(abs, name);
    if (ret != -1) {
        cout << abs->personArray[ret].name << " " << abs->personArray[ret].sex << " " << abs->personArray[ret].age << " " << abs->personArray[ret].telnumber << " " << abs->personArray[ret].addr << endl;
    }
    else {
        cout << "查无此人" << endl;
    }
    system("pause");
    system("cls");
}
void revisePerson(Addressbooks* abs) {                      //修改联系人的函数实现
    string name;
    cout << "请选择联系人 :" << endl;
    cin >> name;
    int ret;
    ret = selectPerson(abs, name);
    if (ret != -1) {
        cout << "                               1--修改姓名" << endl;
        cout << "                               2--修改性别" << endl;
        cout << "                               3--修改年龄" << endl;
        cout << "                               4--修改电话号码" << endl;
        cout << "                               5--修改家庭住址" << endl;
        cout << "                               0--退出" << endl;
        int chosen;
        while (1) { 
        cout << "选择:"<<endl;
        cin >> chosen;
            switch (chosen)
            {
            case 1:
            {
                string name2;
                cout << "修改名字:" << endl;
                cin >> name2;
                abs->personArray[ret].name = name2;
                break;
            }
            case 2:
            {
                string sex;
                cout << "修改性别:" << endl;
                cin >> sex;
                abs->personArray[ret].sex = sex;
                break;
            }
            case 3:
            {
                int age;
                cout << "修改年龄:" << endl;
                cin >> age;
                abs->personArray[ret].age = age;
                break;
            }
            case 4:
            {
                int tel;
                cout << "修改电话号码:" << endl;
                cin >> tel;
                abs->personArray[ret].telnumber = tel;
                break;
            }
            case 5:
            {
                string addr;
                cout << "修改住址:" << endl;
                cin >> addr;
                abs->personArray[ret].addr = addr;
                break;
            }
            case 0:
            goto FLAG1;
            default:
                break;
            }
        }
    }
    else {
        cout << "查无此人!!!" << endl;
    }
    FLAG1:
    system("pause");
    system("cls");
}
void clear(Addressbooks* abs) {
    abs->m_size = 0;
    cout << "此通讯录已清空!!!" << endl;
    system("pause");
    system("cls");
}
int main() {
    Addressbooks book1;                             //先定义一个通讯录,并添加一个联系人hyp
    book1.personArray[0].name = "hyp";              
    book1.personArray[0].sex = "man";
    book1.personArray[0].age = 21;
    book1.personArray[0].telnumber = 76766767;
    book1.personArray[0].addr = "重庆";
    book1.m_size = 1;
    int chosen;                                     
    while (1) {
        Menu();
        cout << "选择:" ;
        cin >> chosen;
        switch (chosen)
        {
        case 1:                             //添加联系人
            addPerson(&book1);
            break;
        case 2:                             //显示联系人
            showPerson(&book1);
            break;
        case 3:                             //删除联系人
            deletePerson(&book1);
            break;
        case 4:                             //查找联系人
            searchPerson(&book1);
            break;
        case 5:                             //修改联系人
            revisePerson(&book1);
            break;
        case 6:                             //清空联系人
            clear(&book1);
            break;
        case 7:                             //退出通讯录
            return 0;
            break;
        default:
            break;
        }
 
    }
    return 0;
}

效果:

显示联系人

C++实现简单通讯录系统

添加联系人

C++实现简单通讯录系统

后面效果就不一一显示了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/hypnumberone/article/details/123902834

延伸 · 阅读

精彩推荐
  • C/C++浅谈c++ 预处理器

    浅谈c++ 预处理器

    这篇文章主要介绍了c++ 预处理器的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...

    菜鸟教程9042021-09-14
  • C/C++从汇编看c++的默认析构函数的使用详解

    从汇编看c++的默认析构函数的使用详解

    本篇文章是对c++中默认析构函数的使用进行了详细的分析介绍。需要的朋友参考下...

    C++教程网3292020-11-27
  • C/C++新手向超详细的C语言实现动态顺序表

    新手向超详细的C语言实现动态顺序表

    本文主要介绍了C语言实现动态顺序表,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    燕麦冲冲冲5802022-01-10
  • C/C++C语言实现最大间隙问题实例

    C语言实现最大间隙问题实例

    这篇文章主要介绍了C语言实现最大间隙问题的方法,是一个比较经典的算法设计问题,对于学习算法设计有一定的借鉴价值,需要的朋友可以参考下...

    C语言程序设计7872021-02-02
  • C/C++用C语言进行最基本的socket编程

    用C语言进行最基本的socket编程

    这篇文章主要介绍了C语言下socket编程的基本知识讲解,包括最基本的客户端发送及服务器端接受数据的实现,需要的朋友可以参考下...

    jack_Meng5752021-03-16
  • C/C++C数据结构之双链表详细示例分析

    C数据结构之双链表详细示例分析

    以下是对c语言中的双链表进行了详细的分析介绍,需要的朋友可以过来参考下...

    C语言教程网1742020-12-21
  • C/C++C语言详解判断相同树案例分析

    C语言详解判断相同树案例分析

    这篇文章主要介绍了用C语言检查两棵树是否相同,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    CodeWinter3552022-11-15
  • C/C++C++中map和set的简介及使用详解

    C++中map和set的简介及使用详解

    本文主要介绍了C++中map和set的简介及使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    小倪同学 -_-5582022-09-29