一、菜單 功能描述:顯示簡單的菜單,供用戶選擇操作 實現步驟:直接cout輸出 二、退出功能 功能描述:根據用戶不同的操作代碼選擇,進入不同的功能,我們使用switch分支結構進行搭建 實現步驟:用while(ture)迴圈包涵switch, case 0:時用return 0 ,退出迴圈,即退出通 ...
一、菜單
功能描述:顯示簡單的菜單,供用戶選擇操作
實現步驟:直接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 }