一、菜单
功能描述:显示简单的菜单,供用户选择操作
实现步骤:直接cout输出
二、退出功能
功能描述:根据用户不同的操作代码选择,进入不同的功能,我们使用switch分支结构进行搭建
实现步骤:用while(ture)循环包涵switch, case 0:时用return 0 ,退出循环,即退出通讯录。
三、添加联系人
功能描述:实现添加联系人功能,联系人上限为1000人,联系信息包括(姓名、性别、年龄、联系电话、家庭住址)
实现步骤:
-
- 设计联系人结构体
- 设计通讯录结构体
- main函数中创建通讯录
- 封装添加联系人函数
四、显示联系人
功能描述:显示通信录中所有人员信息
实现步骤:判断通讯录中联系人是否为0,不为0则显示联系人所有信息
五、删除联系人
功能描述:按照姓名删除指定联系人
实现步骤:封装检测联系人是否存在函数,封装删除联系人函数
六、查找联系人
功能描述:按照姓名查找联系人
实现步骤:判断是否存在此人,存在则输出信息
七、修改联系人
功能描述:按照姓名重新修改联系人信息
实现步骤:判断是否存在此人,存在则进行修改操作
八、清空联系人
功能描述:清空通讯录中所有信息
实现步骤:将通信录中联系人数量标志位置为0,做逻辑清空。
九、完整代码:(vs coed 编写)
1 #include <iostream> 2 #include <string> 3 #define Max 1000 4 using namespace std; 5 6 //通讯录菜单界面 7 void ShowMenu(){ 8 cout << "**************************" << endl; 9 cout << "通讯录操作编号" << endl << 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 cout << "**************************" << endl; 18 19 } 20 21 //设计联系人结构体 22 struct Person{ 23 //姓名 24 string m_Name; 25 //性别 26 int m_Sex; 27 //年龄 28 int m_Age; 29 //电话 30 string m_Phone; 31 //住址 32 string m_Addr; 33 }; 34 35 //设计通讯录结构体 36 struct Addressbooks{ 37 //保存联系人的数组 38 struct Person personArray[Max]; 39 //已保存联系人个数 40 int m_Size; 41 }; 42 43 //添加联系人函数 44 void addPerson(Addressbooks *abc){ 45 if(abc->m_Size > 1000){ 46 cout << "通讯录已满,无法再添加!" << endl; 47 }else{ 48 //姓名 49 string name; 50 cout << "请输入姓名" << endl; 51 cin >> name; 52 abc->personArray[abc->m_Size].m_Name = name; 53 54 //性别 55 cout << "请输入性别:"; 56 cout << " 1--男" << " "; 57 cout << "2--女" << endl; 58 int sex = 0; 59 while(true){ 60 cin >> sex; 61 if (sex == 1 || sex == 2) 62 { 63 abc->personArray[abc->m_Size].m_Sex = sex; 64 break; 65 }else{ 66 cout << "输入有误,请重新输入:" << endl; 67 } 68 } 69 70 //年龄 71 cout << "请输入年龄:" << endl; 72 int age; 73 cin >> age; 74 abc->personArray[abc->m_Size].m_Age = age; 75 76 //联系电话 77 cout << "请输入联系电话:" << endl; 78 string phone; 79 cin >> phone; 80 abc->personArray[abc->m_Size].m_Phone = phone; 81 82 //家庭住址 83 cout << "请输入家庭住址:" << endl; 84 string address; 85 cin >> address; 86 abc->personArray[abc->m_Size].m_Addr = address; 87 88 //更新通讯录人数 89 abc->m_Size++; 90 91 cout << "添加成功!" << endl; 92 93 //mac系统下无法使用 94 system("pause");//按任意键继续 95 system("cls");//清屏工作 96 97 } 98 } 99 100 //显示联系人函数 101 void showPerson(Addressbooks *abc){ 102 if(abc->m_Size == 0){ 103 cout << "通讯录中无联系人!" << endl; 104 }else{ 105 for(int i = 0;i < abc->m_Size;i++){ 106 cout << i+1 << ". ";//显示联系人编号 107 cout << "姓名:" << abc->personArray[i].m_Name << "\t"; 108 cout << "性别:" << (abc->personArray[i].m_Sex == 1 ? "男":"女")<< "\t"; 109 cout << "年龄:" << abc->personArray[i].m_Age << "\t"; 110 cout << "电话:" << abc->personArray[i].m_Phone << "\t "; 111 cout << "家庭住址:" << abc->personArray[i].m_Addr << "\t" << endl; 112 113 } 114 } 115 116 system("pause");//按任意键继续 117 system("cls");//清屏工作 118 } 119 120 //检测联系人是存在函数 121 int isExist(Addressbooks *abc,string name){ 122 for(int i = 0;i<abc->m_Size;i++){ 123 if(abc->personArray[i].m_Name == name){ 124 return i;//找到了返回数组下标 125 }else{ 126 127 } 128 } 129 return -1;//未找到 130 } 131 132 //删除指定联系人函数 133 void deletePerson(Addressbooks *abc){ 134 cout << "请输入您要删除的联系人" << endl; 135 string name; 136 cin >> name; 137 int ret = isExist(abc,name);//调用检测联系人是否存在函数 138 if(ret != -1){ 139 //查到此人,进行删除 140 for(int i = ret;i<abc->m_Size;i++){ 141 //数据前移覆盖 142 abc->personArray[i] = abc->personArray[i+1]; 143 } 144 abc->m_Size--; 145 cout << "删除成功!" << endl; 146 }else{ 147 cout << "查无此人!" << endl; 148 } 149 //清屏 150 system("pause"); 151 system("cls"); 152 } 153 154 //查找指定联系人信息 155 void findPerson(Addressbooks *abc){ 156 cout << "请输入您要查找的联系人姓名:" << endl; 157 string name; 158 cin >> name; 159 //判断联系人是否存在通讯录中 160 int ret = isExist(abc,name); 161 if(ret != -1){ 162 cout << "姓名:" << abc->personArray[ret].m_Name << "\t"; 163 cout << "性别:" << (abc->personArray[ret].m_Sex == 1 ? "男":"女") << "\t\t"; 164 cout << "年龄:" << abc->personArray[ret].m_Age << "\t"; 165 cout << "电话:" << abc->personArray[ret].m_Phone << "\t "; 166 cout << "家庭住址:" << abc->personArray[ret].m_Addr << "\t" << endl; 167 }else{ 168 cout << "查无此人!" << endl; 169 } 170 171 //清屏 172 system("pause"); 173 system("cls"); 174 } 175 176 //修改指定联系人信息 177 void modifyPerson(Addressbooks *abc){ 178 cout << "请输入您要修改的联系人姓名:" << endl; 179 string name; 180 cin >> name; 181 int ret = isExist(abc,name); 182 if(ret != -1){//修改信息 183 //姓名 184 string name; 185 cout << "请输入姓名" << endl; 186 cin >> name; 187 abc->personArray[ret].m_Name = name; 188 189 //性别 190 cout << "请输入性别:"; 191 cout << " 1--男" << " "; 192 cout << "2--女" << endl; 193 int sex = 0; 194 while(true){ 195 cin >> sex; 196 if (sex == 1 || sex == 2) 197 { 198 abc->personArray[ret].m_Sex = sex; 199 break; 200 }else{ 201 cout << "输入有误,请重新输入:" << endl; 202 } 203 } 204 205 //年龄 206 cout << "请输入年龄:" << endl; 207 int age; 208 cin >> age; 209 abc->personArray[ret].m_Age = age; 210 211 //联系电话 212 cout << "请输入联系电话:" << endl; 213 string phone; 214 cin >> phone; 215 abc->personArray[ret].m_Phone = phone; 216 217 //家庭住址 218 cout << "请输入家庭住址:" << endl; 219 string address; 220 cin >> address; 221 abc->personArray[ret].m_Addr = address; 222 }else{ 223 cout << "查无此人!" << endl; 224 } 225 cout << "您修改成功!" << endl; 226 //清屏 227 system("pause"); 228 system("cls"); 229 } 230 231 //清空所有联系人 232 void clearPerson(Addressbooks *abc){ 233 cout << "您确定要清空所有联系人吗?" << endl; 234 cout << "1--确定 " << "2--取消" << endl; 235 int a; 236 while (true){ 237 cin >> a; 238 if(a == 1){ 239 abc->m_Size = 0; 240 cout << "通讯录已清空!" << endl; 241 system("pause"); 242 system("cls"); 243 break; 244 }else if(a == 2){ 245 cout << "已取消清空通讯录!" << endl; 246 break; 247 }else{ 248 cout << "您的输入有误!" << "请选择 1 or 2 输入" << endl; 249 } 250 } 251 252 } 253 254 255 256 int main(){ 257 258 //创建通讯录结构体变量 259 Addressbooks abc; 260 261 //初始化通讯录当前人员个数 262 abc.m_Size = 0; 263 264 //用于保存用户输入 265 int select = 0; 266 267 while(true){ 268 //菜单调用 269 ShowMenu(); 270 271 //用户选择 272 cin >> select;//用户输入 273 switch (select) 274 { 275 case 1://添加联系人 276 addPerson(&abc);//调用添加联系人函数 277 break; 278 case 2://显示联系人 279 showPerson(&abc); 280 break; 281 case 3://删除联系人 282 deletePerson(&abc); 283 break; 284 case 4://查找联系人 285 findPerson(&abc); 286 break; 287 case 5://修改联系人 288 modifyPerson(&abc); 289 break; 290 case 6://清空联系人 291 clearPerson(&abc); 292 break; 293 case 0://退出通讯录 294 cout << "欢迎下次使用。" << endl; 295 return 0; 296 break; 297 default: 298 break; 299 } 300 301 } 302 //清屏 303 system("pause"); 304 return 0; 305 }
原文链接:https://www.cnblogs.com/ChenYuansong/p/16559322.html