//封装函数显示该界面
#include <iostream>
#include <string>
#define MAX 1000
using namespace std;
/*添加联系人
设计联系人结构体
设计通讯录结构体
main函数中创建通讯录
封装添加联系人函数
测试添加联系人功能*/
//设计联系人结构体
struct Person{
string Name;
int Sex;// 1 男 2 女
int Age;
string Phone;
string Address;
};
//设计通讯录结构体
struct Addressbook{
struct Person personArray[MAX];//保存的联系人数组
int Size;//记录的联系人个数
};
//添加联系人
void addPerson(Addressbook *abs){
if(abs->Size==MAX){
cout<<"通讯录已满,无法添加"<<endl;
return;
}
else{
//添加具体联系人
//姓名
string name;
cout<<"请输入姓名"<<endl;
cin>>name;
abs->personArray[abs->Size].Name=name;
//性别
cout<<"请输入性别"<<endl;
cout<<"1、男"<<endl;
cout<<"2、女"<<endl;
int sex=0;
while(true){
cin>>sex;
if(sex==1||sex==2){
abs->personArray[abs->Size].Sex=sex;
switch (sex){
case 1:
cout<<"男"<<endl;
break;
case 2:
cout<<"女"<<endl;
break;
}
break;
}
cout<<"输入错误,请重新输入"<<endl;}
//年龄
cout<<"请输入年龄"<<endl;
int age=0;
cin>>age;
abs->personArray[abs->Size].Age=age;
//联系电话
cout<<"请输入联系电话"<<endl;
string phone;
cin>>phone;
abs->personArray[abs->Size].Phone=phone;
//家庭住址
cout<<"请输入家庭住址"<<endl;
string address;
cin>>address;
abs->personArray[abs->Size].Address=address;
//更新通讯录人数
abs->Size++;
cout<<"添加成功"<<endl;
system("pause");//按任意键继续
system("cls");//进行清屏的操作
}
}
//显示联系人
void showPerson(Addressbook *abs){
//判断通讯录中人数是否为零
if(abs->Size==0){
cout<<"当前记录为空"<<endl;
}
else{
for(int i=0;i<abs->Size;i++){
cout<<"姓名"<<abs->personArray[i].Name<<"/t";
cout<<"性别"<<(abs->personArray[i].Sex==1?"男":"女")<<"/t";//<<运算的优先级比三目运算符高,因此要加括号
cout<<"年龄"<<abs->personArray[i].Age<<"/t";
cout<<"电话"<<abs->personArray[i].Phone<<"/t";
cout<<"住址"<<abs->personArray[i].Address<<"/t"<<endl;
}
}
system("pause");
system("cls");
}
//删除联系人
//检测联系人是否存在,若存在,显示下标位置,不存在显示-1
int Exist(Addressbook *abs,string name){
for(int i=0;i<abs->Size;i++){
if(abs->personArray[i].Name==name){
return i;
}
}
return -1;
}
//封装删除联系人函数
void deleteperson(Addressbook *abs){
cout<<"请输入您要删除的联系人"<<endl;
string name;
cin>>name;
int rest=Exist(abs,name);//上面的*只是表明abs为指针,实际上abs已经是指针了 *的作用 1.声明指针 2.解引用
if(rest!=-1){
for(int i=rest;i<abs->Size;i++){
abs->personArray[i]=abs->personArray[i+1];//数据前移
}
abs->Size--;
cout<<"删除成功"<<endl;
}
else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
//查找联系人
void findPerson(Addressbook *abs){
cout<<"请输入您要查找的的联系人"<<endl;
string name;
cin>>name;
int rest=Exist(abs,name);
if(rest!=-1){
cout<<"姓名 "<<abs->personArray[rest].Name<<"/t";
cout<<"性别 "<<abs->personArray[rest].Sex<<"/t";
cout<<"年龄 "<<abs->personArray[rest].Age<<"/t";
cout<<"电话 "<<abs->personArray[rest].Phone<<"/t";
cout<<"住址 "<<abs->personArray[rest].Address<<"/t"<<endl;
}//找到联系人
else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
//修改联系人
void modifyPerson(Addressbook *abs){
cout<<"请输入您要修改的的联系人"<<endl;
string name;
cin>>name;
int rest=Exist(abs,name);
if(rest!=-1){//找到指定联系人
cout<<"您修改使用的项目有几个"<<endl;
int modify;
cin>>modify;
if(modify<=5 && modify>0){
cout<<"您想修改的是"<<endl;
cout<<"1、姓名"<<endl;
cout<<"2、性别"<<endl;
cout<<"3、年龄"<<endl;
cout<<"4、电话"<<endl;
cout<<"5、住址"<<endl;
for(int i=0;i<modify;i++){
cout<<"请输入您要修改的项目的编号"<<endl;
int select;
cin>>select;
switch(select){
case 1:{
string rename;
cout<<"请输入姓名"<<endl;
cin>>rename;
abs->personArray[rest].Name=rename;
break;}
case 2:{
cout<<"请输入性别"<<endl;
cout<<"1、男"<<endl;
cout<<"2、女"<<endl;
while(true){
int resex;
cin>>resex;
if(resex==1||resex==2){
if(resex==1){
cout<<"男"<<endl;}
else{
cout<<"女"<<endl;
}
abs->personArray[rest].Sex=resex;
break;}
cout<<"输入错误,请重新输入"<<endl;
continue;}
break;}
case 3:{
cout<<"请输入年龄"<<endl;
int reage=0;
cin>>reage;
abs->personArray[rest].Age=reage;
break;}
case 4:{
cout<<"请输入联系电话"<<endl;
string rephone;
cin>>rephone;
abs->personArray[rest].Phone=rephone;
break;}
case 5:{
cout<<"请输入家庭住址"<<endl;
string readdress;
cin>>readdress;
abs->personArray[rest].Address=readdress;
break;}}}}
else{
cout<<"数据错误"<<endl;
}}
else{
cout<<"查无此人"<<endl;
}
system("pause");
system("cls");
}
//清空联系人
//封装清空联系人函数
void cleanPerson(Addressbook *abs){
cout<<"您是否真的要清空联系人"<<endl;
cout<<"1、清空"<<endl;
cout<<"2、不清空"<<endl;
cout<<"请输入您要选择的数字"<<endl;
int younum;
cin>>younum;
switch(younum){
case 1:{
abs->Size=0;//数量置为零
cout<<"通讯录已清空"<<endl;
break;}
case 2:{
break;}
}
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<<"***** 0、退出通讯录 *****"<<endl;
cout<<"************************"<<endl;
}
//mian函数中做一个调用
int main(){
system("chcp 65001");
//创建通讯录的结构体变量
Addressbook abs;
//初始化通讯录中当前的人员个数
abs.Size=0;
int select=0;//创建用户选择输入的变量
while(true){
//菜单调用
showMenu();
//菜单调用
cout<<"你想要使用的项目是"<<endl;
cin>>select;
switch (select){
case 1://添加联系人
addPerson(&abs);
break;
case 2://显示联系人
showPerson(&abs);
break;
case 3://删除联系人
/*{ cout<<"请输入删除的联系人姓名"<<endl;
string name;
cin>>name;
if(Exist(&abs,name)==-1){
cout<<"查无此人"<<endl;
}
else{
cout<<"找到此人"<<endl;
}
}//switch语句中若break上的代码很多,则可以加{},写成代码段*/
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 0;
break;
default:
break;
}
}
system("pause");
return 0;
}#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: