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

网站交互是什么广州市口碑全网推广报价

网站交互是什么,广州市口碑全网推广报价,网站设计培训机构,网站建设服务费交印花税吗一、系统概述 通讯录管理系统是一个常见的个人信息管理工具,能够帮助用户高效地管理联系人信息。本文将介绍一个基于控制台的通讯录管理系统,并提供C和Python两种实现版本。 二、核心功能 添加联系人:保存姓名、性别、年龄、电话、住址等信…

一、系统概述

通讯录管理系统是一个常见的个人信息管理工具,能够帮助用户高效地管理联系人信息。本文将介绍一个基于控制台的通讯录管理系统,并提供C++和Python两种实现版本。

二、核心功能

  1. 添加联系人:保存姓名、性别、年龄、电话、住址等信息

  2. 显示联系人:展示所有联系人信息

  3. 删除联系人:按姓名删除指定联系人

  4. 查找联系人:按姓名查找并显示联系人详情

  5. 修改联系人:按姓名查找并修改联系人信息

  6. 清空通讯录:一键删除所有联系人

三、C++实现

1. 数据结构设计

#define MAX 1000struct Person {string m_name;int m_Sex;int m_Age;string m_Phone;string m_Addr;
};struct Addressbooks {Person personArray[MAX];int m_Size;
};

2. 核心功能实现

添加联系人
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 << "请输入性别(1-男, 2-女):" << endl;cin >> abs->personArray[abs->m_Size].m_Sex;cout << "请输入年龄:" << endl;cin >> abs->personArray[abs->m_Size].m_Age;cout << "请输入联系电话:" << endl;cin >> abs->personArray[abs->m_Size].m_Phone;cout << "请输入家庭地址:" << endl;cin >> abs->personArray[abs->m_Size].m_Addr;abs->m_Size++; // 更新通讯录中人员个数cout << "添加成功!" << endl;}}

2. 核心功能实现

显示联系人
void showPerson(struct Addressbooks * abs)
{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;}}
}

删除联系人

//检测联系人是否存在,如果存在,返回联系人所在数组中的具体位置,不存在返回-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;
}
//删除联系人
void deletePerson(Addressbooks * abs)
{cout<<"请选择您要删除的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到int ret=isExist(abs,name);if(ret!=-1){//进行删除操作(如果要删除李四,把李四后面的数据前移,并且让通讯录中记录人员个数-1)for(int i=ret;i<abs->m_Size;i++){//数据前移abs->personArray[i]=abs->personArray[i+1];}abs->m_Size--;//更新人员数cout<<"删除成功"<<endl;}else{cout<<"查无此人"<<endl;}
}

查找联系人

void findPerson(Addressbooks * abs)
{cout<<"请选择您要查找的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到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_Addr<<endl;}else{cout<<"查无此人"<<endl;}
}

修改联系人

void modifyPerson(Addressbooks * abs)
{cout<<"请选择您要修改的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到int ret=isExist(abs,name);if(ret!=-1){string name;cout<<"请重新输入姓名:"<<endl;cin>>name;abs->personArray[ret].m_name=name;int sex=0;cout << "请重新输入性别(1-男, 2-女):" << endl;while(true){cin >> sex;if(sex==1||sex==2){abs->personArray[ret].m_Sex==sex;break;}}int age=0;cout<<"请重新输入年龄:"<<endl;cin>>age;abs->personArray[ret].m_Age=age;string phone;cout<<"请重新输入电话号码"<<endl;cin>>phone;abs->personArray[ret].m_Phone=phone;string address;cout<<"请重新输入家庭住址"<<endl;cin>>address;abs->personArray[ret].m_Addr=address;        cout<<"修改成功"<<endl;}else{cout<<"查无此人"<<endl;}
}

清空联系人

void cleanPerson(Addressbooks * abs)
{abs->m_Size=0;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: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;default:break;}}system("pause");return 0;
}

四、完整代码

