电话本

(这个是我们c++作业)

此电话本可完成以下功能:

(1)实现简单电话本功能,用姓名来搜索电话号码;

(2)用户输入姓名,程序查找并输出结果;

(3)用户可以通过输入,添加姓名和电话号码;

(4)用户可以删除姓名和电话号码;

(5)电话本可以保存在指定文件中;

(6)电话可被从指定文件中读入到内存。

/*电话本程序 用户输入F表示用文件输入文件保存 用户输入输入K表示用键盘输入文件保存 用户输入Q表示查询电话号码 用户输入D表示删除记录 用户输入I表示插入电话号码 以空格分隔姓名和电话号码*/ #include<iostream> #include<map> #include<string> #include<fstream> using namespace std; ofstream myFile1;//键盘输入指令时所保存的电话本 对应文件file1 ofstream myFile2;//文件输入指令时所保存的电话本 对应文件file2 ifstream myFile3;//文件输入指令时指令文件 对应文件file3 ifstream myFile4;//事先写好的一个电话本(按“名字、空格、电话号码”的形式) 对应文件file4 class Phonebook{ public: map<string,string> phonebook; void Init1(); void Insert1(); void Find1(); void Delete1(); void Init2(); void Insert2(); void Find2(); void Delete2(); }; void Phonebook::Init1(){ myFile4.open("file4.txt"); string str1,str2; while(myFile4>>str1>>str2){ phonebook.insert(pair<string,string>(str1,str2)); myFile1<<str1<<" "<<str2<<endl; } } void Phonebook::Insert1(){ string str1,str2; cin>>str1>>str2; map<string,string>::iterator it; it = phonebook.find(str1); if(it!=phonebook.end()){ cout<<"This person"<<"("<<str1<<")"<<"doesn't exist"<<endl; } else{ phonebook.insert(pair<string,string>(str1,str2)); myFile1<<str1<<" "<<str2<<endl; } } void Phonebook::Find1(){ string str; cin>>str; map<string,string>::iterator it; it = phonebook.find(str); if(it==phonebook.end()){ cout<<"This person"<<"("<<str<<")"<<"doesn't exist"<<endl; } else{ cout<<it->second<<endl; } } void Phonebook::Delete1(){ string str; cin>>str; map<string,string>::iterator it; it = phonebook.find(str); if(it==phonebook.end()){ cout<<"This person"<<("<<str<<")<<"doesn't exist"<<endl; } else{ phonebook.erase(it); myFile1.close(); myFile1.open("file1.txt"); map<string,string>::iterator its; for(its=phonebook.begin();its!=phonebook.end();its++){ myFile1<<its->first<<" "<<its->second<<endl; } cout<<str<<" "<<"已被删除"<<endl; } } void Phonebook::Init2(){ myFile4.open("file4.txt"); string str1,str2; while(myFile4>>str1>>str2){ phonebook.insert(pair<string,string>(str1,str2)); myFile2<<str1<<" "<<str2<<endl; } } void Phonebook::Insert2(){ string str1,str2; myFile3>>str1>>str2; map<string,string>::iterator it; it = phonebook.find(str1); if(it!=phonebook.end()){ cout<<"This person"<<"("<<str1<<")"<<"doesn't exist"<<endl; } else{ phonebook.insert(pair<string,string>(str1,str2)); myFile2<<str1<<" "<<str2<<endl; } } void Phonebook::Find2(){ string str; myFile3>>str; map<string,string>::iterator it; it = phonebook.find(str); if(it==phonebook.end()){ cout<<"This person"<<"("<<str<<")"<<"doesn't exist"<<endl; } else{ cout<<it->second<<endl; } } void Phonebook::Delete2(){ string str; myFile3>>str; map<string,string>::iterator it; it = phonebook.find(str); if(it==phonebook.end()){ cout<<"This person"<<("<<str<<")<<"doesn't exist"<<endl; } else{ phonebook.erase(it); myFile2.close(); myFile2.open("file2.txt"); map<string,string>::iterator its; for(its=phonebook.begin();its!=phonebook.end();its++){ myFile2<<its->first<<" "<<its->second<<endl; } cout<<str<<" "<<"已被删除"<<endl; } } int main(){ Phonebook book; string str; cin>>str; if(str[0]=='K'){ myFile1.open("file1.txt"); book.Init1(); while(cin>>str){ if(str[0]=='I'){ book.Insert1(); } else if(str[0]=='Q'){ book.Find1(); } else if(str[0]=='D'){ book.Delete1(); } } } else if(str[0]=='F'){ myFile3.open("file3.txt"); myFile2.open("file2.txt"); book.Init2(); while(myFile3>>str){ if(str[0]=='I'){ book.Insert2(); } else if(str[0]=='Q'){ book.Find2(); } else if(str[0]=='D'){ book.Delete2(); } } } return 0; }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值