功能介绍
用C++设计一个程序,能够提供以下功能:
1.录入联系人的基本信息。包括姓名、性别、年龄、电话号和地址。
2.展示所有已录入联系人的基本信息。以姓名、性别、年龄、电话号和地址的方式按列表展示。
3.删除指定的联系人。通过姓名查询并删除。
4.查找指定的联系人。通过姓名查找。
5.修改联系人信息。可对其进行单一修改,也可以进行多修改。
6.清空联系人。
7.退出通讯录管理系统。
●案例
1.录入5个联系人的信息:
①张三 男 19 18945761432 山西省大同市
②李四 男 23 19045435721 吉林省沈阳市
③王五 女 21 16423763429 湖南省长沙市
④赵六 女 32 17781435240 河南省洛阳市
⑤孙七 男 29 18247190826 内蒙古包头市
2.展示该五个联系人的信息。
3.修改联系人信息,对王五的地址进行单一修改,修改为云南省昆明市。(若进行其他修改,按照提示指引修改即可)
4.查找指定联系人王五,查看其修改的信息是否同步。
5.因为张三的信息存在错误,我们用多修改的方式对其信息进行修改。(张三 男 34 18247189868 陕西省西安市)
6.由于孙七的信息录入错误,我们需要将他的信息全部删除。
7.查看此时所有的联系人信息。
8.清空所有联系人并且查看。
9.退出通讯录管理系统。
●代码展示
#include <iostream> #include <string> #define maxsize 100 //通讯录人数 using namespace std; struct person { string name; //姓名 string sex; //性别 int age; //年龄 string number; //电话号 string address; //地址 }; typedef struct{ struct person data[maxsize]; int size; }addressbook; void addperson(addressbook* ab) { cout << "————————————————————" << endl; if (ab->size == maxsize) { cout << "<<通讯录已满>>" << endl; } else { cout << "请输入姓名:" ; string name;cin >> name; ab->data[ab->size].name = name; cout << "请输入性别:" ; cout << "男——1" <<" " << "女——2" <<":"; int sex;cin >> sex; if (sex == 1) { ab->data[ab->size].sex = "男"; } else if (sex == 2) { ab->data[ab->size].sex = "女"; } cout << "请输入年龄:" ; int age;cin >> age; ab->data[ab->size].age = age; cout << "请输入电话:" ; string number;cin >> number; ab->data[ab->size].number = number; cout << "请输入家庭地址:" ; string address;cin >> address; ab->data[ab->size].address = address; ab->size++; } cout << "————————————————————" << endl; cout << "<<添加成功>>" << endl; system("pause"); system("cls"); } void showperson(addressbook* ab) { if (ab->size == 0) { cout << "<<当前数据为空>>" << endl; } else { for (int i = 0; i < ab->size; i++) { cout << "———————————————————————————————————" << endl; cout <<"| " << "姓名:" << ab->data[i].name << " " << "性别:" << ab->data[i].sex<<" " << "年龄:" << ab->data[i].age<<" " << "电话:" << ab->data[i].number<<" " << "地址:" << ab->data[i].address << " |" << endl; } cout << "———————————————————————————————————" << endl; } system("pause"); system("cls"); }int isexist(addressbook* ab, string name) { for (int k = 0; k < ab->size; k++) { if (ab->data[k].name == name) return k; } return -1; } void deleteperson(addressbook* ab) { cout << "————————————————————" << endl; cout << "请输入您要删除的联系人:"; string name;cin >> name; if (isexist(ab, name) == -1) { cout << "<<没有查找到此人>>" << endl; } else { cout << "<<找到此人>>" << endl; int ret = isexist(ab, name); for (int l = ret; l < ab->size; l++) { ab->data[l].name = ab->data[l + 1].name; ab->data[l].sex = ab->data[l + 1].sex; ab->data[l].age = ab->data[l + 1].age; ab->data[l].number = ab->data[l + 1].number; ab->data[l].address = ab->data[l + 1].address; } ab->size--; cout << "<<已删除此人信息>>" << endl; } cout << "————————————————————" << endl; system("pause"); system("cls"); } void searchperson(addressbook* ab) { cout << "请输入您要查找的联系人:"; string name;cin >> name; if (isexist(ab, name) == -1) { cout << "<<没有查找到此人>>" << endl; } else { int ret = isexist(ab, name); cout << "———————————————————————————————————" << endl; cout <<"| " << "姓名:" << ab->data[ret].name << " " << "性别:" << ab->data[ret].sex<<" " << "年龄:" << ab->data[ret].age<<" " << "电话:" << ab->data[ret].number<<" " << "地址:" << ab->data[ret].address <<" |" << endl; cout << "———————————————————————————————————" << endl; } system("pause"); system("cls"); } void singlealterperson(int ret,addressbook* ab) { string name; string sex; int age; string number; string address; cout << "————————————————————" << endl; cout << "姓名-1" << "性别-2" << "年龄-3" << "电话-4" << "地址-5" << ":"; int select; cin >> select; switch (select) { case 1: cout << "请输入要修改的姓名:"; cin >> name; ab->data[ret].name = name; break; case 2: cout << "请输入要修改的性别:"; cin >> sex; ab->data[ret].sex = sex; break; case 3: cout << "请输入要修改的年龄:"; cin >> age; ab->data[ret].age = age; break; case 4: cout << "请输入要修改的号码:"; cin >> number; ab->data[ret].number = number; break; case 5: cout << "请输入要修改的地址:"; cin >> address; ab->data[ret].address = address; break; } cout << "————————————————————" << endl; } void mostalterperson(int ret,addressbook* ab) { string name; string sex; int age; string number; string address; cout << "————————————————————" << endl; cout << "请输入姓名:"; cin >> name; ab->data[ret].name = name; cout << "请输入性别:"; cin >> sex; ab->data[ret].sex = sex; cout << "请输入年龄:"; cin >> age; ab->data[ret].age = age; cout << "请输入电话:"; cin >> number; ab->data[ret].number = number; cout << "请输入地址:"; cin >> address; ab->data[ret].address = address; cout << "————————————————————" << endl; } void alterperson(addressbook* ab) { cout << "请输入您要修改的联系人:"; string name;cin >> name; if (isexist(ab, name) == -1){ cout << "<<此人不存在>>" << endl; } else { cout << "<<此人存在>>" << endl; int ret = isexist(ab,name); cout << "单一修改-0" << "多数修改-1" << ":"; int n; cin >> n; if (n == 0) { singlealterperson(ret,ab); } else { mostalterperson(ret,ab); } cout << "<<信息修改成功>>" << endl; } system("pause"); system("cls"); } void emptyperson(addressbook* ab) { ab->size = 0; cout << "<<通讯录已清空>>" << endl; system("pause"); system("cls"); } void showmenu() { cout << "***********************" << endl; cout << "*****1:添加联系人******" << endl; cout << "*****2:显示联系人******" << endl; cout << "*****3:删除联系人******" << endl; cout << "*****4:查找联系人******" << endl; cout << "*****5:修改联系人******" << endl; cout << "*****6:清空联系人******" << endl; cout << "*****7:退出通讯录******" << endl; cout << "***********************" << endl; } int text() { addressbook AB; AB.size = 0; while (1) { showmenu(); int n; cin >> n; switch (n) { case 1: addperson(&AB); break; case 2: showperson(&AB); break; case 3: deleteperson(&AB); break; case 4: searchperson(&AB); break; case 5: alterperson(&AB); break; case 6: emptyperson(&AB); break; case 7: cout << "<<退出通讯录>>" << endl; return 0; break; } } } int main() { text(); }
●结果展示
1.
2.
3.
4.
5.
6.
7.
8.
9.