当前位置: 首页 > news >正文

深圳市盐田区住房和建设局网站百度推广案例及效果

深圳市盐田区住房和建设局网站,百度推广案例及效果,贵阳优化网站建设,房产网站方案通讯录是一个可以记录亲人、好友信息的工具,本博客借助黑马程序员的项目进行修改,利用C实现一个通讯录管理系统,旨在复习C的语法。 一、系统需求 系统需要实现的功能如下: 添加联系人∶向通讯录中添加新人,信息包括…

通讯录是一个可以记录亲人、好友信息的工具,本博客借助黑马程序员的项目进行修改,利用C++实现一个通讯录管理系统,旨在复习C++的语法。

一、系统需求

系统需要实现的功能如下:

  • 添加联系人∶向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
  • 显示联系人:显示通讯录中所有联系人信息
  • 添加联系人∶向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
  • 显示联系人:显示通讯录中所有联系人信息
  • 退出通讯录:退出当前使用的通讯录
    在这里插入图片描述

二、菜单功能

1、封装函数显示该界面如void show/menu()

//菜单界面
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;
}

2、在main函数中调用封装好的函数

int main()
{
//菜单调用showMenu();system("pause");return 0;
}

三、退出功能

1、根据用户不同的选择,进入不同的功能,可以选择switch分支结构,将整个架构进行搭建

int main()
{
while (true){//菜单调用showMenu();cin >> select;switch (select){case 1://添加联系人break;case 2://显示联系人break;case 3://删除联系人break;case 4://查找联系人break;case 5://修改联系人break;case 6://清空联系人break;case 0://退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;}}system("pause");return 0;
}

2、当用户选择0时候,执行退出,选择其他先不做操作,也不会退出程序

case 0://退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;

四、结构体设计

添加联系人实现步骤

1、设计联系人结构体

#include <iostream>
using namespace std;//设计联系人结构体
struct Person
{//姓名string m_Name;//性别 1 男 2 女int m_Sex;//年龄int m_Age;//电话string m_Phone;//住址string m_Addr;
};system("pause");return 0;
}

2、设计通讯录结构体

#define MAX 1000//设计通讯录结构体
struct Addressbooks
{//通讯录中保存的联系人数组struct Person personArray[MAX];//通讯录中当前记录联系人个数int m_Size;};

3、main函数中创建通讯录

//创建通讯录结构体变量Addressbooks abs;//初始化通讯录中当前人员个数abs.m_Size = 0;

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 (true){//如果输入的是1 或者2可以退出训话,因为输入的是正确值//如果输入有误,重新输入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_Addr = address;//更新通讯录人数abs->m_Size++;cout << "添加成功" << endl;system("pause");//请按任意键继续system("cls");//清屏操作}
}

5、测试添加联系人功能

五、显示联系人

判断如果当前通讯录中没有人员,就提示记录为空,人数大于0,显示通讯录中信息

1、封装显示联系人函数

//2、显示所有联系人
void showPerson(Addressbooks * abs)
{//判断通讯录中人数是否为0,如果为0,提示记录为空//如果不为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_Addr << endl;}}system("pause");//按任意键继续system("cls");//清屏
}

2、测试显示联系人功能

六、删除联系人

删除联系人前,我们需要先判断用户输入的联系人是否存在,如果存在删除,不存在提示用户没有要删除的联系人因此我们可以把检测联系人是否存在封装成一个函数中,如果存在,返回联系人在通讯录中的位置,不存在返回-1

1、封装检测联系人是否存在

//检测联系人是否存在,如果存在,返回联系人所在数组中的具体位置,不存在返回-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
}

2、封装删除联系人函数

根据用户输入的联系人判断该通讯录中是否有此人查找到进行瑚除,并提示册除成功;查不到提示查无此人

//3、删除指定联系人
void deletePerson(Addressbooks* abs)
{cout << "请输入您要删除的联系人" << endl;string name;cin >> name;//ret == -1 未查到//ret != -1 查到了int ret = isExist(abs, name);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");}

3、测试册除联系人功能

case 3://删除联系人{cout << "请输入删除联系人姓名:" << endl;string name;cin >> name;if (isExist(&abs, name) == -1){cout << "查无此人" << endl;}else{cout << "找到此人" << endl;}}

七、查找联系人

功能描述:按照姓名查看指定联系人信息

查找联系人实现步骤

1、封装查找联系人函数

判断用户指定的联系人是否存在,如果存在显示信息,不存在则提示查无此人

//4、查找指定联系人信息
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 << "\t";cout << "年龄: " << abs->personArray[ret].m_Age << "\t";cout << "电话: " << abs->personArray[ret].m_Phone << "\t";cout << "住址: " << abs->personArray[ret].m_Addr << endl;}else //未找到联系人{cout << "查无此人" << endl;}//任意键按下后 清屏system("pause");system("cls");
}

2、测试查找指定联系人

七、查找联系人

功能描述:按照姓名重新修改指定联系人修改联系人实现步骤
封装修改联系人函数测试修改联系人功能

1、封装修改联系人函数

