首页 > 编程语言 > 详细

通讯录管理系统C++

时间:2021-05-24 15:31:25      阅读:11      评论:0      收藏:0      [点我收藏+]
  1 #include<iostream>
  2 using namespace std;
  3 #define MAX 1000
  4 #include <string>
  5 
  6 //菜单界面
  7 void showmenu()
  8 {
  9     cout << "******通讯录管理系统******" << endl;
 10     cout << "***** 1、添加联系人 *****" << endl;
 11     cout << "***** 2、显示联系人 *****" << endl;
 12     cout << "***** 3、删除联系人 *****" << endl;
 13     cout << "***** 4、查找联系人 *****" << endl;
 14     cout << "***** 5、修改联系人 *****" << endl;
 15     cout << "***** 6、清空联系人 *****" << endl; 
 16     cout << "***** 0、退出通讯录 *****" << endl;
 17 }
 18 
 19 //通讯录成员结构体
 20 struct People
 21 {
 22     string name; //姓名
 23     string phone;//电话
 24     string addr;//地址
 25     int age;//年龄
 26     int sex;//1男2女
 27 };
 28 
 29 //通讯录结构体
 30 struct Book
 31 {
 32     //保存的联系人数组
 33     struct People people[MAX];
 34 
 35     //通讯录中当前记录联系人个数
 36     int booksize;
 37 };
 38 
 39 //添加联系人
 40 void addPeople(Book * book)
 41 {
 42     //判断通讯录是否满,满则不再添加
 43     if (book->booksize == MAX)
 44     {
 45         cout << "通讯录已满,无法添加!" << endl;
 46         return;
 47     }
 48     else
 49     {
 50         //添加具体联系人
 51         
 52         //姓名
 53         cout << "请输入姓名:" << endl;
 54         string name;
 55         cin >> name;
 56         book->people[book->booksize].name = name; //booksize表示通讯录中序号
 57 
 58         //性别
 59         cout << "请输入性别" << endl;
 60         cout << "1 ----  男" << endl;
 61         cout << "2 ----  女" << endl;
 62         int sex = 0;
 63         while (true)
 64         {
 65             cin >> sex;
 66             //如果输入1或2则退出表示正确
 67             if (sex == 1 || sex == 2)
 68             {
 69                 book->people[book->booksize].sex = sex;
 70                 break;
 71             }
 72             cout << "输入有误,请重新输入!" << endl;
 73         }
 74         //年龄
 75         cout << "请输入年龄:" << endl;
 76         int age = 0;
 77         cin >> age;
 78         book->people[book->booksize].age = age;
 79         //电话
 80         cout << "请输入电话:" << endl;
 81         string phone;
 82         cin >> phone;
 83         book->people[book->booksize].phone = phone;
 84         //地址
 85         cout << "请输入地址:" << endl;
 86         string addr;
 87         cin >> addr;
 88         book->people[book->booksize].addr = addr;
 89 
 90         //更新通讯录人数
 91         book->booksize++;
 92         cout << "添加成功!" << endl;
 93     }
 94     system("pause");//按任意键继续
 95     system("cls");//清屏
 96 }
 97 
 98 //显示联系人
 99 void showPeople(Book * book)
