银行账户管理设计

时间:2024.5.8

#include<iostream>

#include <string>

#include<fstream>

using namespace std;

class consumer;

class YH //银行类

{

public:

void set_account();//银行开户功能

void del_account(); //注销账户功能

void transfer(int); //转账功能

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,string PassWord,float m) {

ID=id;name=Name;money=m;passwd=PassWord; }

consumer(){ID=0;name='0';money=0;passwd='0';}

int get_id(){return ID;}

void savemoney();// 取钱

string get_passwd(){return passwd;}// 取得密码 void display();

void fetchmoney(); //取钱

void change_passwd();

void add_money(float);

void dec_money(float);

float get_money();//卡卡转帐

private:

int ID; //开户帐号

string passwd; // 用户密码

string name; // 用户姓名

float money; //开户金额

};

void YH::save()

{ofstream ofile("bankdat.dat",ios::out);

ofstream outfile("bankdat.dat",ios::out); int n=0;

outfile<<acnum<<" ";

for(n=0;n<acnum;n++)

{outfile<<account[n]->ID<<" ";

outfile<<account[n]->money<<" ";

outfile<<account[n]->name<<" ";

outfile<<account[n]->passwd<<" ";

}

outfile.close();

}

/*读入用户信息功能实现*/

void YH::load()

{ifstream infile("bankdat.dat",ios::in);

if(!infile)

{cerr<<"读取错误!"<<endl;

return;

}

int n=0;

int id,m;

string nam,passw;

infile>>acnum;

for(n=0;n<acnum;n++)

{infile>>id;

infile>>m;

infile>>nam;

infile>>passw;account[n]->passwd;

consumer * acc = new consumer(id,nam,passw,m); account[n] = acc;

}

infile.close();

cout<<"读取资料正常!"<<endl;

}

/*转账功能实现*/

void YH::transfer(int x)

{int id;

cout<<"请输入帐号:";

cin>>id;

int flag = 1;

int i = 0;

while((i<acnum)&&(flag))

{

if(id==account[i]->get_id()) flag = 0; else i++;

}

if(flag)

{

cout<<"帐号不存在!"<<endl<<endl;

return ;

}

float b;

cout<<endl<<"请输入你要转帐的金额:";

cin>>b;

while(b<=0)

{

cout<<"请输入正确的数字!"<<endl;

cout<<":";

cin>>b;

}

if(account[x]->get_money()<b) cout<<"对不起,金额不够!!"<<endl; else {account[x]->dec_money(b);account[i]->add_money(b);}

return;

}

/*账户金额计算*/

void consumer::add_money(float x)

{money=x+money;}

void consumer::dec_money(float x)

{money=money-x;}

void YH::addmoney(int x,float y)

{account[x]->money=account[x]->money-y;

}

float consumer::get_money()

{return money;}

int main()

{

YH yh;

yh.functionshow();

}

/*主界面显示*/

void YH::functionshow()

{

int n;

do

{system("cls"); load();

cout<<endl<<"请输入相应的操作序号进行操作:"<<endl; cout<<"1. 开户"<<endl;

cout<<"2.账户登录 "<<endl;

cout<<"3.账户注销"<<endl;

cout<<"4.退出系统"<<endl;

cout<<":";

cin>>n;

while(n<1||n>4)

{

cout<<"操作错误,请输入正确的操作序号!"<<endl; cout<<":";

cin>>n;

}

switch(n)

{

case 1: set_account();//开户

break;

case 2:enter_account();//登录

break;

case 3: del_account();//注销

break;

case 4: exitYH();//退出

break;

}

cin.get();

}

while(true);

}

void YH::enter_account()

