#include <iostream>
using namespace std;
#include <string>
#define MAX 1000
int main ( )
{
Addressbooks abs;
abs. m_size = 0 ;
int select = 0 ;
while ( 1 ) {
showMenu ( ) ;
cout << "请输入要执行的操作 1 - 6 : " ;
cin >> select;
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;
system ( "pause" ) ;
return 1 ;
default :
cout << "输出错误,请重新输入 0 - 6 : " ;
break ;
}
}
system ( "pause" ) ;
return 0 ;
}
struct Person {
string m_Name;
int m_Sex;
int m_Age;
string m_Phone;
string m_Addr;
} ;
struct Addressbooks {
struct Person personArray[ MAX] ;
int m_size;
} ;
void showMenu ( ) {
cout << "*************************" << endl;
cout << "*\t1.添加联系人\t*" << endl;
cout << "*\t2.显示联系人\t*" << endl;
cout << "*\t3.删除联系人\t*" << endl;
cout << "*\t4.查找联系人\t*" << endl;
cout << "*\t5.修改联系人\t*" << endl;
cout << "*\t6.清空联系人\t*" << endl;
cout << "*\t0.退出通讯录\t*" << endl;
cout << "*************************" << endl;
}
void addPerson ( struct Addressbooks * abs) {
if ( abs- > m_size == MAX) {
cout << "通讯录已满,无法添加!!" << endl;
return ;
}
else {
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs- > personArray[ abs- > m_size] . m_Name = name;
int sex = 0 ;
cout << "请输入性别(1 -> 男 2 ->女):" ;
while ( true ) {
cin >> sex;
if ( sex == 1 || sex == 2 ) {
abs- > personArray[ abs- > m_size] . m_Sex = sex;
break ;
}
cout << "输入有误,请重新输入:" << endl;
}
int age = 0 ;
cout << "请输入年龄:" ;
while ( true ) {
cin >> age;
if ( age > 0 && age < 120 ) {
abs- > personArray[ abs- > m_size] . m_Age = age;
break ;
}
cout << "输入有误,请重新输入:" << endl;
}
string phone;
cout << "请输入联系电话:" ;
cin >> phone;
abs- > personArray[ abs- > m_size] . m_Phone = phone;
string address;
cout << "请输入家庭地址:" ;
cin >> address;
abs- > personArray[ abs- > m_size] . m_Addr = address;
abs- > m_size++ ;
cout << "添加成功" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
}
}
void showPerson ( struct Addressbooks * abs)
{
if ( abs- > m_size == 0 ) {
cout << "当前记录为空!!!" << endl;
}
else {
for ( int i = 0 ; i < abs- > m_size; i++ ) {
cout << "姓名:\t" << abs- > personArray[ i] . m_Name << "\t" ;
cout << "性别:\t" << ( abs- > personArray[ i] . m_Sex == 1 ? "男" : "女" ) << "\t" ;
cout << "年龄:\t" << abs- > personArray[ i] . m_Age << "\t" ;
cout << "电话:\t" << abs- > personArray[ i] . m_Phone << "\t" ;
cout << "地址:\t" << abs- > personArray[ i] . m_Addr << endl;
}
}
system ( "pause" ) ;
system ( "cls" ) ;
}
int isExist ( Addressbooks * 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 ( Addressbooks * abs) {
cout << "请输入要删除的联系人" << endl;
string name;
cin >> name;
int ret = isExist ( abs, name) ;
if ( ret != - 1 ) {
for ( int i = ret; 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 ( Addressbooks * abs) {
cout << "请输入要查找的联系人:" ;
string name;
cin >> name;
int ret = isExist ( abs, name) ;
if ( ret != - 1 ) {
cout << "姓名" << abs- > personArray[ ret] . m_Name << "\t" ;
cout << "性别" << abs- > personArray[ ret] . m_Sex << "\t" ;
cout << "年龄" << abs- > personArray[ ret] . m_Age << "\t" ;
cout << "电话" << abs- > personArray[ ret] . m_Phone << "\t" ;
cout << "地址" << abs- > personArray[ ret] . m_Addr << endl;
}
else {
cout << "查无此人" << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void modifyPerson ( Addressbooks * abs) {
cout << "请输入要修改的联系人:" ;
string name;
cin >> name;
int ret = isExist ( abs, name) ;
if ( ret != - 1 ) {
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs- > personArray[ ret] . m_Name = name;
cout << "请输入性别:" << endl;
cout << "1 ---- 男" << endl;
cout << "2 ---- 女" << endl;
int sex = 0 ;
while ( true ) {
cin >> sex;
if ( sex == 1 || sex == 2 ) {
abs- > personArray[ ret] . m_Sex = sex;
break ;
}
cout << "输入错误,请重新输入性别 1 / 2 :" << endl;
}
cout << "请输入年龄:" ;
int age = 0 ;
cin >> age;
abs- > personArray[ ret] . m_Age = age;
cout << "请输入联系电话:" ;
string phone;
cin >> phone;
abs- > personArray[ ret] . m_Phone = phone;
cout << "请输入家庭住址:" ;
string addr;
cin >> addr;
abs- > personArray[ ret] . m_Addr = addr;
cout << "修改成功!" << endl;
}
else {
cout << "查无此人" << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void cleanPerson ( Addressbooks * abs) {
string flag = "no" ;
while ( flag == "no" ) {
cout << "你真的选择清空联系人吗?" << endl;
cout << "please input yes or no :" ;
cin >> flag;
if ( flag == "yse" ) {
}
else if ( flag == "no" ) {
goto END;
}
else {
"输入错误,请重新输入:" ;
}
}
abs- > m_size = 0 ;
cout << "通讯录已清空" << endl;
END:
system ( "pause" ) ;
system ( "cls" ) ;
}