#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
class communication
{
public:
int Menu();
void add();
void del();
void show();
void change();
void search();
void save();
private:
string name;
string telephone;
string qq;
string post;
string address;
string unit;
};
int communication::Menu() //首页
{
system("cls");
cout <<endl;
cout<<"\t===========作者:姜山 学院:信息工程 班级:计科0801 学号:13========"<<endl<<endl
<<"\t ============== 完成时间:2010年1月19日 ==============="<<endl<<endl
<<"\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆" <<endl
<<"\t\t " <<endl
<<"\t\t 通 信 录 " <<endl
<<"\t\t " <<endl
<<"\t\t ********** 1. 添加新联系人. ********** " <<endl
<<"\t\t ********** 2. 查询联系人. ********** " <<endl
<<"\t\t ********** 3. 修改信息. ********** " <<endl
<<"\t\t ********** 4. 删除联系人. ********** " <<endl
<<"\t\t ********** 5. 显示所有联系人. ********** " <<endl
<<"\t\t ********** 6. 关闭通迅录. ********** " <<endl
<<"\t\t " <<endl
<<"\t\t " <<endl
<<"\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆" <<endl <<endl
<<"\t======== 欢迎进入通讯录管理系统,请选择您要的操作(1-6) ========"<<endl
<<"\t" ;
int choice;
for(;;)
{cin >>choice;
if(choice<0||choice>6)
cout<<"选择错误!请重新选择您要的操作(1-6):"<<endl;
else break;
}
return choice;
}
void communication::add() //添加联系人
{int yn;
system("cls");
cout <<endl <<" 请输入联系人信息: "<<endl <<endl;
cout <<"姓名 :";cin >>name;
cout <<"电话 : ";cin >>telephone;
cout <<"QQ : ";cin >>qq;
cout <<"邮编 : ";cin >>post;
cout <<"住址 : ";cin >>address;
cout <<"单位 : ";cin >>unit;
cout <<" 是否保存该联系人?(1.是/0.否):";
cin >>yn;
if(yn==1)
{
save();
cout<<endl<<"该联系人的信息已成功保存!"<<endl<<endl;
}
else return;
cout <<" 继续添加联系人吗?(1.是/0.否):";
cin>>yn;
if(yn==1) add();
}
void communication::search() //查询联系人
{
ifstream inData("communication.txt",ios::in);
if (!inData)
{
cout <<endl <<"对不起,无法找到通讯录文件!" <<endl;
system("pause");
return;
}
string natel;
cout <<endl <<"输入您想查找的联系人的姓名或电话号码: ";
cin >>natel;
system("cls");
string str1;
bool flag = true;
string str;
while (inData >>name >>telephone)
{
getline(inData, str);
if ((name==natel) || (telephone==natel))
{ system("cls");
cout <<endl <<"您要查找的联系人是: " <<endl
<<"姓名\t 联系电话\t QQ\t 邮编\t 住址\t 工作单位"<<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(8) <<name
<<telephone <<str <<endl<<endl;
flag = false;
system("pause");
break;
}
}
if(flag)
{
cout<<endl<<"通讯录中没有您要查询的联系人!"<<endl<<endl;
system("pause");
}
}
void communication::change() //修改信息
{int yn;
ofstream outData("temp.txt", ios::out);
ifstream inData("communication.txt", ios::in);
if (!outData || !inData)
{
cout <<endl <<"对不起,无法找到通讯录文件!" <<endl;
system("pause");
return;
}
string natel;
cout <<endl <<"请输入您要修改的姓名或电话号码 :";
cin >>natel;
string str1;
bool flag = true;
string str;
while (inData >>name >>telephone)
{
getline(inData, str);
system("cls");
if ((natel==name) || (natel==telephone))
{
cout <<endl <<"您想要修改的联系人:" <<endl
<<"姓名\t 联系电话\t QQ\t 邮编\t 住址\t 工作单位"<<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(8) <<name
<<" " <<telephone <<str <<endl;
cout <<endl <<"请根据下面提示修改信息 : " <<endl;
cout <<"姓名 :";cin >>name;
cout <<"电话 :";cin >>telephone;
cout <<"QQ :";cin >>qq;
cout <<"邮编 :";cin >>post;
cout <<"住址 :";cin >>address;
cout <<"单位 :";cin >>unit;
save();flag = false;break;
}
outData <<setiosflags(ios::left) <<setw(8) <<name
<<" " <<telephone <<str <<endl;
}
if (flag)
{
cout <<endl <<"对不起,通讯录中没有您要找的联系人!" <<endl <<endl;
}
else
{
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();
inData.close();
ofstream out("communication.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout <<endl <<"对不起,无法打开通讯录文件!" <<endl <<endl;
system("pause");
return;
}
while (getline(in, str))
{
out <<str <<endl;
}
out.close();
in.close();
cout <<endl <<"该联系人的个人信息已经在您的通迅录中修改!" <<endl <<endl;
}
cout <<" 继续修改联系人吗? (1.是/0.否):";
cin>>yn;
if(yn==1) change();
return;
system("pause");
}
void communication::del() //删除联系人
{int yn;
ofstream outData("temp.txt", ios::out);
ifstream inData("communication.txt", ios::in);
if (!outData || !inData)
{
cout <<endl <<"对不起,无法找到通讯录文件!" <<endl;
system("pause");
return;
}
string natel;
cout <<endl <<"输入您要删除姓名或电话号 :";
cin >>natel;
string str1;
bool flag = true;
string str;
while (inData >>name >>telephone)
{system("cls");
getline(inData, str);
if ((natel==name) || (natel==telephone))
{
cout <<endl <<"您想删除的联系人:" <<endl
<<"姓名\t 联系电话\t QQ\t 邮编\t 住址\t 工作单位"<<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(8) <<name
<<" " <<telephone <<str <<endl;
flag = false;
break;
}
outData <<setiosflags(ios::left) <<setw(8) <<name
<<" " <<telephone <<str <<endl;
}
if (flag)
{
system("cls");
cout <<endl <<"对不起,通讯录中没您要找的人!" <<endl <<endl;
}
else
{
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();
inData.close();
ofstream out("communication.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout <<endl <<"对不起,打开文件失败!" <<endl <<endl;
system("pause");
return;
}
while (getline(in, str))
{
out <<str <<endl;
}
out.close();
in.close();
cout <<endl <<"该联系人的信息已经从您的通迅录中删除!" <<endl <<endl;
}
cout <<" 继续删除联系人吗? (1.是/0.否):";
cin>>yn;
if(yn==1) del();
return;
system("pause");
}
void communication::show() //显示所有联系人
{
ifstream inData("communication.txt",ios::in);
if (!inData)
{
cout <<endl <<"对