{int id;

cout<<"请输入帐号:";

cin>>id;

int flag = 1;

int i = 0; //__page_break__

while((i<acnum)&&(flag))

{

if(id==account[i]->get_id()) flag = 0; else i++; }

if(flag)

{

cout<<"帐号不存在!"<<endl<<endl; return;

}

cout<<"请输入密码:";

string passw;

cin>>passw;

if(passw!=account[i]->get_passwd()) return; account[i]->display();cin.get();cin.get(); int n;

do{system("cls");

cout<<"请选择下列操作:"<<endl;

cout<<"1.查看账户信息"<<endl;

cout<<"2.取款 "<<endl;

cout<<"3.存款"<<endl;

cout<<"4.修改密码"<<endl;

cout<<"5.转账"<<endl;

cout<<"6.返回上一菜单"<<endl;

cout<<":";

cin>>n;

switch(n)

{case 1: account[i]->display();break;

case 2: account[i]->fetchmoney();save();break; case 3:account[i]->savemoney();save();break; case 4:account[i]->change_passwd();save();break; case 5:transfer(i);save();break;

case 6:return;

}cin.get();cin.get();

}

while(1);

}

void YH::set_account()

{

int id;

string nam;

string passw;

float m;

cout<<endl<<"请输入开户号:"; cin>>id;

cout<<endl<<"请输入开户人姓名:"; cin>>nam;

cout<<endl<<"请输入开户密码:"; cin>>passw;

cout<<endl<<"请输入存入金额:"; cin>>m;

cout<<endl;

while(m<=0)

{

cout<<"请输入正确的数字!"<<endl;

cin>>m;

}

consumer * acc = new consumer(id,nam,passw,m); account[acnum] = acc;

cout<<"开户成功!!"<<endl<<endl;

acnum++;

save();

cin.get();

return;

}

void YH::del_account()

{

int id;

cout<<endl<<"请输入你要注销的帐户号:"; cin>>id;

int flag = 1;

int i = 0;

while((i<acnum)&&(flag))

{

if(id == account[i]->get_id())

{

flag = 0;

}

else

{

i++;

}

}

if(flag)

{

cout<<"该帐号不存在,请重新输入!"<<endl; return;

}

for(int j=i;j<acnum;j++)

{

account[j] = account[j+1];

}

account[acnum-1]=NULL;

acnum--;

cout<<"你的账号已注销!!"<<endl<<endl;

save();

cin.get();

return;

}

void consumer::change_passwd()

{

string pwd,repwd;

cout<<"请输入新密码:";

cin>>pwd;

cout<<"请再输入一次新密码:";

cin>>repwd;

if(pwd!=repwd)

cout<<"你输入的两次密码不一样,请重新输入!"<<endl; else

cout<<"密码修改成功,请牢记!"<<endl;cin.get(); }

void consumer::fetchmoney()

{

float m;

char ch;

do

{

cout<<endl<<"输入取款金额:"<<"¥>"<<endl ; cin>>m;

while(m<=0)

{

cout<<"请输入正确的数字!"<<endl;

cout<<":";

cin>>m;

}

if(money<m)

{

cout<<"对不起,你的余额不足!"<<endl;

}

else

{money=money-m;

cout<<endl<<"操作成功,请收好钱!"

<<endl;

}

cout<<"是否要继续:(Y/N) "

<<endl;

cout<<":";

cin>>ch;

while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')//选择错误时判定 {

cout<<":";

cin>>ch;

}

}while(ch=='y'||ch=='Y');

}

void consumer::savemoney()//存钱函数功能实现

{

float c;

char ch;

do

{

cout<<endl<<"请输入要存入的金额:"<<"¥>"<<endl ; cin>>c;

while(c<=0)

{

cout<<"输入错误,请重新输入!"<<endl;

cout<<":";

cin>>c;

}

money=money+c;

cout<<"操作成功!"<<endl;

cout<<"是否要继续:(Y/N) "<<endl;

cout<<":";

cin>>ch;

while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')

{

cout<<":";

cin>>ch;

}

}while(ch=='y'||ch=='Y');

}

int YH::acnum=0;

void consumer::display()//用户信息界面 {system("cls");

cout<<" 用户姓名:"<<name<<endl; cout<<" 帐号:"<<ID<<endl;

cout<<" 余额: "<<money<<endl;

