大作业报告书
课程名称
面向对象程序设计 C++
设计题目
银行管理系统
专业、班级
学
姓
教
号
名
师
2017 年 11 月 8 日
一、选题概述:
随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户
的需要。现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来
越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如
1
电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻
自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的
日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,
如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银
行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。
近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提
供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关
的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一
般都离不开计算机的高效管理支持。随着代理业务不断发展,业务品种越来越多,各项业务做法
互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。
如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每
个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每
次处理的数据量大,响应时间长。特别是银行每天要处理大量的存取款事件,做好存取款是银行
工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系
统来实现快速、有效、准确、安全的处理银行事物。主要用于银行的储蓄卡管理系统,它可以帮
助我们有效、准确、并且高效实现的完成存取事件。
此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。系
统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。储蓄卡开
户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开
户金额必须是数字,密码和确认密码必须一样是六位数字)*查询历史数据模块:存款记录、取
款记录、余额显示等。*注销模块:一旦注销该卡号就不存在且余额提醒你取出。
二、需求分析:
1.问题描述
实现一个简单的银行管理系统,完成用户的开户,开卡,存款,取款和转账业务。
2.基本要求
(1)至少包含 5 个类(包含必要的构造函数和析构函数),使用面向对象程序设计思想实现;
(2)要用到继承与派生,要用到多态(函数重载和虚函数都要有);
(3)要有菜单选择项;
(4)功能完整,设计简单的菜单界面,以供功能选择;
三、总体设计:
1.系统框图
2
本银行管理系统包括三个主要模块:分别是账户管理,业务办理和系统管理三大模块。
(1) 账户管理模块
账户管理模块包含六个分模块:创建账户,删除账户,修改账户信息,查找账户,
添加银行卡和删除银行卡模块。
(2) 业务管理模块
业务管理模块包括三个分模块:存款,取款和转账。
(3) 系统管理模块
包含银行系统相关管理功能。
四、开发环境:
Intel® CORE i5-5200U 2.20GHz,8G 内存,512G 硬盘
Microsoft® Windows 10 专业版
Visual Studio 2015
五、详细设计:
0.类的相互关系
1.Date 类
Date 类实现了日期的保存;
2.Person 类
Person 类用于保存开户人的个人信息;
3.Account 类
Account 类继承自 Person 类,并包含了 Card 类,用于储存账户信息;
4.Card 类
Card 类实现了银行卡信息的保存;
5.Service 类
Service 类用于实现银行系统所有业务功能的实现;
3
Date 类
派生
Card 类
包含
Person 类
Account 类
Service 类
1.类设计
(1).Date 类
class Date
{
public:
Date();
Date(int year,int month,int day):year(year),month(month),day(day){}
int year;
4
int month;
int day;
};
(2).Person 类
class Person
{
public:
Person();
Person(string name,string sex,Date date,string Addr,string IDNum):
name(name),sex(sex),birthday(date),Addr(Addr),IDNum(IDNum){}
~Person();
virtual void Display();
string getName() { return name; }
string getSex() { return sex; }
Date getBirthday() { return birthday; }
string getAddr() { return Addr; }
string getIDNum() { return IDNum; }
void setName(string name){ this->name = name; }
void setSex(string sex) { this->sex = sex; }
void setBirthday(int year, int month, int day) { this->birthday.year = year;
this->birthday.month = month;
this->birthday.day = day;}
void setAddr(string Addr) { this->Addr = Addr; }
void setIDNum(string IDNum) { this->IDNum = IDNum; }
protected:
string name;
string sex;
Date birthday;
string Addr;
string IDNum;
};
(3).Card 类
class Card
{
public:
string ID;
double SumMoney;
Card(string ID):ID(ID){
SumMoney = 0;
5
}
};
(4).Account 类
class Account:public Person
{
public:
Account();
Account(string name, string sex, Date date, string Addr, string IDNum);
void Display();
vector
getCards();//----------------
void AddCard();
int DelCard(string CardID);
void SaveMoney(string CardID, double Money);
void RemoveMoney(string CardID, double Money);
private:
string AID;
vector cards;
};
(5).BankService 类
class BankService
{
public:
BankService();
~BankService();
void CreatAccount();
void DeleteAccount();
void ModifyAccount();
void FindAndDisplayAccount();
void AddCard();
void DelCard();
void Deposit();
void RemoveMoney();
void TransferAccounts();
private:
vector AccountData;
vector::iterator FindAccountByName(string name);
vector::iterator FindCardByID(vector &Cards,string CardID);
};
6
2.业务流程设计
(1)创建账户
开始
输入姓名,性别,出生日
期,地址和身份证号码
(2)删除账户
结束
否
开始
输入要删除用户
的姓名
存在?
是
删除账户
结束
(3)修改账户信息
7
可以修改的项目:(1)姓名(2)性别
(3)出生日期(以空格分隔)(4)地
址(5)身份证号码
不合法
开始
输入要修改
的项目
判断输入
合法
输入新的选
项值
修改
结束
(4)查找账户
未找到
开始
输入要查找
的姓名
查找账户
找到
显示
结束
8