个人银行账户信息管理系统_第1页
个人银行账户信息管理系统_第2页
个人银行账户信息管理系统_第3页
个人银行账户信息管理系统_第4页
个人银行账户信息管理系统_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:银行个人账户信息管理系统

银行个人账户管理系统

摘要

账户管理是目前每个银行的业务流程中的最重要日勺一项,在银行的各项业务流程中起

着承上启下口勺作用,可谓是银行业务H勺重中之重。

本文针对上述问题,采用软件工程的开发原理,根据软件工程日勺流程过程规范,按照

需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一

种银行个人账户信息管理系统。采用Linux平台作为开发环境,QT、C++作为开发工具,

面向对象化设计,重要设计了管理员的登录、新顾客口勺开户、存取款、转账、查询业务,

处理了银行目前操作的繁琐流程,以便快捷的实现了银行账户管理的基本任务。

本设计设计的银行个人账户信息管理系统,能使银行工作人员轻松快捷日勺完毕对账户

管理日勺任务,使银行日勺账目管理工作系统化、快捷化、规范化、自动化、高效化。

关键词:个人信息管理;QT:C++;面向对象;

Personalbankaccountmanagementsystem

ABSTRACT

Accountmanagementisoneofthemostimponantforeachbank'sbusinessprocesses,

whichplaysaconnectingroleinthebank'svariousbusinessprocesses.Itcanbedescribedasthe

topmostimportanttransactioninbanking.

Fortheaboveproblems,inthispaper,adoptedthedevelopmentofsoftwareengineering

principles,basedonthesoftwareengineeringprocessspecificationprocess,inaccordancewith

theneedsanalysis,outlinedesign,detaileddesign,programcoding,testing,softwareapplications,

andsoftwaremaintenanceprocess,wedevelopedapersonalbankaccountinformation

managementsystems.UsedtheLinuxplatformasadevelopmentenvironment,andusedQT,C+

+asadevelopmenttool,object-orienteddesign,thispapermajordesignedoftheadministrator's

login,newuseraccounts,withdrawals,transfers,businessinquiries,itsolvedthecumbersome

operatingprocessofbanks,andachieveabasicbankaccountmanagementtasksconvenient.

Thisdesigndesignedapersonalbankaccountinformationmanagementsystem,which

enablesthebankstafftocompletetheaccountmanagementtasksquicklyandeasily,sothe

managementofthebankaccountscanbecomesystematic,efficient,standardized,automatedand

efficient.

Keywords:PersonalInformationManagement(PIM);QT;C++;Object-oriented

目录

1本课题日勺研究意义和目的...................错误!未定义书签。

1.1开发背景...................................错误!未定义书签。

1.2国内外现实状况.............................错误!未定义书签。

1.3自动化管理银行竞争优势的I分析...............错误!未定义书签。

2系统需求分析..............................错误!未定义书签。

2.1开发设计思想.............................错误!未定义书签。

2.2可行性研究.................................错误!未定义书签。

2.3需求分析...................................错误!未定义书签。

2.4系统流程图aJ设计..........................错误!未定义书签。

2.5用例描述...................................错误!未定义书签。

3设计过程及编码............................错误!未定义书签。

3.1数据库口勺创立与使用.........................错误!未定义书签。

3.2建立Bank工程措施环节......................错误!未定义书签。

3.3添加QT设计界面类的设计....................错误!未定义书签。

3.4管理员登陆的设计...........................错误!未定义书签。

3.5主操控界面设计.............................错误!未定义书签。

3.6开户日勺设计................................错误!未定义书签。

3.7查询日勺设计................................错误!未定义书签。

3.8存款日勺设计.................................错误!未定义书签。

3.9取款日勺设计................................错误!未定义书签。

3.10转账时设计................................错误!未定义书签。

3.11修改密码口勺设计............................错误!未定义书签。

4功能测试..................................错误!未定义书签。

4.1管理员登陆界面.............................错误!未定义书签。

4.2主操控界面.................................错误!未定义书签。

4.3开户界面....................................错误!未定义书签。

4.4查询界面....................................错误!未定义书签。

4.5存款界面....................................错误!未定义书签。

4.6取款界面....................................错误!未定义书签。

