#include<iostream>
#include<string>
using namespace std;
#define max 200 //表示这个通讯录管理系统最多存储200个联系人
struct lxr //创建联系人数据类型
{
string name; //姓名
int age; //年龄
int haoma; //电话号码
string xb; //性别
};
void show() //界面展示,让人知道管理界面有哪些功能,并根据需要输入相应数字
{
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 txl(lxr *s,int wz) //保存通讯录存储联系人的相关属性,这里有姓名、年龄等
{
cout << "请输入要存储联系人的姓名:" ;
cin >> s[wz].name;
cout << "请输入要存储联系人的年龄:" ;
cin >> s[wz].age;
cout << "请输入要存储联系人的号码:";
cin >> s[wz].haoma;
cout << "请输入要存储联系人的性别:" ;
cin >> s[wz].xb;
while (s[wz].xb != "男" && s[wz].xb != "女") { //性别只能为男/女,当输入其他数据时会提醒出错
cout << "联系人性别输入错误,请输入男或女,请重新输入:";
cin >> s[wz].xb;
}
cout << "保存成功!" << endl;
}
void xianshi(lxr *s,int wz) //显示通讯录已存储联系人的信息
{
if (wz == 0) {
cout << "没有保存任何联系人!" << endl;
}
else {
cout << "已保存联系人信息如下:" << endl;
for (int i = 0; i < wz; i++) //按照存储的先后顺序来展示联系人信息
{
cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
<< "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
}
}
}
void shanchu(lxr * s,int wz) //删除通讯录联系人的操作
{
int x = 0;
if (wz == 0) {
cout << "没有保存任何联系人,无法删除!" << endl;
}
else {
for (int i = 0; i < wz; i++) //按存储的先后顺序来排序,以相应序列号来删除对应联系人
{
cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
<< "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
}
cout << "请输入你想删除联系人号数:";
cin >> x;
for (int i = x - 1; i < wz - 1; i++) //删除第i个人 = 让第i号联系人的后续所有联系人向前进一个存储单元
{
s[i] = s[i + 1];
}
cout << "删除成功!" << endl;
}
}
void chazhao(lxr* s, int wz) //根据姓名查找相应联系人,并展示其相应信息
{
int panduan = 0;//判断 想要查看的姓名是否存在
string sname;
if (wz == 0) {
cout << "没有保存任何联系人,无法查找!" << endl;
}
else {
FA:
cout << "请输入你想查找联系人姓名:";
cin >> sname;
for (int i = 0; i < wz; i++)
{
if (sname == s[i].name) {
cout << "已找到相应联系人信息如下:" << endl;
cout << "该联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
<< "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
panduan = 1;
}
}
if (panduan == 0) {
cout << "该联系人不存在,请重新输入想要查询联系人的姓名:" << endl;
goto FA;
}
}
}
void xiugai(lxr* s, int wz) //如果发现存储联系人的某些信息出错了,可以修改
{
int haoshu = 0;
if (wz == 0) {
cout << "没有保存任何联系人,无法修改!" << endl;
}
else {
cout << "已保存联系人信息如下:" << endl;
for (int i = 0; i < wz; i++)
{
cout << "第" << i + 1 << "号联系人姓名:" << s[i].name << "\t年龄:" << s[i].age
<< "\t 号码:" << s[i].haoma << "\t 性别:" << s[i].xb << endl;
}
cout << "请输入你想要修改联系人信息的号数:";
DA:
cin >> haoshu;
if (haoshu >= wz || haoshu <= 0) {
cout << "该联系人不存在!请重新输入想要修改联系人信息的号数:";
goto DA;
}
else {
cout << "你想将其姓名修改为:"; cin >> s[haoshu - 1].name;
cout << "你想将其年龄修改为:"; cin >> s[haoshu - 1].age;
cout << "你想将其号码修改为:"; cin >> s[haoshu - 1].haoma;
cout << "你想将其性别修改为:"; cin >> s[haoshu - 1].xb;
cout << "修改成功!" << endl;
}
}
}
void qingkong(lxr* s, int wz)//清空通讯录所有联系人信息
{
cout << "删除成功!" << endl;
}
int main() //主函数
{
bool wdnmd = 1; //后续while函数判断条件,让while函数一直运行下去,直到使用者按0退出通讯录管理系统
int select = 0; // 使用者看到通讯录有哪些功能后,输入select的值来使用相应功能,这里赋select初值为0
static lxr s[max]; //定义一个可以存储max=200个人的通讯录管理系统
int wz = 0;//wz=存储人数-1;序列号
while (wdnmd) {
SA:
show();
cout << "请输入你的选择:";
cin >> select;
switch (select) {
case 1: txl(s, wz); wz++; break;
case 2: xianshi(s, wz); break;
case 3: shanchu(s, wz); wz--; break;
case 4: chazhao(s, wz); break;
case 5: xiugai(s, wz); break;
case 6: qingkong(s, wz); wz = 0; break;
case 0: goto XA;
default:cout << "输入的数字不对,请重新输入!" << endl; goto SA;
}
system("pause");
system("cls");//清屏操作
}
XA:
cout << "感谢使用,下次再见!" << endl;
system("pause");
}
电话联系人管理界面
最新推荐文章于 2024-06-08 20:18:52 发布