《对C语言编写的银行系统用C++进行重构——4》

来源:互联网 发布:miao社交软件 编辑:程序博客网 时间:2024/05/16 07:05

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:   《对C语言编写的银行系统用C++进行重构——4》                         
* 作    者:       刘江波                      
* 完成日期:    2012     年   8    月   24     日
* 版 本 号:     v.3.0    

* 对任务及求解方法的描述部分
* 问题描述: 
* 程序头部的注释结束
*/

Bank.h

#ifndef HEADER_BANK#define HEADER_BANK#include "LinkList.h"#include"Record.h"class Bank{private: LinkList *list;int account_number;public:Bank();~Bank();void set_list(LinkList *list);LinkList *get_list();LinkList *make_list();Record *make_record(string userName,string passWord,double balance);int create_number();int get_number();string get_userName();string get_passWord();double get_balance();Record *find_record(int number);void open_account();void find_account();void close_account();void deposit();void withdraw();void transfer_account();};#endif


Bank.cpp

#include"Bank.h"#include<iostream>using namespace std;Bank::Bank(){this->list = this->make_list();this->account_number  = 10000;}Bank::~Bank(){delete this->list;//触发LinkList、Node、Record的析构函数this->list = NULL;}void Bank::set_list(LinkList *list){this->list = list;}LinkList *Bank::get_list(){return this->list;}LinkList *Bank::make_list(){return new LinkList();}Record *Bank::make_record(string userName,string passWord,double balance){Record *r = new Record();int number = this->create_number();r->set_number(number);r->set_userName(userName);r->set_passWord(passWord);r->set_balance(balance);r->set_flag(1);return r;}int Bank::create_number(){return this->account_number = this->account_number + 1;}int Bank::get_number(){int number;//定义局部变量,用于记录用户键盘输入;cout << "Please input number...." << endl;cin >> number;cout << "Number:" << number << endl;return number;}string Bank::get_userName(){string userName;//定义局部变量,用于记录用户键盘输入;cout << "Please input userName...." << endl;cin >> userName;cout << "userName:" << userName << endl;return userName;}string Bank::get_passWord(){string passWord;//定义局部变量,用于记录用户键盘输入;cout << "Please input passWord...." << endl;cin >> passWord;cout << "passWord:" << passWord << endl;return passWord;}double Bank::get_balance(){double balance;//定义局部变量,用于记录用户键盘输入;cout << "Please input balance...." << endl;cin >> balance;cout << "balance:" << balance << endl;return balance;}Record *Bank::find_record(int number){Node *n = this->list->find_node(number);if(n != NULL){return n->get_record();}return NULL;}void Bank::open_account(){/*开户步骤:1.获取用户输入的账户信息;2.使用输入数据创建record记录;3.创建node结点,封装record记录;4.将结点插入到LinkList链表*/cout << "欢迎加入本行,请你输入注册账户信息:"<< endl;string userName = this->get_userName();string passWord = this->get_passWord();double balance = this->get_balance();Record *r = this->make_record( userName, passWord, balance);Node *n = this->list->make_node(r);this->list->insert_node(n);cout << "open account...." <<endl;r->display_Record();cout <<"恭喜你,开户成功!" << endl;}void Bank::find_account(){/*查询步骤:1、获取用户输入的账户信息;2、验证账户信息;3、显示查询结果;*/cout << "欢迎使用用户查询功能,请你输入要查询账户的信息:"<< endl;int number = this->get_number();string passWord = this->get_passWord();Record *r = this->find_record(number);if(r != NULL){cout << "Found the account...." << endl;}else{cout << "NotFound the account...." << endl;return;}if(passWord == r->get_passWord()){r->display_Record();return;}else{cout << "密码输入有误" << endl;return;}}void Bank::close_account(){/*销户步骤:1、获取用户输入的账户信息;2、验证账户信息;3、显示账户信息;4、销户;*/cout << "欢迎使用用户销户功能,请你输入要销户的账户信息:"<< endl;int number = this->get_number();string passWord = this->get_passWord();Record *r = this->find_record(number);if(r != NULL){cout << "Found the account...." << endl;}else{cout << "NotFound the account...." << endl;return;}if(passWord == r->get_passWord()){r->display_Record();}else{cout << "密码输入有误" << endl;return;}if(r->get_flag() != -1){char a;cout << "【确定要销户吗?    Y 确定、N 取消】" <<endl;cin >> a;if(a == 'Y'||a =='y'){             r->set_flag(-1);     r->set_balance(0); cout << "销户成功" <<endl; return; }    else {             cout << "销户不成功" <<endl; return;    }}else {     cout << "【很抱歉,此账户已销户】"  << endl; return;}}void Bank::deposit(){/*存款步骤:1、获取用户输入的账户信息;2、验证账户信息(账号,状态);3、获取存款金额;*/ cout << "欢迎使用用户存款功能,请你输入要存款账户的信息:"<< endl;int number = this->get_number();Record *r = this->find_record(number);if(r != NULL){cout << "Found the account...." << endl;r->display_Record();}else{cout << "NotFound the account...." << endl;return;}if(1 == r->get_flag()){cout << "请输入存款金额:" << endl;double cash = this->get_balance();r->set_balance(r->get_balance() + cash);cout <<"存款成功" <<endl;r->display_Record();return;}else{cout << "【很抱歉,此账户已销户,无法存款】" << endl;return;}}void Bank::withdraw(){/*取款步骤:1、获取用户输入的账户信息;2、验证账户信息;3、获取取款金额;*/cout << "欢迎使用用户取款功能,请你输入要取款账户的信息:"<< endl;int number = this->get_number();string passWord = this->get_passWord();Record *r = this->find_record(number);if(r != NULL){cout << "Found the account...." << endl;}else{cout << "NotFound the account...." << endl;return;}    if(passWord == r->get_passWord()) { r->display_Record(); }else{cout << "密码输入有误" << endl;return;}if(1 == r->get_flag()){cout << "请输入取款金额:" << endl;double cash = this->get_balance();if(cash <= r->get_balance()){  r->set_balance(r->get_balance() - cash);  cout <<"取款成功" <<endl;       r->display_Record();  return;         }else{cout << "【很抱歉,账户余额不足】" << endl;return;}}else{cout << "【很抱歉,此账户已销户,无法取款】" << endl;return;}}void Bank::transfer_account(){/*转账步骤:1、登录自己的账户;2、验证自己的账户信息;3、获取转入账户的信息;4、转账;*/cout << "欢迎使用用户转账功能,请输入你的账户信息:"<< endl;int number1 = this->get_number();string passWord1 = this->get_passWord();Record *r1 = this->find_record(number1);if(r1 != NULL){cout << "Found the account...." << endl;}else{cout << "NotFound the account...." << endl;return;}    if(passWord1 == r1->get_passWord()) { r1->display_Record(); }else{cout << "密码输入有误" << endl;return;}if(1 == r1->get_flag()){cout << "请输入要转账的账户号:" << endl;}else{cout << "【很抱歉,此账户已销户,无法转账】" << endl;return;}int number2 = this->get_number();Record *r2 = this->find_record(number2);if(r2 != NULL){cout << "Found the account...." << endl;}else{cout << "NotFound the account...." << endl;return;}if(1 == r2->get_flag()){cout << "请输入要转账的金额:" << endl;}else{cout << "【很抱歉,此账户已销户,无法转账】" << endl;return;}    double cash = this->get_balance();if(cash <= r1->get_balance()){r1->set_balance(r1->get_balance() - cash);r2->set_balance(r2->get_balance() + cash);    cout <<"转账成功" <<endl;     r1->display_Record();    return;     } else{cout << "【很抱歉,账户余额不足】" << endl;return;}}


TestBank.cpp

#include"Bank.h"#include<iostream>using namespace std;int main(){Bank *bank = new Bank();cout << endl;bank->open_account();cout << endl;bank->find_account();cout << endl;    bank->deposit();cout << endl;bank->withdraw();cout << endl;bank->transfer_account();cout<< endl;bank->close_account();cout << endl;system("PAUSE");    return 0;}


 

原创粉丝点击