4.7转账界面....................................错误!未定义书签。

4.8修改密码界面................................错误!未定义书签。

4.9判断与评估..................................错误!未定义书签。

5应用与维护..................................错误!未定义书签。

6总结.........................................错误!未定义书签。

参照文献........................................错误!未定义书签。

道谢............................................错误!未定义书签。

附录............................................错误!未定义书签。

1本课题的研究意义和目日勺

1.1开发背景

伴随社会经济日勺发展,信息化程度的不停深入,银行的老式业务己愈来愈不能满足银

行客户的需要。伴随我国经济的日益发展,我国H勺银行业将面临愈加剧烈H勺司行业竞争,

怎样提供更优质H勺服务,怎样吸引更多的客户,怎样运用计算机技术加强银行个人帐户信

息管理、进行银行业务再造,提高银行口勺工作效率和业务竞争能力是摆在各家银行面前日勺

迫切需要处理的问题。伴随银行业务不停发展,业务的种类也是日益繁多,而各项业务的

处理互有差异,这就对银行进入电子化水平和对应的管理水平提出了规定。怎样运用电子

化的手段构建一种高效统一的、通用灵活H勺系统来管理多种各样的业务,是每个商业银行

所要研究的课题。支持决策的I系统,需要在数据库的基础上,进行联机分析处理,每次处

理日勺数据量大,响应时间长。尤其是银行每天都要处理大量的I开户、存取款、转账等业务,

而银行人员现行应用日勺系统填写内容较为复杂、流程过于繁琐,已经是不能满足客户对于

办理业务时间上日勺快捷性的规定,做好存开户、存取款等是银行工作重要的环节,然而要

有效处理必须要有良好H勺程序和数据管理系统来建立一种良好的软件系统来实现迅速、

效、精确、安全日勺处理银行事物。

银行个人账户管理系统重要用于银行口勺储蓄管理,它可以协助我们有效、精确、并且

高效实现的完毕银行柜台业务。此系统操作以便效率、安全性高,只要拥有管理员的账号

和密码(也就是说是银行的工作人员),就可认为顾客做开户,开户之后就可以以便的为

顾客办理多种柜台业务,

1.2国内外现实状况

在信息化发展极为迅速日勺当今社会,金融经济日益趋向全球化,同行业竞争变得愈加

剧烈,国外银行业掀起了一股比上世纪更为声势浩大的信息化革命浪潮。国外银行业信息

化基础设施框架已具有完善、电子银行体系已走进成熟阶段,信息化建设正由业务层向管

理决策层推进。国际银行业普遍存在着管理决策信息化、网点扩张虚拟化、产品服务客户

化以及非关键业务外包化等趋势。

在国内,伴随金融市场的逐渐开放,银行竞争日趋剧烈。银行领域的竞争将紧紧围绕着

客户,尤其是优质客户这一稀缺资源进行。不过在外资银行涌入中国日勺进程中,我们很轻易

地看到这个现象:外资银行作为中国市场的后来者,国内资源临时是它们日勺弱项,恰恰这首

先正是我国银行竞争的优势所在。然而,客户资源H勺经营管理确实我国银行的软肋。国内

多数银行的客户关系管理还只是流于形式,这个问题是相称令人深思H勺。运用客户个人账

户管理体系来进行客户关系管理正是应对未来银行客户资源竞争日勺利器。客户个人账户管

理正是基于计算机技术和平台,通过对银行业务流程啊重组来整合客户信息资源,以更科

学有效的措施来管理客户信息,在银行内部实现信息和资源的共享,从而减少银行营运成

本,为客户提供更经济、快捷、周到的产品和服务来吸引客户,最终到达银行价值最大化。

1.3自动化管理银行竞争优势日勺分析

由于社会信息化日勺不停深入发展和经济金融体制日勺不停深入化,在知识经济和银行电

子化建设的发展中,我国经济构造也在不停地变化,社会对于金融服务的需求日新月异,

金融服务的内涵和外延变得愈加丰富。这就对于银行H勺管理提出了新的规定,银行H勺管理

日益趋向信息化、电子化、多元化。银行的电子化和现代化管理水平已经成为银行竞争力

