模拟ATM机存取款管理系统面对对象课程设计 下载本文

consumer(int id,string Name,int Number,double IN,string Company,string Address,string PassWord,float m) {

ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;passwd=PassWord; }

consumer(){ID=0;name='0';number=0;in=0;company='0';address='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; //开户金额

int number;string company;string address;double in; };

(2)银行类:

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;//账户数 5.2主要程序实现

(1)读入用户信息功能实现: void YH::load()

{ifstream infile(\以输入方式打开文件 if(!infile)

{cerr<<\读取错误,无资料中!\return; }

int n=0; int id,m;

string nam,passw;int number;string company;string address;double in; infile>>acnum;

for(n=0;n

{infile>>id;//从磁盘文件bankdat.dat读入信息 infile>>m; infile>>nam; infile>>passw; infile>>company; infile>>number; infile>>address; infile>>in;

account[n]->passwd;

consumer * acc = new consumer(id,nam,number,in,company,address,passw,m); //每读入一个n开辟一段内存

account[n] = acc; //赋值首地址 }

infile.close();

cout<<\读取资料正常!\}

(2)转账功能实现: void YH::transfer(int x) {int id;

cout<<\请输入帐号:\ cin>>id; int flag = 1; int i = 0;

while((i

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

if(flag)

{

cout<<\帐号不存在!\ return ; }

float b;

cout<>b;

while(b<=0) {

cout<<\请输入正确的数字!\cout<<\→\cin>>b; }

if(account[x]->get_money()

else {account[x]->dec_money(b);account[i]->add_money(b);}

cout<<\转账成功!!\

return; }

(3)账户金额计算实现:

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;}

void main() {YH yh;

yh.functionshow(); }

(4)主界面显示

void YH::functionshow()

{

int n; do

{system(\ load();

cout<

cout<<\㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\cout<<\㊣ ㊣\cout<<\㊣ 1. 开户 ㊣\cout<<\㊣ ㊣\cout<<\㊣ 2.账户登录 ㊣\cout<<\㊣ ㊣\cout<<\㊣ 3.账户注销 ㊣\cout<<\㊣ ㊣\cout<<\㊣ 4.退出系统 ㊣\cout<<\㊣ ㊣\cout<<\㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\cout<<\→\cin>>n;

while(n<1||n>4) {

cout<<\操作错误,请输入正确的操作序号!\ 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();//输入流类istream的成员函数 }

while(true); }

void YH::enter_account() {int id;

cout<<\请输入帐号:\

cin>>id; int flag = 1;

int i = 0; //__page_break__ while((i

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

if(flag) {

cout<<\帐号不存在!\ return; }

cout<<\请输入密码:\string passw; cin>>passw;

if(passw!=account[i]->get_passwd()) return;//返回到登录界面 account[i]->display();cin.get();cin.get(); int n;

do{system(\

cout<<\请选择下列操作:\

cout<<\◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎\cout<<\◎ ◎\cout<<\◎ 1.查看账户信息 ◎\cout<<\◎ ◎\cout<<\◎ 2.取款 ◎\cout<<\◎ ◎\cout<<\◎ 3.存款 ◎\cout<<\◎ ◎\cout<<\◎ 4.修改密码 ◎\cout<<\◎ ◎\cout<<\◎ 5.转账 ◎\cout<<\◎ ◎\cout<<\◎ 6.返回上一菜单 ◎\cout<<\◎ ◎\cout<<\◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎\cout<<\→\cin>>n;

(5)添加/删除账户功能实现: switch(n)

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

case 2: account[i]->fetchmoney();save();break;//从2-5功能,每执行一次调用一次save函数,重新写入数据