2012年上半年项目实训“银行储蓄综合业务平台”C++版
2012-09-12 11:22
615 查看
项目名称: 银行储蓄综合业务平台 编写语言: 面向对象的C++语言
--先建一个空项目 --添加一个头文件名为“Record.h” 代码为:
#ifndef HEADER_RECORD //#是预处理命令 #define HEADER_RECORD #include <string> using namespace std; class Record { private: int number; string userName; string passWord; double balance; int flag; public: Record(); void set_number(int number); void set_userName(string userName); void set_passWord(string passWord); void set_balance(double balance); void set_flag(int flag); int get_number(); string get_userName(); string get_passWord(); double get_balance(); int get_flag(); void display_Record(); }; #endif
--再添加一个源文件“Record.cpp” 代码为:
#include "Record.h" #include <iostream> using namespace std; Record:: Record() { this->number = 0; this->userName = ""; this->passWord = ""; this->balance = 0; this->flag = -1; } void Record::set_number(int number) { this ->number = number; } void Record::set_userName(string userName) { this ->userName = userName; } void Record::set_passWord(string passWord) { this ->passWord = passWord; } void Record::set_balance(double balance) { this ->balance = balance; } void Record::set_flag(int flag) { this ->flag = flag; } int Record::get_number() { return this -> number; } string Record::get_userName() { return this->userName; } string Record::get_passWord() { return this -> passWord; } double Record::get_balance() { return this->balance; } int Record::get_flag() { return this -> flag; } void Record::display_Record() { cout << "+-----------------------------------------------------+" << endl; cout << "+ 帐号 | 用户名 | 密码 | 余额 | 状态 +" << endl; cout << "+-----------------------------------------------------+" << endl; cout << "+ " << this->get_number() << " | " << this->get_userName() << " | " << " " << this->get_passWord() << " | " << this->get_balance() << " | "; if(this->get_flag() == 1) { cout << "正常" ; } else { cout << "异常" ; } cout << " +" << endl; cout << "+-----------------------------------------------------+" << endl; }
---为了验证一下 Record 是否有错误,建一个源文件名为“TestRecord” 代码为: #include "Record.h" int main() { Record * record = new Record(); record->display_Record(); record->set_number(10001); record->set_userName("zhangsan"); record->set_passWord("1023"); record->set_balance(56); record->set_flag(1); record->display_Record(); return 0; }
***//用Record显示基本账户信息
--再建一个头文件名为“Node.h” 代码为:
#ifndef HEADER_NODE #define HEADER_NODE #include "Record.h" class Node { private: Record * record; Node * next; public: Node(); ~Node(); void set_record(Record * record); void set_next(Node * next); Record * get_record(); Node * get_next(); void display_Node(); }; #endif
--再建一个源文件名为“Node.cpp” 代码为:
#include "Node.h" #include <iostream> using namespace std; Node::Node() { this->record = NULL; this->next = NULL; } Node::~Node() { delete this->record; this->record = NULL; this->next = NULL; } void Node::set_record(Record * record) { this->record = record; } void Node::set_next(Node * next) { this->next = next; } Record * Node::get_record() { return this->record; } Node * Node::get_next() { return this->next; } void Node::display_Node() { cout << "Print Node elements..." << endl; //cout << "Record: " << this->record <<endl; if(this->record == NULL) { cout << "Elements of Record is NULL..." << endl; } else { Record * r = this->record; r->display_Record(); } cout << "Next: " << this->next << endl; cout << "End of Node..." << endl; cout << endl; }
---为了验证一下Node可不可以运行,建立一个源文件名为“TestNode.cpp” 代码为:
#include "Node.h" #include <iostream> using namespace std; int main() { Node * node = new Node(); node->display_Node(); Record * r = new Record(); r->set_number(10001); r->set_userName("zhangsan"); r->set_passWord("123"); r->set_balance(10000); r->set_flag(1); node->set_record(r); node->display_Node(); return 0; }
--建立一个头文件名为“LinkList.h” 代码为:
#ifndef HEADER_LINKLIST #define HEADER_LINKLIST #include "Node.h" class LinkList { private: Node * head; int len; public: LinkList(); ~LinkList(); void set_head(Node * head); void set_len(int len); Node * get_head(); int get_len(); Node * make_node(Record * record); void insert_node(Node * node); Node * find_node(int number); void display_LinkList(); }; #endif
--建一个源文件名为“LinkList.cpp” 代码为:
#include "LinkList.h" #include <iostream> #include <string> using namespace std; LinkList::LinkList() { this->head = NULL; this->len = 0; } LinkList::~LinkList() { Node * p,* q; p = this->head; while ( p!= NULL) { q = p; p = p->get_next(); delete q; this->head = NULL; this->len = 0; } } void LinkList::set_head(Node * head) { this->head = head; } void LinkList::set_len(int len) { this->len = len; } Node * LinkList::get_head() { return this->head; } int LinkList::get_len() { return this->len; } Node * LinkList::make_node(Record * record) { Node * node = new Node(); node->set_record(record); node->set_next(NULL); return node; } void LinkList::insert_node(Node * node) { Node * p = this->head; if(p == NULL) { this->head = node; return; } while (p->get_next() != NULL) { p =p->get_next(); } p->set_next(node); this->len++; } Node * LinkList::find_node(int number) { Node * p = this->head; while(p != NULL) { Record * r = p->get_record(); if (r->get_number() == number) { return p; } else { p = p->get_next(); } } return p; } void LinkList::display_LinkList() { cout << "Print LinkList elements ..." << endl; Node * p = this->head; if(p == NULL) { cout << "LinkList is NULL..." << endl; cout << "Len: " << this->len <<endl; cout << "head: " << this->head <<endl; cout << " End of LinkList..." << endl; } while (p != NULL) { p->display_Node(); p = p->get_next(); } cout << "Head " << this->head << endl; cout << "Len: " << this->len << endl; cout << " End of LinkList..." << endl; }
--为了验证LinkList,建立一个头文件名为“TestLinkList.cpp” 代码为:
#include "LinkList.h" #include <iostream> using namespace std; int main() { Record *r1 = new Record(); r1->set_number(10001); r1->set_userName("zhangsan"); r1->set_passWord("123"); r1->set_balance(10000); r1->set_flag(1); LinkList *list = new LinkList(); Node *n1 = list->make_node(r1); list->insert_node(n1); list->display_LinkList(); Record * r2 = new Record(); r2->set_number(10002); r2->set_userName("lisi"); r2->set_passWord("456"); r2->set_balance(20000); r2->set_flag(1); Node *n2 = list->make_node(r2); list->insert_node(n2); list->display_LinkList(); Node *n3 = list->find_node(10001); if(n3 != NULL) { n3->display_Node(); } else { cout << "not find" << endl; } return 0; }
--建立一个头文件名为“Bank.h” 代码为:
#ifndef HEADER_BANK #define HEADER_BANK #include "LinkList.h" class Bank { private: LinkList * list; int account_number; //没有get set 函数因为帐号的号码按一定顺序排列的不需要设定。 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); public: Bank(); ~Bank(); void open_account(); void find_account(); void close_account(); void deposit(); void withdraw(); void transfer_account(); void welcome(); }; #endif
--再建一个源文件名为“Bank.cpp” 代码为:
#include "Bank.h" #include <iostream> #include <string> using namespace std; void Bank::welcome() { cout << "+---------------------------------------------+" << endl; cout << "+ +" << endl; cout << "+ 欢迎使用银行系统 +" << endl; cout << "+ +" << endl; cout << "+ +" << endl; cout << "+---------------------------------------------+" << endl; } Bank::Bank() { this->list = this->make_list(); this->account_number = 10000; } Bank::~Bank() { delete this->list; this->list = NULL; } void Bank::set_list(LinkList * list) { this->list = list; } LinkList * Bank::get_list() { return this->list; } LinkList * Bank::make_list() { LinkList * l = new LinkList(); return l; } 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() { this->account_number = this->account_number+1; return this->account_number; } int Bank::get_number() { int number; cout << "请输入账户号码: ..." << endl; cin >> number; cout << "号码为: " << number << endl; return number; } string Bank::get_username() { string username; cout << "请输入用户名: ..." << endl; cin >> username; cout << "用户名为: " << username << endl; return username; } string Bank::get_password() { string password; cout << "请输入密码: ..." << endl; cin >> password; cout << "密码为: " << password << endl; return password; } double Bank::get_balance() { double balance; cout << "请输入金额: ..." << endl; cin >> balance; 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 : 通过get函数获取用户输入的帐户信息 string userName = this->get_username(); string passWord = this->get_password(); double balance = 0; //2 : 根据帐户的信息创建record帐户 Record * r = this->make_record(userName,passWord, balance); //3 : 根据record帐户创建node节点 Node * n = this->list->make_node(r); //4 : 将node节点插入Linklist链表 this->list->insert_node(n); cout << "开户成功: " << endl; cout << "您账户的信息为: " << endl; r->display_Record(); } void Bank::find_account() //查找账号 { //输入要注销帐户的信息 int number = this->get_number(); Record * r = this->find_record(number); if (r != NULL) { //获取用户输入的密码 string passWord = this->get_password(); if(passWord == r->get_passWord()) {//判断用户状态 if(r->get_flag()!=0) { r->display_Record(); } else cout << "账户状态异常: " << endl; } else { cout << "对不起,没有找到." << endl; } } } void Bank::close_account() //销户 { //1 用户输入帐号 int number = this->get_number(); //2 根据帐号查找帐户 Record * r = this->find_record(number); //3 用户输入密码 //4 根据密码进行判断 //5 修改记录的状态 //6 显示记录 //输入要注销帐户的信息 if (r != NULL) { //获取用户输入的密码 string passWord = this->get_password(); if(passWord == r->get_passWord()) {//判断用户状态 if(r->get_flag()!=0) { //修改帐户状态 r->set_flag(0); r->display_Record(); } else { cout << "账户状态异常: " << endl; } } else { cout << "密码错误." << endl; } } else { cout << "对不起,没有找到..." << endl; } } void Bank::deposit() //存款 { //获取用户输入的帐户号码 int number = this->get_number(); //查找该帐户 Record * record = this->find_record(number); if (record != NULL) { //获取用户输入的密码 string password = this->get_password(); if(password == record->get_passWord()) { //判断用户的状态 if(record->get_flag() != 0) { //修改帐户的金额 double balance = this->get_balance(); record->set_balance(record->get_balance()+balance); record->display_Record(); } else { cout << "您输入的金额错误 ..."; } } else { cout << "密码错误..." << endl; } } else { cout << "对不起,没有找到..." << endl; } } void Bank::withdraw() //取款 { //获取用户输入的帐户号码 int number = this->get_number(); //查找该帐户 Record * record = this->find_record(number); if (record != NULL) { //获取用户输入的密码 string password = this->get_password(); if(password == record->get_passWord()) { //判断用户的状态 if(record->get_flag() != 0) { //修改帐户的金额 double balance = this->get_balance(); if(record->get_balance() >= balance) { record->set_balance(record->get_balance()-balance); record->display_Record(); } else { cout << "您输入的金额错误 ..." << endl; } } else { cout << "账户状态异常"; } } else { cout << "密码错误 ..." << endl; } } else { cout << "对不起,没有找到 ..." << endl; } } void Bank::transfer_account() { //获取用户输入的帐户号码 int number = this->get_number(); //查找该帐户 Record * record = this->find_record(number); if (record != NULL) { //获取用户输入的密码 string password = this->get_password(); if(password == record->get_passWord()) { //判断用户的状态 if(record->get_flag() != 0) { //修改帐户的金额 double balance = this->get_balance(); if(record->get_balance() >= balance) { record->set_balance(record->get_balance()-balance); cout << "转账服务开始。请输入对方的账号..." << endl; int a_number = this->get_number(); Record * r = this->find_record(a_number); if (r != NULL) { //判断用户的状态 if(r->get_flag() != 0) { //修改帐户的金额 r->set_balance(balance); record->display_Record(); } else { cout << "账户状态异常"; } } else { cout << "对不起,没有找到 ..." << endl; } } else { cout << "您输入的金额错误 ..." << endl; } } else { cout << "账户状态异常"; } } else { cout << "密码错误 ..." << endl; } } else { cout << "对不起,没有找到 ..." << endl; } }
---验证Bank,建一个源文件名为“TestBank.cpp” 代码为:
#include <iostream> #include "Bank.h" using namespace std; int main() { Bank * bank = new Bank(); cout << "欢迎使用银行系统 测试版... " << endl; cout << "开户" << endl; bank->open_account(); cout << "存款" << endl; bank->deposit(); cout << "取款" << endl; bank->withdraw(); cout << "销户" <<endl; bank->close_account(); cout << "查找账户" << endl; bank->find_account(); cout << "谢谢使用... " << endl; return 0; }
--建立一个源文件编写main函数,名为“main.cpp” 代码为:
#include "Bank.h" #include <iostream> using namespace std; void login(Bank * bank); void mainmenu(Bank * bank); void mainmenu(Bank * bank) { int choice = -1; do{ cout << "+---------------------------------+" << endl; cout << "+ +" << endl; cout << "+ 请选择服务项目 +" << endl; cout << "+ +" << endl; cout << "+ 开户:请按 1 存款:请按 2 +" << endl; cout << "+ 取款:请按 3 销户:请按 4 +" << endl; cout << "+ 查询:请按 5 转帐:请按 6 +" << endl; cout << "+ 离开:请按 0 +" << endl; cout << "+---------------------------------+" << endl; cin >> choice ; switch (choice) { case 1: { bank->open_account(); break; } case 2: { bank->deposit(); break; } case 3: { bank->withdraw(); break; } case 5: { bank->find_account(); break; } case 4: { bank->close_account(); break; } case 0: { exit(0); } case 6: { bank->transfer_account(); break; } default: cout << "出现错误" << endl; } }while(choice != 0); } void login(Bank * bank) { string admin_userName; string admin_passWord; cout << "请输入用户名" << endl; cin >> admin_userName; cout << "请输入密码" << endl; cin >> admin_passWord; for (int i = 1; i <= 3; i++) { if(admin_userName == "admin" && admin_passWord == "admin") { mainmenu(bank); } else { if(i <= 2) { cout << "请再次输入" << endl; cout << "请输入用户名" << endl; cin >> admin_userName; cout << "请输入密码" << endl; cin >> admin_passWord; continue; } else { cout << "对不起,拜拜!" << endl; break; } } } } int main() { Bank * bank = new Bank(); bank ->welcome(); login(bank); return 0; }
----关闭“TestRecord”“TestNode”“TestLinkList”“TestBank”,运行main函数
运行结果为:
+---------------------------------------------+ + + + 欢迎使用银行系统 + + + + + +---------------------------------------------+ 请输入用户名 admin 请输入密码 admin +---------------------------------+ + + + 请选择服务项目 + + + + 开户:请按 1 存款:请按 2 + + 取款:请按 3 销户:请按 4 + + 查询:请按 5 转帐:请按 6 + + 离开:请按 0 + +---------------------------------+ 1 请输入用户名: ... li 用户名为: li 请输入密码: ... 123 密码为: 123 开户成功: 您账户的信息为: +-----------------------------------------------------+ + 帐号 | 用户名 | 密码 | 余额 | 状态 + +-----------------------------------------------------+ + 10001 | li | 123 | 0 | 正常 + +-----------------------------------------------------+ +---------------------------------+ + + + 请选择服务项目 + + + + 开户:请按 1 存款:请按 2 + + 取款:请按 3 销户:请按 4 + + 查询:请按 5 转帐:请按 6 + + 离开:请按 0 + +---------------------------------+ 2 请输入账户号码: ... 10001 号码为: 10001 请输入密码: ... 123 密码为: 123 请输入金额: ... 10000 +-----------------------------------------------------+ + 帐号 | 用户名 | 密码 | 余额 | 状态 + +-----------------------------------------------------+ + 10001 | li | 123 | 10000 | 正常 + +-----------------------------------------------------+ +---------------------------------+ + + + 请选择服务项目 + + + + 开户:请按 1 存款:请按 2 + + 取款:请按 3 销户:请按 4 + + 查询:请按 5 转帐:请按 6 + + 离开:请按 0 + +---------------------------------+ 3 请输入账户号码: ... 10001 号码为: 10001 请输入密码: ... 123 密码为: 123 请输入金额: ... 200 +-----------------------------------------------------+ + 帐号 | 用户名 | 密码 | 余额 | 状态 + +-----------------------------------------------------+ + 10001 | li | 123 | 9800 | 正常 + +-----------------------------------------------------+ +---------------------------------+ + + + 请选择服务项目 + + + + 开户:请按 1 存款:请按 2 + + 取款:请按 3 销户:请按 4 + + 查询:请按 5 转帐:请按 6 + + 离开:请按 0 + +---------------------------------+ 5 请输入账户号码: ... 10001 号码为: 10001 请输入密码: ... 123 密码为: 123 +-----------------------------------------------------+ + 帐号 | 用户名 | 密码 | 余额 | 状态 + +-----------------------------------------------------+ + 10001 | li | 123 | 9800 | 正常 + +-----------------------------------------------------+ +---------------------------------+ + + + 请选择服务项目 + + + + 开户:请按 1 存款:请按 2 + + 取款:请按 3 销户:请按 4 + + 查询:请按 5 转帐:请按 6 + + 离开:请按 0 + +---------------------------------+ 4 请输入账户号码: ... 10001 号码为: 10001 请输入密码: ... 123 密码为: 123 +-----------------------------------------------------+ + 帐号 | 用户名 | 密码 | 余额 | 状态 + +-----------------------------------------------------+ + 10001 | li | 123 | 9800 | 异常 + +-----------------------------------------------------+
相关文章推荐
- 技术支持课--项目实训--储蓄综合业务平台(第一期)--开户功能实现--c语言编写
- 技术支持课--项目实训--储蓄综合业务平台--完成--C语言编写
- 2011年下半年项目“银行储蓄综合业务平台”C语言版
- 银行综合业务储蓄平台管理系统
- 实训项目-银行储蓄业务管理系统2015/07/15
- 大一下学期项目设计—综合储蓄平台—Node类
- 实训项目 储蓄平台
- 实训项目-银行储蓄系统
- <2015年大一C++实训项目>银行储蓄系统
- 实训项目银行储蓄系统
- 实训项目--银行储蓄系统
- 银行综合储蓄业务系统,水平为学了一年C语言
- 程序设计项目实训——银行储蓄系统
- 【实训项目】银行储蓄系统
- 实训项目--银行储蓄系统
- 【实训项目】银行储蓄系统
- C++项目实训:银行储蓄系统
- Ultimus 安码 签约山东空管局综合业务管控平台项目
- 储蓄综合业务平台(代码)
- 大一下学期项目设计—综合储蓄平台—Record类