的重要构成要素,成为银行市场运作、金融创新、量化管理的技术基础。大体上来说,银

行账户管理口勺系统化、自动化和规范化,使银行获得如下几方面的优势:

(1)差异化竞争优势;

(2)低成本竞争优势;

(3)目的集聚性优势;

(4)知识型优势;

(5)产业集聚型优势。

2系统需求分析

2.1开发设计思想

本系统的开发设计思想:

系统应当在银行日勺规定日勺前提下,满足银行对于个人账户管理H勺需求适应银行工作人

员平常工作的需要,并应到操作工程简便易行、安全可靠的规定。

根据系统设计的目的和重要功能和对开发工具和环境的选择,通过软件工程H勺设计措

施,对系统H勺可行性进行分析,确定方案日勺可行性。根据系统日勺需求得到需求分析,在需

求分析日勺基础上进行设计编码,完毕后对系统进行功能测试和应用维护。

系统采用模块化程序设计措施,不仅可以在系统设计时以便系统功能的多种组合与修

改,又可以以便开发人员后来对程序修改和和维护。

系统要具有数据库维护口勺功能,虽然以便顾客对数据的增长修改等操作。

2.2系统设计目日勺和重要功能

通过银行个人账户管理系统,可以使银行对于个人账户的I管理实现系统叱、自动化、

简便化,清除繁琐欧I信息录入,从而以便快捷时使银行到达高效管理个人账户的目的。

开发的重要任务是使工作人员可以轻松以便快捷日勺完毕对个人账户的管理的任务。

设计的银行个人账户管理系统应当具有最基本的账户管理功能,以及对客户信息变化

的记录功能,设计的银行个人账户信息管理系统需要完毕的重要功能是:

1、银行工作人员即管理员日勺登录

2、管理员对客户日勺开户操作(包括顾客名、身份证、密码口勺填写)

3、对已经有客户(账号)口勺查询操作

4、对已经有客户(账号)口勺存款操作

5、对已经有客户(账号)的取款操作

6、对已经有客户(账号)日勺修改密码日勺操作

7、对己经有客户(账号)之间日勺转账日勺操作

2.2.3开发工具和环境

开发工具:QT4.8.1>C++

运行环境:LINUX或UNIX

2.2可行性研究

可行性研究能使新系统到达以最小的开发成本获得最佳的经济效益。可行性研究的目

的,是根据开发管理信息系统的祈求,通过初步调查和系统目口勺分析,对要开发的银行个

人帐户管理信息系统从技术上、经济上、资源上和管理上进行与否可行的研究。这是一项

保证资源合理使用、防止失误和挥霍H勺重要工作。

由于实现了现代化的信息管理系统功能,这样就减少了人工的消耗,也就是说一台机

器替代了多种人日勺工作,这样就可以减少人员消耗上日勺开支。不仅如此,实现银行系统日勺

管理可以迅速的应对多种业务,在效率上也提高了速度,为发明更大的价值提供了前提条

件。

系统对于计算机日勺硬件、网络和系统条件的规定并不高,这样就以便了,银行信息管

理系统口勺实行和普及应用。

对于管理和经费问题上,都是非常透明和乐于让人接受的。系统实行运行后,并不需

要特定的工作人员去管理,我们只需要一种管理员来管理一台装备。因此在管理经费上是

不会有多大消耗H勺。

由于是电脑管理系统,因此对于账户口勺管理是相称高的。而银行信息管理系统的I运行

过程不仅不违反银行日勺管理规章制度,还会有效地实现信息的迅速存取。由于不仅节省了

银行自身的成本并且他的管理效率也会提高了。

2.3需求分析

构造设计的第一种阶段就是需求分析,这个阶段重要是为了搜集系统设计过程中所要

用到的基本数据•、数据构造和数据处理的流程,从而组织成尽量详细的数据,以便后来设

计的需要。

图2-1数据流图

通过对银行个人账户管理日勺内容及数据流的分析,我们便可以列出设计的I数据项:

1、开户信息表。包括:账户名、身份证、密码、反复密码。

2、查询信息表。包括:账户名、身份证、密码、余额。

3、存款信息表。包括:账户名、身份证、密码、存款额。

