C++通讯录管理系统
功能
1、添加联系人
2、显示联系人
3、删除联系人
4、查找联系人
5、修改联系人
6、清空联系人
7、退出通讯录
联系人的信息包括:姓名、性别、年龄、联系方式(电话号码)、家庭住址。
C++代码如下():
#include<iostream>
#include <windows.h>
#include<iomanip>
using namespace std;
#define num 100 //通讯录中的人数
void showmenu1() //目录函数
{
cout << "********************************" << endl;
cout << "****** 欢迎来到通讯录系统 ******" << endl;
cout << "********************************" << endl;
}
void showmenu2()
{
cout << "***************************" << endl;
cout << "****** 1.添加联系人 ******" << endl;
cout << "****** 2.显示联系人 ******" << endl;
cout << "****** 3.删除联系人 ******" << endl;
cout << "****** 4.查找联系人 ******" << endl;
cout << "****** 5.修改联系人 ******" << endl;
cout << "****** 6.清空联系人 ******" << endl;
cout << "****** 7.退出通讯录 ******" << endl;
}
struct person //联系人结构体
{
string name;
string sex; //1-代表男,2-代表女
int age;
string tel;
string addr;
};
struct TXL
{
struct person perarr[num];
int Tsize; //通讯录中当前的人数
};
void Addc(struct TXL* ml) //添加联系人函数
{
if (ml->Tsize < num)
{
string name; //联系人的姓名
cout<<"请输入联系人的姓名:"<<endl;
cin >> name;
ml->perarr[ml->Tsize].name = name;
int sex1; //联系人的性别
cout<<"请输入联系人的性别:(1代表男性,2代表女性)"<<endl;
cin >> sex1;
if (sex1 == 1)
{
ml->perarr[ml->Tsize].sex = "男";
}
else if (sex1 == 2)
{
ml->perarr[ml->Tsize].sex = "女";
}
else
{
cout << "输入错误!" << endl;
ml->perarr[ml->Tsize].sex = "未知";
}
int age1; //联系人的年龄
cout << "请输入联系人的年龄:" << endl;
cin >> age1;
ml->perarr[ml->Tsize].age = age1;
string tel1; //联系人的联系电话
cout << "请输入联系人的联系电话:" << endl;
cin >> tel1;
ml->perarr[ml->Tsize].tel = tel1;
string addr1; //联系人的家庭住址
cout << "请输入联系人的家庭住址:" << endl;
cin >> addr1;
ml->perarr[ml->Tsize].addr = addr1;
ml->Tsize++;
cout<<"添加成功!"<<endl;
system("pause");
system("cls"); //清屏
}
else
{
cout << "通讯录已满!" << endl;
system("pause");
system("cls"); //清屏
}
}
void printper(struct TXL* ml) //显示联系人函数
{
if (ml->Tsize > 0)
{
int dist = 15; //输出各项的间距
cout << std::left << setw(dist) << "姓名" << std::left << setw(dist) << "性别" << std::left << setw(dist) << "年龄" << std::left << setw(dist) << "联系电话:" << std::left << setw(dist) << "家庭地址" << endl;
for (int i = 0; i < ml->Tsize; i++)
{
cout << std::left << setw(dist) << ml->perarr[i].name << std::left << setw(dist) << ml->perarr[i].sex << std::left << setw(dist) << ml->perarr[i].age << std::left << setw(dist) <<ml->perarr[i].tel << std::left << setw(dist) <<ml->perarr[i].addr << endl;
}
system("pause");
system("cls"); //清屏
}
else
{
cout << "通讯录为空" << endl;
system("pause");
system("cls"); //清屏
}
}
int Tfind(struct TXL* ml,string *Tname) //查找联系人函数
{
for (int i = 0; i < ml->Tsize; i++)
{
if (ml->perarr[i].name == *Tname)
{
return i;
}
else
return -1;
}
}
void Tdel(struct TXL* ml, int *ret) //删除联系人函数
{
for (int i = *ret; i < ml->Tsize-1; i++)
{
ml->perarr[i].name = ml->perarr[i + 1].name;
ml->perarr[i].age = ml->perarr[i + 1].age;
ml->perarr[i].addr = ml->perarr[i + 1].addr;
ml->perarr[i].sex = ml->perarr[i + 1].sex;
ml->perarr[i].tel = ml->perarr[i + 1].tel;
}
ml->Tsize--;
cout<<"删除成功!"<<endl;
system("pause");
system("cls"); //清屏
}
int main()
{
int number=1,select=100,ret,dist=15;
TXL ml;
string Tname;
ml.Tsize = 0; //通讯录人数初始化
showmenu1();
system("pause");
system("cls");
while (number)
{
showmenu2();
cin >> select;
switch (select)
{
case 1: //添加联系人
Addc(&ml);
break;
case 2: //显示联系人
printper(&ml);
break;
case 3: //删除联系人
{
cout<<"请输入你要删除的联系人(姓名):"<<endl;
cin >> Tname;
ret=Tfind(&ml,&Tname);
if (ret != -1)
{
Tdel(&ml, &ret);
}
else
cout<<"查无此人!"<<endl;
}
break;
case 4: //查找联系人
{
cout << "请输入你要查找的联系人(姓名):" << endl;
cin >> Tname;
ret = Tfind(&ml, &Tname);
if (ret != -1)
{
cout << std::left << setw(dist) << "姓名" << std::left << setw(dist) << "性别" << std::left << setw(dist) << "年龄" << std::left << setw(dist) << "联系电话:" << std::left << setw(dist) << "家庭地址" << endl;
cout << std::left << setw(dist) << ml.perarr[ret].name << std::left << setw(dist) << ml.perarr[ret].sex << std::left << setw(dist) << ml.perarr[ret].age << std::left << setw(dist) << ml.perarr[ret].tel << std::left << setw(dist) << ml.perarr[ret].addr << endl;
system("pause");
system("cls");
}
else
{
cout << "查无此人!" << endl;
system("pause");
system("cls");
}
}
break;
case 5: //修改联系人
{
cout << "请输入你要修改的联系人(姓名):" << endl;
cin >> Tname;
ret = Tfind(&ml, &Tname);
if (ret != -1)
{
string name; //联系人的姓名
cout << "请输入联系人的姓名:" << endl;
cin >> name;
ml.perarr[ret].name = name;
int sex1; //联系人的性别
cout << "请输入联系人的性别:(1代表男性,2代表女性)" << endl;
cin >> sex1;
if (sex1 == 1)
{
ml.perarr[ret].sex = "男";
}
else if (sex1 == 2)
{
ml.perarr[ret].sex = "女";
}
else
{
cout << "输入错误!" << endl;
ml.perarr[ret].sex = "未知";
}
int age1; //联系人的年龄
cout << "请输入联系人的年龄:" << endl;
cin >> age1;
ml.perarr[ret].age = age1;
string tel1; //联系人的联系电话
cout << "请输入联系人的联系电话:" << endl;
cin >> tel1;
ml.perarr[ret].tel = tel1;
string addr1; //联系人的家庭住址
cout << "请输入联系人的家庭住址:" << endl;
cin >> addr1;
ml.perarr[ret].addr = addr1;
system("pause");
system("cls");
}
else
{
cout << "查无此人!" << endl;
system("pause");
system("cls");
}
}
break;
case 6: //清空联系人
{
ml.Tsize = 0;
cout << "通讯录已清空" << endl;
system("pause");
system("cls");
}
break;
case 7: //退出通讯录
number = 0;
cout<<" 欢迎下次使用!"<<endl;
system("pause");
return 0;
break;
default:
break;
}
}
}
初始界面如下():