100 {
101     if (book->booksize == 0)
102     {
103         cout << "当前通讯录为空!" << endl;
104         system("pause");
105         return;
106     }
107     else
108     {
109         for (int i = 0; i < book->booksize; i++)
110         {
111             cout << book->people[i].name << "\t" << (book->people[i].sex == 1 ? "":"") << "\t" << book->people[i].age << "\t" << book->people[i].phone << "\t" << book->people[i].addr << endl;
112         }
113     }
114 
115     system("pause");
116     system("cls");
117 }
118 
119 //检测联系人是否存在
120 int isExist(Book * book, string name)
121 {
122     for (int i = 0; i < book->booksize; i++)
123     {
124         if (book->people[i].name == name)
125         {
126             return i; //找到则返回下标
127         }
128     }
129     return -1; //遍历结束没有找到返回-1
130 }
131 
132 //删除联系人
133 void deletePeople(Book * book)
134 {
135     cout << "请输入删除联系人的姓名:" << endl;
136     string name;
137     cin >> name;
138     int res = isExist(book, name);
139     if (res == -1)
140     {
141         cout << "未在通讯录中查找到此人!" << endl;
142     }
143     else
144     {
145         //查找到此人!
146         for (int i = res; i < book->booksize; i++)
147         {
148             book->people[i] = book->people[i + 1]; //数据前移
149         }
150         book->booksize--;//更新通讯录中人员数
151         cout << "删除成功!" << endl;
152     }
153     system("pause");
154     system("cls");
155 }
156 
157 //查找联系人
158 void findPeople(Book * book)
159 {
160     cout << "请输入您要查找的联系人:" << endl;
161     string name;
162     cin >> name;
163     int res = isExist(book, name);
164     if (res != -1)//找到联系人
165     {
166         cout << "姓名: " << book->people[res].name << " 性别: " << (book->people[res].sex == 1 ? "":"") << " 年龄: " << book->people[res].age << " 地址: " << book->people[res].addr << " 电话: " << book->people[res].phone << endl;
167     }
168     else
169     {
170         cout << "通讯录无此人!" << endl;
171     }
172     system("pause");
173     system("cls");
174 }
175 
176 //修改联系人
177 void modifyPeople(Book * book)
178 {
179     cout << "请输入要修改的联系人: " << endl;
180     string name;
181     cin >> name;
182 
183     int res = isExist(book, name);
184     if (res != -1)//存在联系人
185     {
186         string name;
187         cout << "请输入姓名:" << endl;
188         cin >> name;
189         book->people[res].name = name;
190 
191         cout << "请输入性别" << endl;
192         cout << "1 ----  男" << endl;
193         cout << "2 ----  女" << endl;
194         int sex = 0;
195         while (true) 
196         {
197             cin >> sex;
198             if (sex == 1 || sex == 2)
199             {
200                 book->people[res].sex = sex;
201                 break;
202             }
203             cout << "输入有误,请重新输入!" << endl;
204         }
205 
206         cout << "请输入年龄:" << endl;
207         int age = 0;
208         cin >> age;
209         book->people[res].age = age;
210 
211         cout << "请输入地址:" << endl;
212         string addr;
213         book->people[res].addr = addr;
214 
215         cout << "请输入电话:" << endl;
216         string phone;
217         book->people[res].phone = phone;
218         
219     }
220     else
221     {
222         cout << "未找到此人!" << endl;
223     }
224     system("pause");
225     system("cls");
226 }
227 
228 //清空联系人
229 void clear(Book * book)
230 {
231     book->booksize = 0;
232     cout << "通讯录已清空" << endl;
233     system("pause");
234     system("cls");
235 }
236 
237 //主函数
238 int main()
239 {
240     int select; //创建用户选择输入变量
241     
242     //通讯录结构体变量
243     Book book;
244     book.booksize = 0; //通讯录数量初始化0
245 
246 
247     while (true)
248     {
249         //菜单调用
250         showmenu();
251 
252         cin >> select;
253         switch (select)
254         {
255         case 1://1、添加联系人
256             addPeople(&book); //地址传递改变实参
257             break;
258         case 2://2、显示联系人
259             showPeople(&book);
260             break;
261         case 3://3、删除联系人
262             deletePeople(&book);
263             break;
264         case 4://4、查找联系人
265             findPeople(&book);
266             break;
267         case 5://5、修改联系人
268             modifyPeople(&book);
269             break;
270         case 6://6、清空联系人
271             clear(&book);
272             break;
273         case 0://0、退出通讯录 
274             cout << "欢迎下次使用" << endl;
275             system("pause");
276             return 0;
277             break;
278         default:
279             break;
280         }
281     }
282     
283     system("pause");
284     return 0;
285 }

 

通讯录管理系统C++

原文:https://www.cnblogs.com/yuxuliang/p/14803862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!