4、取款信息表。包括:账户名、身份证、密码、取款额。

5、转账信息表。包括:转账人、密码、收款人、金额。

6、修改密码信息表,包括:账户名、身份证、密码、新密码、反复新密码。

2.4系统流程图日勺设计

这一阶段日勺设计是基于需求分析上日勺,通过需求分析来设计出可以满足顾客需求

的多种实体以及它们之间的联络,以以便下一步的逻辑构造设计。

根据系统设计规定系统流程图设计如下:

图2-2系统流程图

2.5用例描述

2.5.1管理员登录取例

管理员登录取例表如表27

表2T管理员登录取例表

用例名称登录

用例描述描述了管理员怎样登录到系统中

参与者管理员

状态审查通过

前置条件无

假如用例成功,则管理员登录到系统之。否则,系统状态不

后置条件

变。

当管理员想登录到银行信息系统中时,用例启动。

(1)系统提醒管理员输入顾客名和密码。

基本操作流程

(2)管理员输入自己的)顾客名和密码,提交。

(3)系统验证输入口勺名字和密码,管理员登录系统成功。

假如输入顾客名和(或)密码无效,系统提醒错误信息,顾

可选操作流程

客可以重新输入或中断该用例。

2.5.2开户用例

开户用例表如表2-2

表2-2开户用例表

用例名称开户

用例描述本用例容许管理员通过客户提供的信息给客户开户

参与者管理员

状态审查通过

前置条件在本用例开始前,管理员必须登陆到系统中

假如用例成功,则系统中会增长新建的账户。否则,系统状

后置条件

态不变。

当顾客想在银行开户时,要向管理员提供账户名、身份证、

基本操作流程密码,用例启动。

(1)系统提醒管理员输入需要要开户的客户的账户名、身

份证、密码。

(2)管理员输入新客户的账户名、身份证、密码,提交。

(3)系统保留新账户信息。

2.5.3存款用例

存款用例表如表2-3

表2-3存款用例表

用例名称存款

用例描述本用例容许管理员借助客户提供的账户信息存款到帐户中

参与者管理员

状态审查通过

前置条件在本用例开始前,管理员必须登陆到系统中

假如用例成功,则客户账户中存款的金额发生变化。否则,

后置条件

系统状态不变。

当客户想让管理员存款到自己的账户时,要向管理员提供账

户名、身份证、密码和存款金额,用例启动。

基本操作流程(1)系统提醒管理员输入账户名、身份证、密码和存款额。

(2)管理员输入有关信息后提交。

(3)系统更新账户的有关信息。

账户不存在或者无效,显示提醒信息,顾客可以重新输入或

可选操作流程

终止该用例。

2.5.4取款用例

取款用例表如表2-4

表2-4取款用例表

用例名称取款

用例描述本用例容许管理员按照客户的规定从客户的帐户中取款

参与者管理员

前置条件本用例开始前,管理员必须登录到系统中

假如用例成功,则客户账户中存款的金额发生变化。否则,

后置条件

系统状态不变。

当客户想存钱到自己日勺账户时,要向管理员提供账户名、身

份证、密码、取款额,用例启动。

(1)系统提醒管理员输入账户名、身份证、密码和取款额。

基本操作流程

(2)管理员输入有关信息后提交,账户中的存款金额与否

足够支付所取款项。

(3)更新账户日勺有关信息。

账户中的存款金额局限性,显示提醒信息,顾客可以重新输

可选操作流程

入金额或终止该用例。

2.5.5查询用例

查询用例表如表2-5

表2-5查询用例表

用例名称查询

本用例容许管理员按照客户MJ规定从客户的帐户中查询余

用例描述

参与者管理员

前置条件本用例开始前,管理员必须登录到系统中

后置条件系统状态不变。

当客户想查询到自己的账户余额时,要向管理员提供账户

名、身份证、密码,用例启动。

基本操作流程(1)系统提醒管理员输入账户名、身份证、密码。

(2)管理员输入有关信息后提交。

(3)显示账户余额信息。

2.5.6转账用例

转账用例表如表2-6

表2-6转账用例表

用例名称转账

本用例容许管理员按照顾客H勺规定将资金从一种账户转到另

