目录
●功能介绍
●案例
●代码展示
●结果展示
●功能介绍
用C++设计一个程序,能够提供以下功能:
1.录入联系人的基本信息。包括姓名、性别、年龄、电话号和地址。
2.展示所有已录入联系人的基本信息。以姓名、性别、年龄、电话号和地址的方式按列表展示。
3.删除指定的联系人。通过姓名查询并删除。
4.查找指定的联系人。通过姓名查找。
5.修改联系人信息。可对其进行单一修改,也可以进行多修改。
6.清空联系人。
7.退出通讯录管理系统。
●案例
1.录入5个联系人的信息:
①张三 男 19 18945761432 山西省大同市
②李四 男 23 19045435721 吉林省沈阳市
③王五 女 21 16423763429 湖南省长沙市
④赵六 女 32 17781435240 河南省洛阳市
⑤孙七 男 29 18247190826 内蒙古包头市
2.展示该五个联系人的信息。
3.修改联系人信息,对王五的地址进行单一修改,修改为云南省昆明市。(若进行其他修改,按照提示指引修改即可)
4.查找指定联系人王五,查看其修改的信息是否同步。
5.因为张三的信息存在错误,我们用多修改的方式对其信息进行修改。(张三 男 34 18247189868 陕西省西安市)
6.由于孙七的信息录入错误,我们需要将他的信息全部删除。
7.查看此时所有的联系人信息。
8.清空所有联系人并且查看。
9.退出通讯录管理系统。
●代码展示
#include <iostream>
#include <string>
#define maxsize 100 //通讯录人数
using namespace std;
struct person {
string name; //姓名
string sex; //性别
int age; //年龄
string number; //电话号
string address; //地址
};
typedef struct{
struct person data[maxsize];
int size;
}addressbook;
void addperson(addressbook* ab)
{
cout << "————————————————————" << endl;
if (ab->size == maxsize) {
cout << "<<通讯录已满>>" << endl;
}
else {
cout << "请输入姓名:" ;
string name;cin >> name;
ab->data[ab->size].name = name;
cout << "请输入性别:" ;
cout << "男——1" <<" " << "女——2" <<":";
int sex;cin >> sex;
if (sex == 1) { ab->data[ab->size].sex = "男"; }
else if (sex == 2) { ab->data[ab->size].sex = "女"; }
cout << "请输入年龄:" ;
int age;cin >> age;
ab->data[ab->size].age = age;
cout << "请输入电话:" ;
string number;cin >> number;
ab->data[ab->size].number = number;
cout << "请输入家庭地址:" ;
string address;cin >> address;
ab->data[ab->size].address = address;
ab->size++;
}
cout << "————————————————————" << endl;
cout << "<<添加成功>>" << endl;
system("pause");
system("cls");
}
void showperson(addressbook* ab)
{
if (ab->size == 0) {
cout << "<<当前数据为空>>" << endl;
}
else {
for (int i = 0; i < ab->size; i++)
{
cout << "———————————————————————————————————" << endl;
cout <<"| " << "姓名:" << ab->data[i].name << " "
<< "性别:" << ab->data[i].sex<<" "
<< "年龄:" << ab->data[i].age<<" "
<< "电话:" << ab->data[i].number<<" "
<< "地址:" << ab->data[i].address << " |" << endl;
}
cout << "———————————————————————————————————" << endl;
}
system("pause");
system("cls");
}int isexist(addressbook* ab, string name)
{
for (int k = 0; k < ab->size; k++)
{
if (ab->data[k].name == name)
return k;
}
return -1;
}
void deleteperson(addressbook* ab)
{
cout << "————————————————————" << endl;
cout << "请输入您要删除的联系人:";
string name;cin >> name;
if (isexist(ab, name) == -1) {
cout << "<<没有查找到此人>>" << endl;
}
else {
cout << "<<找到此人>>" << endl;
int ret = isexist(ab, name);
for (int l = ret; l < ab->size; l++)
{
ab->data[l].name = ab->data[l + 1].name;
ab->data[l].sex = ab->data[l + 1].sex;
ab->data[l].age = ab->data[l + 1].age;
ab->data[l].number = ab->data[l + 1].number;
ab->data[l].address = ab->data[l + 1].address;
}
ab->size--;
cout << "<<已删除此人信息>>" << endl;
}
cout << "————————————————————" << endl;
system("pause");
system("cls");
}
void searchperson(addressbook* ab)
{
cout << "请输入您要查找的联系人:";
string name;cin >> name;
if (isexist(ab, name) == -1) {
cout << "<<没有查找到此人>>" << endl;
}
else {
int ret = isexist(ab, name);
cout << "———————————————————————————————————" << endl;
cout <<"| " << "姓名:" << ab->data[ret].name << " "
<< "性别:" << ab->data[ret].sex<<" "
<< "年龄:" << ab->data[ret].age<<" "
<< "电话:" << ab->data[ret].number<<" "
<< "地址:" << ab->data[ret].address <<" |" << endl;
cout << "———————————————————————————————————" << endl;
}
system("pause");
system("cls");
}
void singlealterperson(int ret,addressbook* ab)
{
string name;
string sex;
int age;
string number;
string address;
cout << "————————————————————" << endl;
cout << "姓名-1" << "性别-2" << "年龄-3" << "电话-4" << "地址-5" << ":";
int select; cin >> select;
switch (select)
{
case 1:
cout << "请输入要修改的姓名:";
cin >> name; ab->data[ret].name = name;
break;
case 2:
cout << "请输入要修改的性别:";
cin >> sex; ab->data[ret].sex = sex;
break;
case 3:
cout << "请输入要修改的年龄:";
cin >> age; ab->data[ret].age = age;
break;
case 4:
cout << "请输入要修改的号码:";
cin >> number; ab->data[ret].number = number;
break;
case 5:
cout << "请输入要修改的地址:";
cin >> address; ab->data[ret].address = address;
break;
}
cout << "————————————————————" << endl;
}
void mostalterperson(int ret,addressbook* ab)
{
string name;
string sex;
int age;
string number;
string address;
cout << "————————————————————" << endl;
cout << "请输入姓名:";
cin >> name; ab->data[ret].name = name;
cout << "请输入性别:";
cin >> sex; ab->data[ret].sex = sex;
cout << "请输入年龄:";
cin >> age; ab->data[ret].age = age;
cout << "请输入电话:";
cin >> number; ab->data[ret].number = number;
cout << "请输入地址:";
cin >> address; ab->data[ret].address = address;
cout << "————————————————————" << endl;
}
void alterperson(addressbook* ab)
{
cout << "请输入您要修改的联系人:";
string name;cin >> name;
if (isexist(ab, name) == -1){
cout << "<<此人不存在>>" << endl;
}
else {
cout << "<<此人存在>>" << endl;
int ret = isexist(ab,name);
cout << "单一修改-0" << "多数修改-1" << ":";
int n; cin >> n;
if (n == 0) {
singlealterperson(ret,ab);
}
else {
mostalterperson(ret,ab);
}
cout << "<<信息修改成功>>" << endl;
}
system("pause");
system("cls");
}
void emptyperson(addressbook* ab)
{
ab->size = 0;
cout << "<<通讯录已清空>>" << endl;
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 << "*****7:退出通讯录******" << endl;
cout << "***********************" << endl;
}
int text()
{
addressbook AB;
AB.size = 0;
while (1)
{
showmenu();
int n; cin >> n;
switch (n)
{
case 1:
addperson(&AB);
break;
case 2:
showperson(&AB);
break;
case 3:
deleteperson(&AB);
break;
case 4:
searchperson(&AB);
break;
case 5:
alterperson(&AB);
break;
case 6:
emptyperson(&AB);
break;
case 7:
cout << "<<退出通讯录>>" << endl;
return 0;
break;
}
}
}
int main()
{
text();
}
●结果展示
1.
2.
3.
4.
5.
6.
7.
8.
9.