求助关于用socket实现电话本联系人管理程序的远程访问

问题描述

用socket实现电话本联系人管理程序的远程访问描述:在题目二的程序基础上,增加远程访问功能,采用客户端/服务器的方式。客户端:提供字符操作界面作为客户端;服务器:提供增删改查功能,提供文件存储功能。要求:必须在题目二的代码基础上来修改;必须使用Socket作为远程通信技术,可以使用更高层次的Socket封装类;下面是我写的题目二的代码,由于完全没有接触过socket,而且时间紧迫,明天就要验收了,迫不得已只好求高人帮忙,感激不尽。#include<iostream>#include<fstream>#include<map>#include<string>#include<exception>usingnamespacestd;classPhonetext{public:Phonetext(){}Phonetext(Phonetext&ph){phone=ph.phone;NAME=ph.NAME;NUM=ph.NUM;}voidFirst_Add();voidSearch();voidAdd();voiddeletenum();voidmodify();voidReadContacts();voidOutput();voidprintContacts();friendvoidoperator<<(ostream&os,constPhonetext&Ph);friendvoidoperator>>(istream&is,Phonetext&Ph);map<string,string>phone;stringNAME;stringNUM;};voidoperator<<(ostream&os,Phonetext&Ph)//重载操作符<<{map<string,string>::iteratorpos;for(pos=Ph.phone.begin();pos!=Ph.phone.end();++pos){os<<pos->first<<","<<pos->second<<"n";}return;//返回.}voidoperator>>(istream&is,Phonetext&Ph)//重载操作符>>{stringstrName,strNum;charch1;while((ch1=is.get())!=EOF){do{strName+=ch1;}while((ch1=is.get())!=',');while((ch1=is.get())!='n'){strNum+=ch1;}Ph.phone.insert(make_pair(strName,strNum));strName.clear();strNum.clear();}return;}classFileException//文件异常处理类{public:FileException():message("该指定文件不存在!"){}constchar*what()const{returnmessage;}private:constchar*message;};voidPhonetext::First_Add()//电话本信息初始化{phone.insert(make_pair("lisi","62282910"));phone.insert(make_pair("lili","62282911"));phone.insert(make_pair("mili","62282912"));phone.insert(make_pair("wangwu","62282913"));phone.insert(make_pair("zhangsan","62282914"));}voidPhonetext::ReadContacts(){ifstreamfile;file.open("phoneBook.txt");//打开自定义文件file>>*this;file.close();}voidPhonetext::Search(){if(phone.size()==0)cout<<"对不起,目前电话本为空!"<<endl;else{cout<<"请输入联系人的名字:"<<endl;cin>>NAME;if(phone.find(NAME)==phone.end())cout<<"该联系人不存在!"<<endl;elsecout<<"该联系人的电话号码是:"<<endl<<phone.find(NAME)->second<<endl;}}voidPhonetext::Add(){cout<<"请输入联系人的名字及其电话号码:"<<endl;cin>>NAME>>NUM;phone.insert(make_pair(NAME,NUM));cout<<"操作已成功!"<<endl;}voidPhonetext::deletenum(){if(phone.size()==0)cout<<"对不起,目前没有数据可以删除."<<endl;else{cout<<"请输入要删除的联系人的名字:"<<endl;cin>>NAME;if(phone.find(NAME)==phone.end())cout<<"该联系人不存在!"<<endl;else{phone.erase(NAME);cout<<"操作已成功!"<<endl;}}}voidPhonetext::modify(){if(phone.size()==0)cout<<"对不起,目前没有数据可以修改."<<endl;else{cout<<"请输入要修改的联系人的名字:"<<endl;cin>>NAME;if(phone.find(NAME)==phone.end())cout<<"该联系人不存在!"<<endl;else{cout<<"该联系人的号码是:";cout<<phone.find(NAME)->second<<endl;cout<<"修改联系人名字请按1,修改号码请按2:"<<endl;intch;cin>>ch;if(ch!=1&&ch!=2){cout<<"输入有错误!"<<endl;cin.get();}else{if(ch==1){cout<<"请输入该联系人新的名字:"<<endl;stringnewname,num;num=phone.find(NAME)->second;//记录下该联系人的号码cin>>newname;phone.erase(NAME);//删除原来的记录NAME=newname;NUM=num;//重新赋值phone.insert(make_pair(NAME,NUM));//重新插入记录}else{cout<<"请输入该联系人新的号码:"<<endl;stringname,newnum;name=NAME;cin>>newnum;phone.erase(NAME);//删除原来的记录NAME=name;NUM=newnum;//重新赋值phone.insert(make_pair(NAME,NUM));//重新插入记录}cout<<"操作已成功!"<<endl;}}}}voidPhonetext::printContacts(){map<string,string>::iteratorpos;for(pos=phone.begin();pos!=phone.end();++pos){cout<<pos->first<<","<<pos->second<<"n";}}voidPhonetext::Output(){ofstreamoFile;oFile.open("phoneBook.txt");oFile<<*this;oFile.close();}voidprint_information(){cout<<"退出对电话本的操作程序请按0:"<<endl;cout<<"查找电话本请按1:"<<endl;cout<<"添加姓名和电话号码请按2:"<<endl;cout<<"删除姓名和电话号码请按3:"<<endl;cout<<"修改姓名和电话号码请按4:"<<endl;}intmain(){PhonetextPh;boolbFileExist=true;//判断文件是否存在ifstreamfile;file.open("phoneBook.txt");//打开自定义文件try{if(!file){bFileExist=false;throwFileException();//抛出异常}else{file.close();}}catch(FileExceptionFE)//捕获异常{cout<<FE.what()<<endl;cout<<endl;}if(bFileExist==false){Ph.First_Add();//如果文件不存在,则初始化电话本信息}else{Ph.ReadContacts();//从文件中读取电话本信息}cout<<"电话本内已有的信息如下:"<<endl<<endl;cout<<"×××××××××××××××××××××××××××××"<<endl;Ph.printContacts();cout<<"×××××××××××××××××××××××××××××"<<endl<<endl;print_information();charch;while(cin>>ch,ch!='0'){if(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'){cout<<"输入有错误!"<<endl;cin.get();}else{switch(ch){case'1':Ph.Search();break;case'2':Ph.Add();break;case'3':Ph.deletenum();break;case'4':Ph.modify();break;}cout<<"请输入操作:"<<endl;}}Ph.Output();//增加、修改、删除联系人后向文件中保存更新后的数据system("pause");return0;}

