c++—通讯录管理系统

一、运用所学的结构体、地址指针等基础知识,完成通讯录管理系统

二、系统主要有以下6个功能:

1.添加联系人
2.显示联系人 
3.删除联系人 
4.查找联系人
5.修改联系人 
6.清空联系人 

  1 #include<iostream>
  2 using namespace std;
  3 #include<string>
  4 #define MAX 1000
  5 
  6 
  7 //菜单界面
  8 void showMenu()
  9 {
 10     cout << "**************************" << endl;
 11     cout << "*****  1.添加联系人  *****" << endl;
 12     cout << "*****  2.显示联系人  *****" << endl;
 13     cout << "*****  3.删除联系人  *****" << endl;
 14     cout << "*****  4.查找联系人  *****" << endl;
 15     cout << "*****  5.修改联系人  *****" << endl;
 16     cout << "*****  6.清空联系人  *****" << endl;
 17     cout << "*****  0.退出通讯录  *****" << endl;
 18     cout << "**************************" << endl;
 19 }
 20 
 21 //联系人结构体
 22 struct Person
 23 {
 24     string m_Name;//姓名
 25     int m_sex;//性别1男,2女
 26     int m_age;//年龄
 27     string m_phone;//电话
 28     string m_Addr; //住址
 29 };
 30 //通讯录结构体
 31 struct Addressbooks 
 32 {
 33     //联系人数组
 34     struct Person personarray[MAX];
 35     //联系人个数
 36     int m_size;
 37 
 38 };
 39 //1添加联系人
 40 void addPerson(Addressbooks* abs)
 41 {
 42     //判断通讯录是否满了
 43     if (abs->m_size==MAX)
 44     {
 45         cout << "通讯录已满,无法添加!" << endl;
 46         return;
 47     }
 48     else
 49     {
 50         //添加联系人
 51 
 52         //姓名
 53         string name="";
 54         cout << "请输入姓名:  " << endl;
 55         cin >> name;
 56         abs->personarray[abs->m_size].m_Name = name;
 57         
 58         //性别
 59         int sex=0;
 60         cout << "请输入性别:  " << endl;
 61         cout << "1 --- 男" << endl;
 62         cout << "2 --- 女" << endl;
 63         while (true)
 64         {
 65             cin >> sex;
 66             if (sex == 1 || sex == 2)
 67             {
 68                 abs->personarray[abs->m_size].m_sex = sex;
 69                 break;
 70             }
 71             cout << "输入有误,请重新输入!" << endl;
 72         }
 73 
 74         //年龄
 75         cout << "请输入年龄:  " << endl;
 76         int age = 0;
 77         while (true)
 78         {
 79             cin >> age;
 80             if (age<101)
 81             {
 82                 abs->personarray[abs->m_size].m_age = age;
 83                 break;
 84             } 
 85             cout << "输入有误,请重新输入!" << endl;
 86             
 87         }
 88         
 89         //电话
 90         cout << "请输入电话:  " << endl;
 91         string phone="";
 92         cin >> phone;
 93         abs->personarray[abs->m_size].m_phone = phone;
 94 
 95         //住址
 96         cout << "请输入家庭住址:  " << endl;
 97         string place="";
 98         cin >> place;
 99         abs->personarray[abs->m_size].m_Addr = place;
100         
101         //更新通讯录人数
102         abs->m_size++;
103         cout << "添加成功" << endl;
104 
105         system("pause");//请按任意键继续
106         system("cls");//清屏操作
107     }
108 }
109 
110 //2.显示联系人
111 void showperson(Addressbooks* abs) 
112 {
113     if (abs->m_size == 0)
114     {
115         cout << "当前记录为空" << endl;
116     }
117     else
118     {
119         for (int i = 0; i < abs->m_size; i++)
120         {
121             cout << "姓名:  " << abs->personarray[i].m_Name << "\t";
122             cout << "性别:  " << (abs->personarray[i].m_sex == 1 ? "男":"女") << "\t";
123             cout << "年龄:  " << abs->personarray[i].m_age << "\t";
124             cout << "电话:  " << abs->personarray[i].m_phone << "\t";
125             cout << "住址:  " << abs->personarray[i].m_Addr << endl;
126         }
127     }
128     system("pause");
129     system("cls");
130 }
131 
132 //3.1检测联系人是否存在
133 int Exist(Addressbooks* abs,string name)//通讯录,对比姓名 
134 {
135     for (int i = 0; i < abs->m_size; i++)
136     {
137         if (abs->personarray[i].m_Name == name)
138         {
139             return i;
140         }
141     }
142     return -1;
143 }
144 //3.2删除联系人
145 void Delteperson(Addressbooks* abs)
146 {
147     cout << "请输入您要删除的联系人" << endl;
148 
149     string name;
150     cin >> name;
151 
152     int ret = Exist(abs, name);
153 
154     if (ret!=-1)
155     {
156         for (int i = ret; i < abs->m_size; i++)
157         {
158             //数据前移
159             abs->personarray[i] = abs->personarray[i + 1];
160         }
161         abs->m_size--;//更新人员数量
162         cout << "删除成功" << endl;
163     }
164     else
165     {
166         cout << "查无此人!" << endl;
167     }
168     system("pause");
169     system("cls");
170 }
171 
172 //4.查找联系人
173 void findperson(Addressbooks* abs) 
174 {
175     cout << "请输入需要查找的联系人" << endl;
176     string name;
177     cin >> name;
178 
179     //判断是否存在
180     int ret = Exist(abs, name);
181 
182     if (ret!=-1)
183     {
184         int i = ret;
185         cout << "姓名:  " << abs->personarray[i].m_Name << "\t";
186         cout << "性别:  " << (abs->personarray[i].m_sex == 1 ? "男" : "女") << "\t";
187         cout << "年龄:  " << abs->personarray[i].m_age << "\t";
188         cout << "电话:  " << abs->personarray[i].m_phone << "\t";
189         cout << "住址:  " << abs->personarray[i].m_Addr << endl;
190     }
191     else
192     {
193         cout << "查无此人!" << endl;
194     }
195     system("pause");
196     system("cls");
197 
198 }
199 
200 //5.修改联系人
201 void modifyperson(Addressbooks* abs)
202 {
203     cout << "请输入需要修改的联系人" << endl;
204     string name;
205     cin >> name;
206 
207     //判断是否存在
208     int ret = Exist(abs, name);
209 
210     if (ret != -1)
211     {
212         int i= ret;
213         //显示要修改人信息
214         cout << "---------------------------------------------" << endl;
215         cout << "姓名:  " << abs->personarray[i].m_Name << "\t";
216         cout << "性别:  " << (abs->personarray[i].m_sex == 1 ? "男" : "女") << "\t";
217         cout << "年龄:  " << abs->personarray[i].m_age << "\t";
218         cout << "电话:  " << abs->personarray[i].m_phone << "\t";
219         cout << "住址:  " << abs->personarray[i].m_Addr << endl;
220         
221         //根据不同需求修改联系人信息
222         int n = 0;
223         cout << "---------------------------------------------" << endl;
224         cout << "           请选择需要修改的内容选项:        " << endl;
225         cout << "---------------------------------------------" << endl;
226         cout << "1--姓名;2--性别;3--年龄;4--电话;5--住址;6--全部修改;7--退出" << endl;
227         
228         while (n!=7)
229         {
230             cin >> n;
231             string me = "";
232             int sex=0;
233             int age = 0;
234             string phone = "";
235             string place = "";
236 
237             switch (n)
238             {
239             case 1:
240                 //姓名
241                 cout << "请输入姓名:  " << endl;
242                 cin >> me;
243                 abs->personarray[i].m_Name = me;
244                 cout << "修改成功" << endl;
245                 cout << "如要修改请继续选择其他选项,退出请按7" << endl;
246                 break;
247             case 2:
248                 //性别
249                 cout << "请输入性别:  " << endl;
250                 cout << "1 --- 男" << endl;
251                 cout << "2 --- 女" << endl;
252                 
253                 while (true)
254                 {
255                     cin >> sex;
256                     if (sex == 1 || sex == 2)
257                     {
258                         abs->personarray[i].m_sex = sex;
259                         break;
260                     }
261                     cout << "输入有误,请重新输入!" << endl;
262                 }
263                 cout << "修改成功" << endl;
264                 cout << "如要修改请继续选择其他选项,退出请按7" << endl;
265                 break;
266 
267             case 3:
268                 //年龄
269                 cout << "请输入年龄:  " << endl;
270                 
271                 cin >> age;
272                 abs->personarray[i].m_age = age;
273                 cout << "修改成功" << endl;
274                 cout << "如要修改请继续选择其他选项,退出请按7" << endl;
275                 break;
276 
277             case 4:
278                 //电话
279                 cout << "请输入电话:  " << endl;
280                 
281                 cin >> phone;
282                 abs->personarray[i].m_phone = phone;
283                 cout << "修改成功" << endl;
284                 cout << "如要修改请继续选择其他选项,退出请按7" << endl;
285                 break;
286 
287             case 5:
288                 //住址
289                 cout << "请输入家庭住址:  " << endl;
290 
291                 cin >> place;
292                 abs->personarray[i].m_Addr = place;
293                 cout << "修改成功" << endl;
294                 cout << "如要修改请继续选择其他选项,退出请按7" << endl;
295                 break;
296                 
297 
298             case 6:
299                 //姓名
300                 cout << "请输入姓名:  " << endl;
301                 cin >> name;
302                 abs->personarray[i].m_Name=name;
303                 
304                 //性别
305                 cout << "请输入性别:  " << endl;
306                 cout << "1 --- 男" << endl;
307                 cout << "2 --- 女" << endl;
308 
309                 while (true)
310                 {
311                     cin >> sex;
312                     if (sex == 1 || sex == 2)
313                     {
314                         abs->personarray[i].m_sex = sex;
315                         break;
316                     }
317                     cout << "输入有误,请重新输入!" << endl;
318                 }
319 
320                 //年龄
321                 cout << "请输入年龄:  " << endl;
322                 cin >> age;
323                 abs->personarray[i].m_age = age;
324 
325                 //电话
326                 cout << "请输入电话:  " << endl;
327                 cin >> phone;
328                 abs->personarray[i].m_phone = phone;
329 
330                 //住址
331                 cout << "请输入家庭住址:  " << endl;
332                 cin >> place;
333                 abs->personarray[i].m_Addr = place;
334                 cout << "修改成功" << endl;
335                 n = 7;
336                 break;
337 
338             default:
339                 break;
340             }
341         }
342 
343     }
344     else
345     {
346         cout << "查无此人!" << endl;
347     }
348     system("pause");
349     system("cls");
350 
351 }
352 //6、清空所有联系人
353 void cleanperson(Addressbooks* abs)
354 {
355     cout << "请问是否真的要清空通讯录? " << endl;
356     cout << "1--确定" << endl;
357     cout << "0--不清空" << endl;
358     int b;
359     cin >> b;
360     while (b==1)
361     {
362         abs->m_size = 0;
363         cout << "通讯录已清空" << endl;
364         break;
365     }
366     system("pause");
367     system("cls");
368 }
369 
370 int main()
371 {
372     //创建通讯录结构体变量
373     Addressbooks abs;
374     //当前人员个数
375     abs.m_size = 0;
376     
377     int select = 0;//创建用户选择输入变量
378 
379     while (true) //除了选0,能一直使用
380     {
381         //菜单调用
382         showMenu();
383 
384         cin >> select;
385         switch (select)
386         {
387         case 1:        //1.添加联系人
388             addPerson(&abs); //地址传递
389             break;
390         case 2:        //2.显示联系人
391             showperson(&abs);
392             break;
393         case 3:        //3.删除联系人
394             Delteperson(&abs);
395             break;
396         case 4:        //4.查找联系人
397             findperson(&abs);
398             break;
399         case 5:        //5.修改联系人 
400             modifyperson(&abs);
401             break;
402         case 6:        //6.清空联系人 
403             cleanperson(&abs);
404             break;
405         case 0:        //0.退出通讯录  
406             cout << "欢迎下次使用" << endl;
407             system("pause");
408             return 0;
409             break;
410         default:
411             break;
412         }
413     }
414 
415     
416 
417     system("pause");
418     return 0;
419 }

 


0.退出通讯录

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
c++—通讯录管理系统 c++—通讯录管理系统 c++—通讯录管理系统 c++—通讯录管理系统   TRANSLATE with c++—通讯录管理系统 COPY THE URL BELOW c++—通讯录管理系统 c++—通讯录管理系统 Back EMBED THE SNIPPET BELOW IN YOUR SITE c++—通讯录管理系统 Enable collaborative features and customize widget: Bing Webmaster Portal Back
上一篇:JavaScript 拖拉缩放效果


下一篇:Insert语句详解