实现功能
1.查找联系人
2.添加联系人
3.删除联系人
4.显示联系人
5.清空联系人
6.修改联系人
0.退出通讯录
代码
#define max 1000 //定义通讯录最大存储人数
struct contact //联系人结构体
{
string c_name;
int c_number;
};
struct addressbook //通讯录结构体
{
struct contact contactArray[max];
int m_size=0; //记录已有联系人个数
};
//菜单显示功能
void showmenu()
{
cout << "菜单:" << endl;
cout << "\t" << "1.查找联系人" << endl;
cout << "\t" << "2.添加联系人" << endl;
cout << "\t" << "3.删除联系人" << endl;
cout << "\t" << "4.显示联系人" << endl;
cout << "\t" << "5.清空联系人" << endl;
cout << "\t" << "6.修改联系人" << endl;
cout << "\t" << "0.退出通讯录" << endl;
}
void addcontact(struct addressbook *add)//添加联系人
{
if (add->m_size == max) //判断通讯录是否已满
{
cout << "通讯录已满" << endl;
return;
}
else
{
cout << "请输入姓名" << endl;
cin >> add->contactArray[add->m_size].c_name;
cout << "请输入号码" << endl;
cin >> add->contactArray[add->m_size].c_number;
add->m_size++;
cout << "添加完成" << "\t" << "已有" << add->m_size << "个联系人" << endl;
}
system("pause");
system("cls"); //清屏操作
}
void showcontact(struct addressbook* add)//显示联系人
{
if (add->m_size != 0) //判断通讯录里是否已经有联系人了
{
for (int i = 0, j = 1; i < add->m_size; i++, j++)
{
cout << j << "\t" << add->contactArray[i].c_name << "\t" << add->contactArray[i].c_number << endl;
}
}
else
{
cout<< "\t" << "暂无联系人,请添加!" << endl;
return;
}
system("pause");
system("cls");
}
int isExist(addressbook* add,string name) //检测联系人是否存在
{
for (int i=0;i<add->m_size; i++)
{
if (add->contactArray[i].c_name == name)
{
return i; //找到返回该联系人的编号
}
}
return -1; //如果找不到返回-1
}
void searchcontact(addressbook* add, int i)//查找联系人
{
if (i != -1) //判断是否联系人存在
{
cout << "姓名:" << add->contactArray[i].c_name << "\t" << "联系电话" << add->contactArray[i].c_number << endl;
}
else
{
cout << "联系人不存在" << endl;
}
system("pause");
system("cls");
}
void altercontact(addressbook* add,int i)//修改联系人
{
int num;
if (i != -1)
{
cout << "请输入修改后的号码" << endl;
cin >> num;
add->contactArray[i].c_number = num;
}
else
cout << "联系人不存在" << endl;
system("pause");
system("cls");
}
void deletecontact(addressbook* add,int j)//删除联系人
{
if (j != -1)
{
//数据前移
for (j; j < add->m_size; j++)
{
add->contactArray[j] = add->contactArray[j + 1];
}
add->m_size--;
cout << "已删除!" << endl;
}
else
{
cout << "没有此联系人" << endl;
}
}
void emptycontact(addressbook* add)//清空联系人
{
if (add->m_size != 0)
{
add->m_size = 0;
}
cout << "已清空" << endl;
system("pause");
system("cls");
}
int main()
{
//创建通讯录结构体
addressbook add;
int i,j,num;
string name;
while (1)
{
showmenu();
cin >> i;
switch (i)
{
case 1://查找联系人
cout << "请输入联系人姓名:" << endl;
cin >> name;
j=isExist(&add,name);
searchcontact(&add, j);
break;
case 2://添加联系人
addcontact(&add);//利用地址传递 可以修饰实参
break;
case 3://删除联系人
cout << "请输入联系人姓名:" << endl;
cin >> name;
j = isExist(&add, name);
deletecontact(&add, j);
break;
case 4://显示联系人
showcontact(&add);
break;
case 5://清空联系人
emptycontact(&add);
break;
case 6://修改联系人
cout << "请输入修改联系人的姓名" << endl;
cin >> name;
j = isExist(&add, name);
//cout << "请输入修改后的号码" << endl;
//cin >> num;
altercontact(&add,j);
break;
case 0:
cout << "\t" << "再见!" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}