解决方案

解决方案二:

求题目一的代码,后天要验收题目一!感激感激

时间: 2024-09-20 03:38:59

求助关于用socket实现电话本联系人管理程序的远程访问的相关文章

微信电话本联系人来电铃声怎么设置?联系人铃声设置教程

1)在你设备中打开微信电话本之后点击它中间的[联系人]之后我们找到[免费通话], 然后进入之后就可以 选择并设置联系人.(如下图)   2)然后我们点击[编辑],在打开窗口中点击[编辑联系人],找到界面中的[电话铃声].(如下图)   3)然后找到你喜欢的电话铃声点击一下,点击[完成],好了现在就设置好此人的来电铃声了哦.  

微信电话本怎么合并重复联系人?合并重复联系人教程

1)我们在电话本中找到[设置]点击设置进入之后你会看到有一项[合并重复联系人],然后我们点击进入之后找到要合并的联系人,点击[合并].(如下图)   2)好了最后我们再点击[完成]即可合并重复联系人.(如下图)

如何备份微信电话本通讯录联系人?

软件介绍 微信电话本是腾讯公司打造的一款高效智能的通讯增强软件:独家微信头像导入:支持通知类短信自动归档.垃圾短信拦截.短信收藏&加密等智能管理:还有来电归属地.黑名单.联系人自动备份和超过5000万的陌生号码识别,让你的电话本与众不同.目前支持Android平台 备份通讯录联系人步骤 1)备份方法很简单我们在手机中打开微信电话本,然后我们第一次使用要输入自己的手机号码,然后点击下一步,接着微信会提示我们是否保存联系人至网络,安全备份防丢失,点击"同意"如下图所示.     2

