首页 / C++ / c++通讯录管理系统
c++通讯录管理系统
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++通讯录管理系统,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4556字,纯文字阅读大概需要7分钟。
内容图文
![c++通讯录管理系统](/upload/InfoBanner/zyjiaocheng/613/bd2949f506fc4ea8bbc51411140d52e9.jpg)
#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
//联系人结构体
struct person {
string name;//姓名
int sex;//性别:1代表男,2代表女
int age;//年龄
string phone;//电话
string addr;//地址
};
//通讯录结构体
struct address {
struct person p[MAX]{};
int size;
};
//显示菜单
void showMenu()
{
cout << "***** 1、添加联系人 *****" << endl;
cout << "***** 2、显示联系人 *****" << endl;
cout << "***** 3、删除联系人 *****" << endl;
cout << "***** 4、查找联系人 *****" << endl;
cout << "***** 5、修改联系人 *****" << endl;
cout << "***** 6、清空联系人 *****" << endl;
cout << "***** 0、退出此系统 *****" << endl;
}
//添加联系人
void addPerson(struct address *addr)
{
cout << "添加联系人" << endl;
if (addr->size == MAX)
{
cout << "通讯录已满。";
return;
}
else
{
cout << "联系人姓名:";
string name;
cin >> name;
addr->p[addr->size].name = name;
cout << "联系人性别:";
cout << endl << "1----男" << endl << "2---女" << endl;
while (true)
{
int sex;
cin >> sex;
if (sex == 2 || sex == 1)
{
addr->p[addr->size].sex = sex;
break;
}
else
{
cout << "输入有误,重新输入:";
}
}
cout << "联系人年龄:";
int age;
cin >> age;
addr->p[addr->size].age = age;
cout << "联系人电话:";
string phone;
cin >> phone;
addr->p[addr->size].phone = phone;
cout << "联系人地址:";
string address;
cin >> address;
addr->p[addr->size].addr = address;
addr->size++;
cout << "添加成功"<<endl;
system("pause");
system("cls");//清屏操作
}
}
//显示联系人
void showPerson(struct address *addr)
{
if (addr->size == 0)
{
cout << "无联系人"<<endl;
system("pause");
system("cls");
return;
}
else
{
cout << "显示联系人" << endl;
for (int i = 0; i < addr->size; i++)
{
cout << "姓名:" << addr->p[i].name << " 性别:";
cout << (addr->p[i].sex == 1 ? "男" : "女");//三目运算符
cout << " 年龄:" << addr->p[i].age << " 电话:" << addr->p[i].phone << " 地址:" << addr->p[i].addr << endl;
}
}
system("pause");//按任意键继续
system("cls");//清屏
}
//检测是否存在这个人,若有则返回下标,若无则返回-1
int isExist(address* addr, string name)
{
for (int i = 0; i < addr->size; i++)
{
if (addr->p[i].name == name)
{
return i;
}
}
return -1;
}
//删除联系人(及覆盖,将后面的元素前移)
void deletePerson(address* addr)
{
cout << "删除联系人" << endl;
cout << "请输入要删除的联系人:";
string name;
cin >> name;
int ret = isExist(addr, name);
if (ret != -1)
{
for (int i = ret; i < addr->size; i++)
{
addr->p[i] = addr->p[i + 1];//数据前移
}
addr->size--;
cout << "删除成功"<<endl;
}
else
{
cout << "查无此人"<<endl;
}
system("pause");
system("cls");
}
//查找联系人
void searchPerson(address* addr)
{
cout << "查找联系人" << endl;
cout << "请输入要查找的联系人:";
string name;
cin >> name;
int ret = isExist(addr, name);
if (ret != -1)
{
cout << "姓名:" << addr->p[ret].name << " 性别:";
if (addr->p[ret].sex == 1)
cout << "男";
else
cout << "女";
cout << " 年龄:" << addr->p[ret].age << " 电话:" << addr->p[ret].phone << " 地址:" << addr->p[ret].addr << endl;
}
else
{
cout << "查无此人" << endl;
}
cout << "查找成功"<<endl;
system("pause");
system("cls");
}
//修改联系人
void updatePerson(address* addr)
{
cout << "修改联系人" << endl;
cout << "请输入修改的姓名:";
string name;
cin >> name;
int ret = isExist(addr, name);
if (ret != -1)
{
cout<<" 1、姓名"<<endl;
cout<<" 2、性别"<<endl;
cout<<" 3、年龄"<<endl;
cout<<" 4、电话"<<endl;
cout<<" 5、地址"<<endl;
cout << "请输入要修改的数据:";
int num;
cin >> num;
switch (num)
{
case 1:
{
cout << "联系人姓名:";
string name;
cin >> name;
addr->p[ret].name = name;
break;
}
case 2:
{
cout << "联系人性别:";
int sex;
cin >> sex;
addr->p[ret].sex = sex;
break;
}
case 3:
{
cout << "联系人年龄:";
int age;
cin >> age;
addr->p[ret].age = age;
break;
}
case 4:
{
cout << "联系人电话:";
string phone;
cin >> phone;
addr->p[ret].phone = phone;
break;
}
case 5:
{
cout << "联系人地址:";
string address;
cin >> address;
addr->p[ret].addr = address;
break;
}
default:
cout << "输入有误"<<endl;
}
cout << "修改成功"<<endl;
}
else
{
cout << "查无此人"<<endl;
}
system("pause");
system("cls");
}
//清空联系人(将通讯记录的联系人数置为0即可,做逻辑清空)
void alldelete(address* addr)
{
addr->size = 0;
cout << "联系人已清空"<<endl;
system("pause");
system("cls");
}
int main()
{
address addr;//创建一个结构体变量
addr.size = 0;//初始化
while (true)
{
int a = 0;
showMenu();//显示菜单
cout << "请输入你要的操作:";
cin >> a;
switch (a)
{
case 1:
addPerson(&addr);//地址传递可以改变实参的值;
break;
case 2:
showPerson(&addr);
break;
case 3:
deletePerson(&addr);
break;
case 4:
searchPerson(&addr);
break;
case 5:
updatePerson(&addr);
break;
case 6:
alldelete(&addr);
break;
case 0:
cout << "已退出系统"<<endl;
system("pause");
return 0;
break;
default:
cout << "输入有误,请重新输入:";
}
}
system("pause");
return 0;
}
内容总结
以上是互联网集市为您收集整理的c++通讯录管理系统全部内容,希望文章能够帮你解决c++通讯录管理系统所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。