收藏 分享(赏)

小型银行帐户系统设计_论文.docx

上传人:dzzj200808 文档编号:2789959 上传时间:2018-09-27 格式:DOCX 页数:8 大小:20.16KB
下载 相关 举报
小型银行帐户系统设计_论文.docx_第1页
第1页 / 共8页
小型银行帐户系统设计_论文.docx_第2页
第2页 / 共8页
小型银行帐户系统设计_论文.docx_第3页
第3页 / 共8页
小型银行帐户系统设计_论文.docx_第4页
第4页 / 共8页
小型银行帐户系统设计_论文.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1 / 8小型银行帐户系统设计摘 要 本文通过设计一个简单的银行帐户系统软件来分析银行帐户系统的设计思想。该软件实现了帐户管理的最基本功能,其中包括开户、销户、办卡、换卡、挂失卡、存款、取款、交易记录查询及打印、客户信息修改及打印、客户密码修改、管理员密码修改、利率设置等。 关键词 银行帐户系统;VC;ODBC; SQL Server 20001 小型银行帐户系统概述 随着银行行业的发展,银行的业务发展也逐渐地走向了多样化,业务类型逐渐增多,使银行的服务范围逐渐地变广,随着经济全球化的发展很多银行已走向了国际化,不仅为国内的众多客户提供了更优质服务,还使外国公民从中获得更多益处。 本系统主要实

2、现了开户、销户、用户信息修改、存款、取款、办卡、挂失卡、数据查询(用户信息查询,及交易记录查询)。根据这些功能及系统设计方面的考虑,系统采用模块化设计,各模块分别实现为: “管理用户模块”包括: 开户:由客户提供姓名、身份证号、联系地址、联系电话、存入金额、初始密码等。开户时间有系统自动生成。 销户:提供帐号用于销户,系统显示客户姓名及余额以便确认。 数据查询:查询客户存取款记录。 用户信息查询及修改:通过帐号、卡号、证件号进行查询。系统显示客户信息并可修改。 “管理员2 / 8模块”包括: 业务设置:利率等相关业务设置。 管理员密码修改:修改登录的管理员密码。 “卡管理模块” 包括: 办卡:

3、输入帐号信息,生成卡号,并由客户提供密码。换卡:输入帐号信息,生成新卡号,并由客户提供密码。 挂失卡:由客户提供卡号及身份证号(此为真实用户挂失依据)。 “存取操作模块” 包括: 存款:提供帐号或卡号以及存款金额,操作完成后显示余额。 取款:提供帐号或卡号以及取款金额,操作完成后显示余额。 同时,系统还实现了客户信息及客户交易记录的打印功能。2 数据库设计 根据本系统实现的功能,我们需要建立 5 个表,分别是用户数据表 user_data,用户密码表 user_password,交易记录表 user_exchange,用户余额表 user_balance,管理员密码表 admin_passwo

4、rd。user_data 表用于开户时,前台应用将用户开户时所需要的客户信息写入此表。 其中包括的数据有用户名、证件号、联系地址、联系电话、业务类型、存入金额、开户时间、帐号、卡号,共 9 个数据。为了便于简化前台应用与数据库的存取,其数据类型都设为字符型(char),但不影响正常的程序功能与精度。如user_data 建立如表所示。表 1 user_data 表列名数据类型长度允许空用户名 char15 证件号 char20 联系地址char80 联系电话 char15 业务类型 char15 存入金额char15 开户时间 char20 帐号 char15 卡号 char15 允许 3 /

5、 8创建 user_data 表的 SQL 语句为: USE BankManager CREATE TABLE user_data ( 用户名 char(15) NOT NULL, 证件号 char(20) NOT NULL, 联系地址 char(80) NOT NULL, 联系电话 char(15) NOT NULL, 业务类型 char(15) NOT NULL, 存入金额 char(15) NOT NULL, 开户时间 char(20) NOT NULL, 帐号 char(15) NOT NULL, 卡号 char(15) NULL ) GO3 各模块代码实现 因为各模块的代码实现基本上

