#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;
}
#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;
}