用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...