|
//tel_book.h
#include<string>
#include<vector>
class tel_number
{
public:
string getname(void);
string get_tel_num(void);
void writename(string);
void write_tel_num(string);
private:
string _name;
string _tel_num;
};
void insert(void);
void del(void);
void deleteall(void);
void display(void);
//tel_book1.c
#include<string>
#include<vector>
#include<fstream>
#include"tel_book.h"
#include<algorithm>
#include<functional>
#include<iterator>
#include<stdio.h>
string tel_number::getname(void)
{return _name;};
string tel_number::get_tel_num(void)
{return _tel_num;};
void tel_number::writename(string name)
{_name=name;};
void tel_number::write_tel_num(string tel_num)
{_tel_num=tel_num;};
static vector<tel_number>* get_book(void)
{
ifstream infile("my_telephone_book");
string book_line;
string::size_type pos=0;
vector<tel_number>*plist=new vector<tel_number>;
tel_number current;
while(getline(infile,book_line))
{
pos=book_line.find_first_of(' ');
string::size_type pos1=book_line.size();
current.writename(book_line.substr(0,pos));
current.write_tel_num(book_line.substr(pos+1,pos1));
plist->push_back(current);
};
return plist;
};
void insert(void)
{
vector<tel_number>*plist=get_book();
int new_friend;
cout<<"How many new friend you want to add telebook?"<<endl;
cin>>new_friend;
vector<tel_number>*list=new vector<tel_number>(new_friend);
ofstream outfile("my_telephone_book");
if(!outfile)
{
cerr<<"Can't open the file!"<<endl;
exit(1);
}
vector<tel_number>::iterator iter=list->begin(),iter_end=list->end();
string name;
string tel_num;
for(;iter<iter_end;++iter)
{
cout<<"please input the new friend's name."<<endl;
cin>>name;
cout<<" lease input his(her) number."<<endl;
cin>>tel_num;
(*iter).writename(name);
(*iter).write_tel_num(tel_num);
cout<<" lease input the next friend"<<endl;
};
cout<<"Here are the new friends:"<<endl;
for(iter=list->begin();iter!=iter_end;iter++)
{
cout<<"name: "<<(*iter).getname()<<"\t\tnumber:\t"<<(*iter).get_tel_num()<<endl;
};
vector<tel_number>qlist;
copy(plist->begin(),plist->end(),back_inserter(qlist));
copy(list->begin(),list->end(),back_inserter(qlist));
vector<tel_number>::iterator qiter,qiter_end;
cout<<"\n\nHere are the all your frineds now:"<<endl;
for(qiter=qlist.begin(),qiter_end=qlist.end();qiter<qiter_end;++qiter)
{
cout<<"name: "<<(*qiter).getname()<<"\t\tnumber:\t"<<(*qiter).get_tel_num()<<endl;
outfile<<(*qiter).getname()<<" "<<(*qiter).get_tel_num()<<endl;
};
delete plist;
delete list;
};
void display(void)
{
cout<<"Here is your telephone book: "<<endl;
vector<tel_number>*list=get_book();
vector<tel_number>::iterator iter,iter_end;
for(iter=list->begin(),iter_end=list->end();iter<iter_end;++iter)
cout<<"name: "<<(*iter).getname()<<"\t\tnumber:\t"<<(*iter).get_tel_num()<<endl;
delete list;
}
void del()
{
vector<tel_number>*plist=get_book();
vector<tel_number>::iterator piter;
cout<<"Which one do yo want to delete? Tell me his(her) name."<<endl;
string name;
cin>>name;
vector<tel_number>qlist;
for(piter=plist->begin();piter!=plist->end();piter++)
{
if((*piter).getname().compare(name)==0)
{
copy(plist->begin(),piter,back_inserter(qlist));
copy(piter+1,plist->end(),back_inserter(qlist));
break;
};
};
cout<<"Now your telephone book is:"<<endl;
ofstream outfile("my_telephone_book");
for(piter=qlist.begin();piter!=qlist.end();piter++)
{
cout<<"name: "<<(*piter).getname()<<"\t\tnumber:\t"<<(*piter).get_tel_num()<<endl;
outfile<<(*piter).getname()<<" "<<(*piter).get_tel_num()<<endl;
};
delete plist;
};
void deleteall(void)
{
cout<<"You want to delete all the number in your book,don't you?(y/n)";
while(getchar()!='\n')
continue;
char i=getchar();
if(i=='y')
{
ofstream outfile("my_telephone_book");
cout<<"Now all your firends number have been lost!!!"<<endl;
}
else
cout<<"Bye"<<endl;
};
//tel_book.c
#include<iostream>
#include<string>
#include<stdio.h>
#include"tel_book.h"
int main(void)
{
cout<<"What do you want to do?\n";
cout<<"(1)insert a new friend telephone numbers (2)delete one's number\n";
cout<<"(3)list the telephone book (4)delete all numbers\n";
cout<<"(0)nothing to do\n";
int choice=0;
switch(choice=getchar())
{
case'1':
insert();
break;
case'2':
del();
break;
case'3':
display();
break;
case'4':
deleteall();
break;
case'0':
cout<<"Nothing you wang to do.\nThank you for your use!\n";
break;
default:
cout<<"wrong number you select.\n";
};
return 0;
}
blue |
|