一个简单的通讯录程序

  #include "info.h"
#include <vector>
#include <string>
#include <iostream>
#include <fstream>
#include "process.h"
#define DATAFILE "c://DATA.txt"

using namespace std;

vector<info> UserList;
info InfoInput;

info addinfo();
void pushlist();
int showinfo(const info &Info);
int showlist(const vector<info> &List);
int find(const int id);
int find(const string sinput);
int delinfo(int id);
void pushlist();
void welcome();//TO-DO
int savelist(const vector<info> &List);
ofstream& operator<<(ofstream &out,const vector<info> &List);





info addinfo(){

  info Info;
  Info.id=UserList.size()+1;
  cout<<"请输入要添加的姓名:"<<endl;
  cin>>Info.name;
  cout<<"请输入要添加的电话号码:"<<endl;
  cin>>Info.telno;
  cout<<"请输入要添加的地址:"<<endl;
  cin>>Info.address;
  UserList.push_back(Info);
  pushlist();
  return Info;
}


int showinfo(const info &Info){
 
  cout<<"*******************************"<<endl;
  cout<<"ID:"<<Info.id<<endl;
  cout<<"姓名:"<<Info.name<<endl;
  cout<<"电话:"<<Info.telno<<endl;
  cout<<"家庭住址:"<<Info.address<<endl;
  cout<<"*******************************"<<endl;
 
  return 0;
}

int showlist(const vector<info> &List){
    pushlist();
    for(vector<info>::const_iterator iter=List.begin();
        iter!=List.end();++iter){
    
            showinfo(*iter);
        
        }
  return 0;
}

int find(const int id){
    for(vector<info>::const_iterator iter=UserList.begin();
       iter!=UserList.end();++iter){
           if(id==iter->id){
             cout<<"查找结果:"<<endl;
             showinfo(*iter);
             return 0;
           }
       
       }
  cout<<"没有这个ID的信息"<<endl;   

  return -1;
}


int find(const string sinput){
    
    for(vector<info>::const_iterator iter=UserList.begin();
       iter!=UserList.end();++iter){
           if(sinput==iter->name||sinput==iter->telno||sinput==iter->address){
             cout<<"查找结果:"<<endl;
             showinfo(*iter);
             return 0;
           }
       
       }
  cout<<"没有找到相关信息"<<endl;   

  return -1;
}    
    

int whichfind(){
    string name;
      cout<<"输入要查找的用户姓名"<<endl;
    cin>>name;
    find(name);
   return 0;                
}
int delinfo(){
    int id;
      cout<<"请输入要删除的信息ID:"<<endl;
    cin>>id;

    for(vector<info>::iterator iter=UserList.begin();
       iter!=UserList.end();++iter){
           if(id==iter->id){
             UserList.erase(iter);
             cout<<"已删除ID为"<<id<<"的信息"<<endl;
             pushlist();

             return 0;
           }
       
       }
  cout<<"没有找到相应ID,删除失败!!!"<<endl;   

  return -1;
}

void pushlist(){
    int i=1;
    for(vector<info>::iterator iter=UserList.begin();
       iter!=UserList.end();++iter,++i){

          iter->id = i;
            
                 
       }
}

int savelist(const vector<info> &List){
 
     ofstream ofile(DATAFILE);
     ofile<<List;
     ofile.close;
  return 0;
 

}

ofstream& operator<<(ofstream &out,const vector<info> &List){
   
   for(vector<info>::const_iterator iter=List.begin();
       iter!=List.end();++iter){
           
           out<<iter->id<<endl;
           out<<iter->name<<endl;
           out<<iter->telno<<endl;
           out<<iter->address<<endl;
       }

 
   return out;
}
   
int getlist(){
    info Info;
    ifstream ifile(DATAFILE);

    while(!ifile.eof()){
        string temp;
            getline(ifile,temp,'/n');
            getline(ifile,Info.name,'/n');
              getline(ifile,Info.telno,'/n');
            getline(ifile,Info.address,'/n');
            UserList.push_back(Info);
           // cout<<"$$$$$$$$$$"<<endl;
    }
    
    ifile.close;
    pushlist();
   cout<<"共有"<<UserList.size()<<"条记录信息"<<endl;
   return 0;

}

void welcome(){
  cout<<"**************************************************************************/n/n"<<endl;
  cout<<"/t/t显示全部记录(S)/t/t查询记录(F)/n/n"<<endl;
  cout<<"/t/t添加记录(A)/t/t删除记录(D)/n/n"<<endl;
  cout<<"/t/t写入磁盘(W)/t/t退出(Q)/n/n"<<endl;
  cout<<"**************************************************************************/n"<<endl;
    

}


int main(){
  char ch;
 
 
  getlist();
 // cout<<"$$$$$$$$$$"<<UserList[0].id<<endl;
  while(1){
  system("cls");
  welcome();
 // cout<<"请输入命令:"<<endl;
  cin>>ch;
 
    
  switch (ch){
    case 'S':system("cls");showlist(UserList);break;
    case 's': system("cls");showlist(UserList);break;
    case 'F': system("cls");whichfind();break;
    case 'f': system("cls");whichfind();break;
    case 'a': system("cls");addinfo();break;
    case 'A': system("cls");addinfo();break;
    case 'W': system("cls");savelist(UserList);break;
     case 'w': system("cls");savelist(UserList);break;
    case 'D': system("cls");delinfo();break;
    case 'd': system("cls");delinfo();break;
    case 'Q':return 0;
    case 'q':return 0;
    default:cout<<"错误输入,请重新输入"<<endl;
  }  
 
 
  }

  return 0;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值