用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

通讯录

2020-01-06 作者:一璐有你举报

[c]代码库

//类实现
#include <iostream> 
#include <fstream> 
#include <stdlib.h> 
#include <string> 
#include <stdio.h> 
#include <string.h> 

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<<"该文件不能打开!"<<endl;
		abort();
	}
	Tongxunlucourse<< txl[i];
	Tongxunlucourse.close();
}
//从文件中读数据具体代码
int Guanli::read()
{
	fstream Tongxunlucourse;
	Tongxunlucourse.open("Tongxunlu.txt",ios::in|ios::binary);
	if(!Tongxunlucourse)
	{
		cout<<"该文件不能打开!"<<endl;
		abort();
	}
	int count=0,i=0;
	while(Tongxunlucourse.peek()!= EOF)
	{
		Tongxunlucourse.read(reinterpret_cast<char *>(&txl[i]),sizeof(txl[i]));
		cout<<endl;
		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<<endl<<"请输入增加联系人相关信息: "<<endl;
	while(sign!='N')
	{
loop:
	cout<<"编号:";
	cin>>txl[i].id;
	cout<< endl;
	int c=0;
	while(c<n)
	{
		c++;
		if(txl[i].id==txl[c].id)
		{
			cout<<"你输入的编号已经存在!请重新输入"<<endl;
			goto loop;
		}
	}
	cout<<"姓名:";
	cin>>txl[i].name;
	cout<<endl;
	cout<<"性别:";
	cin>>txl[i].sex;
	cout<<endl;
	cout<<"通讯地址:";
	cin>>txl[i].address;
	cout<<endl; 
	cout<<"联系方式:";
	cin>>txl[i].call;
	cout<<endl;
	cout<<"邮箱地址:";
	cin>>txl[i].email;
	cout<<endl;
	cout<<"提示:是否继续写入联系人信息?(Y/N)";
	cin>>sign; //输入判断
	write(++i);
	i++; //write(n+1);
	} 
}
  //查询可联系人信息
 
void Guanli::Tongxunlusearch()
{
	int n=read();
	cout<<" 1、根据编号查询 "<<  " 2、根据姓名查询 "<<" 3、根据通讯地址查询 "<<" 4、根据邮箱地址查询 "<<endl;
	cout<<endl;
	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<<"输入错误,请重新输入!"<<endl;
	}
	g.write(n);
}

//按联系人编号查询
  void Guanli::searchsid()
  {
	  int n=read();
	  string s;
	  int i=0;
	  cout<<endl<<"查找联系人信息:"<<endl;
	  cout<<"请输入需要查找联系人的编号:"<<endl;
	  cin>>s;
	  while(txl[i].id!=s&&i<n) i++; //查找判断
	  if(i==n)
	  {
		  cout<<"提示:对不起,无法找到该联系人的信息!"<<endl;
	  }
	  else 
	  {
		  cout<<"******************************"<<endl;
		 
		  cout<<"编号: "<<txl[i].id<<endl;
		  cout<<"姓名: "<<txl[i]. name<<endl;
		  cout<<"性别: "<<txl[i].sex<<endl;
		  cout<<"通讯地址: "<<txl[i].address<<endl;
		  cout<<"联系方式: "<<txl[i].call<<endl;
		  cout<<"邮箱地址: "<<txl[i].email<<endl;
	  }
  }
 //按联系人姓名查询
  void Guanli::searchname()
  {
	  int n=read();
	  string a;
	  cout<<"请输入需要查找联系人的姓名:"<<endl;
	  cin>>a;
	  for(int i=0;i<n;i++)
		  if(txl[i].name==a)
		  {
		  cout<<"******************************"<<endl;
		 
		  cout<<"编号: "<<txl[i].id<<endl;
		  cout<<"姓名: "<<txl[i]. name<<endl;
		  cout<<"性别: "<<txl[i].sex<<endl;
		  cout<<"通讯地址: "<<txl[i]. address<<endl;
		  cout<<"联系方式: "<<txl[i].call<<endl;
		  cout<<"邮箱地址: "<<txl[i].email<<endl;
		  }
  }