6、都是在用 CRecordset 类,所以在这里只给出具有代表性的代码实现的分析,其它模块的代码不再讲述。 先来分析登录代码: 登录代码的第一个语句为: UpdateData(true); 这条语句是将登录对话框中的数据传递给 Login 类中对应绑定的 String 变量。这样可以对用户输入的用户名、密码、数据源等信息进行分析处理。 然后我们需要判断用户是否输入了用户名、密码和数据源,如果没有输入提示用户输入。代码如下:if(m_UserName=_T(“) MessageBox(“请输入用户名!“);return ; if(m_Password=_T(“) MessageBox(“请输入密码

7、!“); return ; DataSource=“ODBC;DSN=“; DataSource+=m_DataSource; if(m_(NULL,false,false,DataSource)=false) MessageBox(“请正确输入数据源!“); return ; 如果4 / 8用户输入了用户名、密码、数据源信息,我们还需要根据管理员静态变量 Admin,判断用户是作为管理员登录还是用户登录。 如果是管理员登录,就查找 admin_password 表,要访问 Admin_password 表,我们需要先建立个 CRecordset类: CRecordset m_Password

8、Set(&m_Database); 用前面打开的数据库连接构造 CRecordset 类。 然后必须打开此记录集,打开时,第一个参数指定记录集以向前只读方式打开,第二项用 SQL 语句指定返回给记录集的列,代码如下: CString strSQL; (“select * from admin_password where 管理员=%s“,m_UserName); m_(CRecordset:forwardOnly,strSQL); 在此,我们忽略了对 Admin 变量的判断。 下一步判断是否存在此管理员,通过记录集类的 IsEOF()可以知道返回的记录集是否有记录,没有说明不存在此管理员,那就

9、 return。if(m_() MessageBox(“没有此管理员! “); m_(); m_(); return ; 如果有记录我们需要判断管理员密码是否正确,首先要先把密码取出,然后跟用户的输入进行比较。CString tempPWD;m_(“密码“,tempPWD); if(m_Password) MessageBox(“密码错误,请正确输入管理员名和密码!“); m_(); m_(); return ; 如果是作为用户登录,就查询 user_password 表中的卡号和卡密码,这是先建立记录集类,这次我们建立的是我们自己5 / 8定义的派生自 CRecordset 类的 Cuser

10、PasswordSet 类,此类中的数据与 user_data 表中的数据对应,已经绑定好。打开方式我们选 CRecordset:snapshot,即快照方式,因为我们在后面要对数据库中绑定的数据进行查询(使用Requery()函数),其实我们也是可以用前面查询admin_password 表的方法的。 (“select * from user_password where 卡号=%s“,m_UserName); CUserPasswordSet m_PasswordSet(&m_Database); m_(CRecordset:snapshot,strSQL); 然后我们看看是否存在此卡号,

11、与前面的方法相同。 下一步我们查询user_data 表中的挂失状态,看看是否此卡已经挂失,若挂失就 return。m_(); if(m_=TRUE) MessageBox(“此卡已经挂失,暂不能用!“); m_(); m_(); return ; 然后就是确认密码是否正确了,与前面不同的是用m_CardPassword!=m_Password 进行判断,m_CardPassword 与数据库中的卡密码对应。 如果用户输入的各项数据都正确,就销毁登录框,进入主界面。CDialog:OnOK(); 如果用户按了“取消” ,退出整个程序,实现是在中的 InitInstance()中完成的。如下:L

12、ogin* m_pLogin=new Login(); if(IDCANCEL=m_pLogin-DoModal() return false; 接下来我们分析开户模块: 开户时我们需要在 user_data6 / 8表中添加数据,所以要用记录集类中的 AddNew()和Update()函数。一些代码实现与登录框的很相近,我们就主要说差别的地方。 首先我们检测用户是否输入了所有数据,并且检测存入金额是否合法:if(m_CunRuJinE 然后查看“证件号”是否使用过,若使用过就提示并返回,方法和查看前面的卡号是否挂失等同。下一步取得用户的帐号密码给全局变量 transfer: CPasswor

13、d m_Password; if(IDOK!=m_() return ; 然后整理要存入数据库的各变量值,大部分是由用户输入的,而卡号和开户时间是由系统生成的。 根据用户的输入,将业务类型记录到 m_Item变量中。 开户时间的生成比较简单,建立了 ColeDateTime后,获得当前时间并格式化成字符串后即可:COleDateTime now; now=COleDateTime:GetCurrentTime(); m_KaiHuShiJian=(); 帐号利用时间生成(后来的卡号也是),前面加个 A,是 Accounts 的第一个字母,共 15 位。 最后我们要把数据写入各个表先打开对应的记

14、录集,然后AddNew(),添加新值,下一步 Update(),最后对所有表进行更新。比如说向 user_data 表写数据:m_(); /CRecordset:snapshot,strSQL1 if(!m_() m_(); m_(); m_UserName=m_XingMing; m_Type=m_Item; m_Certificate =m_ZhengJianHao; m_Accounts 7 / 8=m_ZhangHao; m_Address = m_LianXiDiZhi; m_Telephone = m_LianXiDianHua; m_Time =m_KaiHuShiJian; m

15、_Currency = m_(); 密码表需要写入帐号、密码和挂失状态,余额表写入帐号和余额,写入方法同写入 user_data 一样。更新如下:if(m_()&m_()&m_() MessageBox(“开户成功!“); else MessageBox(“开户失败!“); 在我们的应用程序中,一用到密码,基本上都要调用密码框,相应的类是 CPassword,它的作用是将用户输入的密码传递给全局变量 transfer。代码如下:UpdateData(true); if(m_()!=6|m_()!=6) MessageBox(“你确认输入 6 位密码!“); else if(m_Password

16、1!=m_Password2) MessageBox(“请确认两次输入的密码一致!“); else transfer=m_Password1; CDialog:OnOK(); 4 总结 文中设计的银行帐户系统主要用 VC 和 SQL Server 2000,对于 VC 我们要掌握 MFC的编程框架,以及一些类的使用,这些类主要是 CDatabase类、CRecordset 类、COleDateTime 类、COleCurrency 类、CString 类、CcomboBox 类,而这里主要应用的就是CRecordset 类。因为这个系统可以说就是一个数据库应用程序,而文中使用的是 ODBC 编

17、程,所以程序的编写也就应用 MFC 提供的 ODBC 类。在整个的设计过程中应用的类成员函数有:CRecordset 类中 Open(),AddNew(),Edit(),8 / 8Delete(),Update(),Close()Requery(),GetFieldValue(),IsEOF();Cdatabase 类中的 Open(),Close();ColeDateTime 类中 GetCurrentTime(),Format(),GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond();COleCurrency 类中的Format();CString 类中的 Format();CcomboBox 类中的GetCurSel();这些函数有的需要带一些复杂的参数,而且还是多态的,设计过程中要多加留意。参考文献1 刘胜华.个性化银行帐户的设想.金融电子化2017 年 12 月 7日.第 12 期,总第 111 期 2 陈爱云.银行帐户管理有待电子化.金融电子化2017 年 11 月 7 日.第 11 期,总第110 期 3 黄明,梁旭,周绍斌.Visual C+信息系统设计与开发实例. 北京:机械工业出版社,2017

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报