#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <cstdlib>
using namespace std;
class book
{
public:
book();
char inter_face();
void add_person();
void del_person();
void show_all();
void alter();
void select();
void save_new();
private:
string name;
string address;
string number;
string post;
string qq;
};
book::book()
{
name = "\0";
address = "\0";
number = "\0";
post = "\0";
qq = "\0";
}
//首页
char book::inter_face()
{
system("cls");
cout <<endl;
cout<<"\t\t=================================================" <<endl
<<"\t\t= =" <<endl
<<"\t\t= 通 迅 录 =" <<endl
<<"\t\t= =" <<endl
<<"\t\t= 1. 添加新联系人. 4. 修改信息. =" <<endl
<<"\t\t= =" <<endl
<<"\t\t= 2. 删除联系人. 5. 查询联系人. =" <<endl
<<"\t\t= =" <<endl
<<"\t\t= 3. 显示所有联系人. 6. 关闭通迅录. =" <<endl
<<"\t\t= =" <<endl
<<"\t\t=================================================" <<endl <<endl
<<"\t\t\t选择:" ;
char choose;
cin >>choose;
fflush(stdin);
return choose;
}
//1.
void book::add_person()
{
cout <<endl <<"根据下面提示输入新联系人信息" <<endl <<endl
<<"姓名:" ;
cin >>name;
fflush(stdin);
cout <<"电话: ";
cin >>number;
fflush(stdin);
cout <<"QQ : ";
cin >>qq;
fflush(stdin);
save_new();
cout <<endl <<endl <<"新联系人信息已经保存" <<endl <<endl;
system("pause");
}
//2.
void book::del_person()
{
ofstream outData("temp.txt", ios::out);
ifstream inData("pbook.txt", ios::in); //
if (!outData || !inData)
{
cout <<endl <<"对不起,找不到文件" <<endl;
system("pause");
return;
}
string sign;
cout <<endl <<"你要删除输入姓名:";
cin >>sign;
string str1;
bool flag = true;
string str;
while (inData >>name)
{
getline(inData, str);
if ((sign==name))
{
cout <<endl <<"你想删除的联系人:" <<endl <<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;
flag = false;
break;
}
outData <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;
}
if (flag)
{
cout <<endl <<"对不起,联系人中没你找的人" <<endl <<endl;
}
else
{
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();
inData.close();
ofstream out("pbook.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;
}
system("pause");
}
//3.
void book::show_all()
{
ifstream inData("pbook.txt",ios::in);
if (!inData)
{
cout <<endl <<"对不起,没有找到文件" <<endl;
system("pause");
return;
}
bool flag = true;
string record;
while (getline(inData, record))
{
if (flag)
{
cout <<endl <<"所有联系人信息如下: "<<endl;
}
cout <<record <<endl;
flag = false;
}
if (flag)
{
cout <<endl <<"你的通迅录中没有联系人" <<endl <<endl;
}
else
{
cout <<endl <<"所有联系人已经全部显示出来" <<endl <<endl;
}
system("pause");
}
//4.
void book::alter()
{
ofstream outData("temp.txt", ios::out);
ifstream inData("pbook.txt", ios::in); //
if (!outData || !inData)
{
cout <<endl <<"对不起,找不到文件" <<endl;
system("pause");
return;
}
string sign;
cout <<endl <<"你要修改输入姓名:";
cin >>sign;
string str1;
bool flag = true;
string str;
while (inData >>name)
{
getline(inData, str);
if ((sign==name))
{
cout <<endl <<"你想修改的联系人:" <<endl <<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;
cout <<endl <<"请根据下面提示修改信息: " <<endl;
cout <<"姓名 :" ;
cin >>name;
fflush(stdin);
cout <<"电话号:";
cin >>number;
fflush(stdin);
cout <<"QQ :";
cin >>qq;
fflush(stdin);
break;
}
outData <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;
}
if (flag)
{
cout <<endl <<"对不起,联系人中没你找的人" <<endl <<endl;
}
else
{
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();
inData.close();
ofstream out("pbook.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;
}
system("pause");
}
//5.
void book::select()
{
ifstream inData("pbook.txt",ios::in);
if (!inData)
{
cout <<endl <<"对不起,文件找不到" <<endl;
system("pause");
return;
}
string sign;
cout <<endl <<"输入你想查找的联系人的姓名: ";
cin >>sign;
fflush(stdin);
string str1;
bool flag = true;
string str;
while (inData >>name)
{
getline(inData, str);
if ((name==sign))
{
cout <<endl <<"你要查找的联系人是: " <<endl <<endl;
cout <<str1 <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name<<str <<endl;
flag = false;
system("pause");
break;
}
}
}
void book::save_new()
{
ofstream outData("pbook.txt", ios::app);
if (!outData)
{
cout <<endl <<"对不起,打开文件失败" <<endl <<endl;
system("pause");
return;
}
outData << setiosflags(ios::left) << setw(17) << name<<" " << setw(16) << number <<" "<< setw(18) << qq <<" "<<endl;
outData.close();
}
enum power{ADD = '1', DEL = '2', SHOW = '3', Alter = '4', Select = '5', END = '6'};
int main()
{
char choose;
book abj;
while (choose = abj.inter_face())
{
switch (choose)
{
case ADD:
abj.add_person();
break;
case DEL:
abj.del_person();
break;
case SHOW:
abj.show_all();
break;
case Alter:
abj.alter();
break;
case Select:
abj.select();
break;
case END:
cout <<endl <<"谢谢使用" <<endl <<endl;
exit(0);
break;
default:
break;
}
}
return 0;
}