c/c++实现电话通讯录管理

news/2024/11/17 0:00:26/

实现对通讯录的添加,删除,查询,全部输出以及存储的功能,使用vector简化操作

# include <iostream>
# include <string>
# include <vector>
using namespace std;
typedef struct {string name;string sex;string tel;string email;string address;} PEOPLE;
PEOPLE p[100];
int main() {vector<PEOPLE> vec;int a,n,b,i,flag;string m;char q;FILE *fp=fopen("tel.txt","rw");//打开原来的通讯录并且读入cout <<"*****************欢迎来到通讯录*****************"<<endl;cout <<"                    选择操作               "<<endl;cout <<"1.添加 2.查询 3.删除 4.全部输出 5.保存此次所有操作"<<endl;i=0;char name[100],sex[10],tel[100],email[100],address[100];while(fscanf(fp,"%s %s %s %s %s",name ,sex ,tel ,email ,address )!=EOF) {p[i].name =name;p[i].sex =sex;p[i].tel =tel;p[i].email =email;p[i].address =address;vec.push_back(p[i]);//直接用p[i]读入会产生问题,所以借助char作为中间容器i++;};cin >>a;q='Y';while(q=='Y') {if(a==1) {cout << "输入添加的人数:"<< endl;cin >>n;b = vec.size();cout << b<<endl;for(i=0; i<n; i++) {cout << "输入姓名、性别、电话、邮箱、家庭住址"<<endl;cin >> p[i].name>>p[i].sex>>p[i].tel>>p[i].email>>p[i].address;vec.push_back(p[i]);}cout << vec.size();}if(a==2) {cout << "输入姓名:"<< endl;cin  >> m;for(i=0; i<vec.size(); i++) {flag=1;if(vec[i].name==m) {flag=0;cout << vec[i].name << " "<< vec[i].sex << " "<< vec[i].tel << " "<< vec[i].email << " "<< vec[i].address <<endl;}}if(flag==1) {cout << "该用户不存在" <<endl;}}if(a==3) {cout << "输入姓名:"<< endl;cin  >> m;for(vector<PEOPLE>::iterator Iter=vec.begin(); Iter!=vec.end();) {flag=1;if(Iter->name==m) {flag=0;Iter=vec.erase(Iter);//结构体正确删除操作cout << "删除成功"<<endl;break;} else {Iter++;}}if(flag==1) {cout << "该用户不存在" <<endl;}}if(a==4) {b=vec.size();for(i=0; i<b; i++) {cout << vec[i].name << " "<< vec[i].sex << " "<< vec[i].tel << " "<< vec[i].email << " "<< vec[i].address <<endl;}}if(a==5) {fclose(fp);b=vec.size();freopen("tel.txt","w",stdout);for(i=0; i<b; i++) {cout << vec[i].name << " "<< vec[i].sex << " "<< vec[i].tel << " "<< vec[i].email << " "<< vec[i].address <<endl;}return 0;}cout << "是否继续进行其他操作?请输入Y或N"<< endl;cin >> q;if(q=='Y') {cout << "选择操作:"<< endl;cin >> a;}}return 0;}
//结构体正确删除操作cout << "删除成功"<<endl;break;} else {Iter++;}}if(flag==1) {cout << "该用户不存在" <<endl;}}if(a==4) {b=vec.size();for(i=0; i<b; i++) {cout << vec[i].name << " "<< vec[i].sex << " "<< vec[i].tel << " "<< vec[i].email << " "<< vec[i].address <<endl;}}if(a==5) {fclose(fp);b=vec.size();freopen("tel.txt","w",stdout);for(i=0; i<b; i++) {cout << vec[i].name << " "<< vec[i].sex << " "<< vec[i].tel << " "<< vec[i].email << " "<< vec[i].address <<endl;}return 0;}cout << "是否继续进行其他操作?请输入Y或N"<< endl;cin >> q;if(q=='Y') {cout << "选择操作:"<< endl;cin >> a;}}return 0;}
 

 


http://www.ppmy.cn/news/701145.html

相关文章

初识Go语言25-数据结构与算法【堆、Trie树、用go中的list与map实现LRU算法、用go语言中的map和堆实现超时缓存】

文章目录 堆Trie树练习-用go中的list与map实现LRU算法练习-用go语言中的map和堆实现超时缓存 堆 堆是一棵二叉树。大根堆即任意节点的值都大于等于其子节点。反之为小根堆。   用数组来表示堆&#xff0c;下标为 i 的结点的父结点下标为(i-1)/2&#xff0c;其左右子结点分别为…

三大运营商官方防骚扰电话屏蔽教程

其实手机虽然都有防骚扰软件的安装&#xff0c;但是有时候并不适用&#xff0c;今天要说的的是三大营运商的云端拦截&#xff0c;最重要的是免费&#xff0c;如果你一直受尽了这些垃圾推销电话的烦扰&#xff0c;那么快试试今天的方法教程吧。 中国移动 - 中国移动高频骚扰电话…

打电话(通讯录、直接拨打、拨号)

1.清单文件里面添加权限&#xff1a; <uses-permission android:name"android.permission.CALL_PHONE"/>2.添加依赖&#xff1a; //打电话 implementation com.github.dfqin:grantor:2.5一、通讯录&#xff1a;不需要添加任何东西 Intent intent new Inten…

短信拦截,如何抢先于QQ通讯录,360

最近写一个应用&#xff08;A&#xff09;&#xff0c;需要拦截短信分析。一般是这样实现的&#xff1a;注册一个接受短信Intent-Filter&#xff0c;获取短信广播&#xff0c;分析短信内容然后相应处理。对特定短信终止广播继续&#xff08;abort方法&#xff09;&#xff0c;阻…

C语言写电话通讯录

首先&#xff0c;书写一个东西要清楚框架和需求 1.通讯录中能够存储1000个人的信息 每个人的信息包括&#xff1a; 名字 性别 年龄 电话 地址 2.增加人的信息 3.删除人的信息 4.修改人的信息 5.查找指定人的信息 在这里&#xff0c;创建 头文件contact.h 源文件con…

C++电话通讯录_黑马

任务 添加联系人&#xff1a;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;联系电话&#xff0c;家庭住址&#xff08;上限1K&#xff09; 显示 删除&#xff08;按照姓名 查找&#xff08;按照姓名 修改&#xff08;按照姓名 清空全部 退出sys 效果&#xff1a; Code&am…

通讯录_通讯录拦截防爆

为了通讯录所谓的面子强撑 很多朋友因为其他原因借了714高炮或者其他网贷口子&#xff0c;一直在循环使用&#xff0c;每月给的利息就是工资的一半或更多&#xff0c;导致快到强制的边缘 每个人的家庭环境又不一样&#xff0c;想强制又因为怕催收骚扰到家人一直在苦苦强撑&…

插入排序——希尔排序

希尔排序其实就是一种插入排序&#xff0c;实际上就是通过直接插入排序一步步改进优化而实现的。所以在了解希尔排序之前要明白插入排序的实现原理。 插入排序 其实我觉得插入排序也可以叫做摸牌排序&#xff0c;就是从第二张牌开始处理&#xff0c;将摸到的牌按照合适的顺序插…