商品网站建设及推广策划书,网络营销方式和方法,网站搭建软件,wordpress适配手机1#xff0c;系统需求
通讯录是一个记录亲人#xff0c;好友信息的工具
系统中需要实现的功能如下#xff1a;
1#xff0c;添加联系人#xff1a;向通讯录中添加新人#xff0c;信息包括#xff08;姓名#xff0c;性别#xff0c;年龄#xff0c;联系电话#…1系统需求
通讯录是一个记录亲人好友信息的工具
系统中需要实现的功能如下
1添加联系人向通讯录中添加新人信息包括姓名性别年龄联系电话家庭住址最多记录1000个人
2显示联系人显示通讯录中所有的联系人信息
3删除联系人按照姓名进行删除指定联系人
4查找联系人按照姓名查找指定联系人信息
5修改联系人按照名字重新修改指定联系人
6清空联系人清空通讯录所有信息
7退出通讯录退出当前使用的通讯录
2创建项目
创建项目步骤如下
打开软件 点击创建新项目 点击空项目和下一步 在前两行包含头文件 3菜单功能
功能描述用户选择功能的界面
步骤创建函数void showMenu(),并在int main()中调用
#includeiostream
using namespace std;//菜单界面
void showMenu()
{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;cout endl;
}int main()
{showMenu();system(pause);return 0;
}
结果显示 4退出功能
功能描述退出通讯录系统
思路根据用户不同的选择进入不同的功能可以选择switch分支结构将整个框架进行搭建
当前用户选择0的时候执行退出选择其他先不做操作也不会退出程序
代码展示 int select 0;//创建用户输入变量while (1){//调用菜单showMenu();int select 0;cin select;switch (select){case 1://1,添加联系人break;case 2://2, 显示联系人break;case 3://3,删除联系人break;case 4://4,查找联系人break;case 5://5,修改联系人break;case 6://6,清空联系人break;case 0://0,退出通讯录cout 欢迎下次使用 endl;system(pause);break;default:break;}}system(pause);return 0;
} 5添加联系人
功能描述实现添加联系人功能联系人上限为1000人联系人信息包括姓名性别年龄联系电话家庭住址
步骤设计联系人结构体 设计通讯录结构体 main()函数中创建通讯录 封装添加联系人函数 测试添加联系人函数
5.1 设计联系人结构体
联系人信息包括姓名性别年龄联系电话家庭住址
设计如下
#includestring//头文件信息
//联系人结构体
struct Person
{string name;//姓名int m_sex;//性别int m_age;//年龄string m_phont;//电话string m_address;//住址
};
5.2 设计通讯录结构体
//通讯录结构体
struct Addressbooks
{struct Person personArray[MAX];//通讯录保存联系人信息int m_size;//通讯录中人员个数
};
5.3 main()函数中创建通讯录
Addressbooks abs;//创建通讯录变量
5.4 封装添加联系人函数
void addPerson(Addressbooks * abs)
{//先判断通讯录是否已满如果满了后不再添加if (abs-m_size MAX){cout 通讯录已满无法添加 endl;return;}else{//添加联系人//姓名string name;cout 请输入名字 endl;cin name;abs-personArray[abs-m_size].m_name name;//性别cout 请输入性别 endl;cout 1----男 endl;cout 2----女 endl;int sex 0;while (1){cin sex;if (sex 1 || sex 2){abs-personArray[abs-m_size].m_sex sex;break;}cout 输入有误请重新输入 endl;}abs-personArray[abs-m_size].m_sex sex;//年龄cout 请输入年龄 endl;int age 0;cin age;abs-personArray[abs-m_size].m_age age;//联系电话cout 请输入电话 endl;string phone;cin phone;abs-personArray[abs-m_size].m_phone phone;//家庭住址cout 请输入地址 endl;string address;cin address;abs-personArray[abs-m_size].m_address address;//更新通讯录人数abs-m_size;cout 添加成功 endl;system(pause);//按任意键继续system(cls);//清屏操作}
}
5.5 测试添加联系人函数
case 1://1,添加联系人addPerson(abs);//利用地址传参可以修饰实参break;
5.6 结果展示 6显示联系人
功能描述显示通讯录已有的联系人信息
显示联系人实现步骤 *封存显示联系人函数 *测试显示联系人功能
6.1 封存显示联系人函数
思路判断如果当前通讯录中没有人员就提示记录为空人数大于0显示通讯录中信息
代码如下
//显示联系人
void showPerson(Addressbooks* abs)
{//判断如果当前通讯录中没有人员就提示记录为空//人数大于0显示通讯录中信息if (abs-m_size 0){cout 当前记录为空 endl;}else{for (int i 0; i abs-m_size; i){cout 姓名 abs-personArray[i].m_name \t;cout 性别 abs-personArray[i].m_sex \t;cout 年龄 abs-personArray[i].m_age \t;cout 电话 abs-personArray[i].m_phone \t;cout 地址 abs-personArray[i].m_address endl;}}system(pause);//按任意键继续system(cls);//清屏操作
}
}
6.2 测试显示联系人功能
case 2://2, 显示联系人showPerson(abs);break;
6.3 结果展示 7删除联系人
功能描述按照姓名进行删除指定联系人
步骤
7.1封装检测联系人是否存在
思路删除联系人前我们需要先判断用户输入的联系人是否存在如果存在就删除不存在则提示用户没有要删除的联系人
因此我们可以把检测联系人是否存在封装成一个函数如果存在返回联系人在通讯录中的位置不存在则返回-1
int isExist(Addressbooks * abs,string name)
{for (int i 0; i abs-m_size ; i){//找到用户姓名if (abs-personArray[i].m_name name){//返回这个人的下标return i;}return -1;//如果遍历结果都没有找到则返回-1}
}
case 3://3,删除联系人
{cout 请输入删除联系人的姓名 endl;string name;cin name;if (isExist(abs, name) -1){cout 查无此人 endl;}else{cout 找到此人 endl;}
}
7.2封装删除联系人函数
void deletePerson(Addressbooks * abs, string name)
{int ret isExist(abs, name);//ret-1 未查到//ret ! 1 查到了if (ret ! -1){//查到人要进行删除操作for (int i 0; i abs-m_size; i){//数据迁移//删除就是将后面每个人的信息的位置替换前一个人的信息abs-personArray[i] abs-personArray[i 1];}abs-m_size--;cout 删除成功 endl;}else{cout 查无此人 endl;}system(pause);system(cls);
}
7.3测试删除联系人功能
case 3://3,删除联系人
{cout 请输入删除联系人的姓名 endl;string name;cin name;if (isExist(abs, name) -1){cout 查无此人 endl;}else{cout 找到此人 endl;}deletePerson(abs, name);
} 8查找联系人
功能描述按照姓名查找联系人信息
8.1封装查找联系人信息
void findPerson(Addressbooks * abs)
{cout 输入您要查找的联系人 endl;string name;cin name;//判断联系人是否在通讯录中int ret isExist(abs, name);if (ret ! -1)//找到联系人{cout 姓名 abs-personArray[ret].m_name \t;cout 性别 (abs-personArray[ret].m_sex 1 ? 男 : 女) \t;cout 年龄 abs-personArray[ret].m_age \t;cout 电话 abs-personArray[ret].m_phone \t;cout 地址 abs-personArray[ret].m_address endl;}else {cout 查无此人 endl;}system(pause);system(cls);
}
8.2 测试查找指定联系人
case 4://4,查找联系人findPerson(abs);break; 9修改联系人
功能描述按照名字修改指定联系人
9.1 封装修改联系人函数
实现思路查找用户输入的联系人如果查找成功进行修改操作查找失败提示查无此人
void modifyPerson(Addressbooks* abs)
{cout 输入您要修改的联系人 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1)//找到联系人{//姓名string name;cout 请输入名字 endl;cin name;abs-personArray[ret].m_name name;//性别cout 请输入性别 endl;cout 1----男 endl;cout 2----女 endl;int sex 0;while (true){cin sex;if (sex 1 || sex 2){abs-personArray[ret].m_sex sex;break;}cout 输入有误请重新输入 endl;}//年龄cout 请输入年龄 endl;int age 0;cin age;abs-personArray[ret].m_age age;//联系电话cout 请输入电话 endl;string phone;cin phone;abs-personArray[ret].m_phone phone;//家庭住址cout 请输入地址 endl;string address;cin address;abs-personArray[ret].m_address address;cout 修改成功 endl;}else{cout 查无此人 endl;}system(pause);system(cls);
}9.2 测试修改联系人功能
case 5://5,修改联系人modifyPerson(abs);break; 10清空联系人
功能描述
10.1 封存清空联系人函数
void cleanPerson(Addressbooks* abs)
{abs-m_size 0;cout 通讯录已经清空 endl;system(pause);system(cls);
}
10.2 测试清空联系人功能
case 6://6,清空联系人cleanPerson(abs);break; 11整体实现
#includeiostream
using namespace std;
#includestring//头文件信息
#define MAX 1000//联系人结构体
struct Person
{string m_name;//姓名int m_sex;//性别int m_age;//年龄string m_phone;//电话string m_address;//住址
};//通讯录结构体
struct Addressbooks
{struct Person personArray[MAX];//通讯录保存联系人信息int m_size;//通讯录中人员个数
};//菜单界面
void showMenu()
{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;cout endl;
}//添加联系人
void addPerson(Addressbooks * abs)
{//先判断通讯录是否已满如果满了后不再添加if (abs-m_size MAX){cout 通讯录已满无法添加 endl;return;}else{//添加联系人//姓名string name;cout 请输入名字 endl;cin name;abs-personArray[abs-m_size].m_name name;//性别cout 请输入性别 endl;cout 1----男 endl;cout 2----女 endl;int sex 0;while (true){cin sex;if (sex 1 || sex 2){abs-personArray[abs-m_size].m_sex sex;break;}cout 输入有误请重新输入 endl;}//年龄cout 请输入年龄 endl;int age 0;cin age;abs-personArray[abs-m_size].m_age age;//联系电话cout 请输入电话 endl;string phone;cin phone;abs-personArray[abs-m_size].m_phone phone;//家庭住址cout 请输入地址 endl;string address;cin address;abs-personArray[abs-m_size].m_address address;//更新通讯录人数abs-m_size;cout 添加成功 endl;}system(pause);//按任意键继续system(cls);//清屏操作
}//显示联系人
void showPerson(Addressbooks* abs)
{//判断如果当前通讯录中没有人员就提示记录为空//人数大于0显示通讯录中信息if (abs-m_size 0){cout 当前记录为空 endl;}else{for (int i 0; i abs-m_size; i){cout 姓名 abs-personArray[i].m_name \t;cout 性别 (abs-personArray[i].m_sex 1 ? 男 : 女 ) \t;cout 年龄 abs-personArray[i].m_age \t;cout 电话 abs-personArray[i].m_phone \t;cout 地址 abs-personArray[i].m_address endl;}}system(pause);//按任意键继续system(cls);//清屏操作
}//如果存在返回联系人在通讯录中的位置不存在则返回 - 1
//参数1 通讯录 参数2 对比姓名
int isExist(Addressbooks * abs,string name)
{for (int i 0; i abs-m_size ; i){//找到用户姓名if (abs-personArray[i].m_name name){//返回这个人的下标return i;}return -1;//如果遍历结果都没有找到则返回-1}
}void deletePerson(Addressbooks * abs, string name)
{int ret isExist(abs, name);//ret-1 未查到//ret ! 1 查到了if (ret ! -1){//查到人要进行删除操作for (int i 0; i abs-m_size; i){//数据迁移//删除就是将后面每个人的信息的位置替换前一个人的信息abs-personArray[i] abs-personArray[i 1];}abs-m_size--;cout 删除成功 endl;}else{cout 查无此人 endl;}system(pause);system(cls);
}void findPerson(Addressbooks * abs)
{cout 输入您要查找的联系人 endl;string name;cin name;//判断联系人是否在通讯录中int ret isExist(abs, name);if (ret ! -1)//找到联系人{cout 姓名 abs-personArray[ret].m_name \t;cout 性别 (abs-personArray[ret].m_sex 1 ? 男 : 女) \t;cout 年龄 abs-personArray[ret].m_age \t;cout 电话 abs-personArray[ret].m_phone \t;cout 地址 abs-personArray[ret].m_address endl;}else {cout 查无此人 endl;}system(pause);system(cls);
}void modifyPerson(Addressbooks* abs)
{cout 输入您要修改的联系人 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1)//找到联系人{//姓名string name;cout 请输入名字 endl;cin name;abs-personArray[ret].m_name name;//性别cout 请输入性别 endl;cout 1----男 endl;cout 2----女 endl;int sex 0;while (true){cin sex;if (sex 1 || sex 2){abs-personArray[ret].m_sex sex;break;}cout 输入有误请重新输入 endl;}//年龄cout 请输入年龄 endl;int age 0;cin age;abs-personArray[ret].m_age age;//联系电话cout 请输入电话 endl;string phone;cin phone;abs-personArray[ret].m_phone phone;//家庭住址cout 请输入地址 endl;string address;cin address;abs-personArray[ret].m_address address;cout 修改成功 endl;}else{cout 查无此人 endl;}system(pause);system(cls);
}void cleanPerson(Addressbooks* abs)
{abs-m_size 0;cout 通讯录已经清空 endl;system(pause);system(cls);
}int main()
{Addressbooks abs;//创建通讯录结构体变量abs.m_size 0;//初始化当前人数个数int select 0;//创建用户输入变量while (1){//调用菜单showMenu();cout 请输入 endl;int select 0;cin select;switch (select){case 1://1,添加联系人addPerson(abs);//利用地址传参可以修饰实参break;case 2://2, 显示联系人showPerson(abs);break;case 3://3,删除联系人{cout 请输入删除联系人的姓名 endl;string name;cin name;if (isExist(abs, name) -1){cout 查无此人 endl;}else{cout 找到此人 endl;}deletePerson(abs, name); }break;case 4://4,查找联系人findPerson(abs);break;case 5://5,修改联系人modifyPerson(abs);break;case 6://6,清空联系人cleanPerson(abs);break;case 0://0,退出通讯录cout 欢迎下次使用 endl;system(pause);break;default:break;}}system(pause);return 0;
}