無聊的c++期末實驗驗收(簡單的通訊錄管理系統)
阿新 • • 發佈:2019-02-13
/*簡易電話薄管理系統 本程式純屬應付期末驗收。 程式一共兩個類: Contact_person 描述電話薄中的聯絡人資訊 System 系統程式,包含新建和查詢這兩個功能 其中查詢到聯絡人後,可進行刪除和修改 沒有寫檔案操作,這樣每次都必須重新新建聯絡人 讀者可自行新增檔案操作,已提供count記錄電話薄中聯絡人的個數 以及flag標記,方便檔案的讀入及重寫 程式幾乎沒有容錯能力,不能處理非法輸入 不能處理聯絡人姓名相同的情況*/ #include <cstdio> #include <string> #include <iostream> #include <map> using namespace std; map <string,int> system_map; class Contact_person{ private: int ID;//該聯絡人的數字編號 bool flag;//標記該聯絡人是否已經被刪除 string name,tel,remark;//remark為備註 public: void assign(int id,string n,string t,string r){ ID = id; name = n; tel = t; remark = r; } void print(){ cout << "Name :" << name << endl; cout << "Tel :" << tel << endl; cout << "Remark:" << remark << endl; } void delate(){ flag = 0; } }; Contact_person p[1000]; class System{ private: int count;//記錄目前電話薄中有多少聯絡人 void show_sys(){ cout << "***********************************" << endl; cout << "1 . 新建聯絡人" << endl; cout << "2 . 查詢聯絡人" << endl; cout << "3 . 退出" << endl ; cout << " 請輸入指令:" << endl; cout << "***********************************" << endl; } void show_search(){ cout << "***********************" << endl; cout << "1 . 修改該聯絡人" << endl; cout << "2 . 刪除該聯絡人" << endl; cout << "3 . 退出" << endl; cout << "請輸入指令" << endl; cout << "***********************" << endl; } void build(){ string name,tel,remark; cout << "請輸入聯絡人姓名" << endl; cin >> name; cout << "請輸入電話" << endl; cin >> tel; cout << "請輸入備註"<< endl; cin >> remark; p[count].assign(count,name,tel,remark); cout << "\n新建成功!\n" << endl; p[count].print(); system_map[name] = count; count++; return; } void search(string s){ int tag; while(1){ int id; if(system_map.count(s) != 0){ id = system_map[s]; cout << "\n查詢成功!\n" << endl; p[id].print(); } else{ cout << "\n抱歉,您要查詢的聯絡人不存在,請重新選擇指令\n" << endl; return; } show_search(); cin >> tag; if(tag == 1){ string name,tel,remark; cout << "請輸入聯絡人姓名" << endl; cin >> name; cout << "請輸入電話" << endl; cin >> tel; cout << "請輸入備註"<< endl; cin >> remark; p[id].assign(id,name,tel,remark); cout << "\n修改成功!\n" << endl; p[id].print(); return; } else if(tag == 2){ system_map.erase(s); p[id].delate(); cout << "\n刪除成功!" << endl; return; } else if(tag == 3){ return; } else{ cout << "輸入錯誤,請重新輸入" << endl; } } } void command(){ int tag; while(1){ show_sys(); cin >> tag; if(tag == 1){ build(); } else if(tag == 2){ string text; cout << "請輸入姓名:" << endl; cin >> text; search(text); } else if(tag == 3){ return; } else cout << "輸入錯誤,請重新輸入" << endl; } } public: System(int c){ count = c; command(); } }; int main(){ System s(0); return 0; }