-
#include<iostream> using namespace std; struct people { string sex; string name; int number; }peo[1000]; void mein() { cout << " \t\t---------------------------------------------------------------------"<< endl; cout << " \t\t|\t************************通讯录*************************\t|"<< endl; cout << " \t\t|\t*******************************************************\t|"<< endl; cout << " \t\t|\t********************1.增加联系人***********************\t|" << endl; cout << " \t\t|\t********************2.删除联系人***********************\t|" << endl; cout << " \t\t|\t********************3.查找联系人***********************\t|" << endl; cout << " \t\t|\t********************4.修改联系人***********************\t|" << endl; cout << " \t\t|\t********************5.清空联系人***********************\t|" << endl; cout << " \t\t|\t********************6.查看联系人***********************\t|" << endl; cout << " \t\t|\t********************7.退 出***********************\t|"<< endl; cout << " \t\t|\t*******************************************************\t|"<< endl; cout << " \t\t---------------------------------------------------------------------"<< endl; } void add(people* peo) { int flag = 1; int i = 0; if (i == 1000) { cout << "通讯录已满" << endl; } else { while (flag) { while (peo[i].number == 0) { cout << "请输入要添加的性别:" << endl; cin >> peo[i].sex; cout << "请输入要添加的姓名:" << endl; cin >> peo[i].name; cout << "请输入要添加的号码:" << endl; cin >> peo[i].number; if (peo[i].number != NULL) { cout << "添加成功" << endl; } else { cout << "添加失败" << endl; } flag = 0; break; } i++; } } } void deleted(people* peo) { int flag=0; int i = 0; string DeleteName; cout << "请输入你要删除的人的姓名" << endl; cin >> DeleteName; while (peo[i].number != 0) { if (DeleteName == peo[i].name) { if (peo[i].number != 0) { while (peo[i].number!=0) { peo[i].name = peo[i+1].name; peo[i ].sex = peo[i+1].sex; peo[i ].number = peo[i+1].number; i++; } cout << "删除成功" << endl; } else { peo[i].name = peo[i + 1].name; peo[i].sex = peo[i + 1].sex; peo[i].number = peo[i + 1].number; cout << "删除成功" << endl; } flag = 1; } else { i++; } } if (flag == 0) { cout << "查无此人" << endl; } } void search(people* peo) { int flag = 0; int i = 0; string SearchName; cout << "请输入要查询的人的姓名" << endl; cin >> SearchName; while (peo[i].number != 0) { if (SearchName == peo[i].name) { cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl; flag = 1; break; } i++; } if (flag == 0) { cout << "查无此人" << endl; } } void update(people* peo) { int i = 0; int flag = 0; string SearchName; cout << "请输入更新的人的姓名" << endl; cin >> SearchName; while (peo[i].number != 0) { if (SearchName == peo[i].name) { cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl; flag = 1; break; } i++; } if (flag == 0) { cout << "查无此人" << endl; } cout << "请输入更新的内容 1,性别 2,姓名 3,电话" << endl; int change; cin >> change; switch (change) { case 1: cout << "请输入性别" << endl; cin >> peo[i].sex; cout << "修改成功" << endl; break; case 2: cout << "请输入姓名" << endl; cin >> peo[i].name; cout << "修改成功" << endl; break; case 3: cout << "请输入电话" << endl; cin >> peo[i].number; cout << "修改成功" << endl; break; default: break; } } void empty(people* peo) { while (peo[0].name!="") { int i = 0; while (peo[i].number != 0) { peo[i].name = peo[i + 1].name; peo[i].sex = peo[i + 1].sex; peo[i].number = peo[i + 1].number; i++; } } cout << "清空完成" << endl; } void show(people* peo) { int i = 0; while (peo[i].number != 0) { cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl; i++; } } void select() { int flag; int F = 1; while (F) { mein(); cout << "请输入" << endl; cin.clear(); cin >> flag; switch (flag) { case 1: add(peo); break; case 2: deleted(peo); break; case 3: search(peo); break; case 4: update(peo); break; case 5: empty(peo); break; case 6: show(peo); break; case 7: F = 0; break; default: break; } } } int main() { select(); }
接下来对各个模块解析:
1.结构体:创建属性每个通讯人的属性的结构体(包括性别、姓名、电话号码)
struct people
{
string sex;
string name;
int number;
}peo[1000];
2.菜单栏:主要是对进入通讯录所进行的界面展示
void mein()
{
cout << " \t\t---------------------------------------------------------------------"<< endl;
cout << " \t\t|\t************************通讯录*************************\t|"<< endl;
cout << " \t\t|\t*******************************************************\t|"<< endl;
cout << " \t\t|\t********************1.增加联系人***********************\t|" << endl;
cout << " \t\t|\t********************2.删除联系人***********************\t|" << endl;
cout << " \t\t|\t********************3.查找联系人***********************\t|" << endl;
cout << " \t\t|\t********************4.修改联系人***********************\t|" << endl;
cout << " \t\t|\t********************5.清空联系人***********************\t|" << endl;
cout << " \t\t|\t********************6.查看联系人***********************\t|" << endl;
cout << " \t\t|\t********************7.退 出***********************\t|"<< endl;
cout << " \t\t|\t*******************************************************\t|"<< endl;
cout << " \t\t---------------------------------------------------------------------"<< endl;
}
3.添加函数:添加联系人的方法
void add(people* peo)
{
int flag = 1;
int i = 0;
if (i == 1000)
{
cout << "通讯录已满" << endl;
}
else
{
while (flag)
{
while (peo[i].number == 0)
{
cout << "请输入要添加的性别:" << endl;
cin >> peo[i].sex;
cout << "请输入要添加的姓名:" << endl;
cin >> peo[i].name;
cout << "请输入要添加的号码:" << endl;
cin >> peo[i].number;
if (peo[i].number != NULL)
{
cout << "添加成功" << endl;
}
else
{
cout << "添加失败" << endl;
}
flag = 0;
break;
}
i++;
}
}
}
4.删除函数:对某一联系人进行删除操作
void deleted(people* peo)
{
int flag=0;
int i = 0;
string DeleteName;
cout << "请输入你要删除的人的姓名" << endl;
cin >> DeleteName;
while (peo[i].number != 0)
{
if (DeleteName == peo[i].name)
{
if (peo[i].number != 0)
{
while (peo[i].number!=0)
{
peo[i].name = peo[i+1].name;
peo[i ].sex = peo[i+1].sex;
peo[i ].number = peo[i+1].number;
i++;
}
cout << "删除成功" << endl;
}
else
{
peo[i].name = peo[i + 1].name;
peo[i].sex = peo[i + 1].sex;
peo[i].number = peo[i + 1].number;
cout << "删除成功" << endl;
}
flag = 1;
}
else
{
i++;
}
}
if (flag == 0)
{
cout << "查无此人" << endl;
}
}
5.查询函数:对单一联系人进行查询
void search(people* peo)
{
int flag = 0;
int i = 0;
string SearchName;
cout << "请输入要查询的人的姓名" << endl;
cin >> SearchName;
while (peo[i].number != 0)
{
if (SearchName == peo[i].name)
{
cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl;
flag = 1;
break;
}
i++;
}
if (flag == 0)
{
cout << "查无此人" << endl;
}
}
6.修改函数:对某一联系人进行信息修改
void update(people* peo)
{
int i = 0;
int flag = 0;
string SearchName;
cout << "请输入更新的人的姓名" << endl;
cin >> SearchName;
while (peo[i].number != 0)
{
if (SearchName == peo[i].name)
{
cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl;
flag = 1;
break;
}
i++;
}
if (flag == 0)
{
cout << "查无此人" << endl;
}
cout << "请输入更新的内容 1,性别 2,姓名 3,电话" << endl;
int change;
cin >> change;
switch (change)
{
case 1:
cout << "请输入性别" << endl;
cin >> peo[i].sex;
cout << "修改成功" << endl;
break;
case 2:
cout << "请输入姓名" << endl;
cin >> peo[i].name;
cout << "修改成功" << endl;
break;
case 3:
cout << "请输入电话" << endl;
cin >> peo[i].number;
cout << "修改成功" << endl;
break;
default:
break;
}
}
7.清空函数:对所有联系人清空
void empty(people* peo)
{
while (peo[0].name!="")
{
int i = 0;
while (peo[i].number != 0)
{
peo[i].name = peo[i + 1].name;
peo[i].sex = peo[i + 1].sex;
peo[i].number = peo[i + 1].number;
i++;
}
}
cout << "清空完成" << endl;
}
8.展示函数:将所有联系人全部展示出来
void show(people* peo)
{
int i = 0;
while (peo[i].number != 0)
{
cout << "姓名: " << peo[i].name << " \t性别:\t" << peo[i].sex << " \t号码:\t " << peo[i].number << endl;
i++;
}
}
9.选择函数:选择对通讯录进行的操作
void select()
{
int flag;
int F = 1;
while (F)
{
mein();
cout << "请输入" << endl;
cin.clear();
cin >> flag;
switch (flag)
{
case 1:
add(peo);
break;
case 2:
deleted(peo);
break;
case 3:
search(peo);
break;
case 4:
update(peo);
break;
case 5:
empty(peo);
break;
case 6:
show(peo);
break;
case 7:
F = 0;
break;
default:
break;
}
}
}