黑马程序员通讯录管理系统
#include <iostream>
using namespace std;
//联系人结构体
struct Person{
string m_Name; //姓名
int m_Sex; //性别:1男 2女
int m_age; //年龄
string m_Phone; //电话
string m_Addr; //住址
};
#define MAX 1000
struct Addressboos{
struct Person personArray[MAX];
int m_Size;
};
void showMenu(){
cout<<"*********************************************"<<endl;
cout<<"***** 1、添加联系人 *****"<<endl;
cout<<"***** 2、显示联系人 *****"<<endl;
cout<<"***** 3、删除联系人 *****"<<endl;
cout<<"***** 4、查找联系人 *****"<<endl;
cout<<"***** 5、修改联系人 *****"<<endl;
cout<<"***** 6、清空联系人 *****"<<endl;
cout<<"***** 0、退出通讯录管理系统 *****"<<endl;
cout<<"*********************************************"<<endl;
}
void addPerson(Addressboos *abs){
if(abs->m_Size == MAX){
cout<<"通讯录已满,无法添加!"<<endl;
return;
}
string name;
int sex;
int age;
string phone;
string addr;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入性别:"<<endl;
cout<<"1 --> 男"<<endl;
cout<<"2 --> 女"<<endl;
while(true){
cin>>sex;
if(sex == 1 || sex == 2){
break;
}
cout<<"输入有误,请重新输入"<<endl;
}
cout<<"请输入年龄:"<<endl;
cin>>age;
cout<<"请输入电话号码"<<endl;
cin>>phone;
cout<<"请输入家庭住址"<<endl;
cin>>addr;
abs->personArray[abs->m_Size].m_Name = name;
abs->personArray[abs->m_Size].m_Sex = sex;
abs->personArray[abs->m_Size].m_age = age;
abs->personArray[abs->m_Size].m_Phone = phone;
abs->personArray[abs->m_Size].m_Addr = addr;
abs->m_Size++;
cout<<"添加成功"<<endl;
system("pause");
system("cls");
}
void showPerson(Addressboos *abs){
if(abs->m_Size == 0){
cout<<"当前记录为空"<<endl;
return;
}
for(int i = 0; i < abs->m_Size; i++){
cout<<"姓名:"<<abs->personArray[i].m_Name<<"\t";
cout<<"性别:"<<(abs->personArray[i].m_Sex == 1?"男":"女")<<"\t";
cout<<"年龄:"<<abs->personArray[i].m_age<<"\t";
cout<<"电话:"<<abs->personArray[i].m_Phone<<"\t";
cout<<"地址:"<<abs->personArray[i].m_Addr<<"\t";
cout<<endl;
}
system("pause");
system("cls");
}
int isExist(Addressboos *abs, string name){
for(int i = 0; i < abs->m_Size; i++){
if(abs->personArray[i].m_Name == name){
return i;
}
}
return -1;
}
void deletePerson(Addressboos *abs){
cout<<"请输入您要删除的联系人"<<endl;
string name;
cin>>name;
int res = isExist(abs, name);
if(res != -1){
for(int i = res; i < abs->m_Size; i++){
abs->personArray[i] = abs->personArray[i + 1];
}
abs->m_Size --;
cout<<"删除人员成功"<<endl;
} else{
cout<<"没有找到此人"<<endl;
}
system("pause");
system("cls");
}
void findPerson(Addressboos *abs){
cout<<"请输入您要查找的联系人姓名:"<<endl;
string name;
cin>>name;
int res = isExist(abs, name);
if(res != -1){
cout<<"姓名:"<<abs->personArray[res].m_Name<<"\t";
cout<<"性别:"<<(abs->personArray[res].m_Sex == 1?"男":"女")<<"\t";
cout<<"年龄:"<<abs->personArray[res].m_age<<"\t";
cout<<"电话:"<<abs->personArray[res].m_Phone<<"\t";
cout<<"地址:"<<abs->personArray[res].m_Addr<<"\t";
} else {
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
void modifyPerson(Addressboos *abs){
cout<<"请输入您要修改的联系人:"<<endl;
string name;
cin>>name;
int res = isExist(abs, name);
if(res != -1){
string name;
cout<<"请输入姓名:"<<endl;
cin>>name;
abs->personArray->m_Name = name;
int sex;
cout<<"请输入性别:"<<endl;
cout<<"1 --> 男"<<endl;
cout<<"2 --> 女"<<endl;
while(true){
cin>>sex;
if(sex == 1 || sex == 2){
abs->personArray[res].m_Sex = sex;
break;
}
cout<<"输入有误,请重新输入"<<endl;
}
cout<<"输入年龄:"<<endl;
int age = 0;
cin>>age;
abs->personArray[res].m_age = age;
cout<<"输入电话号码:"<<endl;
string phone;
cin>>phone;
abs->personArray[res].m_Phone = phone;
cout<<"输入家庭住址:"<<endl;
string addr;
cin>>addr;
abs->personArray[res].m_Addr = addr;
cout<<"修改成功"<<endl;
} else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
void cleanPerson(Addressboos *abs){
cout<<"确定清空联系人?"<<endl;
cout<<"1、是"<<endl;
cout<<"2、否"<<endl;
cout<<"请输入1或2:"<<endl;
int num;
while(true){
cin>>num;
if(num == 1) {
abs->m_Size = 0;
cout << "通讯录已空" << endl;
break;
} else if(num == 2){
break;
}
cout<<"输入有误,请重新输入:"<<endl;
}
system("pause");
system("cls");
}
int main() {
int select = 0;
Addressboos abs;
abs.m_Size = 0;
while(true){
showMenu();
cin>>select;
cout<<"123123123"<<select<<endl;
switch (select) {
case 1: //添加联系人
{
addPerson(&abs);
}
break;
case 2: //显示联系人
{
showPerson(&abs);
break;
}
case 3: //删除联系人
{
deletePerson(&abs);
break;
}
case 4: //查找联系人
{
findPerson(&abs);
break;
}
case 5: //修改联系人
{
modifyPerson(&abs);
break;
}
case 6: //清空联系人
{
cleanPerson(&abs);
break;
}
case 0: //退出通讯录管理系统
cout<<"欢迎下次使用"<<endl;
return 0;
default:
break;
}
}
return 0;
}
完整代码,记录。