作为一个c++的入门者,多实践,多动手。
分析:
1、打开vs,建一个工程文件(我使用的是vs2019)
2、选择空项目
3、命名文件
添加c++源文件
现在我们就可以是开始我们的界面设计了,按照我们的需求分析,我们需要用代码设计出用户选择的界面,因为对于c++来说,封装是其特点之一,那我们就将各个功能封装,然后在进行调用。
对于用户,我们需要呈现一个供选择的界面:
void showMenu()
{
cout << "----欢迎进入-----" << endl;
cout << "|1、 添加联系人 |" << endl;
cout << "| | " << endl;
cout << "|2、 显示联系人 |" << endl;
cout << "| | " << endl;
cout << "|3、 删除联系人 |" << endl;
cout << "| | " << endl;
cout << "|4、 查询联系人 |" << endl;
cout << "| | " << endl;
cout << "|5、 修改联系人 |" << endl;
cout << "| | " << endl;
cout << "|0、 退出系统 |" << endl;
cout << "----*********-----" << endl;
}
我们使用一个Menu函数,将其功能呈现出来,然后在main()函数里调用;
这是运行结果:
完成了界面的设计,现在就可以接着完成选择的一个功能,那么,对于选择,自然是使用swith
int select;
while (true)
{
showMenu();
cout << "请输入您的选择:" << endl;
cin >> select;//定义select 方便输入选择
switch (select)
{
case 1:
AddPerson(&abs);
break;
case 2:
ShowPerson(&abs);
break;
case 3:
DeletPerson(&abs);
break;
case 4:
FindPerson(&abs);
break;
case 5:
ModifyPerson(&abs);
break;
case 0:
cout << "欢迎下次使用!" << endl;
system("pause");
system("cls");
break;
default:
break;
}
}
定义联系人结构体,方便后续调用
struct Person
{
string Name;
int Sex;
int Age;
string Phone;
string Address;
};
接着也要定义一个通讯录的结构体
struct TongxunBook
{
struct Person PersonArry[MAX];//通信录的大小
int size;//记录人数,因为使用的使用的是数组,所以利用数组的大小来判断人数
};
添加联系人的需求:
void AddPerson(TongxunBook *abs)
{
if (abs->size > 1000)
{
cout << "通讯录已满!不可以添加新的联系人!" << endl;
}
else
{
string name;
cout << "请输入添加的联系人姓名:" << endl;
cin >> name;
abs->PersonArry[abs->size].Name = name;
//string sex;
int sex = 0;
while (true)
{
cout << "选择联系人的性别:" << endl;
cout << "1、男" << endl;
cout << "2、女" << endl;
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->PersonArry[abs->size].Sex = sex;
break;
}
else
{
cout << "输入错误!" << endl;
break;
}
}
int age=0;
cout << "请输入联系人的年龄:" << endl;
cin >> age;
if (age < 0 || age>100)
{
cout << "输入有问题!" << endl;
}
else
{
abs->PersonArry[abs->size].Age =age;
}
string phone;
cout << "请输入联系人的电话:" << endl;
cin >> phone;
abs->PersonArry[abs->size].Phone = phone;
string address;
cout << "请输入联系人的地址:" << endl;
cin >> address;
abs->PersonArry[abs->size].Address = address;
}
abs->size++;
cout << "联系人添加成功!" << endl;
system("pause");
system("cls");
}
显示联系人的需求:
void ShowPerson(TongxunBook *abs)
{
if (abs->size == 0)
{
cout << "通信录为空!" << endl;
}
else
{
int i;
for (i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->PersonArry[i].Name << endl;
cout << "性别:" << (abs->PersonArry[i].Sex==1? "男":"女") << endl;
cout << "年龄:" << abs->PersonArry[i].Age << endl;
cout << "电话:" << abs->PersonArry[i].Phone << endl;
cout << "地址:" << abs->PersonArry[i].Address << endl;
}
}
}
删除联系人的需求:
void DeletPerson(TongxunBook* abs)
{
if (abs->size == 0)
{
cout << "通讯录为空!" << endl;
}
else
{
cout << "输入删除联系人的姓名:" << endl;
string name;
cin >> name;
int res = isExistPerson(abs, name);
if (res != -1)
{
for (int i = res; i < abs->size; i++)
{
abs->PersonArry[i].Name == abs->PersonArry[i + 1].Name;
}
abs->size--;
cout << "删除成功!" << endl;
}
else
{
cout << "查无此人!" << endl;
}
}
}
判断联系人存不存在:
int isExistPerson(TongxunBook *abs,string name)
{
for (int i = 0; i < abs->size; i++)
{
if (abs->PersonArry[i].Name == name)
{
return i;
}
else
{
cout << "查无此人!" << endl;
}
}
return -1;
}
查找联系人,和删除联系人的类似
void FindPerson(TongxunBook *abs)
{
cout << "请输入你要查找的联系人:" << endl;
string name;
cin >> name;
int res=isExistPerson(abs, name);
if (res != -1)
{
cout << "姓名:" << abs->PersonArry[res].Name << endl;
cout << "性别 "<< abs->PersonArry[res].Sex<< endl;
cout << "年龄" << abs->PersonArry[res].Age << endl;
cout << "电话" << abs->PersonArry[res].Phone << endl;
cout << "地址" << abs->PersonArry[res].Address << endl;
}
else
{
cout << "查无此人!" << endl;
system("pause");
system("cls");
}
}
修改联系人:
void ModifyPerson(TongxunBook* abs)
{
cout << "请输入你要修改的联系人:" << endl;
string name;
cin >> name;
int res = isExistPerson(abs, name);
if (res != -1)
{
cout << "输入修改后的姓名:" << endl;
string name;
cin >> name;
abs->PersonArry[res].Name = name;
cout << "输入修改后的性别:" << endl;
cout << "1、男" << endl;
cout << "2、女" << endl;
int sex=0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->PersonArry[res].Sex = sex;
break;
}
else
{
cout << "输入错误" << endl;
}
}
cout << "输入修改后的年龄:" << endl;
int age;
cin >> age;
abs->PersonArry[res].Age = age;
cout << "输入修改后的电话:" << endl;
string phone;
cin >> phone;
abs->PersonArry[res].Phone = phone;
cout << "输入修改后的地址:" << endl;
string address;
cin >> address;
abs->PersonArry[res].Address = address;
}
else
{
cout << "查无此人!无法修改" << endl;
system("pause");
system("cls");
}
}
到这,简单的管理系统各个功能就完成了。大家也可以发现,这个管理系统是通过数组的方式来完成的,并不具备保存的功能,所以,想要保存呢,就需要使用到文件操作,有兴趣的,可以自己尝试一下。
总的完全代码:
#include<iostream>
#include<string>
#define MAX 1000
using namespace std;
struct Person
{
string Name;
int Sex;
int Age;
string Phone;
string Address;
};
struct TongxunBook
{
struct Person PersonArry[MAX];//通信录的大小
int size;//记录人数,因为使用的使用的是数组,所以利用数组的大小来判断人数
};
void AddPerson(TongxunBook *abs)
{
if (abs->size > 1000)
{
cout << "通讯录已满!不可以添加新的联系人!" << endl;
}
else
{
string name;
cout << "请输入添加的联系人姓名:" << endl;
cin >> name;
abs->PersonArry[abs->size].Name = name;
//string sex;
int sex = 0;
while (true)
{
cout << "选择联系人的性别:" << endl;
cout << "1、男" << endl;
cout << "2、女" << endl;
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->PersonArry[abs->size].Sex = sex;
break;
}
else
{
cout << "输入错误!" << endl;
break;
}
}
int age=0;
cout << "请输入联系人的年龄:" << endl;
cin >> age;
if (age < 0 || age>100)
{
cout << "输入有问题!" << endl;
}
else
{
abs->PersonArry[abs->size].Age =age;
}
string phone;
cout << "请输入联系人的电话:" << endl;
cin >> phone;
abs->PersonArry[abs->size].Phone = phone;
string address;
cout << "请输入联系人的地址:" << endl;
cin >> address;
}
abs->size++;
cout << "联系人添加成功!" << endl;
system("pause");
system("cls");
}
void ShowPerson(TongxunBook *abs)
{
if (abs->size == 0)
{
cout << "通信录为空!" << endl;
}
else
{
int i;
for (i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->PersonArry[i].Name << endl;
cout << "性别:" << (abs->PersonArry[i].Sex==1? "男":"女") << endl;
cout << "年龄:" << abs->PersonArry[i].Age << endl;
cout << "电话:" << abs->PersonArry[i].Phone << endl;
cout << "地址:" << abs->PersonArry[i].Address << endl;
}
}
}
int isExistPerson(TongxunBook *abs,string name)
{
for (int i = 0; i < abs->size; i++)
{
if (abs->PersonArry[i].Name == name)
{
return i;
}
else
{
cout << "查无此人!" << endl;
}
}
return -1;
}
void DeletPerson(TongxunBook* abs)
{
if (abs->size == 0)
{
cout << "通讯录为空!" << endl;
}
else
{
cout << "输入删除联系人的姓名:" << endl;
string name;
cin >> name;
int res = isExistPerson(abs, name);
if (res != -1)
{
for (int i = res; i < abs->size; i++)
{
abs->PersonArry[i].Name == abs->PersonArry[i + 1].Name;
}
abs->size--;
cout << "删除成功!" << endl;
}
else
{
cout << "查无此人!" << endl;
}
}
}
void FindPerson(TongxunBook *abs)
{
cout << "请输入你要查找的联系人:" << endl;
string name;
cin >> name;
int res=isExistPerson(abs, name);
if (res != -1)
{
cout << "姓名:" << abs->PersonArry[res].Name << endl;
cout << "性别 "<< abs->PersonArry[res].Sex<< endl;
cout << "年龄" << abs->PersonArry[res].Age << endl;
cout << "电话" << abs->PersonArry[res].Phone << endl;
cout << "地址" << abs->PersonArry[res].Address << endl;
}
else
{
cout << "查无此人!" << endl;
system("pause");
system("cls");
}
}
void ModifyPerson(TongxunBook* abs)
{
cout << "请输入你要修改的联系人:" << endl;
string name;
cin >> name;
int res = isExistPerson(abs, name);
if (res != -1)
{
cout << "输入修改后的姓名:" << endl;
string name;
cin >> name;
abs->PersonArry[res].Name = name;
cout << "输入修改后的性别:" << endl;
cout << "1、男" << endl;
cout << "2、女" << endl;
int sex=0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->PersonArry[res].Sex = sex;
break;
}
else
{
cout << "输入错误" << endl;
}
}
cout << "输入修改后的年龄:" << endl;
int age;
cin >> age;
abs->PersonArry[res].Age = age;
cout << "输入修改后的电话:" << endl;
string phone;
cin >> phone;
abs->PersonArry[res].Phone = phone;
cout << "输入修改后的地址:" << endl;
string address;
cin >> address;
abs->PersonArry[res].Address = address;
}
else
{
cout << "查无此人!无法修改" << endl;
system("pause");
system("cls");
}
}
void showMenu()
{
cout << "----欢迎进入-----" << endl;
cout << "|1、 添加联系人 |" << endl;
cout << "| | " << endl;
cout << "|2、 显示联系人 |" << endl;
cout << "| | " << endl;
cout << "|3、 删除联系人 |" << endl;
cout << "| | " << endl;
cout << "|4、 查询联系人 |" << endl;
cout << "| | " << endl;
cout << "|5、 修改联系人 |" << endl;
cout << "| | " << endl;
cout << "|0、 退出系统 |" << endl;
cout << "----*********-----" << endl;
}
int main()
{
TongxunBook abs;
abs.size = 0;
int select;
while (true)
{
showMenu();
cout << "请输入您的选择:" << endl;
cin >> select;//定义select 方便输入选择
switch (select)
{
case 1:
AddPerson(&abs);
break;
case 2:
ShowPerson(&abs);
break;
case 3:
DeletPerson(&abs);
break;
case 4:
FindPerson(&abs);
break;
case 5:
ModifyPerson(&abs);
break;
case 0:
cout << "欢迎下次使用!" << endl;
system("pause");
system("cls");
break;
default:
break;
}
}
}