银行个人账户信息管理系统范本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
银行个人账户信息管理系统范本
银行团体账户管理系统
摘要
账户管理是如今每个银行的业务流程中的最重要的一项,在银行的各项业务流程中起着承上启下的作用,可谓是银行业务的重中之重。
本文针对上述效果,采用软件工程的开发原理,依据软件工程的流程进程规范,依照需求剖析、概要设计、详细设计、顺序编码、测试、软件运用、软件维护等进程开发了一个银行团体账户信息管理系统。
采用Linux平台作为开发环境,QT、C++作为开发工具,面向对象化设计,主要设计了管理员的登录、新用户的开户、存取款、转账、查询业务,处置了银行目前操作的繁琐流程,方便快捷的完成了银行账户管理的基转义务。
本设计设计的银行团体账户信息管理系统,能使银行任务人员轻松快捷的完成对账户管理的义务,使银行的账目管理任务系统化、快捷化、规范化、自动化、高效化。
关键词:团体信息管理;QT;C++;面向对象;
Personal bank account management system
ABSTRACT
Account management is one of the most important for each bank's business processes, which plays a connecting role in the bank's various business processes. It can be described as the top most important transaction in banking.
For the above problems, in this paper, adopted the development of software engineering principles, based on the software engineering process specification process, in accordance with the needs analysis, outline design, detailed design, program coding, testing, software applications, and software maintenance process, we developed a personal bank account information management systems. Used the Linux platform as a development environment, and used QT, C + + as a development tool, object-oriented design, this paper major designed of the administrator's login, new user accounts, withdrawals, transfers, business inquiries, it solved the cumbersome operating process of banks , and achieve a basic bank account management tasks convenient.
This design designed a personal bank account information management system, which enables the bank staff to complete the account management tasks quickly and easily, so the management of the bank accounts can become systematic, efficient, standardized, automated and efficient.
Key words:Personal Information Management (PIM); QT; C++;Object-oriented
目录
1 本课题的研讨意义和目的 0
1.1 开发背景 0
1.2 国际外现状 0
1.3 自动化管理银行竞争优势的剖析 (1)
2 系统需求剖析 (2)
2.1 开发设计思想 (2)
2.2 可行性研讨 (2)
2.3 需求剖析 (3)
2.4 系统流程图的设计 (4)
2.5 用例描画 (5)
3 设计进程及编码 (9)
3.1 数据库的创立与运用 (9)
3.2 树立Bank工程方法步骤 (13)
3.3 添加QT设计界面类的设计 (14)
3.4 管理员登陆的设计 (14)
3.5 主操控界面设计 (16)
3.6 开户的设计 (17)
3.7 查询的设计 (19)
3.8 存款的设计 (20)
3.9 取款的设计 (22)
3.10 转账的设计 (25)
3.11 修正密码的设计 (27)
4 功用测试 (29)
4.1 管理员登陆界面 (29)
4.2 主操控界面 (29)
4.3 开户界面 (29)
4.4 查询界面 (30)
4.5 存款界面 (31)
4.6 取款界面 (32)
4.7 转账界面 (33)
4.8 修正密码界面 (34)
4.9 判别与评价 (35)
5 运用与维护 (36)
6 总结 (37)
参考文献 (38)
致谢 ........................................ 错误!未定义书签。
附录 . (39)
1本课题的研讨意义和目的
1.1开发背景
随着社会经济的开展,信息化水平的不时深化,银行的传统业务己愈来愈不能满足银行客户的需求。
随着我国经济的日益开展,我国的银行业将面临愈加剧烈的同行业竞争,如何提供更优质的效劳,如何吸引更多的客户,如何应用计算机技术增强银行团体帐户信息管理、停止银行业务再造,提高银行的任务效率和业务竟争才干是摆在各家银行面前的迫切需求处置的效果。
随着银行业务不时开展,业务的种类也是日益单一,而各项业务的处置互有差异,这就对银行进入电子化水平和相应的管理水平提出了要求。
如何应用电子化的手腕构建一个高效一致的、通用灵敏的系统来管理各种各样的业务,是每个商业银行所要研讨的课题。
支持决策的系统,需求在数据库的基础上,停止联机剖析处置,每次处置的数据量大,照应时间长。
尤其是银行每天都要处置少量的开户、存取款、转账等业务,而银行人员现行运用的系统填写内容较为复杂、流程过于繁琐,曾经是不能满足客户关于操持业务时间上的快捷性的要求,做好存开户、存取款等是银行任务重要的环节,但是要有效处置必需要有良好的顺序和数据管理系统来树立一个良好的软件系统来完成快速、有效、准确、平安的处置银行事物。
银行团体账户管理系统主要用于银行的储蓄管理,它可以协助我们有效、准确、并且高效完成的完成银行柜台业务。
此系统操作方便效率、平安性高,只需拥有管理员的账号和密码〔也就是说是银行的任务人员〕,就可以为用户做开户,开户之后就可以方便的为用户操持各种柜台业务。
1.2 国际外现状
在信息化开展极为迅速的当今社会,金融经济日益趋向全球化,同行业竞争变得愈加剧烈,国外银行业掀起了一股比上世纪更为大张旗鼓的信息化革命浪潮。
国外银行业信息化基础设备框架已具有完善、电子银行体系已走进成熟阶段,信息化树立正由业务层向管理决策层推进。
国际银行业普遍存在着管理决策信息化、网点扩张虚拟化、产品效劳客户化以及非中心业务外包化等趋向。
在国际,随着金融市场的逐渐开放,银行竞争日趋剧烈。
银行范围的竞争将紧紧围绕着客户,尤其是优质客户这一稀缺资源停止。
但是在外资银行涌入中国的进程中,我们很容易地看到这个现象:外资银行作为中国市场的后来者,国际资源暂时是它们的弱项,恰恰这一方面正是我国银行竞争的优势所在。
但是,客户资源的运营管理确实我国银行的软肋。
国
际少数银行的客户关系管理还只是流于方式,这个效果是相当令人深思的。
运用客户团体账户管理体系来停止客户关系管理正是应对未来银行客户资源竞争的利器。
客户团体账户管理正是基于计算机技术战争台,经过对银行业务流程的重组来整合客户信息资源,以更迷信有效的方法来管理客户信息,在银行外部完成信息和资源的共享,从而降低银行营运本钱,为客户提供更经济、快捷、周到的产品和效劳来吸引客户,最终到达银行价值最大化。
1.3自动化管理银行竞争优势的剖析
由于社会信息化的不时深化开展和经济金融体制的不时深化化,在知识经济和银行电子化树立的开展中,我国经济结构也在不时地变化,社会关于金融效劳的需求一日千里,金融效劳的外延和外延变得愈加丰厚。
这就关于银行的管理提出了新的要求。
银行的管理日益趋向信息化、电子化、多元化。
银行的电子化和现代化管理水平曾经成为银行竞争力的重要构成要素,成为银行市场运作、金融创新、量化管理的技术基础。
大致下去说,银行账户管理的系统化、自动化和规范化,使银行取得以下几方面的优势:
〔1〕差异化竞争优势;
〔2〕低本钱竞争优势;
〔3〕目的集聚性优势;
〔4〕知识型优势;
〔5〕产业集聚型优势。
2系统需求剖析
2.1 开发设计思想
本系统的开发设计思想:
系统应当在银行的规则的前提下,满足银行关于团体账户管理的需求顺应银行任务人员日常任务的需求,并应到达操作工程简便易行、平安牢靠的要求。
依据系统设计的目的和主要功用和对开发工具和环境的选择,经过软件工程的设计方法,对系统的可行性停止剖析,确定方案的可行性。
依据系统的需求失掉需求剖析,在需求剖析的基础上停止设计编码,完成后对系统停止功用测试和运用维护。
系统采用模块化顺序设计方法,不只可以在系统设计时方便系统功用的各种组合与修正,又可以方便开发人员日后对顺序修正和和维护。
系统要具有数据库维护的功用,即使方便用户对数据的添加修正等操作。
2.2 系统设计目的和主要功用
经过银行团体账户管理系统,可以使银行关于团体账户的管理完成系统化、自动化、简便化,去除繁琐的信息录入,从而方便快捷的使银行到达高效管理团体账户的目的。
开发的主要义务是使任务人员可以轻松方便快捷的完成对团体账户的管理的义务。
设计的银行团体账户管理系统应该具有最基本的账户管理功用,以及对客户信息变化的记载功用,设计的银行团体账户信息管理系统需求完成的主要功用是:
1、银行任务人员即管理员的登录
2、管理员对客户的开户操作〔包括用户名、身份证、密码的填写〕
3、对已有客户〔账号〕的查询操作
4、对已有客户〔账号〕的存款操作
5、对已有客户〔账号〕的取款操作
6、对已有客户〔账号〕的修正密码的操作
7、对已有客户〔账号〕之间的转账的操作
2.2.3 开发工具和环境
开发工具:QT4.8.1 、C++
运转环境:LINUX或UNIX
2.2 可行性研讨
可行性研讨能使新系统到达以最小的开发本钱取得最正确的经济效益。
可行性研讨的
目的,是依据开发管理信息系统的央求,经过初步伐查和系统目的剖析,对要开发的银行团体帐户管理信息系统从技术上、经济上、资源上和管理上停止能否可行的研讨。
这是一项保证资源合理运用、防止失误和糜费的重要任务。
由于完成了现代化的信息管理系统功用,这样就增加了人工的消耗,也就是说一台机器替代了多团体的任务,这样就可以增加人员消耗上的开支。
不只如此,完成银行系统的管理可以快速的应对各种业务,在效率上也提高了速度,为发明更大的价值提供了前提条件。
系统关于计算机的硬件、网络和系统条件的要求并不高,这样就方便了,银行信息管理系统的实施和普及运用。
关于管理和经费效果上,都是十分透明和乐于让人接受的。
系统实施运转后,并不需求特定的任务人员去管理,我们只需求一个管理员来管理一台装备。
所以在管理经费上是不会有多大消耗的。
由于是电脑管理系统,所以关于账户的管理是相当高的。
而银行信息管理系统的运转进程不只不违犯银行的管理规章制度,还会有效地完成信息的快速存取。
由于不只浪费了银行自身的本钱而且他的管理效率也会提高了。
2.3需求剖析
结构设计的第一个阶段就是需求剖析,这个阶段主要是为了搜集系统设计进程中所要用到的基本数据、数据结构和数据处置的流程,从而组织成尽能够详细的数据,方便以后设计的需求。
图2-1 数据流图
经过对银行团体账户管理的内容及数据流的剖析,我们便可以列出设计的数据项:
1、开户信息表。
包括:账户名、身份证、密码、重复密码。
2、查询信息表。
包括:账户名、身份证、密码、余额。
3、存款信息表。
包括:账户名、身份证、密码、存款额。
4、取款信息表。
包括:账户名、身份证、密码、取款额。
5、转账信息表。
包括:转账人、密码、收款人、金额。
6、修正密码信息表。
包括:账户名、身份证、密码、新密码、重复新密码。
2.4 系统流程图的设计
这一阶段的设计是基于需求剖析上的,经过需求剖析来设计出可以满足用户需求的各种实体以及它们之间的联络,以方便下一步的逻辑结构设计。
依据系统设计要求系统流程图设计如下:
图2-2系统流程图
2.5用例描画
2.5.1 管理员登录用例
管理员登录用例表如表2-1
表2-1管理员登录用例表
2.5.2 开户用例
开户用例表如表2-2
表2-2开户用例表
存款用例表如表2-3
表2-3存款用例表
2.5.4 取款用例
取款用例表如表2-4
表2-4取款用例表
查询用例表如表2-5
表2-5查询用例表
2.5.6转账用例
转账用例表如表2-6
表2-6转账用例表
2.5.7 修正密码用例
修正密码用例表如表2-7
表2-7修正密码用例表
3设计进程及编码
主要开发设计思想:首先树立工程,应用QT将界面和类的头文件、完成文件以及界面文件完成,并编写代码经过ui界面失掉输入信息,将界面信息存入数据库〔或与数据库数据婚配〕之后,再适当的添加代码把不同的界面文件经过按钮事情链接,从而可以在不同界面之间跳转[10]。
3.1 数据库的创立与运用
数据库的创立[8]:
终端形状下,进入mysql数据库,在mysql中创立数据库表格。
终端下输入命令:
Mysql –uroot –p123456 回车
回车后便进入Mysql
建表语句如下:
mysql>create database testdb;//树立数据库
mysql>use testdb;//设定以后数据库
mysql>create table admin(adminid varchar(30),admpasswd varchar(30));
//树立管理员信息数据库表格
mysql>insert into admin values('abc','123');//添加数据
mysql>create table account (accountname varchar(30),
accountNo varchar(30), accountpaswd varchar(30),
accountMoney double);//树立账户信息数据库表格
数据库的运用[9]:
QSql 模块提供了访问 SQL 数据库的接口,这些接口独立于操作系统,独立于数据库系统。
Qt 中有很多支持这个接口的类,这些类型经过 Qt 的 model/view 架构将数据库与用户界面结合起来。
数据库衔接由 QSqlDatabase 类对象表示,Qt 经过 driver 与不同的数据库通讯。
在停止 SQL 查询之前,需求与数据库树立衔接。
通常,在顺序执行前用户需求调用创立衔接的函数以树立与数据库的衔接
数据库设计思绪:
数据库的运用分为四步:〔1〕取得界面信息〔2〕QsqlDatabase树立数据库的链接〔3〕QsqlQuery用于执行SQL语句〔4〕更新数据库的数据。
本设计主要运用到数据库的链接、查询、拔出和更新操作。
数据库的设计如下:
1. 树立数据库衔接
在停止SQL查询之前,需求与数据库树立衔接。
通常,在顺序执行前用户需求调用创立衔接的函数以树立与数据库的衔接。
例如:
首先要从界面失掉输入的数据
void AdminLogin::adminLogin(){
QString adminid=ui->adminid->text();
QString adminpasswd=ui->adminpasswd->text();
/*衔接数据库失掉管理员的相关信息*/
AdminDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");//它的第一个参数指明了访问数据库的driver;接上去,区分设置数据库的数据库名,本地访问,端口设置,用户名,密码;最后,翻开数据库衔接[3]。
if(cflag){
Admin a=adao.getAdminByIdAndPasswd(adminid,adminpasswd);
qDebug(a.adminId.toLatin1());
qDebug(a.adminPasswd.toLatin1());
//判别管理员ID和密码能否与数据库中定义的管理员ID密码相符
if(a.adminId==adminId
&& a.adminPasswd==adminpasswd
&&a.adminId!="" &&a.adminPasswd!=""){
AdminAll aa;
this->close();
aa.exec();
}else{
qDebug("select db failed");
QMessageBox msg(this);
msg.setText("select db failed!!");
msg.exec();
}
}else{
qDebug("connect db failed");
QMessageBox msg(this);
msg.setText("connect db failed!!");
msg.exec();
}
2. 执行select命令查询
一旦树立衔接,用户就可以运用QSqlQuery类型执行SQL命令。
本设计中执行SELECT 命令如下[1]:
Account AccountDao::getAccountByNameAndIdAndPasswd(Account account){ QSqlQuery qu(myconn);
qu.prepare("select * from account where accountname=? and accountNo=? and accountpaswd=?");
qu.bindValue(0,account.getAccountName());
qu.bindValue(1,account.getAccountNo());
qu.bindValue(2,account.getAccountPasswd());
Account a;
qu.exec();
然后可以处置查询结果:
if(qu.next()){
a.setAccountName(qu.value(0).toString());
a.setAccountNo(qu.value(1).toString());
a.setAccountPasswd(qu.value(2).toString());
a.setAccountMoney(qu.value(3).toDouble());
}
return a;
}
第一次调用query.next()时,查询记载指针指向第一条记载;接上去每调用一次next(),指针向后移一条记载,直到指针指向记载的尾端〔尾端是最后一条记载的下一个位置〕,这时next()前往false。
3. 执行insert命令
先从界面失掉需求拔出的数据,衔接好数据库后,执行INSERT命令,向数据库拔出新的数据。
void AddAccount::createAccount(){
/*从界面失掉数据*/
QString aname=ui->accountName->text();
QString aid=ui->accountId->text();
QString apaswd=ui->accountPasswd->text();
Account a(aname,aid,apaswd,0.0);
/*调用访问数据库的对象把对象存入数据库*/
AccountDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");//衔接数据库
/*链接到数据库后执行insert命令更新数据库[5]*/
bool AccountDao::addAccount(Account account){
QSqlQuery qu(myconn);
qu.prepare("insert into account values(?,?,?,?)");
qu.bindValue(0,account.getAccountName());
qu.bindValue(1,account.getAccountNo());
qu.bindValue(2,account.getAccountPasswd());
qu.bindValue(3,account.getAccountMoney());
4. SQL update
为了更新一条记载,首先从QSqlTableModel中找到该记载的位置。
然后抽出记载,更新域值,再将记载写入数据库[3]:
从界面失掉需求改动的数据信息:
void Transfer::transferAccount(){
Account sender;
sender.setAccountName(ui->sname->text());
sender.setAccountNo(ui->sno->text());
sender.setAccountPasswd(ui->spasswd->text());
Account reciver;
reciver.setAccountName(ui->rname->text());
reciver.setAccountNo(ui->rno->text());
衔接到数据库:
AccountDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");
if(cflag){
Account s=adao.getAccountByNameAndIdAndPasswd(sender) ;
if(s.getAccountMoney()<ui->money->text().toDouble()){
QMessageBox msg;
msg.setText("have not enough money");
msg.exec();
return;
}
Account r=adao.getAccountByNameAndId(reciver);
qDebug(r.getAccountName().toLatin1());
qDebug(s.getAccountName().toLatin1());
adao.transferByAccount(s,r,ui->money->text().toDouble());
}
}
经过accountdao.cpp链接到数据库保管相应设计
对相应的数据停止更新:
void AccountDao::transferByAccount(Account sender,Account recever,double money){
myconn.transaction();
QSqlQuery qu(myconn);
qu.prepare("update account set accountMoney=accountMoney-? where accountname=?");
qu.bindValue(0,money);
qu.bindValue(1,sender.getAccountName());
bool f=qu.exec();
qu.prepare("update account set accountMoney=accountMoney+? where accountname=?");
qu.bindValue(0,money);
qu.bindValue(1,recever.getAccountName());
bool ff=qu.exec();
if(f&&ff){
qDebug("success!");
myconn mit();
}else{
qDebug("failed!");
myconn.rollback();
}
3.2树立Bank工程方法步骤
第一步:进入QT Creator 选择创立项目,
第二步:选择QT控件项目,QT Gui 运用
图3-1 创立QT控件项目图
第三步:点击下一步给项目起称号
第四步:点击下一步,创立源码文件的基本类信息
图3-2 创立源码文件的基本类信息图第六步:下一步点击完成
这时分我们就完成了一个QT项目的构建,之后我们就可以在其基础上依据设计需求添加QT的设计界面类[7]。
3.3添加QT设计界面类的设计
第一步:在项目名Bank上右击选择新建文件
第二步:选择新建QT设计界面类
第三步:选择Dialog without Buttons界面模版
第四步:填写需求添加的类名,头文件名、源文件名和界面文件称号会随类名变化而变化。
添加类名是要留意类名的首字母要大写。
第五步:点击下一步,核对添加至项目无误状况下,点击完成。
这样,我们就将一个新的类添加到项目中,并且将头文件、完成文件、界面文件一同创立完成。
3.4管理员登陆的设计
第一步:依照3.1步骤完成项目构建后,Adminlogin的界面类会完成,系统会提供一个空界面,在空界面上我们依据管理员登陆界面用例,来添加组件。
(1)选中ui界面文件,进入ui设计界面,选择Display Widgets下的Label,给ui界面添加文本框,双击文本框,修正文本框显示的内容。
(2)选择Input Widgets下的Line Edit,给界面添加输入框。
(3)选择Buttons下的Push Button,给界面添加按钮。
(4)添加完后如以下图
图3-3 管理员登录设计界面图
(5)添加组件完成后,思索到密码的维护,我们要将密码的显示修正为非密码显示,点
击选中密码输入文本框,在属性栏中找到echoMode将其默许的Normal改换成Password。
第二步:功用设计
adminid:管理员ID
adminpasswd:密码
adminid 和adminpasswd 从数据库中查询出来失掉登陆界面的输入数据并做判别,登陆成功进入主操作界面
假设管理员ID和密码不正确恣意一个或都不正确,那么输入"select db failed!!",并弹出提示对话框,但不是由于输入错误招致登录失败时,那么会输入"connect db failed",并弹出提示对话框。
相应代码如下:
void AdminLogin::adminLogin(){
QString adminid=ui->adminid->text();
QString adminpasswd=ui->adminpasswd->text();
/*衔接数据库失掉管理员的相关信息*/
AdminDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");
if(cflag){
Admin a=adao.getAdminByIdAndPasswd(adminid,adminpasswd);
qDebug(a.adminId.toLatin1());
qDebug(a.adminPasswd.toLatin1());
//判别管理员ID和密码能否与数据库中定义的管理员ID密码相符
if(a.adminId==adminId
&& a.adminPasswd==adminpasswd
&&a.adminId!="" &&a.adminPasswd!=""){
AdminAll aa;
this->close();
aa.exec();
}else{
qDebug("select db failed");
QMessageBox msg(this);
msg.setText("select db failed!!");
msg.exec();
}
}else{
qDebug("connect db failed");
QMessageBox msg(this);
msg.setText("connect db failed!!");
msg.exec();
}
}
第三步:管理员ID和密码输入后点击登录那么进入主操控界面,点击参与那么参与登陆界面,相应代码如下:
AddAccount::AddAccount(QWidget *parent) :
QDialog(parent),
ui(new Ui::AddAccount)
{
ui->setupUi(this);
connect(ui->createAccount,SIGNAL(clicked()),
this,SLOT(createAccount()));
connect(ui->cancel,SIGNAL(clicked()),
this,SLOT(close()));
}
3.5主操控界面设计
按需求剖析的要求主操控界面主要设计开户、查询、存款、取款、转账、修正密码和参与七个选项,界面设计进程如下:
第一步:依照3.2的步骤新建界面模版,填写Adminall类头文件名、源文件名和界面文件称号。
第二步:在建好的空界面模版上,依照主操控界面用例要求,添加Button按钮,并修正Button按钮称号。
完成的界面图如下:
图3-4 主界面设计图
第三步:给各个按钮创立衔接
区分点击不同的按钮会进入不同的界面,每个cliked都会对应一个connect,经过connect 进入相应的界面。
主要代码如下:
connect(ui->createAccount,SIGNAL(clicked()),
this,SLOT(createAccount()));
connect(ui->seachAccount,SIGNAL(clicked()),
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(clicked()),
this,SLOT(close()));
3.6开户的设计
第一步:剖析。
依据团体账户管理系统的需求剖析可知,开户需求有账户名、身份证、密码、和重复密码四项输入。
第二步:按需求停止设计。
依照3.2的步骤新建界面模版,填写Addaccount类头文件名、源文件名和界面文件称号。
第三步:在提供的空界面上我们依据开户界面用例,来添加组件。
(1)选中ui界面文件,进入ui设计界面,选择Display Widgets下的Label,给ui
界面添加文本框,双击文本框,修正文本框显示的内容。
(2)选择Input Widgets下的Line Edit,给界面添加输入框。
(3)选择Buttons下的Push Button,给界面添加按钮。
〔4〕添加组件完成后,思索到密码的维护,我们要将密码的显示修正为非密码显示,点击选中密码输入文本框,在属性栏中找到echoMode将其默许的Normal改换成Password。
(5) 添加完后如以下图
图3-5 开户界面设计图
第四步:获取界面填写的数据存入数据库的设计。
系统从管理员输入的数据失掉信息,并把信息存储到数据库中,开户成功那么会弹出"create account success!!"对话框,假设开户失败那么会弹出"create account failed!!"对话框。
假设开户成功,点击提示对话框确实定按钮〔如以下图〕,这样就失掉了界面数据,并用数据来构建账户对象,调用访问数据库的类,并把数据存入数据库,最后前往主操控界面。
图3-6 开户成功界面演示图
数据库设计需求的主要代码如下:
void AddAccount::createAccount(){
/*从界面失掉数据*/
QString aname=ui->accountName->text();
QString aid=ui->accountId->text();
QString apaswd=ui->accountPasswd->text();
Account a(aname,aid,apaswd,0.0);
/*调用访问数据库的对象把对象存入数据库*/
AccountDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");
if(cflag){
bool f=adao.addAccount(a);
if(f){
QMessageBox msg(this);
msg.setText("create account success!!");
msg.exec();
}else{
QMessageBox msg(this);
msg.setText("create account failed!!");
msg.exec();
}
}
this->close();
}
经过accountdao.cpp链接到数据库保管相应设计
bool AccountDao::addAccount(Account account){
QSqlQuery qu(myconn);
qu.prepare("insert into account values(?,?,?,?)");
qu.bindValue(0,account.getAccountName());
qu.bindValue(1,account.getAccountNo());
qu.bindValue(2,account.getAccountPasswd());
qu.bindValue(3,account.getAccountMoney());
return qu.exec();
3.7查询的设计
第一步:剖析。
依据团体账户管理系统的需求剖析可知,查询界面应有账户名、身份证、密码、余额〔显示〕。
第二步:按需求停止设计。
依照3.2的步骤新建界面模版,填写Seachaccou nt类头文件名、源文件名和界面文件称号。
第三步:在提供的空界面上我们依据查询界面用例,来添加组件。
(1)选中ui界面文件,进入ui设计界面,选择Display Widgets下的Label,给ui界面
添加文本框,双击文本框,修正文本框显示的内容。
(2)选择Input Widgets下的Line Edit,给界面添加输入框。
〔3〕选择Buttons下的Push Button,给界面添加按钮。
〔4〕添加组件完成后,思索到密码的维护,我们要将密码的显示修正为非密码显示,点击选中密码输入文本框,在属性栏中找到echoMode将其默许的Normal改换成Password。
(5) 添加完后如以下图
图3-7 查询界面设计图
第四步:当管理员在界面内输入一个账户信息时,系统会经过输入的账户信息,将账户信息传递给dao对象,dao对象在已存在的数据库中停止查找,并将查找结果显示在余额中。
主要代码如下:
void SeachAccount::seachAccount(){
/*失掉用户名、身份证号和密码*/
QString aname=ui->aname->text();
QString apasswd=ui->passwd->text();
Account a(aname,aid,apasswd,0.0);
/*把这两个信息传给dao对象与数据库中的信息去婚配,并将余额显示*/
AccountDao adao;
bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1",
3306,"root","123456");
if(cflag){
a=adao.getAccountByNameAndIdAndPasswd(a);
}
ui->money->setText(QString::number(a.getAccountMoney()));
}
经过accountdao.cpp链接到数据库保管相应设计
Account AccountDao::getAccountByNameAndIdAndPasswd(Account account){
QSqlQuery qu(myconn);
qu.prepare("select * from account where accountname=? and accountNo=? and accountpaswd=?");
qu.bindValue(0,account.getAccountName());
qu.bindValue(1,account.getAccountNo());
qu.bindValue(2,account.getAccountPasswd());
Account a;
qu.exec();
if(qu.next()){
a.setAccountName(qu.value(0).toString());
a.setAccountNo(qu.value(1).toString());
a.setAccountPasswd(qu.value(2).toString());
a.setAccountMoney(qu.value(3).toDouble());
}
return a;
}
3.8存款的设计
第一步:剖析。
依据团体账户管理系统的需求剖析可知,存款界面应有账户名、身份。