银行系统

原创 2016年08月28日 14:28:57
#include <iostream>
#include <string>


using namespace std;


class Account
{
public:
Account(string a,string b,double bal);
virtual void saving(double a);
virtual void getOutMoney(double a);
virtual void showme();
string getId();




private:
string Account_name;
string name;
double balance ;




};


class NormalAccount:public Account
{
public:
NormalAccount(string a,string b,double bal):Account(a,b,bal)
{


}
private:
string Account_name;
string name;
double balance ;
};


class VIPAccount:public Account
{
public:
VIPAccount(string a,string b,double bal,double d,double e):Account(a,b,bal),tzsx(d),tzze(e)
{


}
void getOutMoney(double a);
void showme();




private:
string Account_name;
string name;
double balance ;
double tzsx;
double tzze;




};


Account::Account(string a,string b,double bal)
{
Account_name = a;
name = b;
balance = bal;
}


void Account::saving(double a)
{
balance = balance + a;
}


void Account::getOutMoney(double a)
{
if(a > balance)
cout<<"余额不足"<<endl;
else
{
balance = balance - a;
cout << "已取出" << a << "元" <<endl;
}
}


void Account::showme()
{
cout << "用户账号为" << Account_name << endl;
cout << "开户人姓名" << name <<endl;
cout << "账户余额为" << balance <<endl;
}


string Account::getId()
{
return Account_name;
}


void VIPAccount::getOutMoney(double a)
{
if(a >balance + tzsx -tzze)
cout<<"不可透支"<<endl;
else
balance = balance - a;


}


void VIPAccount::showme()
{
cout << "用户账号为" << Account_name << endl;
cout << "开户人姓名" << name <<endl;
cout << "账户余额为" << balance <<endl;
cout << "透支上限为" << tzsx <<endl;
cout << "透支总额为" << tzze <<endl;


}


class Bank
{
public:
Bank();
void append1();
void append2();
void del();
void query();
Account *account[100];
private:


int accNum;
double Balance;


};


Bank::Bank()
{
for(int i = 0;i < 100 ; i++ )
{
account[i] = NULL;
}


accNum = 0;
}


void Bank::append1()
{
string str1,str2;


cout << "请输入普通用户账号" << endl;
cin>>str1;
cout << "请输入开户人姓名" << endl;
cin>>str2;
Account *acc = new NormalAccount(str1,str2,0) ;
cout<<"增加普通账户成功"<<endl;


account[accNum] = acc;
accNum++;
}


void Bank::append2()
{
string str1,str2;


cout << "请输入高级用户账号" << endl;
cin>>str1;
cout << "请输入开户人姓名" << endl;
cin>>str2;
Account *acc = new VIPAccount(str1,str2,0,5000,0) ;
cout<<"增加高级账户成功"<<endl;


account[accNum] = acc;
accNum++;
}


void Bank::del()
{
string n;
cout << "请输入要注销的用户账号" << endl;
cin>>n;


for(int i=0;i<100;i++)
{
if(account[i]->getId() != n)
cout<<"没有这个账号"<<endl;
if(account[i]->getId() == n)
{
delete account[i];
accNum--;


}


}
}


void Bank::query()
{
string n;
cout << "请输入您要查询的用户账号" << endl;
cin>>n;


for(int i=0;i<100;i++)
{
if(account[i]->getId() != n)
cout<<"没有这个账号"<<endl;
if(account[i]->getId() == n)
account[i]->showme();
}


}


int main()
{
Bank bank;


while(1)
{
cout << "1.增加账户" << endl;
cout << "2.删除账户" <<endl;
cout << "3.查询账户" <<endl;
cout << "4.取款和存款" <<endl;
cout << "5.退出系统" <<endl;


cout << "请选择" <<endl;


int n;
cin>>n;
if(n == 1)
{
int n;
cout << "1.增加普通账户" << endl;
cout << "2.增加高级账户" << endl;
cout << "请选择" << endl;
cin>>n;


if(n == 1)
bank.append1();


if(n == 2)
bank.append2();


}


if (n == 2)
{
bank.del();
}


if (n == 3)
{
bank.query();
}


if (n == 4)
{


string n;
cout<<"请输入您要存取款的账号"<<endl;
cin>>n;
for(int i=0;i<100;i++)
{
if(bank.account[i]->getId() != n)
cout<<"账号输入错误"<<endl;
if(bank.account[i]->getId() == n)
{
int choice;


cout<<"1.取款"<<endl;
cout<<"2.存款"<<endl;
cout<<"请选择"<<endl;


cin>>choice;
if(choice == 1)
{
double jine;
cout<<"请输入取款金额"<<endl;
cin >> jine;
bank.account[i]->getOutMoney(jine);
bank.account[i]->showme();


}
if(choice == 2)
{
double qkuan;
cout<<"请输入存款金额"<<endl;
cin>>qkuan;
bank.account[i]->saving(qkuan);
bank.account[i]->showme();
}
}


}




}


if (n == 5)
return 0;
}


//return 0;
}

相关文章推荐

黑马程序员_java面试题总结【2】(银行业务调度系统)

11

自己整理_银行核心系统相关技术知识

缘由: 最近做互联网金融平台,直销银行项目,算是第二核心吧。涉及很多与核心相关的业务知识,记录之。。...
  • hdfyq
  • hdfyq
  • 2016年02月21日 16:45
  • 1022

黑马程序员-7k面试题之银行调度系统

面试题要求: 1.银行内有6个业务窗口,1-4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 2.有三种对应的客户:VIP客户,普通客户和快速客户(办理如交水电费,电话费之类...

黑马程序员-----------银行调度系统学习笔记

明天写

9.银行业务调度系统的学习

模拟实现银行业务调度系统逻辑,具体需求如下: 1、银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。  2、有三种对应类型的客户:VIP客户,普通客户,快...

面向对象银行管理系统JAVA代码《上》

面向对象银行管理系统JAVA代码《上》

创建银行账户管理系统项目及Tomcat服务器搭建

本项目为银行账户管理系统,所用架构为MVC模式,M-JavaBean,V-JSP,C-Servlet,连接Oracle分布式数据库。 本项目使用的开发环境为Eclipse + Oracle,Eclip...

交通银行国际业务系统案例

作为中国第一家全国性的国有股份制商业银行,建设国际化商业银行一直是交通银行的的战略目标,交行在主要国际金融中心城市如纽约、东京、香港、新加坡设有分行,在伦敦、法兰克福均设有代表处。通过多年来艰苦曲折的...

银行核心系统软件开发 科目常识

银行核心系统软件开发  (2009-09-15 14:45:40) 转载▼ 标签:  杂谈   http://sns.cio360....

某大型银行深化系统之十九:日志规范

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229         在应用程序中添加程序日志记录可以跟踪代码运行时轨迹,作为日...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:银行系统
举报原因:
原因补充:

(最多只允许输入30个字)