#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
class date{
public:
int year;
int month;
int day;
date(int y,int m,int d){year=y,month=m,day=d;}
date(){}
int getyear(){return year;}
int getmonth(){return month;}
int getday(){return day;}
friend ostream&operator<<(ostream&os,const date&t);
friend istream&operator>>(istream&is, date&t);
};
ostream &operator<<(ostream&os,const date&t)
{
os<<t.day<<" "<<t.month<<" "<<t.day;
return os;
}
istream&operator>>(istream&is,date&t)
{is>>t.year>>t.month>>t.day;
return is;
}
class taocan{
double jine;//一月需要多少钱
double liuliang;//一月送多少流量
int duanxin;//一月免费多少短信
double dianhua;//一月免费多长时间
double sliuliang;//一月剩余多少流量
int sduanxin;//一月剩余多少短信
double sdianhua;//一月剩余多长时间
double fei1;//超出套餐后每条短信费用
double fei2;//超出套餐后每分钟电话费用
double fei3;//超出套餐后每兆流量费用
public:
taocan(double j,double ll,int dx,double dh,double lll,int dxx,double dhh,double f1,double f2, double f3){jine=j,liuliang=ll,duanxin=dx,dianhua=dh,sliuliang=lll,sduanxin=dxx,sdianhua=dhh,fei1=f1,fei2=f2,fei3=f3;}
taocan(){}
double getjine(){return jine;}
double getliuliang(){return liuliang;}
int getduanxin(){ return duanxin;}
double getdianhua(){ return dianhua;}
void setjine(double m){jine=m;}
void setliuliang(double ll){liuliang=ll;}
void setduanxin(int d){duanxin=d;}
void setdianhua(double h){dianhua=h;}
double getsliuliang(){return sliuliang;}
int getsduanxin(){ return sduanxin;}
double getsdianhua(){ return sdianhua;}
void setsliuliang(double lll){liuliang=lll;}
void setsduanxin(int dd){duanxin=dd;}
void setsdianhua(double hh){dianhua=hh;}
double getfei1(){return fei1;}
double getfei2(){return fei2;}
double getfei3(){return fei3;}
void setfei1(double q){fei1=q;}
void setfei2(double w){fei1=w;}
void setfei3(double a){fei1=a;}
friend ostream&operator<<(ostream&os,const taocan&t);
friend istream&operator>>(istream&is,taocan&t);
};
ostream &operator<<(ostream&os,const taocan&t)
{
os<<t.jine<<" "<<t.liuliang<<" "<<t.duanxin<<" "<<t.dianhua<<" "<<t.sliuliang<<" "<<t.sduanxin<<" "<<t.sdianhua<<" "<<t.fei1<<" "<<t.fei2<<" "<<t.fei3;
return os;
}
istream&operator>>(istream&is,taocan&t)
{is>>t.jine>>t.liuliang>>t.duanxin>>t.dianhua>>t.sliuliang>>t.sduanxin>>t.sdianhua>>t.fei1>>t.fei2>>t.fei3;
return is;
}
/*int main()
{
taocan t(18,100,100,100,100,100,100,0.1,0.1,0.1);
//cin>>t;
double p;
p=t.getliuliang();
cout<<p<<endl;
p=(double)t.getduanxin();
cout<<p<<endl;
p=t.getdianhua();
cout<<p<<endl;
p=t.getjine();
cout<<p<<endl;
}*/
class user{
public:
string name;
string ID;
double jine;
double yue;
taocan f;//套餐种类
int dmessage;//超出套餐短信
double dliuliang;//超出套餐流量
double ddianhua;//超出套餐电话
//public:
user(string na,string id,double j,double y,taocan c,int m,double l,double d){name=na,ID=id,jine=j,yue=y,f=c,dmessage=m,dliuliang=l,ddianhua=d;}
user(){}
string getname(){return name;}
string getID(){return ID;}
double getjine(){return jine;}
double getyue(){return yue;}
taocan gettaocan(){return f;}
int getmessage(){return dmessage;}
double getliuliang(){return dliuliang;}
double getdianhua(){return ddianhua;}
void setname(string n){name=n;}
void setID(string i){ID=i;}
void setjine(double ji){jine=ji;}
void setyue(double yu){yue=yu;}
void settaocan(taocan tc){f=tc;}
void setmessage(int me){ dmessage=me;}
void setliuliang(double li){dliuliang=li;}
void setdianhua(double di){ddianhua=di;}
friend ostream&operator<<(ostream&os,const user&u);
friend istream&operator>>(istream&is,user&u);
};
ostream &operator<<(ostream&os,const user&u)
{
os<<u.name<<" "<<u.ID<<" "<<u.jine<<" "<<u.yue<<" "<<u.f<<" "<<u.dmessage<<" "<<u.dliuliang<<" "<<u.ddianhua;
return os;
}
istream&operator>>(istream&is,user&u)
{is>>u.name>>u.ID>>u.jine>>u.yue>>u.f>>u.dmessage>>u.dliuliang>>u.ddianhua;
return is;
}
/*int main(){
user u1;
cin>>u1;//输入zhangaimin,18864805175,50,32,18 0 0 0 0 0 0 0 0 0,0,0,0
cout<<u1.getname()<<endl;
cout<<u1.gettaocan()<<endl;
}*/
class userop{
public:
user u1;
vector<taocan>t;
vector<taocan>::iterator t1;
userop(user u1){this->u1=u1,load(),menu();}
//userop(){load();}
~userop(){save2();}
void load();
//void save1();
void save2();
void menu();
taocan taocanchange();//套餐选择
void jiaofei();
void yuechaxun();
void dadianhua();
void faduanxin();
void shangwang();
void feiyongxiangdan();
void taocanchaxun();
};
void userop::load(){
taocan tc;
//int i;
ifstream infile("D:\\taocan.txt",ios::in);
if(!infile)
return ;
t.clear();
// i=0;
while(infile>>tc){//cout<<tc<<endl;
t.push_back(tc);
// i++;
}
infile.close();
}
/*void userop::save1(){
ofstream outfile("D:\\taocan.txt",ios::out);
if(!outfile)
return ;
for(t1=t.begin();t1!=t.end();t1++)
{
outfile<<*t1<<endl;
}
outfile.close();
}*/
void userop::save2(){
vector<user>u;
vector<user>::iterator uit;
user u2;
ifstream infile("D:\\user.txt",ios::in);
if(!infile)
return;
u.clear();
while(infile>>u2)
{
if(u1.getID()==u2.getID()){u.push_back(u1);}
else u.push_back(u2);
}
infile.close();
ofstream outfile("D:\\user.txt",ios::out);
if(!outfile)
return ;
for(uit=u.begin();uit!=u.end();uit++)
{
outfile<<*uit<<endl;
}
outfile.close();
}
taocan userop::taocanchange(){//system("pause");
//system("cls");
date d1;
cout<<"请输入当前日期"<<endl;
cin>>d1;
if(d1.getday()!=1){cout<<"不是月初无法选择套餐"<<endl;system("pause");system("cls");menu();}
else{
int i,m,l,k;
m=t.size();
for(i=0;i<m;i++)
{
k=i+1;
cout<<k<<" "<<t[i]<<endl;}
cout<<"请根据上述套餐输入你想选择的套餐按-1结束"<<endl;
while(cin>>l&&l!=-1)
{
if((l-1)>=m)
{cout<<"error"<<endl;}
else
{
u1.setyue(u1.getyue()+u1.gettaocan().getjine());
u1.settaocan(t[l-1]);
u1.setyue(u1.getyue()-u1.gettaocan().getjine());
cout<<"设置成功"<<endl;
cout<<"请继续输入或按-1结束"<<endl;
}
}
system("cls");
menu();
}}
void userop::jiaofei(){ //system("cls");
double fei;
cout<<"请输入需要交的费用输入-1结束"<<endl;
//cin>>fei;
//if(fei!=-1)
while(cin>>fei&&fei!=-1)
{
u1.setyue(u1.getyue()+fei);
cout<<"缴费成功请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}
void userop::yuechaxun(){ //system("cls");
cout<<"您的余额为"<<endl;
cout<<u1.getyue()<<endl;
//break;//youyiwen
system("pause");
system("cls");
menu();
}
void userop::dadianhua(){ //system("cls");
double k;
//string l;
if(u1.getyue()<=0)
{cout<<"已停机"<<endl;system("pause");system("cls");menu();}
else{
cout<<"请输入你打电话的时长输入-1结束"<<endl;
//cin>>k;
//if(k!=-1)
while(cin>>k&&(int)k!=-1)
{
if(k>u1.gettaocan().getsdianhua())
{u1.setyue(u1.yue-(k-u1.gettaocan().getsdianhua())*u1.gettaocan().getfei2());
u1.gettaocan().setsdianhua(0); u1.setdianhua(k-u1.gettaocan().getsdianhua());
}
else {u1.gettaocan().setsdianhua(u1.gettaocan().getsdianhua()-k);}
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}}
void userop::shangwang(){ //system("cls");
double k;
if(u1.getyue()<=0)
{cout<<"已停机"<<endl;system("pause");system("cls");menu();}
else{
cout<<"请输入你上网用的时长输入-1结束"<<endl;
// cin>>k;
//if(k!=-1)
while(cin>>k&&(int)k!=-1)
{
if(k>u1.gettaocan().getsliuliang())
{u1.setyue(u1.yue-(k-u1.gettaocan().getsliuliang())*u1.gettaocan().getfei3());
u1.gettaocan().setsliuliang(0); u1.setliuliang(k-u1.gettaocan().getsliuliang());
}
else {u1.gettaocan().setsliuliang(u1.gettaocan().getsliuliang()-k);}
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}}
void userop::faduanxin(){ //system("cls");
int k;
//string l;
if(u1.getyue()<=0)
{cout<<"已停机"<<endl;system("pause");system("cls");menu();}
else{
cout<<"请输入你发送短信的数量输入-1结束"<<endl;
while(cin>>k&&k!=-1)//cin>>k;
//if(k!=-1)
{
if(k>u1.gettaocan().getsduanxin())
{u1.setyue(u1.yue-(double)((k-u1.gettaocan().getsduanxin())*u1.gettaocan().getfei1()));
u1.gettaocan().setsduanxin(0);
u1.setmessage(k-u1.gettaocan().getsduanxin());}
else {u1.gettaocan().setsduanxin(u1.gettaocan().getsduanxin()-k);}
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}}
void userop::taocanchaxun(){
cout<<"您的套餐为:"<<endl;
cout<<"套餐金额"<<u1.gettaocan().getjine()<<endl;
cout<<"套餐流量"<<u1.gettaocan().getliuliang()<<endl;
cout<<"套餐短信"<<u1.gettaocan().getduanxin()<<endl;
cout<<"套餐电话"<<u1.gettaocan().getdianhua()<<endl;
cout<<"超出套餐后每兆流量费用为"<<u1.gettaocan().getfei2()<<endl;
cout<<"超出套餐后每条短信费用为"<<u1.gettaocan().getfei1()<<endl;
cout<<"超出套餐后每分钟话费为"<<u1.gettaocan().getfei3()<<endl;
system("pause");
system("cls");
menu();
}
void userop::feiyongxiangdan(){
double i;
i=u1.gettaocan().getjine()+(double)u1.getmessage()+u1.getliuliang()+u1.getliuliang(); //system("cls");
cout<<"月初时金额"<<" "<<u1.getjine()<<endl;
cout<<"余额"<<" "<<u1.getyue()<<endl;
cout<<"本月花费"<<" "<<i<<endl;
cout<<"套餐费用"<<" "<<u1.gettaocan().getjine()<<endl;
cout<<"本月充值"<<" "<<u1.getyue()-(u1.getjine()-i)<<endl;
cout<<"套餐外短信费用"<<" "<<u1.getmessage()<<endl;
cout<<"套餐外上网费用"<<" "<<u1.getliuliang()<<endl;
cout<<"套餐外电话费用"<<" "<<u1.getliuliang()<<endl;
system("pause");
system("cls");
menu();
}
void userop::menu(){
system("cls");
cout<<"**************************************************"<<endl;
cout<<"**********Welcom to the system!!!!****************"<<endl;
cout<<"****1, 套餐选择***************"<<endl;
cout<<"****2, 手机缴费***************"<<endl;
cout<<"****3, 电话模拟***************"<<endl;
cout<<"****4, 短信模拟***************"<<endl;
cout<<"****5, 上网模拟***************"<<endl;
cout<<"****6, 余额查询***************"<<endl;
cout<<"****7, 详单查询***************"<<endl;
cout<<"****8, 套餐查询***************"<<endl;
cout<<"**************************************************"<<endl;
cout<<"请输入您的选择按-1结束"<<endl;
int choose;
cin>>choose;
if(choose!=-1)
{
switch(choose)
{case 1:
taocanchange();
break;
case 2:
jiaofei();
break;
case 3:
dadianhua();
break;
case 4:
faduanxin();
break;
case 5:
shangwang();
break;
case 6:
yuechaxun();
break;
case 7:
feiyongxiangdan();
break;
case 8:
taocanchaxun();
break;
}
}//system("pause");
}
/*int main(){
user u1;//(zhangaimin 18864805175 50 50 0 0 0 0 0 0 0 0 0 0 0 0 0);//..输入zz,18864805175,32,18 500 100 100 500 100 100 0.1 0.1 0.1,0,0,0
cin>>u1;
userop uo(u1);
}*/
class SA{
public:
vector<user>u;
vector<user>::iterator uit;
multimap<string,int>m1;//按电话号码查找人
multimap<string,int>::iterator mit1;
multimap<string,int>m2;//按姓名查找人
multimap<string,int>::iterator mit2;
vector<taocan>t;
vector<taocan>::iterator t1;
SA(){load1(),load2(),menu();}
~SA(){save1(),save2();}
void load1();
void load2();
void save1();
void save2();
void adduser();
void deleteuser();
void chazhaoyonghubyID();
void chazhaoyonghubyname();
void xiugaiuser();
void addtaocan();
void deletetaocan();
void chazhaotaocan();
void xiugaitaocan();
void zifeibiaozhun();
void menu();
};
void SA::load1(){
user u2;int i;
ifstream infile("D:\\user.txt",ios::in);
if(!infile)
return;
u.clear();
m1.clear();
m2.clear();
i=0;
while(infile>>u2)
{
u.push_back(u2);
m1.insert(make_pair(u2.getID(),i));
m2.insert(make_pair(u2.getname(),i));
i++;
}
infile.close();
}
void SA::save1(){
ofstream outfile("D:\\user.txt",ios::out);
if(!outfile)
return ;
for(uit=u.begin();uit!=u.end();uit++)
{
outfile<<*uit<<endl;
}
outfile.close();
}
void SA::load2(){
taocan tc;//int i;
ifstream infile("D:\\taocan.txt",ios::in);
if(!infile)
return;
t.clear();
// m2.clear();
//i=0;
while(infile>>tc)
{
t.push_back(tc);
}
infile.close();
}
void SA::save2(){
ofstream outfile("D:\\taocan.txt",ios::out);
if(!outfile)
return ;
for(t1=t.begin();t1!=t.end();t1++)
{
outfile<<*t1<<endl;
}
outfile.close();
}
void SA::adduser(){
cout<<"请输入姓名,号码,已有话费输入-1结束"<<endl;
taocan f(0,0,0,0,0,0,0,0.1,0.1,0.1);
string na;
string number;double hf;
while(cin>>na&&na!="-1")
{cin>>number>>hf;
user u1(na,number,hf,hf-f.getjine(),f,0,0,0);
u.push_back(u1);
m1.insert(make_pair(u1.getID(),u.size()-1));
m2.insert(make_pair(u1.getname(),u.size()-1));
cout<<"增加成功请继续添加或按-1结束"<<endl;}
system("cls");
menu();
}
void SA::deleteuser(){
cout<<"请输入你要删除的帐号号码按-1结束"<<endl;
string number,s;
while(cin>>number&&number!="-1")
{int i;
mit1=m1.find(number);
i=mit1->second;s=u[mit1->second].getname();
if(mit1==m1.end()){cout<<"输入错误"<<endl;}
else {u.erase(u.begin()+i);
m1.erase(m1.find(number));
m2.erase(m2.find(s));
cout<<"删除成功请继续输入或按-1结束"<<endl;
}
}system("cls");
menu();
}
void SA::chazhaoyonghubyID(){
cout<<"请输入您需要查找的账户号码并按-1结束"<<endl;
string number;
while(cin>>number&&number!="-1"){
mit1=m1.find(number);
if(mit1==m1.end()){cout<<"你输入的号码没有"<<endl;}
else
{ cout<<"该账户的所有信息"<<endl;
cout<<"用户姓名为"<<u[mit1->second].getname()<<endl;
cout<<"用户号码为"<<u[mit1->second].getID()<<endl;
cout<<"用户月初金额为"<<u[mit1->second].getjine()<<endl;
cout<<"用户余额为"<<u[mit1->second].getyue()<<endl;
cout<<"用户套餐金额为"<<u[mit1->second].gettaocan().getjine()<<endl;
cout<<"用户套餐流量为"<<u[mit1->second].gettaocan().getliuliang()<<endl;
cout<<"用户套餐短信为"<<u[mit1->second].gettaocan().getduanxin()<<endl;
cout<<"用户套餐电话为"<<u[mit1->second].gettaocan().getdianhua()<<endl;
cout<<"用户剩余流量为"<<u[mit1->second].gettaocan().getsliuliang()<<endl;
cout<<"用户剩余短信为"<<u[mit1->second].gettaocan().getsduanxin()<<endl;
cout<<"用户剩余电话为"<<u[mit1->second].gettaocan().getsdianhua()<<endl;
cout<<"用户超出套餐每条短信费用为"<<u[mit1->second].gettaocan().getfei1()<<endl;
cout<<"用户超出套餐每兆流量费用为"<<u[mit1->second].gettaocan().getfei3()<<endl;
cout<<"用户超出套餐每分钟电话费用为"<<u[mit1->second].gettaocan().getfei2()<<endl;
cout<<"用户超套餐流量为"<<u[mit1->second].getliuliang()<<endl;
cout<<"用户超套餐短信为"<<u[mit1->second].getmessage()<<endl;
cout<<"用户超套餐电话为"<<u[mit1->second].getdianhua()<<endl;
cout<<"请继续输入或按-1结束"<<endl;}
}system("cls");
menu();
}
void SA::chazhaoyonghubyname(){
cout<<"请输入你要查找的账户姓名并按-1结束"<<endl;
string name;
multimap<string,int>::iterator mb,me;
while(cin>>name&&name!="-1")
{
mb=m2.lower_bound(name);
me=m2.upper_bound(name);
if(mb==me){cout<<"您输入的姓名有误请重输"<<endl;}
else {for(mit2=mb;mit2!=me;mit2++)
{
cout<<"用户姓名为"<<u[mit2->second].getname()<<endl;
cout<<"用户号码为"<<u[mit2->second].getID()<<endl;
cout<<"用户月初金额为"<<u[mit2->second].getjine()<<endl;
cout<<"用户余额为"<<u[mit2->second].getyue()<<endl;
cout<<"用户套餐金额为"<<u[mit2->second].gettaocan().getjine()<<endl;
cout<<"用户套餐流量为"<<u[mit2->second].gettaocan().getliuliang()<<endl;
cout<<"用户套餐短信为"<<u[mit2->second].gettaocan().getduanxin()<<endl;
cout<<"用户套餐电话为"<<u[mit2->second].gettaocan().getdianhua()<<endl;
cout<<"用户剩余流量为"<<u[mit2->second].gettaocan().getsliuliang()<<endl;
cout<<"用户剩余短信为"<<u[mit2->second].gettaocan().getsduanxin()<<endl;
cout<<"用户剩余电话为"<<u[mit2->second].gettaocan().getsdianhua()<<endl;
cout<<"用户超出套餐每条短信费用为"<<u[mit2->second].gettaocan().getfei1()<<endl;
cout<<"用户超出套餐每兆流量费用为"<<u[mit2->second].gettaocan().getfei3()<<endl;
cout<<"用户超出套餐每分钟电话费用为"<<u[mit2->second].gettaocan().getfei2()<<endl;
cout<<"用户超套餐流量为"<<u[mit2->second].getliuliang()<<endl;
cout<<"用户超套餐短信为"<<u[mit2->second].getmessage()<<endl;
cout<<"用户超套餐电话为"<<u[mit2->second].getdianhua()<<endl;
}
cout<<"上述为该用户的所有账号"<<endl;
}
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}
void SA::xiugaiuser(){
int i;
cout<<"请输入您要修改的账户号码并按-1结束"<<endl;
string number;
// while(cin>>number&&number!="-1"){
cin>>number;if(number!="-1"){
mit1=m1.find(number);
i=mit1->second;
if(mit1==m1.end()){cout<<"你输入的号码没有"<<endl;}
else{
cout<<"********子菜单**********"<<endl;
cout<<"1, 修改姓名"<<endl;
cout<<"2, 修改金额"<<endl;
cout<<"3, 修改余额"<<endl;
cout<<"4, 修改套餐"<<endl;
cout<<"5, 修改超出套餐流量"<<endl;
cout<<"6, 修改超出套餐短信"<<endl;
cout<<"7, 修改超出套餐电话"<<endl;
cout<<"************************"<<endl;
cout<<"请输入您的选择,并按-1结束"<<endl;
int choose;
while(cin>>choose&&choose!=-1)
{
switch(choose)
{
case 1:
{cout<<"请输入你要修改后的姓名"<<endl;
string name;
cin>>name;
u[i].setname(name);
cout<<"设置成功请继续输入您的选择或按-1结束结束此菜单"<<endl;}
break;
case 2:
{cout<<"请输入你要修改的金额"<<endl;
int jine;
cin>>jine;
u[i].setjine(jine);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}
break;
case 3:
{cout<<"请输入您要修改的余额"<<endl;
double yue;
cin>>yue;
u[i].setyue(yue);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}
break;
case 4:
{ int j,m,l,k;
m=t.size();
for(j=0;j<m;j++)
{k=j+1;
cout<<k<<" "<<t[j]<<endl;}
cout<<"请根据上述套餐输入你想修改的套餐"<<endl;
cin>>l;
if(l>m)
{cout<<"error"<<endl;}
else
{u[i].settaocan(t[l-1]);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}}
break;
case 5:
{cout<<"请输入您要修改的超出套餐的流量"<<endl;
int d1;
cin>>d1;
u[i].setliuliang(d1);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}
break;
case 6:
{ cout<<"请输入您要修改的超出套餐的短信"<<endl;
int dm;
cin>>dm;
u[i].setmessage(dm);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}
break;
case 7:
{cout<<"请输入您要修改的超出套餐的电话"<<endl;
int da;
cin>>da;
u[i].setdianhua(da);
cout<<"设置成功请继续输入您的选择或按-1结束此菜单"<<endl;}
break;
}
}
}
}system("cls");
menu();
}
void SA::addtaocan(){
cout<<"请输入您要增加的套餐的金额与套餐流量,套餐短信,套餐电话,与套餐外每分钟电话费用,每兆流量费用,每条短信费用按-1结束"<<endl;
int jine;
double liuliang;
int duanxin;
double dianhua;
double fei1;
double fei2;
double fei3;
while(cin>>jine&&jine!=-1)
{
cin>>liuliang>>duanxin>>dianhua>>fei1>>fei2>>fei3;
taocan tc(jine,liuliang,duanxin,dianhua,liuliang,duanxin,dianhua,fei3,fei1,fei2);
t.push_back(tc);
cout<<"增加成功请继续输入或按-1结束"<<endl;
}system("cls");
menu();
}
void SA::deletetaocan(){
int j,m,l,k;
// double e,r;
m=t.size();
for(j=0;j<m;j++)
{k=j+1;
cout<<k<<" "<<t[j]<<endl;}
cout<<"请根据上述套餐输入你想删除的套餐按-1结束"<<endl;
while(cin>>l&&l!=-1){
if((l-1)>=m)
{cout<<"error"<<endl;}
else
{
t.erase(t.begin()+l-1);
// m1.erase(m1.find(number));
cout<<"删除成功"<<endl;}
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}
void SA::chazhaotaocan(){
int j,m,k;
// double e,r;
m=t.size();
for(j=0;j<m;j++)
{k=j+1;
cout<<"第"<<k<<"种套餐"<<" "<<"套餐金额"<<" "<<t[j].getjine()<<" "<<"套餐流量"<<" "<<t[j].getliuliang()<<" "<<"套餐短信"<<" "<<t[j].getduanxin()<<" "<<"套餐电话"<<" "<<t[j].getdianhua()<<" "<<"超出套餐后每条短信美兆流量每分钟电话各自费用"<<" "<<t[j].getfei1()<<" "<<t[j].getfei3()<<" "<<t[j].getfei2()<<endl;}
system("pause");
system("cls");
menu();
}
void SA::xiugaitaocan(){
int j,m,l,q,k;
m=t.size();
for(j=0;j<m;j++)
{
k=j+1;
cout<<k<<" "<<t[j]<<endl;
}
cout<<"请根据上述套餐输入你想修改的套餐按-1结束"<<endl;
while(cin>>l&&l!=-1)
{int jine;
double liuliang;
int duanxin;
double dianhua;
double fei1;
double fei2;
double fei3;
cout<<"请输入你要修改的结果"<<endl;
cout<<"套餐金额 流量 短信 电话 超出套餐后每条短信费用 每分钟电话费用 每兆流量费用"<<endl;
cin>>jine>>liuliang>>duanxin>>dianhua>>fei1>>fei2>>fei3;
taocan tc(jine,liuliang,duanxin,dianhua,liuliang,duanxin,dianhua,fei1,fei2,fei3);
t[l-1]=tc;
cout<<"修改成功"<<endl;
cout<<"请继续输入或按-1结束"<<endl;
}
system("cls");
menu();
}
void SA::menu(){
cout<<"**************************************************"<<endl;
cout<<"**********Welcom to the system!!!!****************"<<endl;
cout<<"***********1, 增加用户************"<<endl;
cout<<"***********2, 删除用户************"<<endl;
cout<<"***********3, 按号码查找用户******"<<endl;
cout<<"***********4, 按姓名查找用户******"<<endl;
cout<<"***********5, 修改用户************"<<endl;
cout<<"***********6, 增加套餐************"<<endl;
cout<<"***********7, 删除套餐************"<<endl;
cout<<"***********8, 查找套餐************"<<endl;
cout<<"***********9, 修改套餐************"<<endl;
cout<<"***********10, 资费详单************"<<endl;
cout<<"**************************************************"<<endl;
cout<<"请输入您的选择按-1结束"<<endl;
int choose;
cin>>choose;if(choose!=-1)
{
switch(choose)
{
case 1:
adduser();
break;
case 2:
deleteuser();
break;
case 3:
chazhaoyonghubyID();
break;
case 5:
xiugaiuser();
break;
case 6:
addtaocan();
break;
case 7:
deletetaocan();
break;
case 8:
chazhaotaocan();
break;
case 9:
xiugaitaocan();
break;
case 10:
zifeibiaozhun();
break;
case 4:
chazhaoyonghubyname();
break;
}
}
}
void SA::zifeibiaozhun(){
int j,m,k;
m=t.size();
for(j=0;j<m;j++)
{k=j+1;
cout<<"第"<<k<<"种套餐"<<endl;
cout<<"需金额"<<t[j].getjine()<<endl;
cout<<"超出套餐后"<<endl;
cout<<"每分钟电话"<<t[j].getfei2()<<endl;
cout<<"每条短信"<<t[j].getfei1()<<endl;
cout<<"每兆流量费用"<<t[j].getfei3()<<endl;
}system("pause");
system("cls");
menu();
}
//int main(){SA sa;}
class denglu{
public:
vector<user>u;
vector<user>::iterator uit;
multimap<string,int>m1;
multimap<string,int>::iterator mit1;
denglu(){load();}
void login();
void load();
};
void denglu::login(){
int i;
date d1;
string na,zh;
for(i=0;i<3;i++)
{
cout<<"请输入你的名称与号码(如果想进入管理端请输入admin admin)"<<endl;
cin>>na>>zh;
if(na=="admin"&&zh=="admin")
{ system("cls");
SA sa;
break;}
else {
mit1=m1.find(zh);
if(mit1!=m1.end()){
if(u[mit1->second].getname()==na)
{//system("cls");
cout<<"请输入当前时间"<<endl;
cin>>d1;
if(d1.getday()==1){
/*//system("pause");
//system("cls");
int i,m,l,k;
m=t.size();
for(i=0;i<m;i++)
{
k=i+1;
cout<<k<<" "<<t[i]<<endl;}
cout<<"请根据上述套餐输入你想选择的套餐按-1结束"<<endl;
while(cin>>l&&l!=-1)
{
if((l-1)>=m)
{cout<<"error"<<endl;}
else
{
u1.settaocan(t[l-1]);
cout<<"设置成功"<<endl;
cout<<"请继续输入或按-1结束"<<endl;
}
}
system("cls");
menu();
}*/
u[mit1->second].setjine(u[mit1->second].getyue());
u[mit1->second].setyue( u[mit1->second].getyue()-u[mit1->second].gettaocan().getjine());
u[mit1->second].gettaocan().setsliuliang(u[mit1->second].gettaocan().getliuliang());
u[mit1->second].gettaocan().setsduanxin(u[mit1->second].gettaocan().getduanxin());
u[mit1->second].gettaocan().setsdianhua(u[mit1->second].gettaocan().getdianhua());
u[mit1->second].setmessage(0);
u[mit1->second].setliuliang(0);
u[mit1->second].setdianhua(0);
//user u1(na,zh,u[mit1->second].getjine(),u[mit1->second].getyue(),u[mit1->second].gettaocan(),u[mit1->second].getmessage(),u[mit1->second].getliuliang(),u[mit1->second].getdianhua())
system("cls");
userop u1(u[mit1->second]);
break;}
else
{system("cls");
userop u1(u[mit1->second]);
break;}
}}
else {cout<<"此账号不存在"<<endl;}
}
}
if(i=3)
cout<<"error"<<endl;
}
void denglu::load(){
user u2;int i;
ifstream infile("D:\\user.txt",ios::in);
if(!infile)
return;
u.clear();
m1.clear();
i=0;
while(infile>>u2)
{
u.push_back(u2);
m1.insert(make_pair(u2.getID(),i));
i++;
}
infile.close();
}
int main(){
denglu d;
d.login();
}