#include <iostream>
using namespace std;
#include <string.h>
#define MAX 1000
//菜单界面
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;
}
struct Person
{/* data */string m_name;int m_Sex;int m_Age;string m_Phone;//电话string m_Addr;//家庭住址
};
struct Addressbooks//最大人数
{struct Person personArray[MAX];//方便维护int m_Size;//当前通讯录中人员个数
};
//添加联系人
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 << "请输入性别(1-男, 2-女):" << endl;cin >> abs->personArray[abs->m_Size].m_Sex;cout << "请输入年龄:" << endl;cin >> abs->personArray[abs->m_Size].m_Age;cout << "请输入联系电话:" << endl;cin >> abs->personArray[abs->m_Size].m_Phone;cout << "请输入家庭地址:" << endl;cin >> abs->personArray[abs->m_Size].m_Addr;abs->m_Size++; // 更新通讯录中人员个数cout << "添加成功!" << endl;}}
void showPerson(struct Addressbooks * abs)
{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;}}
}
//检测联系人是否存在,如果存在,返回联系人所在数组中的具体位置,不存在返回-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;
}
//删除联系人
void deletePerson(Addressbooks * abs)
{cout<<"请选择您要删除的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到int ret=isExist(abs,name);if(ret!=-1){//进行删除操作(如果要删除李四,把李四后面的数据前移,并且让通讯录中记录人员个数-1)for(int i=ret;i<abs->m_Size;i++){//数据前移abs->personArray[i]=abs->personArray[i+1];}abs->m_Size--;//更新人员数cout<<"删除成功"<<endl;}else{cout<<"查无此人"<<endl;}
}
//查找联系人
void findPerson(Addressbooks * abs)
{cout<<"请选择您要查找的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到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_Addr<<endl;}else{cout<<"查无此人"<<endl;}
}
//修改联系人
void modifyPerson(Addressbooks * abs)
{cout<<"请选择您要修改的联系人"<<endl;string name;cin>>name;//ret==-1未查询到;!=-1表示查到int ret=isExist(abs,name);if(ret!=-1){string name;cout<<"请重新输入姓名:"<<endl;cin>>name;abs->personArray[ret].m_name=name;int sex=0;cout << "请重新输入性别(1-男, 2-女):" << endl;while(true){cin >> sex;if(sex==1||sex==2){abs->personArray[ret].m_Sex==sex;break;}}int age=0;cout<<"请重新输入年龄:"<<endl;cin>>age;abs->personArray[ret].m_Age=age;string phone;cout<<"请重新输入电话号码"<<endl;cin>>phone;abs->personArray[ret].m_Phone=phone;string address;cout<<"请重新输入家庭住址"<<endl;cin>>address;abs->personArray[ret].m_Addr=address;        cout<<"修改成功"<<endl;}else{cout<<"查无此人"<<endl;}
}
//清空联系人
void cleanPerson(Addressbooks * abs)
{abs->m_Size=0;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: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;default:break;}}system("pause");return 0;
}

五、系统特色

  1. 简洁高效:基于控制台操作,响应迅速

  2. 数据持久化(可扩展):当前版本为内存存储,可轻松扩展为文件/数据库存储

  3. 跨平台:无需安装额外依赖,可在各种平台运行

  4. 双语言实现:提供C++和Python两种版本,适合不同学习需求

六、扩展建议

  1. 数据持久化:添加文件存储功能,使数据在程序关闭后不丢失

  2. 批量导入导出:支持CSV/Excel格式的联系人导入导出

  3. 多条件查询:支持按年龄、性别等多条件组合查询

  4. 分组管理:支持家庭、朋友、同事等分组管理

http://www.dtcms.com/wzjs/126117.html

相关文章:

  • 上海做展会的网站都有哪些广州百度快速优化排名
  • 有什么做ppt的网站吗seo运营是什么
  • 机械厂网站建设有创意的网络营销案例
  • 做网站的系统梁水才seo优化专家
  • 株洲做网站多少钱百度推广有效果吗?
  • 网站建设客户评价外贸营销网站制作公司
  • wordpress友情链接提交seo服务外包
  • 新余公司做网站新产品推广策划方案
  • 营销型网站策划 建设的考试题seo黑帽是什么
  • 建设部网站 挂靠在线视频观看免费视频22
  • 怎样做境外网站百度 搜索热度
  • 手机访问网站页面丢失百度一下你就知道123
  • 软件外包公司能去吗seocms
  • 商城网站功能列表网络营销课程培训课程
  • 做网站还是做微信公众号广告联盟平台
  • 网站的推广方式包括亿驱动力竞价托管
  • 建筑公司网站设计模板百度客户端电脑版
  • 微信网站用什么做的东莞企业网站排名
  • 直播类网站怎么做aso推广公司
  • 哪个网站可以做担保交易平台百度推广怎么做最好
  • 网站建设需要哪些网络技术优化营商环境工作开展情况汇报
  • 写作网站有哪些seo技术培训岳阳
  • 随州建设局网站合肥搜索引擎推广
  • 中国建设人才服务信息网站广点通官网
  • 屏山县建设局网站推广平台都有哪些
  • 最近的国际新闻热点seo外链优化方法
  • 湖北专业网站建设市面价企业网站搜索优化网络推广
  • 驾校网站建设方案什么是seo搜索引擎优化
  • flash网站系统链接提取视频的网站
  • 赣榆网站建设网站排名软件包年