cout<<"按输入键回到上一菜单"<<endl; cout<<":";

}

void YH::exitYH()//退出系统

{

cout<<endl<<"谢谢使用!"<<endl; exit(0);

}

更多相关推荐:
银行理财资金池定向资产管理计划模式

银行理财资金池定向资产管理计划模式以银行理财募集资金通过委托券商定向资产管理走单一资金信托投资纳雍基础设施建设项目注也可利用银行自有资金委托券商进行定向资产管理8土地抵押股权质押流程说明1银行通过发行银行理财的...

银行理财管理计划来了

发现银行理财明星农行进取系列理财管理计划理财管理计划定义指商业银行作为管理人发起设立按照与客户约定的方式和投资范围等对客户委托的资金进行投资运作管理的新型理财产品银行理财管理计划财产独立于管理人和托管人的固有财...

银行理财管理计划和银行理财直接融资工具的发展及意义

银行理财管理计划和银行理财直接融资工具的发展及意义9月从中国银监会获悉在总结去年试点工作的基础上14年银监会继续推进银行理财管理计划与理财直接融资工具工作目前已有包括杭州银行宁波银行等在内的20余家银行参与试点...

银行理财计划品种

理财计划是指商业银行在对潜在目标客户群分析研究的基础上针对特定目标客户群开发设计并销售的资金投资和管理计划按照客户获取收益方式的不同理财计划可以分为保证收益理财计划和非保证收益理财计划

银行理财管理计划和银行理财直接融资工具的发展及意义

银行理财管理计划和银行理财直接融资工具的发展及意义20xx年01月21日1500来源债券杂志作者周文渊摘要20xx年理财业务改革进一步深化银行理财管理计划和银行理财直接融资工具的推出具有深远的意义本文对该新业务...

王者归来-银行理财计划对资产管理行业的影响-东证资管

王者归来银行资产管理计划与债权直接融资工具的影响分析回顾资产管理行业走过的路变化早已开始比如去年大行其道的通道业务还有如火如荼的基金子公司业务等等都将资产管理行业从一个狭义的概念推向了更广阔的大资管视野有人曾归...

光大银行—阳光理财资产管理类T计划73短期理财产品

理财门户网站第一信托网理财投资的最佳选择理财热线4006331108理财顾问为您提供最真实的信息最贴心的建议专注信托忠于客户因为专注所以专业只有用心方得信赖

商业银行理财业务审计监督办法

商业银行理财业务审计监督办法第一章总则第一条为加强对本行理财业务审计监督工作规范理财业务操作防范业务风险保障理财业务合规有序地开展依据商业银行个人理财业务风险管理指引个人理财业务管理办法及有关法律法规要求结合本...

招商银行理财网计划书.

招商银行SNS互动游戏提案说明书一项目提案背景和原则招商银行结合业务发展需要在当前在线生活时代建设基于SNS模式互动游戏让客户在娱乐中了解投资与理财将SNS理财互动游戏的视觉应用系统纳入银行品牌建设体系不断持续...

招商银行理财产品

名称招商银行金葵花岁月流金系列人民币180天理财计划代码8507理财币种人民币本金及理财收益招商银行于每个工作日1030前公布本理财计划项下子计划的到期或提前终止预期年化收益率投资者购买本理财计划项下子计划后若...

03、中国银行业监督管理委员会办公厅关于商业银行开展个人理财业务风险提示的通知(银监办发【20xx】157号

中国银行业监督管理委员会办公厅关于商业银行开展个人理财业务风险提示的通知各银监局各国有商业银行股份制商业银行最近因客户对个人理财产品投诉而引发的商业银行声誉风险和法律风险不断加大理财资金投资对象逐步扩大和理财产...

人生6个时期的理财计划

人生6个时期的理财计划十七大报告明确提出的要quot创造条件让更多群众拥有财产性收入quot的提法引起了社会各界广泛的关注quot财产性收入quot已潜移默化地影响到许多家庭我们发现工资不再是取得收入的唯一途径...

银行理财管理计划(8篇)