用例描述

一种账户。

参与者管理员

状态审查通过

前置条件本用例开始前,管理员必须登陆到系统中。

假如用例成功,则客户账户中存款的金额发生变化。否则,

后置条件

系统状态不变。

当客户规定转帐时,用例启动

(1)系统提醒管理员输入转账人、密码、收款人和所转款

项日勺金额。

基本操作流程(2)管理员输入有关信息后提交.

(3)系统确认账户中的存款金额与否足够支付所取款项。

(4)系统更新账户的1有关信息。

账户中的存款金额局限性,显示提醒信息,顾客可以重新输

可选操作流程

入金额或终止该用例。

2.5.7修改密码用例I

修改密码用例表如表2-7

表2-7修改密码月例表

用例名称修改密码

用例描述本用例容许管理员按照顾客的规定将本来密码修改

参与者管理员

状态审查通过

前置条件本用例开始前,管理员必须登陆到系统中。

后置条件假如用例成功,则客户账户密码发生变化。

当客户规定修改密码时,用例启动

(1)系统提醒管理员输入账户名、身份证、密码、新密码、

基本操作流反复新密码。

程(2)管理员输入有关信息后提交.

(3)系统更新账户口勺有关信息。

3设计过程及编码

重要开发设计思想:首先建立工程,运用QT将界面和类日勺头文献、实现文献以及界

面文献完毕,并编写代码通过ui界面得到输入信息,将界面信息存入数据库(或与数据库

数据匹配)之后,再合适日勺添加代码把不一样日勺界面文献通过按钮事件链接.从而可以在

不一样界面之间跳转“叫

3.1数据库日勺创立与使用

数据库的创立叫

终端状态下,进入mysql数据库,在mysql中创立数据库表格。

终端下输入命令:

Mysql-uroot-pl23456回车

回车后便进入Mysql

建表语句如下:

mysql>crealedatabaselesldb;〃建立数据库

mysql>usetesldb;〃设定目前数据库

mysql>createtableadmin(adminidvarchar(30),admpasswdvarchar(30));

〃建立管理员信息数据库表格

mysql>inscrtintoadminvalucs('abc','123');〃添力口数据

mysql>createtableaccount(accountnamevarchar(30),

accountNovarchar(30),accountpaswdvarchar(30),

accountMoneydouble);〃建立账户信息数据库表格

数据库的使用以

QSql模块提供了访问SQL数据库的接口,这些接口独立于操作系统,独立于数据库系

统。Qt中有诸多支持这个接口的类,这些类型通过Qt『、Jmodcl/view架构将数据库与顾客

界面结合起来。数据库连接由QSqlDatabase类对象表达,Qt通过driver与不一样的,数据库

通讯。

在进行SQL查询之前,需要与数据库建立连接。一般,在程序执行前顾客需要调用创

立连接日勺函数以建立与数据库的连接

数据库设计思绪:

数据库H勺使用分为四步:(1)获得界面信息(2)QsqlDatabase建立数据库的链接(3)

QsqlQuery用于执行SQL语句(4)更新数据库的数据。

本设计重要应用到数据库的链接、查询、插入和更新操作。数据库的设计如下:

1.建立数据库连接

在进行SQL查询之前,需要与数据库建立连接。一般,在程序执行前顾客需要调用创

立连接日勺函数以建立与数据库的连接。例如:

首先要从界面得到输入的数据

