根据所学的,用类写的通讯录系统 (包括联系人姓名,电话,QQ,电子邮箱,家庭住址)
可进行的操作有增加,删除,修改,查询联系人
在此系统中,已存联系人10人,故可存储的联系人数量必大于10
#include#include #include using namespace std; //头 void test01() { cout << "您可进行以下操作:" << endl; cout << "1.增加联系人" << endl; cout << "2.删除联系人" << endl; cout << "3.修改联系人" << endl; cout << "4.查询联系人" << endl; cout << "********************" << endl; cout << endl; } //person类 class person { friend istream& operator>>(istream& cin, person& p); friend ostream& operator<<(ostream& cout, person& p); friend class person_list; private: string name; string phone; string QQ; string email; string home; public: person(); person(string m_name, string m_phone, string m_QQ, string m_email, string m_home) { name = m_name; phone = m_phone; QQ = m_QQ; email = m_email; home = m_home; } }; //person构造函数 person::person() { name = "0"; phone = "0"; QQ = "0"; email = "0"; home = "0"; } //对象数组 //重载运算符 istream& operator>>(istream& cin, person& p) { cout << "姓名:"; cin >> p.name; cout << "电话号码:"; cin >> p.phone; cout << "QQ号:"; cin >> p.QQ; cout << "邮箱:"; cin >> p.email; cout << "籍贯:"; cin >> p.home; return cin; } ostream& operator<<(ostream& cout, person& p) { cout << setw(10) << left << p.name << setw(10) << left << p.phone << setw(10) << left << p.QQ << setw(12) << left << p.email << p.home; return cout; } //person_list 类 class person_list { public: int n; person* list; person_list(); ~person_list(); person add(person& p); int del(int& a); void gai(person& p); void find(person& p); }; person_list::person_list() { cout << "请输入通讯录可存储总人数:" << endl; cin >> n; cout << endl; cout << "通讯录已有人员如下:" << endl; cout << endl; list = new person[n] { person("熊二","11111111","12345678","123@qq.com","狗熊岭"), person("喜羊羊","22222222","23456789","234@qq.com","青青草原"), person("米奇","33333333","34567891","345@qq.com","妙妙屋"), person("光头强","44444444","45678901","456@qq.com","狗熊岭"), person("村长","55555555","56789012","567@qq.com","羊村"), person("灰太狼","66666666","67890123","678@qq.com","狼堡"), person("黑猫警长","77777777","78901234","789@qq.com","办公室"), person("花园宝宝","88888888","89012345","890@qq.com","地下室"), person("海绵宝宝","99999999","99012345","908@qq.com","菠萝堡"), person("福尔摩斯","00000000","08987443","098@qq.com","贝克街"), }; } person_list::~person_list() { delete[]list; } //增加联系人 person person_list::add(person& p)//增加联系人 { cin >> p; return p; } //删除联系人 int person_list::del(int& aa)//删除联系人 { int y; string c_xinxi; cout << "请输入你要删除联系人的信息(姓名,电话,QQ):" << endl; cout << "1.姓名 2.电话 3.QQ:" << endl; cin >> y; switch (y) { case 1:cout << "你选择姓名,请输入姓名:"; cin >> c_xinxi; for (int i = 0; i < n; i++) { if (list[i].name == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 2:cout << "你选择电话,请输入电话:"; cin >> c_xinxi; for (int i = 0; i < n; i++) { if (list[i].phone == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 3:cout << "你选择QQ,请输入QQ:"; cin >> c_xinxi; for (int i = 0; i < n; i++) { if (list[i].QQ == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; } return aa; } //修改联系人 void person_list::gai(person& p1)//修改联系人 { int y; int aa; aa = 0; string c_xinxi; cout << "请输入你要修改联系人的信息(姓名,电话,QQ):" << endl; cout << "1.姓名 2.电话 3.QQ:" << endl; cin >> y; switch (y) { case 1:cout << "你选择姓名,请输入姓名:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].name == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 2:cout << "你选择电话,请输入电话:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].phone == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 3:cout << "你选择QQ,请输入QQ:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].QQ == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; } cout << "请输入修改后的联系人信息:" << endl; cin >> p1; list[aa] = p1; } //查询联系人 void person_list::find(person& p2)//查询联系人 { int y; int aa; string c_xinxi; cout << "请输入你要查询联系人的信息(姓名,电话,QQ):" << endl; cout << "1.姓名 2.电话 3.QQ:" << endl; cin >> y; switch (y) { case 1:cout << "你选择姓名,请输入姓名:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].name == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 2:cout << "你选择电话,请输入电话:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].phone == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; case 3:cout << "你选择QQ,请输入QQ:"; cin >> c_xinxi; for (int i = 0; i <= n; i++) { if (list[i].QQ == c_xinxi) { aa = i; cout << "此联系人所有信息如下:" << endl; cout << list[i] << endl; } }break; } } void test03() { int x; int num = 0; int total = 10; person_list l; person p1; cout << setw(10) << left << "姓名" << setw(10) << left << "电话"; cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl; for (int i = 0; i <= 9; i++) { cout << l.list[i] << endl; } cout << endl; cout << "请输入你要进行的操作的序号:"; while (cin >> x) { switch (x) { case 1:num++; total += 1; if (total > l.n) cout << "通讯录已满" << endl; else { cout << "请输入增加联系人的信息:" << endl; l.add(p1); cout << "增加后的联系人列表为:" << endl; cout << setw(10) << left << "姓名" << setw(10) << left << "电话"; cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl; for (int i = 0; i < total; i++) { l.list[total - 1] = p1;//增加联系人 cout << l.list[i] << endl;//输出增加后的联系人列表 } } break; case 2:cout << "请输入你要删除人的信息:" << endl; int aa; aa = 0; l.del(aa); cout << "确定删除该联系人么?(确定请输入Y,取消请输入N)" << endl; char x; cin >> x; if (x == 'Y') { num = num - 1; total -= 1; for (int i = aa; i < l.n; i++) { if (i < total) l.list[i] = l.list[i + 1]; } cout << "删除后的联系人列表为:" << endl; cout << setw(10) << left << "姓名" << setw(10) << left << "电话"; cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl; for (int i = 0; i < 10 + num; i++) { cout << l.list[i] << endl; } } else if (x == 'N')cout << "请重新输入你要进行的操作:" << endl; break; case 3:cout << "请输入你要修改人的信息:" << endl; l.gai(p1); cout << "修改后的联系人列表为:" << endl; cout << setw(10) << left << "姓名" << setw(10) << left << "电话"; cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl; for (int i = 0; i < 10 + num; i++) { cout << l.list[i] << endl; } break; case 4:cout << "请输入你要查询人的信息:" << endl; l.find(p1); break; default:cout << "输入错误,请重新输入:" << endl; break; } } } int main() { cout << endl; cout << "欢迎使用通讯录管理系统" << endl; cout << "**********************" << endl; test01(); test03(); return 0; }



