oa软件是什么,网站优化套餐,温州捷创网站建设,搜索引擎推广预算1.菜单栏的设置
#xff08;1#xff09;我么自定义了一个showmenu函数#xff0c;用来打印输出我们的菜单栏#xff1b;
#xff08;2#xff09;菜单栏里面设置一些我们的通讯录里面需要用到的功能#xff0c;例如增加联系人#xff0c;删除联系人等等
2.退出功能…1.菜单栏的设置
1我么自定义了一个showmenu函数用来打印输出我们的菜单栏
2菜单栏里面设置一些我们的通讯录里面需要用到的功能例如增加联系人删除联系人等等
2.退出功能的实现 在我们的主函数里面我们可以使用这个switch语句进行相应的判断当用户的输入的数字是0的时候我们就会直接返回不会继续执行但是我们肯定不能让用户输入0~6的时候还是退出呀所以我们可以使用while循环语句这样当我们输入0的时候就会结束循环当我们输入1~6的时候程序就会继续显示菜单栏让我们继续进行选择我们后续可以继续进行设置
3.添加联系人
添加的联系人的信息包括姓名性别年龄联系电话家庭地址 1设计联系人的结构体
这个结构体的主要作用就是包含对应的联系人的相关的信息是针对于联系人而创建的结构体因为这个结构体涉及到了结构体的成员的姓名电话以及家庭住址我们需要使用string关键字进行定义这个时候要包含对应的头文件
2生成通讯录结构体
这个结构体是把所有的联系人放进去并且记录联系人的个数使用的是int变量我们可以设置通讯录里面的人数的上限我们可以使用宏的方式进行定义这样当通讯录的规模进行变动的时候我们可以直接进行修改
3主函数里面对应的参数的设置 这个里面我们首先要创建一个结构体的变量初始化里面的size也就是对应的通讯录里面的人数
4添加联系人的函数
因为我们的通讯录设置的最大的人数上限是1000所以如果人数超过1000就会显示通讯录已经满了的提示信息
接下来我们分别输入对应的联系人的信息并把我们输入的信息传到对应的结构体里面去因为我们要往数组里面添加元素所以我们可以使用结构体里面的size作为下标每次添加联系人以后都要进行看加加操作
在设置联系人的性别的时候我们使用了一个循环这个循环的作用就是进行判断只有我们的输入是12才符合要求如果输入其他的数字就会显示提示信息并且要求操作者知道输入正确才结束我们的循环
因为形参的改变量不会影响实参所以我们传递结构体变量的地址我们使用结构体的指针进行接收就可以了
如果我们不断的添加联系人的信息显示屏就会很多信息我们可以在每次添加完一个联系人的信息之后进行相应的清屏的操作 4.显示联系人的信息
我们同样需要进行判断通讯录是否为空否则我们无法显示联系人的信息
我们当时是让1代表男性2代表女性我们这个时候不能让性别显示我们自己定义的1或者2而是对应的男或者女我们使用三目运算符就可以达到这样的目的
我们为了让我们的每个联系人的信息在同一行进行显示我们在每个信息的结尾使用制表符只有最后一个才进行换行操作这样就可以让我们的打印结果更加的美观 5.删除联系人
首先我们要封装一个函数用来进行判断我们输入的姓名是否在通讯录里面存在如果存在就返回对应的下标如果不存在就直接-1函数的实现如下
相当于就是在通讯录里面进行遍历的操作看看我们输入的姓名是否和通讯录里面一致的姓名符合如果符合就表明我们输入的联系人在通讯录里面是存在的我们可以进行删除 如果有这个联系人我们应该如何进行删除呢我们可以让后面的数据覆盖前面的联系人的信息这样就可以删除我们要求的联系人的信息为了防止覆盖我们需要从前往后挨个进行移动最后把size进行减去1的操作 6.查找联系人
查找联系人的主要思路就是先要进行判断这个联系人是否存在如果存在就会打印输出对应的信息
如果并存在就会提示没有这个人 7.修改联系人
我们首先要判断修改的联系人是否存在如果存在就重新进行输入并且进行赋值
我们需要对每一项信息进修重新录入和赋值 8.清除联系人
我们只是逻辑上面把size的数值变为0就可以实现清除的目的 9.通讯录完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#includeiostream
#includestring
#define MAX 1000
using namespace std;
struct person
{string name;int sex;int age;string phone;string address;
};
struct addressbooks
{struct person personarray[MAX];int size;
};void add(addressbooks *abs)
{//判断是否满了if (abs-size MAX){cout 通讯录已满 endl;return;}else{string name;cout 请输入姓名 endl;cin name;abs-personarray[abs-size].name name;cout 请输入性别 endl;cout 1---男 endl;cout 2---女 endl;int sex;while (true){cin sex;if (sex 1 || sex 2){abs-personarray[abs-size].sex sex;break;}cout 输入有误请重新输入 endl;}cout 请输入年龄 endl;int age 0;cin age;cout 请输入电话 endl;string phone;cin phone;abs-personarray[abs-size].phone phone;cout 请输入地址 endl;string address;cin address;abs-personarray[abs-size].address address;abs-size;cout 添加成功 endl;system(cls);}
}void show(addressbooks* abs)
{if (abs-size 0){cout 当前的联系人个数为空 endl;}else{int i 0;for (i 0; i abs-size; i){cout 姓名 abs-personarray[i].name \t;cout 性别 (abs-personarray[i].sex 1 ? 男 : 女) \t;cout 年龄 abs-personarray[i].age \t;cout 电话 abs-personarray[i].phone \t;cout 地址 abs-personarray[i].address endl;}}
}int isexist(addressbooks* abs, string name)
{int i 0;for (i 0; i abs-size; i){if (abs-personarray[i].name name){return i;}}return -1;
}void deleteperson(addressbooks* abs)
{cout 请输入你想要删除的联系人 endl;string name;cin name;int ret isexist(abs, name);if (ret ! -1){int i ret;for (i ret; i abs-size; i){abs-personarray[i] abs-personarray[i 1];}abs-size--;}cout 删除成功 endl;system(cls);
}void find(addressbooks* abs)
{cout 请输入需要查找的联系人 endl;string name;cin name;int ret isexist(abs, name);if (ret ! -1){cout 姓名 abs-personarray[ret].name \t;cout 性别 (abs-personarray[ret].sex 1 ? 男 : 女) \t;cout 年龄 abs-personarray[ret].age \t;cout 电话 abs-personarray[ret].phone \t;cout 地址 abs-personarray[ret].address endl;}else{cout 没有这个联系人 endl;}system(pause);system(cls);}void modify(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].name name;int sex;cout 请输入性别 endl;cout 1----男 endl;cout 2---女 endl;cin sex;abs-personarray[ret].sex sex;int age;cout 请输入年龄 endl;cin age;abs-personarray[ret].age age;int phone;cout 请输入号码 endl;cin phone;abs-personarray[ret].phone phone;string address;cout 请输入家庭地址 endl;cin address;abs-personarray[ret].address address;cout 修改成功 endl;}else{cout 没找到这个联系人 endl;}system(pause);system(cls);
}void clear(addressbooks* abs)
{abs-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 *********************** endl;
}
int main()
{//创建通讯录的结构体变量addressbooks abs;//初始化通讯录的人数abs.size 0;while (true){showmenu();int input 0;cin input;switch (input){case 1:add(abs);break;case 2:show(abs);break;case 3:deleteperson(abs);break;case 4:find(abs);break;case 5:modify(abs);break;case 6:clear(abs);break;case 0:cout 欢迎下次使用 endl;return 0;break;default:break;}}return 0;
}