#include <stdio.h>
#include <iostream>
#define max 1000//最大人数
using namespace std;
void cd();
struct lxr {//联系人的结构体
string xm;//姓名
int nl; //年龄
int xb; //性别1男2女
string dh; //电话号码
string dz;//家庭地址
};
struct txl { //通讯录结构图
struct lxr l[max]; //联系人数组
int 人数;
};
void qp();//
int cz(struct txl* mm, string* z);
void sc(struct txl* mm, int k);
int main(void)
{
int jk = 0;
int xb = 0;
int zn;
string zz;
struct txl mm;
mm.人数 = 0;
int qq = 0;
while (1) {
qp();
cd(); //用户显示界面
//用户输入
cin >> qq;//获得用户输入
switch (qq)//选择功能
{
case 1://添加联系人
if (mm.人数 == max) {
cout << "通讯录人数已满无法输入" << endl;
break;
}
else {
cout << "请输入姓名:" << endl;
string xm;
cin >> xm;
mm.l[mm.人数].xm = xm;
cout << "请输入性别:" << endl;
cout << "1----男" << endl;
cout << "2----女" << endl;
int xb = 0;
while(1) {
cin >> xb;
if (xb == 1 || xb == 2) {
mm.l[mm.人数].xb = xb;
break;
}
cout << "输入格式错误,请重新输入" << endl;
}
cout << "请输入年龄:" << endl;
int nl = 0;
cin >> nl;
mm.l[mm.人数].nl = nl;
cout << "请输入电话号码:" << endl;
string dh;
cin >> dh;
mm.l[mm.人数].dh = dh;
cout << "请输入所住地址:" << endl;
string dz;
cin >> dz;
mm.l[mm.人数].dz = dz;
++mm.人数;
cout << "保存成功!!!" << endl;
system("pause");
break;
}
case 2://显示联系人
for (int i = 0; i < mm.人数; i++)
{
cout <<"姓名:" << mm.l[i].xm << endl;
cout <<"性别" << mm.l[i].xb << endl;
cout <<"年龄:" << mm.l[i].nl << endl;
cout <<"电话号" << mm.l[i].dh << endl;
cout <<"地址" << mm.l[i].dz << endl;
}
system("pause");
break;
case 3://删除联系人
cout << "请输入联系人姓名:" << endl;
cin >> zz;
zn= cz(&mm, &zz);
if (zn==-1) {
cout << "查无此人" << endl;
system("pause");
break;
}
else {
cout << "恭喜你找到了" << endl;
cout << "确认删除输入:1" << endl;
cin >> qq;
}
if (qq!=1) {
break;
}
else {
sc(&mm, zn);
}
//sc(&struct txl mm,)
break;
case 4://查找联系人
cout << "请输入姓名" << endl;
cin >> zz;
jk = cz(&mm, &zz);
if (jk != -1) {
cout << "姓名:" << mm.l[jk].xm << endl;
cout << "性别" << mm.l[jk].xb << endl;
cout << "年龄:" << mm.l[jk].nl << endl;
cout << "电话号" << mm.l[jk].dh << endl;
cout << "地址" << mm.l[jk].dz << endl;
system("pause");
}
else {
cout << "查无此人" << endl;
system("pause");
break;
}
break;
case 5://修改联系人
/*int jk = 0;*/
cout << "请输入你要修改的联系人的姓名:" << endl;
cin >> zz;
jk = cz(&mm, &zz);
if (jk != -1) {
cout << "请输入姓名:" << endl;
string xm;
cin >> xm;
mm.l[jk].xm = xm;
cout << "请输入性别:" << endl;
cout << "1----男" << endl;
cout << "2----女" << endl;
//int xb = 0;
while (1) {
cin >> xb;
if (xb == 1 || xb == 2) {
mm.l[jk].xb = xb;
break;
}
cout << "输入格式错误,请重新输入" << endl;
}
cout << "请输入年龄:" << endl;
int nl = 0;
cin >> nl;
mm.l[jk].nl = nl;
cout << "请输入电话号码:" << endl;
string dh;
cin >> dh;
mm.l[jk].dh = dh;
cout << "请输入所住地址:" << endl;
string dz;
cin >> dz;
mm.l[jk].dz = dz;
//++mm.人数;
cout << "修改成功!!!" << endl;
system("pause");
}
else {
cout << "查无此人" << endl;
system("pause");
break;
}
break;
case 6://清空联系人
cout << "确认清空" << endl;
cout << "确认:1" << endl;
cout << "退出:2" << endl;
cin >> xb;
if (xb == 1) {
txl md;
mm = md;
cout << "清空成功" << endl;
system("pause");
break;
}
else if (xb == 2) {
break;
}
cout << "你没有输入正确的数字以为您自动退出" << endl;
system("pause");
break;
case 0://退出
cout << "期待您的下次使用" << endl;
system("pause");//暂停或点击任意键继续
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}
void cd() {
cout << " "<< endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
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 qp() {
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
}
int cz(struct txl* mm, string* z) {
for (int i = 0; i < mm->人数; i++) {
if (*z == mm->l[i].xm) {
//system("pause");
return i;
}
}
return -1;
}
void sc(struct txl* mm, int k) {
//k += 1;
for (int ak = k; ak < mm->人数; ak++)
{
mm->l[ak] = mm->l[ak+1];
}
mm->人数--;
cout << "删除完毕" << endl;
system("pause");
}