银行职工的注册与登录弄好后,也即是开始与客户端进行直接的交流,一共有八个功能,大家应该也知道是那些操作内容,为了使客户端的主函数看上去更加清晰,决定将每一个功能都分别放在一个函数内,用到时就调用:
在进行各种操作之前客户需要先注册好个人信息,创建一个属于客户的类,存放客户的个人信息和其他的操作,为了方便,避免重复的操作指令,自己将客户的类继承了职工的类,这样服务器操作时,能同时访问此时客户和操作职工的个人信息,下面是存放客户信息类的代码:
//客户个人信息
class client:public user
{
private:
string cliname; //开户姓名
string identity; //身份证
string clipassword; //密码
string reclipassword; //确认密码
double RMB; //开户金额(存取金额)
double rest ; //余额
static double sum;
public:
int cliid ; //账号
int otherid; //他人账号
string mydate ; //日期
int caozuohao ; //操作职工号
string bankname ; //银行名字
string linshi ;
void setclient(string name,string myidentity,string password,string repassword,double money,double yue1);
void setcliname(string name);
void openAccount(); //开户
void cancelAccount(); //销户
void save(); //存款
void withdraw(); //取款
void showAccount(); //查询余额
void transferAccounts(); //转账
void updataPassword(); //更改密码
int record(); //账户明细记录
string shcliname();
string shidentity();
string shclipassword();
string shreclipassword();
double shrmb();
double shrest();
};
客户注册好个人信息后,便是各种功能操作,在这些操作里不仅会涉及到数据库的操作还会有文件的操作,因为在这之中有查看自己账户记录等一些功能,客户的存取操作会有很多,倘若将这些内容全部放到数据库中,数量很大不仅浪费资源而且找起来并打印给客户看时会很麻烦,所以这里便使用文件操作,将每一个客户的存取,转账都会在记录在不同的客户文件里,打印时只需打开对应的文件并全部读出来即可,下面是文件的操作代码:
将数据存放到文件中:
ofstream outfile;
char repair[50];
sprintf(repair,"%s的存折账单.txt",(object->shcliname()).c_str());
outfile.open(repair,ios::binary | ios::app);
outfile.write((char *)&table,sizeof(table));
outfile.close();
数据从文件中读取并打印:
ifstream infile ;
char buff[100];
sprintf(buff,"E:\\gongzuobiao\\课堂程序\\c++\\c++项目.服务器\\c++项目\\%s的存折账单.txt",(preclient.shcliname()).c_str());
infile.open(buff,ios::binary);
int temper = 1 ;
cout<<"银行 "<<"操作工号 "<<"户名 "<<"身份证 "<<"账号 "<<"日期 "<<"存取款 "<<"利息 "<<"余额"<<endl;
while(temper)
{
look *p = new look ;
if(infile.read((char *)p,sizeof(look)))
{
cout<<p->bank<<" "<<p->yuangong<<" "<<p->name<<" "<<p->identity<<" "<<p->id<<" "<<p->date<<" "<<p->cunqu<<" "<<p->lixi<<" "<<p->rest<<endl;
}
else
{
temper = 0 ;
}
free(p) ;
}
传到文件中的是一个结构体而不是客户的类,结构体中只留下了客户的一些重要信息:银行名称,户名,身份证,余额,利息等,接下来就是每个功能的具体操作。