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

7.收获及体会

这次课程设计收获了好多,通过这次课设,又进一步巩固了课本上的知识,更加熟练的使用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出这些功能,提高了自己编程水平、分析问题、解决问题的能力。

8.参考文献 [1]高俊文。c/c++程序设计 。北京:人民邮电出版社,2005 [2]谭浩强。C++程序设计。北京:清华大学出版社,2004

9.附录

源程序:

#include #include #include 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,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; };

void YH::save()

{ofstream ofile(\以输出方式打开文件

ofstream outfile(\以输出方式打开文件 bankdat.dat接收从内存输出的数据 int n=0;

outfile<

{outfile<ID<<\ \把信息写入磁盘文件bankdat.dat outfile<money<<\ \outfile<name<<\ \outfile<passwd<<\ \outfile<number<<\ \outfile<company<<\ \outfile<address<<\ \outfile<in<<\ \}

outfile.close(); }

/*读入用户信息功能实现*/ 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<<\读取资料正常!\}

/*转账功能实现*/ 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; }

/*账户金额计算*/

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

/*主界面显示*/

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) {