C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录)

2023-04-28,,

  1 /**
2 * ProjectNmae:通讯录管理系统
3 * 功能:
4 * 添加联系人:向通讯录添加新人
5 * 显示联系人:显示通讯录中的所有联系人信息
6 * 删除联系人:按照姓名进行删除指定联系人
7 * 查找联系人:按照姓名查看指定联系人信息
8 * 修改联系人:按照姓名重新修改指定联系人
9 * 清空联系人:清空通讯录中所有信息
10 * 退出通讯录:退出当前使用的通讯录
11 */
12
13
14
15 #include<iostream>
16 #include<string>
17 #define MAX 1000 //最大联系人 1k人
18 using namespace std;
19
20 //设计联系人结构体
21 struct Person
22 {
23 string m_Name; //姓名
24 int m_Sex; //性别 1 男 2女
25 int m_Age; //年龄
26 string m_Phone; //电话
27 string m_Adder; //住址
28
29
30 };
31
32 //通讯录结构体
33 struct Addressbooks
34 {
35 struct Person personArray[MAX]; //通讯录中保存的联系人的数组
36
37 int m_Size; //记录当前人员个数
38
39 };
40
41 //添加联系人
42 void addPerson(Addressbooks* abs)
43 {
44 //判断通讯录是否以满,如果满了就不在添加
45 if (abs->m_Size == MAX)
46 {
47 cout << "通讯录已满,无法添加!!!" << endl;
48 return;
49 }
50 else
51 {
52 //添加具体联系人
53 string name;
54 cout << "请输入姓名: " << endl;
55 cin >> name;
56 abs->personArray[abs->m_Size].m_Name= name;
57
58 cout << "请输入性别: " << endl;
59 cout << "1------男" << endl;
60 cout << "2------女" << endl;
61
62 int sex = 0;
63 while (true)
64 {
65 //输入正确 退出循环 错误继续输入
66 cin >> sex;
67
68 if (sex == 1 || sex == 2)
69 {
70 abs->personArray[abs->m_Size].m_Sex = sex;
71 break;
72 }
73 cout << "输入有无,请重新输入!!!" << endl;
74
75 }
76
77
78 cout << "请输入年龄 : " << endl;
79 int age = 0;
80 cin >> age;
81 abs->personArray[abs->m_Size].m_Age = age;
82
83
84
85 cout << "请输入联系电话: " << endl;
86 string phone;
87 cin >> phone;
88 abs->personArray[abs->m_Size].m_Phone = phone;
89
90
91
92 cout << "请输入联系人地址: " << endl;
93 string address;
94 cin >> address;
95 abs->personArray[abs->m_Size].m_Adder = address;
96
97
98
99 //更新通讯录人数
100 abs->m_Size++;
101 cout << "您加入成功了!!!!" << endl;
102
103 system("pause");
104 system("cls");
105
106 }
107 }
108
109 //2.显示所有的联系人
110 void showPerson(Addressbooks* abs)
111 {
112 //判断通讯录中人数是否为0,如果为0,提示记录为空
113 //不为 0 显示记录的联系人信息
114 if (abs->m_Size == 0)
115 {
116 cout << "当前记录为空" << endl;
117
118 }
119 else
120 {
121 for (int i = 0; i < abs->m_Size; i++)
122 {
123 cout << "姓名:" << abs->personArray[i].m_Name << "\t";
124 cout << "性别:" <<( abs->personArray[i].m_Sex == 1?"男":"女") << "\t";
125 cout << "年龄: " << abs->personArray[i].m_Age << "\t";
126 cout << "电话:" << abs->personArray[i].m_Phone << "\t";
127 cout << "住址:" << abs->personArray[i].m_Adder << endl;
128 }
129 }
130
131 system("pause");
132 system("cls");
133
134 }
135
136
137 //检测联系人是否存在 如果存在返回联系人的所在位置 不存在返回-1
138 int isExist(Addressbooks* abs, string name)
139 {
140 for (int i = 0; i< abs->m_Size; i++)
141 {
142 //找到用户输入的姓名了
143 if (abs->personArray[i].m_Name == name)
144 {
145 return i; //找到了。返回这个人的下标
146 }
147 }
148 return -1; //没有找到 返回 -1
149 }
150
151
152 //3.删除指定的联系人
153 void deletePerson(Addressbooks* abs)
154 {
155 cout << "请输入您要删除的联系人" << endl;
156 string name;
157 cin >> name;
158
159 //ret == -1 没有查到
160 //ret != -1 查到了
161 int ret = isExist(abs, name);
162
163 if (ret != -1)
164 {
165 //查找到人,要进行删除的操作
166 for (int i = ret; i < abs->m_Size; i++)
167 {
168 //数据前移
169 abs->personArray[i] = abs->personArray[i + 1];
170 }
171 abs->m_Size--;
172 cout << "删除成功!!!!" << endl;
173
174 }
175 else
176 {
177 cout << "查无此人!" << endl;
178 }
179 system("pause");
180 system("cls");
181 }
182
183
184 //4.查找联系人
185 void findPerson(Addressbooks * abs)
186 {
187 cout << "请输入您要查找的联系人:" << endl;
188 string name;
189 cin >> name;
190
191 //判断指定的联系人是否存在通信录中
192 int ret = isExist(abs, name);
193
194 if (ret != -1) //找到了
195 {
196 cout << "姓名:" << abs->personArray[ret].m_Name << "\t";
197 cout << "性别:" << abs->personArray[ret].m_Sex << "\t";
198 cout << "年龄:" << abs->personArray[ret].m_Age << "\t";
199 cout << "电话:" << abs->personArray[ret].m_Phone << "\t";
200 cout << "住址:" << abs->personArray[ret].m_Adder << endl;
201
202
203 }
204 else //未找到
205 {
206 cout << "未找到联系人!!!!" << endl;
207 }
208
209 system("pause");
210 system("cls");
211 }
212
213 //5.修改联系人
214 void modifyPerson(Addressbooks* abs)
215 {
216 cout << "请输入您要修改的联系人:" << endl;
217 string name;
218 cin >> name;
219
220 int ret = isExist(abs, name);
221
222 if (ret != -1) //找到了
223 {
224 //性名
225 string name;
226 cout << "请输入姓名:" << endl;
227 cin >> name;
228 abs->personArray[ret].m_Name = name;
229 //性别
230 cout << "请输入性别:" << endl;
231 cout << "1------男" << endl;
232 cout << "2------女" << endl;
233
234 int sex = 0;
235 while (true)
236 {
237 cin >> sex;
238 if (sex == 1 || sex == 2)
239 {
240 abs->personArray[ret].m_Sex;
241 break;
242 }
243 else
244 {
245 cout << "您输入的有误,请重新输入!!!" << endl;
246 }
247 }
248
249 //年龄
250 cout << "请输入年龄: " << endl;
251 int age = 0;
252 cin >> age;
253 abs->personArray[ret].m_Age = age;
254
255 //电话
256 cout << "请输入电话: " << endl;
257 string phone;
258 cin >> phone;
259 abs->personArray[ret].m_Phone = phone;
260
261 //住址
262 cout << "请输入住址: " << endl;
263 string address;
264 cin >> address;
265 abs->personArray[ret].m_Adder = address;
266
267 cout << "修改成功了!!!" << endl;
268
269 }
270 else //未找到
271 {
272 cout << "查无此人!!!" << endl;
273 }
274
275 system("pause");
276 system("cls");
277
278 }
279
280 //6.清空联系人
281 void cleanPerson(Addressbooks* abs)
282 {
283 abs->m_Size = 0;
284 cout << "通讯录已经清空!!!" << endl;
285 system("pause");
286 system("cls");
287 }
288
289
290 //菜单界面
291 void showMenu()
292 {
293 cout << "*****************************" << endl;
294 cout << "***** 1.添加联系人 ******" << endl;
295 cout << "***** 2.显示联系人 ******" << endl;
296 cout << "***** 3.删除联系人 ******" << endl;
297 cout << "***** 4.查找联系人 ******" << endl;
298 cout << "***** 5.修改联系人 ******" << endl;
299 cout << "***** 6.清空联系人 ******" << endl;
300 cout << "***** 0.退出通信录 ******" << endl;
301 cout << "*****************************" << endl;
302 }
303
304 int main()
305 {
306
307
308 //创建通讯录结构体变量
309 Addressbooks abs;
310 //初始话当前人员的个数
311 abs.m_Size = 0;
312 //用户选择
313 int select = 0;
314 while (true)
315 {
316 //菜单调用
317 showMenu();
318 //用户选择
319 cin >> select;
320
321 switch (select)
322 {
323 case 1: // 1.添加联系人
324 addPerson(&abs); //利用地址传递
325 break;
326 case 2: // 2.显示联系人
327 showPerson(&abs);
328 break;
329 case 3: // 3.删除联系人
330 deletePerson(&abs);
331
332 /*{
333 cout << "请输入删除联系人的姓名:" << endl;
334 string name;
335 cin >> name;
336
337 if (isExist(&abs, name) == -1)
338 {
339 cout << "查无此人!!!" << endl;
340 }
341 else
342 {
343 cout << "找到此人!!!" << endl;
344 }
345 }*/
346 break;
347 case 4: // 4.查找联系人
348 findPerson(&abs);
349 break;
350 case 5: // 5.修改联系人
351 modifyPerson(&abs);
352 break;
353 case 6: // 6.清空联系人
354 cleanPerson(&abs);
355 break;
356 case 0: // 0.退出通信录
357 cout << "欢迎下次使用" << endl;
358 system("pause");
359 return 0;
360 break;
361
362 default:
363 break;
364 }
365
366 }
367
368 system("pause");
369 return 0;
370
371 }

C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录)的相关教程结束。

《C++通讯录管理系统(添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录).doc》

下载本文的Word格式文档,以方便收藏与打印。