64,651
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <conio.h>
#include "GlobalFun.h"
typedef std::list<Message> lsm;
using std::cout;
using std::cin;
void OpenFile(lsm & lsM)
{
using std::ifstream;
cout<<"默认文件名为sav.dat\n";
ifstream in;
in.open("sav.dat");
if(!in)
{
cout<<"无默认文件!\n";
}
else
{
Message tempm;
std::string temps;
int temp=in.get();
if(!in.eof())
{
in.putback(temp);
}
int count=0;
while(!in.eof())
{
count++;
in>>temps;
tempm.SetName(temps);
in>>temps;
tempm.SetPhone(temps);
lsM.push_back(tempm);
temp=in.get();
temp=in.get();
if(!in.eof())
{
in.putback(temp);
}
}
cout<<"读取完毕,共"<<count<<"条记录\n";
in.close();
}
}
void OpenFileS(lsm & lsM)
{
using std::cin;
using std::cout;
std::string temps;
cout<<"请输入文件名:";
cin>>temps;
std::ifstream in(temps);
if(!in)
{
cout<<"无该文件!\n";
}
else
{
Message tempm;
int temp=in.get();
if(!in.eof())
{
in.putback(temp);
}
int count=0;
while(!in.eof())
{
count++;
in>>temps;
tempm.SetName(temps);
in>>temps;
tempm.SetPhone(temps);
lsM.push_back(tempm);
temp=in.get();
temp=in.get();
if(!in.eof())
{
in.putback(temp);
}
}
cout<<"读取完毕,共"<<count<<"条记录\n";
in.close();
}
}
void SaveFile(lsm & lsM)
{
using std::ofstream;
cout<<"默认文件名为sav.dat\n";
ofstream out;
out.open("sav.dat",std::ios_base::out | std::ios_base::app);
Message tempm;
std::string temps;
int count=0;
lsm templ;
lsM.sort();
std::unique_copy(lsM.begin(),lsM.end(),std::back_inserter(templ));
for(lsm::const_iterator iter =templ.begin() ; iter!=templ.end() ; ++iter)
{
++count;
temps=iter->GetName();
out<<temps<<" ";
temps=iter->GetPhone();
out<<temps<<"\n";
}
cout<<"保存完毕,共"<<count<<"条记录\n";
out.close();
}
void SaveFileS(lsm & lsM)
{
using std::ofstream;
using std::cin;
using std::cout;
std::string temps;
cout<<"请输入文件名:";
cin>>temps;
ofstream out;
out.open(temps,std::ios_base::out | std::ios_base::app);
Message tempm;
int count=0;
lsm templ;
lsM.sort();
std::unique_copy(lsM.begin(),lsM.end(),std::back_inserter(templ));
for(lsm::const_iterator iter =templ.begin() ; iter!=templ.end() ; ++iter)
{
++count;
temps=iter->GetName();
out<<temps<<" ";
temps=iter->GetPhone();
out<<temps<<"\n";
}
cout<<"保存完毕,共"<<count<<"条记录\n";
out.close();
}
void InsertMessage(lsm & lsM)
{
using std::cout;
using std::cin;
std::string tempname,tempphone;
cout<<"请输入对方姓名:";
cin>>tempname;
cout<<"请输入对方的号码:";
cin>>tempphone;
Message tempm(tempname,tempphone);
lsM.push_back(tempm);
}
bool Find (lsm & lsM,Message & msg)
{
using std::cout;
cout<<"请输入查找方式(输入其他字符时返回)\n"
<<"a.按姓名查找\n"
<<"b.按电话查找\n";
char choice=getch();
std::string temps;
if('a'==choice)
{
PrintAll(lsM);
cout<<"请输入要删除的对象的姓名:";
cin>>temps;
lsm::const_iterator iter = lsM.begin();
for(; iter!=lsM.end() ; ++iter)
{
if(temps==iter->GetName())
{
break;
}
}
if(lsM.end()==iter)
{
cout<<"找不到相应的记录!\n";
return false;
}
else
{
msg=*iter;
return true;
}
}
else if('b'==choice)
{
PrintAll(lsM);
cout<<"请输入要删除的对象的电话:";
cin>>temps;
lsm::const_iterator iter = lsM.begin();
for(; iter!=lsM.end() ; ++iter)
{
if(temps==iter->GetPhone())
{
break;
}
}
if(lsM.end()==iter)
{
cout<<"找不到相应的记录!\n";
return false;
}
else
{
msg=*iter;
return true;
}
}
return false;
}
void EarseMessage(lsm & lsM)
{
Message temp;
if(Find(lsM,temp))
{
lsM.remove(temp);
}
}
void FindMessage(lsm & lsM)
{
Message temp;
Find(lsM,temp);
}
void PrintAll(lsm & lsM)
{
using std::cout;
if(lsM.empty())
{
cout<<"无任何记录!\n";
}
else
{
int count=0;
for(lsm::const_iterator iter = lsM.begin();iter != lsM.end() ; ++iter)
{
count++;
cout<<iter->GetName()<<"\t\t"<<iter->GetPhone()<<std::endl;
}
cout<<"共有"<<count<<"条记录\n";
}
}
#include <algorithm>
#include <iostream>
#include <functional>
#include <cstring>
using namespace std;
int main() {
char *Alphabet = "abcdefghijklmnopqrstuvwxyz" ;
char *Vowels = "aeiou" ;
char *AlphaNum = "0123456789abcdef" ;
char result[45] ;
char *last ;
int lenA = strlen(Alphabet) ;
int lenV = strlen(Vowels ) ;
int lenAN = strlen(AlphaNum) ;
cout << "Alphabet = " << Alphabet << endl ;
cout << "Vowels = " << Vowels << endl ;
cout << "AlphaNum = " << AlphaNum << endl ;
cout << "\nusing non-predicate versions" << endl ;
//non-predicate set_difference
last = set_difference(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result) ;
*last = 0 ;
cout << "set_difference(Alphabet, AlphaNum) = " << result << endl ;
//non-predicate set_intersection
last = set_intersection(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result) ;
*last = 0 ;
cout << "set_intersection(Alphabet, AlphaNum) = " << result << endl ;
//non-predicate set_symmetric_difference
last = set_symmetric_difference(Alphabet, Alphabet+lenA,
Vowels , Vowels +lenV,
result) ;
*last = 0 ;
cout << "set_symmetric_difference(Alphabet, Vowels) = " << result << endl ;
//non-predicate set_union
last = set_union(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result) ;
*last = 0 ;
cout << "set_union(Alphabet, AlphaNum) = " << result << endl ;
cout << "\nusing predicate versions" << endl ;
//predicate set_difference
last = set_difference(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result , less<char>()) ;
*last = 0 ;
cout << "set_difference(Alphabet, AlphaNum) = " << result << endl ;
//predicate set_intersection
last = set_intersection(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result , less<char>()) ;
*last = 0 ;
cout << "set_intersection(Alphabet, AlphaNum) = " << result << endl ;
//predicate set_symmetric_difference
last = set_symmetric_difference(Alphabet, Alphabet+lenA,
Vowels , Vowels +lenV,
result , less<char>()) ;
*last = 0 ;
cout << "set_symmetric_difference(Alphabet, Vowels) = " << result << endl ;
//predicate set_union
last = set_union(Alphabet, Alphabet+lenA,
AlphaNum, AlphaNum+lenAN,
result , less<char>()) ;
*last = 0 ;
cout << "set_union(Alphabet, AlphaNum) = " << result << endl ;
return 0 ;
}