#include<iostream>
#include <string>
#include<cstdlib>
#include<fstream>
using namespace std;
class consumer;
class YH //银行类
{
public:
void set_account();//银行开户功能
void del_account(); //注销账户功能
void enter_account(); //进入用户个人信息功能
void addmoney(int,float);//存款功能
void exitYH();// 退出系统
void functionshow();
void save();
void load();// 功能界面
protected:
consumer *account[20];
static int acnum;//账户数
};
class consumer:public YH//用户类,继承银行类的属性
{
public:
friend class YH;
consumer(int id,string Name,double IN,double year,double month,double day,string PassWord,float m)
{ID=id;name=Name;in=IN;ye=year;mon=month;d=day;money=m;passwd=PassWord;}
consumer()
{ID=0;name='0';in=0;ye=0;mon=0;d=0;money=0;passwd='0';}
int get_id(){return ID;}
void savemoney();// 取钱
string get_passwd(){return passwd;}// 取得密码
void display();
void fetchmoney(); //取钱
void rate();//利息
void change_passwd();
void add_money(float);//计算余额
void dec_money(float);//计算余额
private:
int ID; //开户帐号
double ye,mon,d,in;
string date,passwd,name;
float money; //开户金额
};
void YH::save()
{
ofstream ofile("bankdat.dat",ios::out);//以输出方式打开文件
ofstream outfile("bankdat.dat",ios::out);//以输出方式打开文件 bankdat.dat接收从内存输出的数据
int n=0;
outfile<<acnum<<" ";
for(n=0;n<acnum;n++)
{
outfile<<account[n]->ID<<" ";//把信息写入磁盘文件bankdat.dat
outfile<<account[n]->money<<" ";
outfile<<account[n]->name<<" ";
outfile<<account[n]->passwd<<" ";
outfile<<account[n]->in<<" ";
outfile<<account[n]->ye<<" ";
outfile<<account[n]->mon<<" ";
outfile<<account[n]->d<<" ";
}
outfile.close();
}
void YH::load()
{
ifstream infile("bankdat.dat",ios::in);//以输入方式打开文件
if(!infile)
{
cerr<<"读取错误,无资料中!"<<endl;
return;
}
int n=0;
int id,m;
double ye,mon,d,in;
string nam,passw;
infile>>acnum;
for(n=0;n<acnum;n++)//全部读入
{
infile>>id;//从磁盘文件bankdat.dat读入信息
infile>>m;
infile>>nam;
infile>>passw;
infile>>in;
infile>>ye;
infile>>mon;
infile>>d;
account[n]->passwd;
consumer * acc = new consumer(id,nam,in,ye,mon,d,passw,m); //每读入一个n开辟一段内存
account[n] = acc; //赋值首地址
}
infile.close();
cout<<"读取资料正常!"<<endl;
}
void YH::set_account()
{
int id;string nam;string passw;float m;double in;double ye;double mon;double d;
cout<<"请输入开户号:"<<endl;
cin>>id;
cout<<"请输入开户人姓名:"<<endl;
cin>>nam;
cout<<"请输入开户密码:"<<endl;
cin>>passw;
cout<<"请输入开户人身份证号码:"<<