[c]代码库//类实现
#include
#include
#include
#include
#include
#include
using namespace std;
//创建联系人类
class Tongxunlu
{
public:
string id;//编号
string name; //姓名
string sex; //性别
string call; //联系方式
string address; //通讯地址
string email;//邮箱地址
}
txl[50];
//创建管理类
class Guanli
{
public:
Tongxunlu txl[50];
public:
//联系人
void Tongxunluadd(); //添加联系人信息
void Tongxunlusearch(); //查询联系人信息
//管理
void searchsid(); //按编号查询信息
void searchname(); //按名字查询信息
void searchaddress(); //按通讯地址查询信息
void searchemail(); //按邮箱地址查询信息
void write(int n); //向文件中写入数据
int read(); //从文件中读数据
void alter(); //修改信息
void del(); //删除信息
void total(); //统计信息
void display(); //显示信息
};
//函数实现
// 向文件中写入数据具体代码
/*
void Guanli::write(int i)
{
std::fstream Tongxunlucourse;
Tongxunlucourse.open("Tongxunlu.txt",ios::app| ios::binary);
if(!Tongxunlucourse)
{
cout<
abort();
}
Tongxunlucourse<< txl[i];
Tongxunlucourse.close();
}
//从文件中读数据具体代码
int Guanli::read()
{
fstream Tongxunlucourse;
Tongxunlucourse.open("Tongxunlu.txt",ios::in|ios::binary);
if(!Tongxunlucourse)
{
cout<
abort();
}
int count=0,i=0;
while(Tongxunlucourse.peek()!= EOF)
{
Tongxunlucourse.read(reinterpret_cast(&txl[i]),sizeof(txl[i]));
cout<
i++;
count++;
}
Tongxunlucourse.close();
return count;
*/
int Guanli::read()
{
int top1 = 0;
system("cls");
ifstream inflie("Tongxunlu.txt", ios::in);
if (!inflie)
{
cout << "打开失败!" << endl;
//return;
}
int i = 0;
while (inflie >> txl[i].id >> txl[i].name >> txl[i].sex >> txl[i].call >> txl[i].address >> txl[i].email )
{
i++;
top1 = i;
}
return top1;
inflie.close();
}
void Guanli::write( int top1 )
{
ofstream outflie("Tongxunlu.txt", ios::out);
if (!outflie)
{
cout << "打开失败!" << endl;
return;
}
int i;
for (i = 0; i < top1; i++)
{
outflie << txl[i].id << "\t" << txl[i].name << "\t" << txl[i].sex << "\t" << txl[i].call << "\t" << txl[i].address << "\t" << txl[i].email << endl;
}
cout << "保存成功!" << endl;
outflie.close();
}
//联系人添加信息
void Guanli::Tongxunluadd()
{
int n=read();
int i=n+1;
char sign=0;
cout<
while(sign!='N')
{
loop:
cout<
cin>>txl[i].id;
cout<< endl;
int c=0;
while(c
{
c++;
if(txl[i].id==txl[c].id)
{
cout<
goto loop;
}
}
cout<
cin>>txl[i].name;
cout<
cout<
cin>>txl[i].sex;
cout<
cout<
cin>>txl[i].address;
cout<
cout<
cin>>txl[i].call;
cout<
cout<
cin>>txl[i].email;
cout<
cout<
cin>>sign; //输入判断
write(++i);
i++; //write(n+1);
}
}
//查询可联系人信息
void Guanli::Tongxunlusearch()
{
int n=read();
cout<
cout<
int c;
Guanli g;
cout<
cin>>c;
switch(c)
{
case 1:
g.searchsid();
break;
case 2:
g.searchname();
break;
case 3:
g.searchaddress();
break;
case 4:
g.searchemail();
break;
default:
cout<
}
g.write(n);
}
//按联系人编号查询
void Guanli::searchsid()
{
int n=read();
string s;
int i=0;
cout<
cout<
cin>>s;
while(txl[i].id!=s&&i
if(i==n)
{
cout<
}
else
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
//按联系人姓名查询
void Guanli::searchname()
{
int n=read();
string a;
cout<
cin>>a;
for(int i=0;i
if(txl[i].name==a)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
//按通讯地址查询
void Guanli::searchaddress()
{
int n=read();
string b;
cout<
cin>>b;
for(int i=0;i
if(txl[i].address==b)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
//按邮箱地址查询
void Guanli::searchemail()
{
int n=read();
string c;
cout<
cin>>c;
for(int i=0;i
if(txl[i].email==c)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
//修改联系人信息
void Guanli::alter()
{
int n=read();
string s;
int i=0;
cout<
cout<
cin>>s;
while(txl[i].id!=s&&i
{
i++; //查找判断
}
if(i==n)
{
cout<
}
else
{
cout<
cout<
<
<
cout<
cout<
cin>>txl[i].name;
cout<
cout<
cin>>txl[i].sex;
cout<
cout<
cin>>txl[i].address;
cout<
cout<
cin>>txl[i].call;
cout<
cout<
cin>>txl[i].email;
cout<
char c;
cout<
cin>>c;
if(c='y')
cout<
write(n);
}
}
//删除联系人信息
void Guanli::del()
{
int n=read();
string s;
int i=0,j;
cout<
cout<
cin>>s;
while(txl[i].id!=s&&i
{
i++; //查找判断
}
if(i==n)
{
cout<
}
else
{
for(j=i;j
{
txl[j].id=txl[j+1].id;
}
cout<
}
cout<
cout<
cout<
cout<
cout<
cout<
cout<
write(n-1);
}
//统计信息
void Guanli::total()
{
{
int n=read();
string c;
cout<
cin>>c;
for(int i=0;i
if(txl[i].name==c)
{
cout<
cout<
cout<
cout<
cout<
cout<
cout<
}
}
}
//显示联系人信息
void Guanli::display()
{
int n=read();
cout<
if(!txl)
cout<
else
{
for(int i=0;i
cout<
<
}
}
int main()
{
char choice;
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cout<
cin>>choice;
Guanli g;
if(choice=='0')
{
cout<
exit(0);
}
else if(choice=='1')
{
g.Tongxunluadd();
system("pause"); system("cls");
main();
}
else if(choice=='2')
{
g.Tongxunlusearch();
system("pause"); system("cls");
main();
}
else if(choice=='3')
{
g.display();
system("pause");system("cls");
main();
}
else if(choice=='4')
{
g.alter();
system("pause"); system("cls");
main();
}
else if(choice=='5')
{
g.del();
system("pause"); system("cls");
main();
}
else if(choice=='6')
{
g.total();
system("pause"); system("cls");
main();
}
else if(choice=='7')
{
g.display();
system("pause");system("cls");
main();
}
else
{
cout<
main();
}
return 0;
}