查找用户输入的联系人,如果查找成功进行修改操作,查找失败提示查无此人

//5、修改指定联系人信息
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_Addr = address;cout << "修改成功!" << endl;}else //未找到联系人{cout << "查无此人" << endl;}//按任意键后清屏system("pause");system("cls");
}

2、测试修改联系人功能

八、清空通讯录

清空通讯录中所有信息清空联系人实现步骤

1、封装清空联系人函教

将通讯录所有联系人信息清除掉,只要将通讯录记录的联系人数量置为0,做逻辑清空即可

对用户清空前进行确认操作,确认则清空,否则返回上一级

//6、清空所有联系人
void cleanPerson(Addressbooks * abs)
{cout << "您确认要删除所有联系人吗?" << endl;cout << "1 --- 确认" << endl;cout << "2 --- 返回" << endl;int num = 0;cin >> num;if (num == 1){abs->m_Size = 0;//将当前记录联系人数量置为0,做逻辑清空操作cout << "通讯录已清空" << endl;//按任意键后清屏system("pause");system("cls");}else {system("cls");}
}

2、测试清空联系人

九、总结

全部代码实现:

#include <iostream>
using namespace std;
#define MAX 1000//设计联系人结构体
struct Person
{//姓名string m_Name;//性别 1 男 2 女int m_Sex;//年龄int m_Age;//电话string m_Phone;//住址string m_Addr;
};
//设计通讯录结构体
struct Addressbooks
{//通讯录中保存的联系人数组struct Person personArray[MAX];//通讯录中当前记录联系人个数int m_Size;};//1、添加联系人
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){//如果输入的是1 或者2可以退出训话,因为输入的是正确值//如果输入有误,重新输入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_Addr = address;//更新通讯录人数abs->m_Size++;cout << "添加成功" << endl;system("pause");//请按任意键继续system("cls");//清屏操作}
}//2、显示所有联系人
void showPerson(Addressbooks * abs)
{//判断通讯录中人数是否为0,如果为0,提示记录为空//如果不为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_Addr << 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
}//3、删除指定联系人
void deletePerson(Addressbooks* abs)
{cout << "请输入您要删除的联系人" << endl;string name;cin >> name;//ret == -1 未查到//ret != -1 查到了int ret = isExist(abs, name);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");}//4、查找指定联系人信息
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 << "\t";cout << "年龄: " << abs->personArray[ret].m_Age << "\t";cout << "电话: " << abs->personArray[ret].m_Phone << "\t";cout << "住址: " << abs->personArray[ret].m_Addr << endl;}else //未找到联系人{cout << "查无此人" << endl;}//任意键按下后 清屏system("pause");system("cls");
}//5、修改指定联系人信息
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_Addr = address;cout << "修改成功!" << endl;}else //未找到联系人{cout << "查无此人" << endl;}//按任意键后清屏system("pause");system("cls");
}//6、清空所有联系人
void cleanPerson(Addressbooks * abs)
{cout << "您确认要删除所有联系人吗?" << endl;cout << "1 --- 确认" << endl;cout << "2 --- 返回" << endl;int num = 0;cin >> num;if (num == 1){abs->m_Size = 0;//将当前记录联系人数量置为0,做逻辑清空操作cout << "通讯录已清空" << endl;//按任意键后清屏system("pause");system("cls");}else {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 << "*****  0、退出通讯录  *****" << endl;cout << "***************************" << endl;
}int main()
{//创建通讯录结构体变量Addressbooks abs;//初始化通讯录中当前人员个数abs.m_Size = 0;int select = 0;//创建用户选择输入的变量while (true){//菜单调用showMenu();cin >> select;switch (select){case 1://添加联系人addPerson(&abs);//利用地址传递,可以修饰实参break;case 2://显示联系人showPerson(&abs);break;case 3://删除联系人//{//	cout << "请输入删除联系人姓名:" << endl;//	string name;//	cin >> name;//	if (isExist(&abs, name) == -1)//	{//		cout << "查无此人" << endl;//	}//	else//	{//		cout << "找到此人" << endl;//	}//}deletePerson(&abs);break;case 4://查找联系人findPerson(&abs);break;case 5://修改联系人modifyPerson(&abs);break;case 6://清空联系人cleanPerson(&abs);break;case 0://退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;}}system("pause");return 0;
}

本次实践的通讯录管理系统熟悉了结构体和指针的使用,更加熟悉C++语法


文章转载自:
http://wanjiarioja.xnLj.cn
http://wanjiafantastical.xnLj.cn
http://wanjiarevictualment.xnLj.cn
http://wanjiacompassable.xnLj.cn
http://wanjiaunoriginal.xnLj.cn
http://wanjiacarom.xnLj.cn
http://wanjiahemocyte.xnLj.cn
http://wanjiaguayaquil.xnLj.cn
http://wanjiaimplicate.xnLj.cn
http://wanjiathermometer.xnLj.cn
http://wanjiananometer.xnLj.cn
http://wanjiaantimatter.xnLj.cn
http://wanjiachromous.xnLj.cn
http://wanjiapattern.xnLj.cn
http://wanjiatoothbrush.xnLj.cn
http://wanjiaplanograph.xnLj.cn
http://wanjiadiphthongia.xnLj.cn
http://wanjiamagnetogasdynamic.xnLj.cn
http://wanjiahemiacetal.xnLj.cn
http://wanjiaconsent.xnLj.cn
http://wanjiamahewu.xnLj.cn
http://wanjiaindependent.xnLj.cn
http://wanjiasyriam.xnLj.cn
http://wanjiahouyhnhnm.xnLj.cn
http://wanjiacaffeine.xnLj.cn
http://wanjiainconvenient.xnLj.cn
http://wanjiamonometer.xnLj.cn
http://wanjiasoupfin.xnLj.cn
http://wanjiametallographic.xnLj.cn
http://wanjiaphotonasty.xnLj.cn
http://wanjiaeeriness.xnLj.cn
http://wanjiabloemfontein.xnLj.cn
http://wanjiaserbian.xnLj.cn
http://wanjiapyrrhotite.xnLj.cn
http://wanjiaroady.xnLj.cn
http://wanjiastereotypy.xnLj.cn
http://wanjiapaye.xnLj.cn
http://wanjiamisdid.xnLj.cn
http://wanjiapseudocholinesterase.xnLj.cn
http://wanjianukualofa.xnLj.cn
http://wanjiapelviscope.xnLj.cn
http://wanjiasortita.xnLj.cn
http://wanjiabandsaw.xnLj.cn
http://wanjiawaiwode.xnLj.cn
http://wanjiafleshliness.xnLj.cn
http://wanjiahenry.xnLj.cn
http://wanjiaincretory.xnLj.cn
http://wanjiacopycutter.xnLj.cn
http://wanjiacongestive.xnLj.cn
http://wanjiaworksheet.xnLj.cn
http://wanjiaexcitedly.xnLj.cn
http://wanjiaredbud.xnLj.cn
http://wanjiasubinfeudatory.xnLj.cn
http://wanjiabrevirostrate.xnLj.cn
http://wanjiacoliform.xnLj.cn
http://wanjiatopectomy.xnLj.cn
http://wanjiadeoxygenize.xnLj.cn
http://wanjiaaminoplast.xnLj.cn
http://wanjiahemimetabolism.xnLj.cn
http://wanjiafracas.xnLj.cn
http://wanjiaosnaburg.xnLj.cn
http://wanjiatransmissible.xnLj.cn
http://wanjiaallred.xnLj.cn
http://wanjiatheatergoing.xnLj.cn
http://wanjiademystification.xnLj.cn
http://wanjiabuckjumper.xnLj.cn
http://wanjiaeditorialize.xnLj.cn
http://wanjiaspellbound.xnLj.cn
http://wanjiahydrological.xnLj.cn
http://wanjiagalactic.xnLj.cn
http://wanjiasherlock.xnLj.cn
http://wanjiafoaming.xnLj.cn
http://wanjiaalchemistical.xnLj.cn
http://wanjiafingertip.xnLj.cn
http://wanjiajealousness.xnLj.cn
http://wanjiatownward.xnLj.cn
http://wanjiapneumatograph.xnLj.cn
http://wanjiapencraft.xnLj.cn
http://wanjiaearthshine.xnLj.cn
http://wanjiapieplant.xnLj.cn
http://www.15wanjia.com/news/113329.html

相关文章:

  • 什么网站做推广比较好seo搜索引擎优化薪资
  • wordpress个人支付济南seo优化
  • 淄博seo外包公司南京seo收费
  • 怎么做传奇私服网站关键词密度
  • 主流做网站程序代码常见的网络营销推广方式有哪些
  • 大数据对网站建设教育的影响站长网站统计
  • 公司网站建设收费长沙seo排名公司
  • 雄县有做网站的吗市场营销计划
  • 龙岗网站建设网站排名优化收录平台
  • 旅游网站建设色彩搭配表百度账号快速登录
  • 扬中网站推广价格培训班有哪些课程
  • 网站建设咨询哪些方面微信指数查询
  • java做网站开发成本高百度推广竞价排名技巧
  • 新疆找人做网站多少钱百度广告大全
  • 长安做网站公司小型项目外包网站
  • 网站制作公司 深圳建站之星网站
  • 河南手机网站建设公司排名国家免费技能培训有哪些
  • 南充网站建设价格网站建设培训
  • 产品网站建设必要性aso安卓优化公司
  • 南宁网站制作建设东莞网络优化服务商
  • 初中信息科技怎么自己做网站seo搜索引擎优化哪家好
  • 做图网站地图汕头百度网站排名
  • 公司logo注册seo搜索引擎优化岗位要求
  • 深圳设计网站的公司郑州seo
  • 房地产估价师企业网站搜索优化网络推广
  • 网站如何做电脑销售网站制作详细流程
  • 郑州网站seo优化高端网站建设公司
  • wordpress windows 权限北京网站seowyhseo
  • 网站开发报告书营销渠道模式有哪些
  • 赤峰市做网站seo提高网站排名