//按通讯地址查询
  void Guanli::searchaddress()
  {
	  int n=read();
	  string b;
	  cout<<"请输入需要查找的通讯地址:"<<endl;
	  cin>>b;
	  for(int i=0;i<n;i++)
		  if(txl[i].address==b)
		  {
		  cout<<"******************************"<<endl;
		  
		  cout<<"编号: "<<txl[i].id<<endl;
		  cout<<"姓名: "<<txl[i]. name<<endl;
		  cout<<"性别: "<<txl[i].sex<<endl;
		  cout<<"通讯地址: "<<txl[i]. address<<endl;
		  cout<<"联系方式: "<<txl[i].call<<endl;
		  cout<<"邮箱地址: "<<txl[i].email<<endl;
		  }
  }
 //按邮箱地址查询
  void Guanli::searchemail()
  {
	  int n=read();
	  string c;
	  cout<<"请输入需要查找的邮箱地址:"<<endl;
	  cin>>c;
	  for(int i=0;i<n;i++)
		  if(txl[i].email==c)
		  {
		  cout<<"******************************"<<endl;
		 
		  cout<<"编号: "<<txl[i].id<<endl;
		  cout<<"姓名: "<<txl[i]. name<<endl;
		  cout<<"性别: "<<txl[i].sex<<endl;
		  cout<<"通讯地址: "<<txl[i]. address<<endl;
		  cout<<"联系方式: "<<txl[i].call<<endl;
		  cout<<"邮箱地址: "<<txl[i].email<<endl;
		  }
  }
 //修改联系人信息
  void Guanli::alter()
  {
	  int n=read();
	  string s;
	  int i=0;
	  cout<<endl<<"修改联系人信息:"<<endl;
	  cout<<"请输入需要修改联系人的编号:"<<endl;
	  cin>>s;
	  while(txl[i].id!=s&&i<n)
	  {
		  i++; //查找判断
	  }
	  if(i==n)
	  {
		  cout<<"提示:对不起,无该联系人的信息!!!"<<endl; //输入失败信息
	  }
	  else
	  {
		  cout<<"该联系人的信息:"<<endl;
		  cout<<"编号"<<txl[i].id<<'\n'<<"姓名"<<txl[i].name<<'\n'<<"性别"<<txl[i].sex<<'\n'<<"通讯地址"
			  <<txl[i].address<<'\n'<<'\n'<<"联系方式"<<txl[i].call<<'\n'<<"邮箱地址"<<txl[i].email<<'\n'
			  <<'\n'<<endl;
		  cout<<"请重新输入该联系人的信息"<<endl;
		  cout<<"姓名:";
	      cin>>txl[i].name;
	      cout<<endl;
	      cout<<"性别:";
	      cin>>txl[i].sex;
	      cout<<endl; 
	      cout<<"通讯地址:";
	      cin>>txl[i].address;
	      cout<<endl; 
	      cout<<"联系方式:";
	      cin>>txl[i].call;
	      cout<<endl;
	      cout<<"邮箱地址:";
	      cin>>txl[i].email;
	      cout<<endl;
		  char c;  
		  cout<<"是否保存数据?(y/n)"<<endl; 
		  cin>>c;
		  if(c='y')
			  cout<<"修改成功!"<<endl;
		  write(n);
	  }
  }

 //删除联系人信息
  void Guanli::del()
  {
	  int n=read();
	  string s;
	  int i=0,j;
	  cout<<endl<<"删除联系人信息:"<<endl;
	  cout<<"请输入需要删除联系人的编号:"<<endl;
	  cin>>s;
	  while(txl[i].id!=s&&i<n)
	  {
		  i++; //查找判断
	  }
	  if(i==n)
	  {
		  cout<<"提示:记录为空!!!"<<endl; //返回失败信息 
	  }
	  else
	  {
		  for(j=i;j<n-1;j++) //删除操作
		  {
			  txl[j].id=txl[j+1].id;
		  }
		  cout<<"提示:已成功删除!"<<endl; //返回成功信息
	  }	 
	  cout<<"你要删除的信息如下:"<<endl;
	  cout<<"编号:"<<txl[i].id<<endl;
	  cout<<"姓名:"<<txl[i].name<<endl;
	  cout<<"性别:"<<txl[i].sex<<endl;
	  cout<<"通讯地址:"<<txl[i].address<<endl;
	  cout<<"联系方式:"<<txl[i].call<<endl;
	  cout<<"邮箱地址:"<<txl[i].email<<endl;
	  write(n-1);
  }
//统计信息
  void Guanli::total()
  {
	  {
		  int n=read();
		  string c;
		  cout<<"请输入需要查找的联系人名称:"<<endl;
		  cin>>c;
		  for(int i=0;i<n;i++)
			  if(txl[i].name==c)
			  {
				  cout<<"你要统计的信息如下:"<<endl;
				  cout<<"姓名:"<<txl[i].name<<endl;
				  cout<<"编号:"<<txl[i].id<<endl; 
				  cout<<"性别:"<<txl[i].sex<<endl; 
				  cout<<"通讯地址:"<<txl[i].address<<endl;
				  cout<<"联系方式:"<<txl[i].call<<endl; 
				  cout<<"邮箱地址:"<<txl[i].email<<endl; 
			  }
	  }
  }
 //显示联系人信息
  void Guanli::display() 
  {  
	  int n=read(); 
	  cout<<endl<<"显示全部联系人信息:"<<endl; 
	  if(!txl) 
		  cout<<"没有记录"<<endl;
	  else
	  {
		  for(int i=0;i<n;i++) //循环输入
		  cout<<"编号"<<txl[i].id<<'\n'<<"姓名"<<txl[i].name<<'\n'<<"性别"<<txl[i].sex<<'\n'<<"通讯地址"
		  <<txl[i].address<<'\n'<<"联系方式"<<txl[i].call<<'\n'<<"邮箱地址"<<txl[i].email<<'\n'<<endl; 
	  }
  }
int main()
{
	  char choice;
	  cout<<"\n\n\t\t============欢迎使用通讯录管理系统===========\n\n";
	  cout<<"\t\t ==============1、添加联系人记录============\n";
	  cout<<"\t\t ==============2、查询联系人信息============\n";
	  cout<<"\t\t ==============3、显示所有记录==============\n";
	  cout<<"\t\t ==============4、修改联系人信息============\n";
	  cout<<"\t\t ==============5、删除联系人信息============\n";
	  cout<<"\t\t ==============6、查询记录信息=============\n";
	  cout<<"\t\t ==============7、统计所有记录=============\n";
	  cout<<"\t\t ================0、退出系统=============\n";
	  cout<<"\t\t 请输入序号进行操作:"; 
	  cin>>choice;
	  Guanli g;  
	  
	  if(choice=='0') 
	  { 
		  cout<<"\n\t\t 谢谢您使用本系统!\n\n"<<endl; 
		  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<<"\t 输入错误,请重新输入您的选择:"; 
		  main(); 
	  } 
	  return 0;
  }


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。