《对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;}
- 《对C语言编写的银行系统用C++进行重构——4》
- 《对C语言编写的银行系统用C++进行重构——1》
- 《对C语言编写的银行系统用C++进行重构——2》
- 《对C语言编写的银行系统用C++进行重构——3》
- 《对C语言编写的银行系统用C++进行重构——5》
- C语言编写的银行管理系统关键代码
- C语言项目—银行储蓄系统
- C语言银行系统
- C语言——BANK银行储蓄系统
- C语言:银行储蓄系统的开发(初级)
- 做游戏,学编程(C语言) 3 利用函数对飞机游戏进行重构
- C语言学习之用队列实现银行排队系统
- C语言编写的“日记管理系统”
- C语言编写的航空订票系统
- C语言编写的商品管理系统
- c语言编写的简单信息管理系统
- 菜鸟级C语言银行管理系统
- C语言综合实践-----银行储蓄系统
- 4.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):业务逻辑层,自定义异常处理器
- 实现listview中checkbox的多选与记录
- CentOS安装squid代理服务器
- PHP与DOM解析XML
- VS 2010 快捷键
- 《对C语言编写的银行系统用C++进行重构——4》
- poj 3393 Lucky and Good Months by Gregorian Calendar 模拟
- 文件流指针和文件描述符的区别
- C# Reflection 获取私有函数
- struts--为Action的属性注入值、处理流程
- JAVA的Random类(转)
- 5.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):struts-config.xml
- 6.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):web.xml
- 《对C语言编写的银行系统用C++进行重构——5》