voidAdminLogin::adminLogin(){

QStringadminid=ui->adminid->tcxt();

QStringadminpasswd=ui->adminpasswd->text();

/*连接数据库得到管理员日勺有关信息刃

AdminDaoadao;

boolcflag=adao.connectDb(',QMYSQL";'testdb",Hl27.0.0.1",

3306,“root”,”123456”);//它的J第一种参数指明了访

问数据库的driver;接下来,分别设置数据库H勺数据库名,当地访问,端口设置,顾客名,

密码;最终,打开数据库连接叫

if(cflag){

Admina=adao.gelAdminByIdAndPasswd(adminid,adminpasswd);

qDcbug(a.adminId.toLatin1());

qDcbug(a.adminPasswd.toLatir)1());

〃判断管理员ID和密码与否与数据库中定义的管理员ID密码相符

if(a.adminld==adminld

&&a.adminPasswd==adminpasswd

&&a.adminld!=""&&a.adminPasswd!=""){

AdminAllaa;

this->close();

aa.exec();

}else{

qDebugC'selectdbfailed");

QMessagcBoxmsg(this);

msg.setText("selectdbfailed!!1');

msg.exec();

)

)else)

qDebug(Hconnectdbfailed");

QMessageBoxmsg(this);

msg.selText("connectdbfailed!!");

msg.exec();

)

2.执行select命令查询

一旦建立连接,顾客就可以使用QSqlQuery类型执行SQL命令。本设计中执行SELECT

命令如下w:

AccountAccountDao::getAccountByNameAndIdAndPasswd(Accountaccount))

QSqlQueryqu(myconn);

qu.prepare("select*fromaccountwhereaccountname二?andaccountNo=?and

accountpaswd=?");

qu.bindValue(0,account.getAccountName());

qu.bindValue(1,account.getAccountNo());

qu.bindValue(2,account.getAccountPasswd());

Accounta;

qu.exec();

然后可以处理杳询成果:

if(qu.next()){

a.setAccountName(qu.value(0).toString());

a.sctAccountNo(qu.valuc(1).toString());

a.sctAccountPasswd(qu.value(2).toString());

a.setAccountMoney(qu.value(3).toDouble());

)

returna;

)

第一次调用query.nexl。时,查询记录指针指向第一条记录;接下来每调用一次next。,

指针向后移一条记录,直到指针指向记录的尾端1尾端是最终一条记录的下一种位置),

这时next。返回falseo

3.执行insert命令

先从界面得到需要插入日勺数据,连接好数据库后,执行INSERT命令,向数据库插入

新日勺数据。

voidAddAccount::createAccount(){

/*从界面得到数据*/

QStringaname=ui->accountName->text();

QStringaid=ui->accountld->text();

QStringapaswd=ui->accountPasswd->text();

Accounta(aname,aid,apaswd,O.O);

/*调用访问数据库的对象把对象存入数据库*/

AccountDaoadao;

boolcflag=adao.connectDb("QMYSQL'',"testdb',;,127.0.0.1”,

3306,“root”,”123456”);〃连接数据库

/*链接到数据库后执行insert命令更新数据库⑸*/

boolAccountDao::addAccount(Accountaccount){

QSqiQueryqu(myconn);

qu.prepare("insertintoaccountvalues(?,?,?,?)");

qu.bindVaiue(0,account.getAccountName());

qu.bindVaIue(1,account.getAccountNo());

qu.bindValue(2,account.getAccountPasswd());

qu.bindValue(3,account.getAccountMoney());

4.SQLupdate

为了更新一条记录,首先从QSqlTableModel中找到该记录的位置。然后抽出记录,更

新域值,再将记录写入数据库叫

从界面得到需要改动的数据信息:

voidTransfer::transferAccount(){

Accountsender;

scndcr.sctAccountNamc(ui->sname->tcxt());

sender.setAccountNo(ui->sno->text());

sender.setAccountPasswd(ui->spasswd->text());

Accountreciver;

reciver.setAccountName(ui->mame->text());

reciver.setAccountNo(ui->rno->text());

连接到数据库:

AccountDaoadao;

boolcflag=adao.connectDb(,,QMYSQL",,,testdb\"127.0.0.1u,

3306,"root";'123456");

if(cflag){

Accounts=adao.getAccountByNameAndIdAndPasswd(sender);

if(s.getAccounlMoney()<ui->money->text().toDouble()){

QMessageBoxmsg;

msg.setText("havenotenoughmoney");

msg.exec();

return;

)

Accountr=adao.getAccountByNameAnd!d(reciver);

qDebug(r.getAccountName().toLatin1());

qDcbug(s.gctAccountNamc().toLatin1());

adao.transferByAccount(s,r,ui->money->text().toDouble());

)

)

通过accountdao.cpp链接到数据库保留对应设计

对对应的数据进行更新:

voidAccountDao::transferByAccount(Accountsender,Accountrecevendouble

money){

myconn.transactionO;

QSqlQueryqu(myconn);

qu.prepare("updateaccountsetaccountMoney=accountMoney-?where

accountnam—?");

qu.bindValue(O,money);

qu.bindValue(1,sender.getAccountName());

boolf=qu.exec();

qu.prepare(nupdateaccountsetaccountMoney=accountMoney+?where

accountname=?H);

qu.bindValue(0,money);

qu.bindValue(1,recever.getAccountName());

boolff=qu.exec();

qDebug("success!n);

myconnmit();

)eise{

qDebug(Mfailed!");

myconn.rollback();

1

3.2建立Bank工程措施环节

第一步:进入QTCreator选择创立项目,

第二步:选择QT控件项目,QTGui应用

图3-1创立QT控件项目图

第三步:点击下一步给项目起名称

第四步:点击下一步,创立源码文献H勺基本类信息

■A

图3-2创立源码文献H勺基本类信息图

第六步:下一步点击完毕

这时候我们就完毕了一种QT项目日勺构建,之后我们就可以在其基础上根据设计需要添

加QT日勺设计界面类⑺。

3.3添加QT设计界面类日勺设计

第一步:在项目名Bank上右击选择新建文献

第二步:选择新建QT设计界面类

第三步:选择DialogwithoutButtons界面模版

第四步:填写需要添加的类名,头文献名、源文献名和界面文献名称会随类名变化而变化。

添加类名是要注意类名的首字母要大写。

第五步:点击下一步,查对添加至项目无误状况下,点击完毕。

这样,我们就将一种新口勺类添加到项目中,并且将头文献、实现文献、界面文献一起

创立完毕。

3.4管理员登陆的设计

第一步:按照3.1环节完毕项目构建后,AdminloginH勺界面类会完毕,系统会提供一种空

界面,在空界面上我们根据管理员登陆界面用例,来添加组件。

(1)选中ui界面文献,进入ui设计界面,选择DisplayWidgets下的JLabel,给ui界面

添加文本框,双击文本框,修改文本框显示口勺内容。

(2)选择InputWidgets下的LineEdit,给界面添加输入框。

(3)选择Buttons下的|PushButton,给界面添加按钮。

(4)添加完后如下图

在这里输入

管理员ID

置陆取消

图3-3管理员登录设计界面图

(5)添加组件完毕后,考虑到密码日勺保护,我们要将密码时显示修改为非明码显示,点

击选中密码输入文本框,在属性栏中找到echoMode将其默认的INormal改换成

Passwordo

第二步:功能设计

adminid:管理员ID

adminpasswd:第码

adminid和adminpasswd从数据库中查询出来得到登陆界面的输入数据并做

判断,登陆成功进入主操作界面

假如管理员ID和密码不对日勺任意一种或都不对日勺,则输出“selectdbfailed!!",

并弹出提醒对话框,但不是由于输入错误导致登录失败时,则会输出〃connectdb

failed”,并弹出提醒对话框.

对应代码如下:

voidAdminLogin::adminLogin(){

QSlringadminid=ui->adminid->lexl();

QSlringadminpasswd=ui->adminpasswd->text();

/*连接数据库得到管理员的有关信息*/

AdminDaoadao;

boolcflag=adao.connectDb("QMYSQL","testdb";'l27.0.0.1",

3306;'root","123456n);

iReflag){

Admina=adao.getAdminByIdAndPasswd(adminid,adminpasswd);

qDebug(a.adminId.toLatin1());

qDcbug(a.adminPasswd.toLatir)1());

〃判断管理员ID和密码与否与数据库中定义日勺管理员ID密码相符

if(a.adminld==adminld

&&a.adminPasswd==adminpasswd

&&a.adminld!=uu&&a.adminPasswd!="u){

AdminAllaa;

this->close();

aa.exec();

}else{

qDebug("selectdbfailed1');

QMessagcBoxmsg(this);

msg.setText("selectdbfailed!!1');

msg.exec();

}else{

qDebug(nconnectdbfailed");

QMessageBoxmsg(this);

msg.setText("connectdbfailed!!");

msg.exec();

1

}

第三步:管理员ID和密码输入后点击登录则进入主操控界面,点击退出则退出登陆界面,

对应代码如下:

AddAccount::AddAccount(QWidgct*parent):

QDialog(parent),

ui(newUi::AddAccount)

(

ui->setupUi(this);

connect(ui->createAccount,SIGNAL(clicked()),

this,SLOT(createAccount()));

connect(ui->cancei,SIGNAL(clicked()),

this,SLOT(close()));

3.5主操控界面设计

按需求分析的规定主操控界面重要设计开户、查询、存款、取款、转账、修改密

码和退出七个选项,界面设计过程如下:

第一步:按照3.2的环节新建界面模版,填写Adminall类头文献名、源文献名和界面

文献名称。

第二步:在建好时空界面模版上,按照主操控界面用例规定,添加Button按钮,并修

改Button按钮名称。完毕的I界面图如下:

转眯

修改空码

退出

图3-4主界面设计图

第三步:给各个按钮创立连接

分别点击不一样的按钮会进入不一样的界面,每个diked都会对应一种connect,通过

connect进入对应的界面。重要代码如下:

connect(ui->createAccount,SIGNAL(clicked()),

this,SLOT(createAccount()));

connect(ui->seachAccount,SIGNAL(clickcd()),

this,SLOT(seachAccount()));

connect(ui->changeAccount,SIGNAL(clicked()),

this,SLOT(transferAccount()));

connect(ui->deposite,SIGNAL(clicked()),

this,SLOT(forDeposite()));

connect(ui->withDraw,SIGNAL(clicked()),

this,SLOT(withDraw()));

connect(ui->changPasswd,SIGNAL(clicked()),

this,SLOT(changePasswd()));

connect(ui->quit,SIGNAL(c!icked()),

this,SLOT(close()));

3.6开户时设计

第一步:分析。根据个人账户管理系统的需求分析可知,开户需要有账户名、身份证、

密码、和反复密码四项输入。

第二步:按需求进行设计。按照3.2日勺环节新建界而模版,填写Addaccount类头文献

名、源文献名和界面文献名称。

第二步:在提供的空界面上我们根据开户界面用例,来添加组件。

(1)选中ui界面文献,进入ui设计界面,选择DisplayWidgets下日勺Label,给ui

界面添加文本框,双击文本框,修改文本框显示的内容。

(2)选择InputWidgets下的LineEdit,给界面添加输入框。

(3)选择Buttons下H勺PushButton,给界面添加按钮。

(4)添加组件完毕后,考虑到密码的保护,我们要将密码H勺显示修改为非明码显示,

点击选中密码输入文本框,在属性栏中找到echoMode将其默认H勺Normal改换成

Password©

(5)添加完后如下图

眯尸名:I1

身份证:

■定码:।■

里复密码:]

[开户j取消।

■-----------------------------------0-----------------------------------•

图3-5开户界面设计图

第四步:获取界面填写口勺数据存入数据库的设计。

系统从管理员输入的数据得到信息,并把信息存储到数据库中,开户成功则会弹出

"createaccountsuccess!!"对话框,假如开户失败则会弹出"createaccountfailed!!"对话

框。

假如开户成功,点击提醒对话框确实定按钮(如下图),这样就得到了界面数据,并用

数据来构建账户对象,调用访问数据库的类,并把数据存入数据库,最终返回主操控

界面。

账.

Bank

Rcreateaccountsuccess!!

StOK,

——r******

图3-6开户成功界面演示图

数据库设计需求的重要代码如下:

voidAddAccount::createAccount(){

/*从界面得到数据*/

QStringaname=ui->accountName->text();

QStringaid=ui->accountld->lext();

QStringapaswd=ui->accountPasswd->text();

Accounta(aname,aid,apaswd,O.O);

/*调用访问数据库的对象把对象存入数据库*/

AccountDaoadao;

boolcflag=adao.connectDb("QMYSQL',,,,testdb";'127.0.0.1”,

3306,,,root",,,123456H);

if(cflag){

boolf=adao.addAccount(a);

if(D{

QMcssagcBoxmsg(this);

msg.setText("createaccountsuccess!!");

msg.execf);

}else{

QMessageBoxmsg(this);

msg.setText(ncreateaccountfailed!!");

msg.execO;

)

)

this->c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论