iPhone取得用户的电话本代码

 //取得用户的电话本 代码 -(void)getUserAddressBook{ //reDic = {"7":"数码先锋","1":"最爱街拍"} //打开电话本数据库 ABAddressBookRef addressRef=ABAddressBookCreate(); //返回所有联系人到一个数组中 CFArrayRef personArray = ABAddressBookCopyArrayOfAllPeople(ad

app界面怎么设计比较好看一些呢,我的这个像电话本

问题描述 app界面怎么设计比较好看一些呢,我的这个像电话本 这个是我做的界面,和电话本一模一样,这个还是主页面,感觉如果用户一进来看到这个 界面可能体验就不怎么好,大家说应该怎么设计一下比较好呢,暂时不加功能了,什么侧滑 扫一扫不加了 解决方案 如何设计android比较好的界面 解决方案二: 可以上面依旧是搜索框,然后下边不放所有联系人,只放置顶联系人,既快捷查找页面也不会显得太乱. 解决方案三: 可以上面依旧是搜索框,然后下边不放所有联系人,只放置顶联系人,既快捷查找页面也不会显得太乱.

微信电话本怎么?微信电话本常见问题总结

微信电话本收费吗? 微信电话本完全免费.通过微信电话本拨打电话.发送短信产生的资费与直接使用手机自带的通讯录一样,由运营商统一收取:在使用微信电话本时产生的少量网络费用由网络运营商收取,建议您配合上网流量套餐使用. 微信电话本流量消耗大吗? 信电话本是一款最省流量的手机通讯软件,待机消耗流量不到1K/小时,请放心使用! 备份联系人消耗流量: 1.在成功注册后,首次自动备份联系人时,会消耗少量流量:备份300联系人仅需流量50K左右: 2.新增/删除/修改联系人时,我们将自动为您备份变化的资料,单

免费通话你选哪个?微信电话本与手机QQ语音对比

[TechWeb报道]微信电话本3.0推出后,打着免费通话的旗号引发了业内关注,媒体纷纷将微信电话本形容为运营商语音革命者的姿态进行报道.前不久,马化腾在世界互联网大会移动互联网论坛上表示,微信仅为一款普通产品,运营商很淡定,媒体很激动.微信电话本到底有何不同之处呢?今天小编就带来微信电话本与手机QQ语音对比.微信电话本打折免费高清通话的旗号横空出世,这并不是一项什么神奇的技术,所谓的网络电话早在3G时代大家都有了解,电视广告商很多所谓的免费电话就是采用类似的手法,而其中玩的最成功的当属目前已经

微信电话本怎么用?微信电话本使用教程

1.安装微信电话本,打开微信电话本,由于第一次使用,需要绑定手机号.(输入验证码) 2.接下来就进入了拨号界面,这里可以打电话也可以添加联系人,拨号盘上的T9按键,具有搜索联系人功能: 3.我们会发现通话记录被单独放在了一个页面,使用过QQ通讯录的朋友应该会发现是和微信电话本通讯录是不同的.点击通话记录中的好友即可拨号,点击右边的箭头可查看详细通话记录. 4.其实,微信电话本的联系人界面也和QQ通讯录联系人界面差不多,首次使用微信电话本会提示您导入微信头像,点击左上角"+"按钮可添加联

C++电话本程序

/* C++电话本程序 */ /* 1.可实现txt文件的读取和保存. */ /* 2.可实现联系人的增添.删除和修改. */ /* 3.可实现通过联系人查询号码. */ /* 4.可实现通过号码查询联系人. */ /* 5.可实现全部联系人的显示. */ /* 运行环境vs2010||codeblocks */ #include<iostream> #include<string> #include<vector> #include<fstream> #i