個人銀行賬戶信息管理系統(tǒng)_第1頁
個人銀行賬戶信息管理系統(tǒng)_第2頁
個人銀行賬戶信息管理系統(tǒng)_第3頁
個人銀行賬戶信息管理系統(tǒng)_第4頁
個人銀行賬戶信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

題目:銀行個人賬戶信息管理系統(tǒng)

銀行個人賬戶管理系統(tǒng)

摘要

賬戶管理是目前每個銀行的業(yè)務(wù)流程中的最重要日勺一項,在銀行的各項業(yè)務(wù)流程中起

著承上啟下口勺作用,可謂是銀行業(yè)務(wù)H勺重中之重。

本文針對上述問題,采用軟件工程的開發(fā)原理,根據(jù)軟件工程日勺流程過程規(guī)范,按照

需求分析、概要設(shè)計、詳細(xì)設(shè)計、程序編碼、測試、軟件應(yīng)用、軟件維護(hù)等過程開發(fā)了一

種銀行個人賬戶信息管理系統(tǒng)。采用Linux平臺作為開發(fā)環(huán)境,QT、C++作為開發(fā)工具,

面向?qū)ο蠡O(shè)計,重要設(shè)計了管理員的登錄、新顧客口勺開戶、存取款、轉(zhuǎn)賬、查詢業(yè)務(wù),

處理了銀行目前操作的繁瑣流程,以便快捷的實(shí)現(xiàn)了銀行賬戶管理的基本任務(wù)。

本設(shè)計設(shè)計的銀行個人賬戶信息管理系統(tǒng),能使銀行工作人員輕松快捷日勺完畢對賬戶

管理日勺任務(wù),使銀行日勺賬目管理工作系統(tǒng)化、快捷化、規(guī)范化、自動化、高效化。

關(guān)鍵詞:個人信息管理;QT:C++;面向?qū)ο?

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開發(fā)背景...................................錯誤!未定義書簽。

1.2國內(nèi)外現(xiàn)實(shí)狀況.............................錯誤!未定義書簽。

1.3自動化管理銀行競爭優(yōu)勢的I分析...............錯誤!未定義書簽。

2系統(tǒng)需求分析..............................錯誤!未定義書簽。

2.1開發(fā)設(shè)計思想.............................錯誤!未定義書簽。

2.2可行性研究.................................錯誤!未定義書簽。

2.3需求分析...................................錯誤!未定義書簽。

2.4系統(tǒng)流程圖aJ設(shè)計..........................錯誤!未定義書簽。

2.5用例描述...................................錯誤!未定義書簽。

3設(shè)計過程及編碼............................錯誤!未定義書簽。

3.1數(shù)據(jù)庫口勺創(chuàng)立與使用.........................錯誤!未定義書簽。

3.2建立Bank工程措施環(huán)節(jié)......................錯誤!未定義書簽。

3.3添加QT設(shè)計界面類的設(shè)計....................錯誤!未定義書簽。

3.4管理員登陸的設(shè)計...........................錯誤!未定義書簽。

3.5主操控界面設(shè)計.............................錯誤!未定義書簽。

3.6開戶日勺設(shè)計................................錯誤!未定義書簽。

3.7查詢?nèi)丈自O(shè)計................................錯誤!未定義書簽。

3.8存款日勺設(shè)計.................................錯誤!未定義書簽。

3.9取款日勺設(shè)計................................錯誤!未定義書簽。

3.10轉(zhuǎn)賬時設(shè)計................................錯誤!未定義書簽。

3.11修改密碼口勺設(shè)計............................錯誤!未定義書簽。

4功能測試..................................錯誤!未定義書簽。

4.1管理員登陸界面.............................錯誤!未定義書簽。

4.2主操控界面.................................錯誤!未定義書簽。

4.3開戶界面....................................錯誤!未定義書簽。

4.4查詢界面....................................錯誤!未定義書簽。

4.5存款界面....................................錯誤!未定義書簽。

4.6取款界面....................................錯誤!未定義書簽。

4.7轉(zhuǎn)賬界面....................................錯誤!未定義書簽。

4.8修改密碼界面................................錯誤!未定義書簽。

4.9判斷與評估..................................錯誤!未定義書簽。

5應(yīng)用與維護(hù)..................................錯誤!未定義書簽。

6總結(jié).........................................錯誤!未定義書簽。

參照文獻(xiàn)........................................錯誤!未定義書簽。

道謝............................................錯誤!未定義書簽。

附錄............................................錯誤!未定義書簽。

1本課題的研究意義和目日勺

1.1開發(fā)背景

伴隨社會經(jīng)濟(jì)日勺發(fā)展,信息化程度的不停深入,銀行的老式業(yè)務(wù)己愈來愈不能滿足銀

行客戶的需要。伴隨我國經(jīng)濟(jì)的日益發(fā)展,我國H勺銀行業(yè)將面臨愈加劇烈H勺司行業(yè)競爭,

怎樣提供更優(yōu)質(zhì)H勺服務(wù),怎樣吸引更多的客戶,怎樣運(yùn)用計算機(jī)技術(shù)加強(qiáng)銀行個人帳戶信

息管理、進(jìn)行銀行業(yè)務(wù)再造,提高銀行口勺工作效率和業(yè)務(wù)競爭能力是擺在各家銀行面前日勺

迫切需要處理的問題。伴隨銀行業(yè)務(wù)不停發(fā)展,業(yè)務(wù)的種類也是日益繁多,而各項業(yè)務(wù)的

處理互有差異,這就對銀行進(jìn)入電子化水平和對應(yīng)的管理水平提出了規(guī)定。怎樣運(yùn)用電子

化的手段構(gòu)建一種高效統(tǒng)一的、通用靈活H勺系統(tǒng)來管理多種各樣的業(yè)務(wù),是每個商業(yè)銀行

所要研究的課題。支持決策的I系統(tǒng),需要在數(shù)據(jù)庫的基礎(chǔ)上,進(jìn)行聯(lián)機(jī)分析處理,每次處

理日勺數(shù)據(jù)量大,響應(yīng)時間長。尤其是銀行每天都要處理大量的I開戶、存取款、轉(zhuǎn)賬等業(yè)務(wù),

而銀行人員現(xiàn)行應(yīng)用日勺系統(tǒng)填寫內(nèi)容較為復(fù)雜、流程過于繁瑣,已經(jīng)是不能滿足客戶對于

辦理業(yè)務(wù)時間上日勺快捷性的規(guī)定,做好存開戶、存取款等是銀行工作重要的環(huán)節(jié),然而要

有效處理必須要有良好H勺程序和數(shù)據(jù)管理系統(tǒng)來建立一種良好的軟件系統(tǒng)來實(shí)現(xiàn)迅速、

效、精確、安全日勺處理銀行事物。

銀行個人賬戶管理系統(tǒng)重要用于銀行口勺儲蓄管理,它可以協(xié)助我們有效、精確、并且

高效實(shí)現(xiàn)的完畢銀行柜臺業(yè)務(wù)。此系統(tǒng)操作以便效率、安全性高,只要擁有管理員的賬號

和密碼(也就是說是銀行的工作人員),就可認(rèn)為顧客做開戶,開戶之后就可以以便的為

顧客辦理多種柜臺業(yè)務(wù),

1.2國內(nèi)外現(xiàn)實(shí)狀況

在信息化發(fā)展極為迅速日勺當(dāng)今社會,金融經(jīng)濟(jì)日益趨向全球化,同行業(yè)競爭變得愈加

劇烈,國外銀行業(yè)掀起了一股比上世紀(jì)更為聲勢浩大的信息化革命浪潮。國外銀行業(yè)信息

化基礎(chǔ)設(shè)施框架已具有完善、電子銀行體系已走進(jìn)成熟階段,信息化建設(shè)正由業(yè)務(wù)層向管

理決策層推進(jìn)。國際銀行業(yè)普遍存在著管理決策信息化、網(wǎng)點(diǎn)擴(kuò)張?zhí)摂M化、產(chǎn)品服務(wù)客戶

化以及非關(guān)鍵業(yè)務(wù)外包化等趨勢。

在國內(nèi),伴隨金融市場的逐漸開放,銀行競爭日趨劇烈。銀行領(lǐng)域的競爭將緊緊圍繞著

客戶,尤其是優(yōu)質(zhì)客戶這一稀缺資源進(jìn)行。不過在外資銀行涌入中國日勺進(jìn)程中,我們很輕易

地看到這個現(xiàn)象:外資銀行作為中國市場的后來者,國內(nèi)資源臨時是它們?nèi)丈兹蹴棧∏∵@首

先正是我國銀行競爭的優(yōu)勢所在。然而,客戶資源H勺經(jīng)營管理確實(shí)我國銀行的軟肋。國內(nèi)

多數(shù)銀行的客戶關(guān)系管理還只是流于形式,這個問題是相稱令人深思H勺。運(yùn)用客戶個人賬

戶管理體系來進(jìn)行客戶關(guān)系管理正是應(yīng)對未來銀行客戶資源競爭日勺利器。客戶個人賬戶管

理正是基于計算機(jī)技術(shù)和平臺,通過對銀行業(yè)務(wù)流程啊重組來整合客戶信息資源,以更科

學(xué)有效的措施來管理客戶信息,在銀行內(nèi)部實(shí)現(xiàn)信息和資源的共享,從而減少銀行營運(yùn)成

本,為客戶提供更經(jīng)濟(jì)、快捷、周到的產(chǎn)品和服務(wù)來吸引客戶,最終到達(dá)銀行價值最大化。

1.3自動化管理銀行競爭優(yōu)勢日勺分析

由于社會信息化日勺不停深入發(fā)展和經(jīng)濟(jì)金融體制日勺不停深入化,在知識經(jīng)濟(jì)和銀行電

子化建設(shè)的發(fā)展中,我國經(jīng)濟(jì)構(gòu)造也在不停地變化,社會對于金融服務(wù)的需求日新月異,

金融服務(wù)的內(nèi)涵和外延變得愈加豐富。這就對于銀行H勺管理提出了新的規(guī)定,銀行H勺管理

日益趨向信息化、電子化、多元化。銀行的電子化和現(xiàn)代化管理水平已經(jīng)成為銀行競爭力

的重要構(gòu)成要素,成為銀行市場運(yùn)作、金融創(chuàng)新、量化管理的技術(shù)基礎(chǔ)。大體上來說,銀

行賬戶管理口勺系統(tǒng)化、自動化和規(guī)范化,使銀行獲得如下幾方面的優(yōu)勢:

(1)差異化競爭優(yōu)勢;

(2)低成本競爭優(yōu)勢;

(3)目的集聚性優(yōu)勢;

(4)知識型優(yōu)勢;

(5)產(chǎn)業(yè)集聚型優(yōu)勢。

2系統(tǒng)需求分析

2.1開發(fā)設(shè)計思想

本系統(tǒng)的開發(fā)設(shè)計思想:

系統(tǒng)應(yīng)當(dāng)在銀行日勺規(guī)定日勺前提下,滿足銀行對于個人賬戶管理H勺需求適應(yīng)銀行工作人

員平常工作的需要,并應(yīng)到操作工程簡便易行、安全可靠的規(guī)定。

根據(jù)系統(tǒng)設(shè)計的目的和重要功能和對開發(fā)工具和環(huán)境的選擇,通過軟件工程H勺設(shè)計措

施,對系統(tǒng)H勺可行性進(jìn)行分析,確定方案日勺可行性。根據(jù)系統(tǒng)日勺需求得到需求分析,在需

求分析日勺基礎(chǔ)上進(jìn)行設(shè)計編碼,完畢后對系統(tǒng)進(jìn)行功能測試和應(yīng)用維護(hù)。

系統(tǒng)采用模塊化程序設(shè)計措施,不僅可以在系統(tǒng)設(shè)計時以便系統(tǒng)功能的多種組合與修

改,又可以以便開發(fā)人員后來對程序修改和和維護(hù)。

系統(tǒng)要具有數(shù)據(jù)庫維護(hù)口勺功能,雖然以便顧客對數(shù)據(jù)的增長修改等操作。

2.2系統(tǒng)設(shè)計目日勺和重要功能

通過銀行個人賬戶管理系統(tǒng),可以使銀行對于個人賬戶的I管理實(shí)現(xiàn)系統(tǒng)叱、自動化、

簡便化,清除繁瑣歐I信息錄入,從而以便快捷時使銀行到達(dá)高效管理個人賬戶的目的。

開發(fā)的重要任務(wù)是使工作人員可以輕松以便快捷日勺完畢對個人賬戶的管理的任務(wù)。

設(shè)計的銀行個人賬戶管理系統(tǒng)應(yīng)當(dāng)具有最基本的賬戶管理功能,以及對客戶信息變化

的記錄功能,設(shè)計的銀行個人賬戶信息管理系統(tǒng)需要完畢的重要功能是:

1、銀行工作人員即管理員日勺登錄

2、管理員對客戶日勺開戶操作(包括顧客名、身份證、密碼口勺填寫)

3、對已經(jīng)有客戶(賬號)口勺查詢操作

4、對已經(jīng)有客戶(賬號)口勺存款操作

5、對已經(jīng)有客戶(賬號)的取款操作

6、對已經(jīng)有客戶(賬號)日勺修改密碼日勺操作

7、對己經(jīng)有客戶(賬號)之間日勺轉(zhuǎn)賬日勺操作

2.2.3開發(fā)工具和環(huán)境

開發(fā)工具:QT4.8.1>C++

運(yùn)行環(huán)境:LINUX或UNIX

2.2可行性研究

可行性研究能使新系統(tǒng)到達(dá)以最小的開發(fā)成本獲得最佳的經(jīng)濟(jì)效益。可行性研究的目

的,是根據(jù)開發(fā)管理信息系統(tǒng)的祈求,通過初步調(diào)查和系統(tǒng)目口勺分析,對要開發(fā)的銀行個

人帳戶管理信息系統(tǒng)從技術(shù)上、經(jīng)濟(jì)上、資源上和管理上進(jìn)行與否可行的研究。這是一項

保證資源合理使用、防止失誤和揮霍H勺重要工作。

由于實(shí)現(xiàn)了現(xiàn)代化的信息管理系統(tǒng)功能,這樣就減少了人工的消耗,也就是說一臺機(jī)

器替代了多種人日勺工作,這樣就可以減少人員消耗上日勺開支。不僅如此,實(shí)現(xiàn)銀行系統(tǒng)日勺

管理可以迅速的應(yīng)對多種業(yè)務(wù),在效率上也提高了速度,為發(fā)明更大的價值提供了前提條

件。

系統(tǒng)對于計算機(jī)日勺硬件、網(wǎng)絡(luò)和系統(tǒng)條件的規(guī)定并不高,這樣就以便了,銀行信息管

理系統(tǒng)口勺實(shí)行和普及應(yīng)用。

對于管理和經(jīng)費(fèi)問題上,都是非常透明和樂于讓人接受的。系統(tǒng)實(shí)行運(yùn)行后,并不需

要特定的工作人員去管理,我們只需要一種管理員來管理一臺裝備。因此在管理經(jīng)費(fèi)上是

不會有多大消耗H勺。

由于是電腦管理系統(tǒng),因此對于賬戶口勺管理是相稱高的。而銀行信息管理系統(tǒng)的I運(yùn)行

過程不僅不違反銀行日勺管理規(guī)章制度,還會有效地實(shí)現(xiàn)信息的迅速存取。由于不僅節(jié)省了

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

2.3需求分析

構(gòu)造設(shè)計的第一種階段就是需求分析,這個階段重要是為了搜集系統(tǒng)設(shè)計過程中所要

用到的基本數(shù)據(jù)?、數(shù)據(jù)構(gòu)造和數(shù)據(jù)處理的流程,從而組織成盡量詳細(xì)的數(shù)據(jù),以便后來設(shè)

計的需要。

圖2-1數(shù)據(jù)流圖

通過對銀行個人賬戶管理日勺內(nèi)容及數(shù)據(jù)流的分析,我們便可以列出設(shè)計的I數(shù)據(jù)項:

1、開戶信息表。包括:賬戶名、身份證、密碼、反復(fù)密碼。

2、查詢信息表。包括:賬戶名、身份證、密碼、余額。

3、存款信息表。包括:賬戶名、身份證、密碼、存款額。

4、取款信息表。包括:賬戶名、身份證、密碼、取款額。

5、轉(zhuǎn)賬信息表。包括:轉(zhuǎn)賬人、密碼、收款人、金額。

6、修改密碼信息表,包括:賬戶名、身份證、密碼、新密碼、反復(fù)新密碼。

2.4系統(tǒng)流程圖日勺設(shè)計

這一階段日勺設(shè)計是基于需求分析上日勺,通過需求分析來設(shè)計出可以滿足顧客需求

的多種實(shí)體以及它們之間的聯(lián)絡(luò),以以便下一步的邏輯構(gòu)造設(shè)計。

根據(jù)系統(tǒng)設(shè)計規(guī)定系統(tǒng)流程圖設(shè)計如下:

圖2-2系統(tǒng)流程圖

2.5用例描述

2.5.1管理員登錄取例

管理員登錄取例表如表27

表2T管理員登錄取例表

用例名稱登錄

用例描述描述了管理員怎樣登錄到系統(tǒng)中

參與者管理員

狀態(tài)審查通過

前置條件無

假如用例成功,則管理員登錄到系統(tǒng)之。否則,系統(tǒng)狀態(tài)不

后置條件

變。

當(dāng)管理員想登錄到銀行信息系統(tǒng)中時,用例啟動。

(1)系統(tǒng)提醒管理員輸入顧客名和密碼。

基本操作流程

(2)管理員輸入自己的)顧客名和密碼,提交。

(3)系統(tǒng)驗證輸入口勺名字和密碼,管理員登錄系統(tǒng)成功。

假如輸入顧客名和(或)密碼無效,系統(tǒng)提醒錯誤信息,顧

可選操作流程

客可以重新輸入或中斷該用例。

2.5.2開戶用例

開戶用例表如表2-2

表2-2開戶用例表

用例名稱開戶

用例描述本用例容許管理員通過客戶提供的信息給客戶開戶

參與者管理員

狀態(tài)審查通過

前置條件在本用例開始前,管理員必須登陸到系統(tǒng)中

假如用例成功,則系統(tǒng)中會增長新建的賬戶。否則,系統(tǒng)狀

后置條件

態(tài)不變。

當(dāng)顧客想在銀行開戶時,要向管理員提供賬戶名、身份證、

基本操作流程密碼,用例啟動。

(1)系統(tǒng)提醒管理員輸入需要要開戶的客戶的賬戶名、身

份證、密碼。

(2)管理員輸入新客戶的賬戶名、身份證、密碼,提交。

(3)系統(tǒng)保留新賬戶信息。

2.5.3存款用例

存款用例表如表2-3

表2-3存款用例表

用例名稱存款

用例描述本用例容許管理員借助客戶提供的賬戶信息存款到帳戶中

參與者管理員

狀態(tài)審查通過

前置條件在本用例開始前,管理員必須登陸到系統(tǒng)中

假如用例成功,則客戶賬戶中存款的金額發(fā)生變化。否則,

后置條件

系統(tǒng)狀態(tài)不變。

當(dāng)客戶想讓管理員存款到自己的賬戶時,要向管理員提供賬

戶名、身份證、密碼和存款金額,用例啟動。

基本操作流程(1)系統(tǒng)提醒管理員輸入賬戶名、身份證、密碼和存款額。

(2)管理員輸入有關(guān)信息后提交。

(3)系統(tǒng)更新賬戶的有關(guān)信息。

賬戶不存在或者無效,顯示提醒信息,顧客可以重新輸入或

可選操作流程

終止該用例。

2.5.4取款用例

取款用例表如表2-4

表2-4取款用例表

用例名稱取款

用例描述本用例容許管理員按照客戶的規(guī)定從客戶的帳戶中取款

參與者管理員

前置條件本用例開始前,管理員必須登錄到系統(tǒng)中

假如用例成功,則客戶賬戶中存款的金額發(fā)生變化。否則,

后置條件

系統(tǒng)狀態(tài)不變。

當(dāng)客戶想存錢到自己日勺賬戶時,要向管理員提供賬戶名、身

份證、密碼、取款額,用例啟動。

(1)系統(tǒng)提醒管理員輸入賬戶名、身份證、密碼和取款額。

基本操作流程

(2)管理員輸入有關(guān)信息后提交,賬戶中的存款金額與否

足夠支付所取款項。

(3)更新賬戶日勺有關(guān)信息。

賬戶中的存款金額局限性,顯示提醒信息,顧客可以重新輸

可選操作流程

入金額或終止該用例。

2.5.5查詢用例

查詢用例表如表2-5

表2-5查詢用例表

用例名稱查詢

本用例容許管理員按照客戶MJ規(guī)定從客戶的帳戶中查詢余

用例描述

參與者管理員

前置條件本用例開始前,管理員必須登錄到系統(tǒng)中

后置條件系統(tǒng)狀態(tài)不變。

當(dāng)客戶想查詢到自己的賬戶余額時,要向管理員提供賬戶

名、身份證、密碼,用例啟動。

基本操作流程(1)系統(tǒng)提醒管理員輸入賬戶名、身份證、密碼。

(2)管理員輸入有關(guān)信息后提交。

(3)顯示賬戶余額信息。

2.5.6轉(zhuǎn)賬用例

轉(zhuǎn)賬用例表如表2-6

表2-6轉(zhuǎn)賬用例表

用例名稱轉(zhuǎn)賬

本用例容許管理員按照顧客H勺規(guī)定將資金從一種賬戶轉(zhuǎn)到另

用例描述

一種賬戶。

參與者管理員

狀態(tài)審查通過

前置條件本用例開始前,管理員必須登陸到系統(tǒng)中。

假如用例成功,則客戶賬戶中存款的金額發(fā)生變化。否則,

后置條件

系統(tǒng)狀態(tài)不變。

當(dāng)客戶規(guī)定轉(zhuǎn)帳時,用例啟動

(1)系統(tǒng)提醒管理員輸入轉(zhuǎn)賬人、密碼、收款人和所轉(zhuǎn)款

項日勺金額。

基本操作流程(2)管理員輸入有關(guān)信息后提交.

(3)系統(tǒng)確認(rèn)賬戶中的存款金額與否足夠支付所取款項。

(4)系統(tǒng)更新賬戶的1有關(guān)信息。

賬戶中的存款金額局限性,顯示提醒信息,顧客可以重新輸

可選操作流程

入金額或終止該用例。

2.5.7修改密碼用例I

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

表2-7修改密碼月例表

用例名稱修改密碼

用例描述本用例容許管理員按照顧客的規(guī)定將本來密碼修改

參與者管理員

狀態(tài)審查通過

前置條件本用例開始前,管理員必須登陸到系統(tǒng)中。

后置條件假如用例成功,則客戶賬戶密碼發(fā)生變化。

當(dāng)客戶規(guī)定修改密碼時,用例啟動

(1)系統(tǒng)提醒管理員輸入賬戶名、身份證、密碼、新密碼、

基本操作流反復(fù)新密碼。

程(2)管理員輸入有關(guān)信息后提交.

(3)系統(tǒng)更新賬戶口勺有關(guān)信息。

3設(shè)計過程及編碼

重要開發(fā)設(shè)計思想:首先建立工程,運(yùn)用QT將界面和類日勺頭文獻(xiàn)、實(shí)現(xiàn)文獻(xiàn)以及界

面文獻(xiàn)完畢,并編寫代碼通過ui界面得到輸入信息,將界面信息存入數(shù)據(jù)庫(或與數(shù)據(jù)庫

數(shù)據(jù)匹配)之后,再合適日勺添加代碼把不一樣日勺界面文獻(xiàn)通過按鈕事件鏈接.從而可以在

不一樣界面之間跳轉(zhuǎn)“叫

3.1數(shù)據(jù)庫日勺創(chuàng)立與使用

數(shù)據(jù)庫的創(chuàng)立叫

終端狀態(tài)下,進(jìn)入mysql數(shù)據(jù)庫,在mysql中創(chuàng)立數(shù)據(jù)庫表格。

終端下輸入命令:

Mysql-uroot-pl23456回車

回車后便進(jìn)入Mysql

建表語句如下:

mysql>crealedatabaselesldb;〃建立數(shù)據(jù)庫

mysql>usetesldb;〃設(shè)定目前數(shù)據(jù)庫

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

〃建立管理員信息數(shù)據(jù)庫表格

mysql>inscrtintoadminvalucs('abc','123');〃添力口數(shù)據(jù)

mysql>createtableaccount(accountnamevarchar(30),

accountNovarchar(30),accountpaswdvarchar(30),

accountMoneydouble);〃建立賬戶信息數(shù)據(jù)庫表格

數(shù)據(jù)庫的使用以

QSql模塊提供了訪問SQL數(shù)據(jù)庫的接口,這些接口獨(dú)立于操作系統(tǒng),獨(dú)立于數(shù)據(jù)庫系

統(tǒng)。Qt中有諸多支持這個接口的類,這些類型通過Qt『、Jmodcl/view架構(gòu)將數(shù)據(jù)庫與顧客

界面結(jié)合起來。數(shù)據(jù)庫連接由QSqlDatabase類對象表達(dá),Qt通過driver與不一樣的,數(shù)據(jù)庫

通訊。

在進(jìn)行SQL查詢之前,需要與數(shù)據(jù)庫建立連接。一般,在程序執(zhí)行前顧客需要調(diào)用創(chuàng)

立連接日勺函數(shù)以建立與數(shù)據(jù)庫的連接

數(shù)據(jù)庫設(shè)計思緒:

數(shù)據(jù)庫H勺使用分為四步:(1)獲得界面信息(2)QsqlDatabase建立數(shù)據(jù)庫的鏈接(3)

QsqlQuery用于執(zhí)行SQL語句(4)更新數(shù)據(jù)庫的數(shù)據(jù)。

本設(shè)計重要應(yīng)用到數(shù)據(jù)庫的鏈接、查詢、插入和更新操作。數(shù)據(jù)庫的設(shè)計如下:

1.建立數(shù)據(jù)庫連接

在進(jìn)行SQL查詢之前,需要與數(shù)據(jù)庫建立連接。一般,在程序執(zhí)行前顧客需要調(diào)用創(chuàng)

立連接日勺函數(shù)以建立與數(shù)據(jù)庫的連接。例如:

首先要從界面得到輸入的數(shù)據(jù)

voidAdminLogin::adminLogin(){

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

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

/*連接數(shù)據(jù)庫得到管理員日勺有關(guān)信息刃

AdminDaoadao;

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

3306,“root”,”123456”);//它的J第一種參數(shù)指明了訪

問數(shù)據(jù)庫的driver;接下來,分別設(shè)置數(shù)據(jù)庫H勺數(shù)據(jù)庫名,當(dāng)?shù)卦L問,端口設(shè)置,顧客名,

密碼;最終,打開數(shù)據(jù)庫連接叫

if(cflag){

Admina=adao.gelAdminByIdAndPasswd(adminid,adminpasswd);

qDcbug(a.adminId.toLatin1());

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

〃判斷管理員ID和密碼與否與數(shù)據(jù)庫中定義的管理員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.執(zhí)行select命令查詢

一旦建立連接,顧客就可以使用QSqlQuery類型執(zhí)行SQL命令。本設(shè)計中執(zhí)行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;

)

第一次調(diào)用query.nexl。時,查詢記錄指針指向第一條記錄;接下來每調(diào)用一次next。,

指針向后移一條記錄,直到指針指向記錄的尾端1尾端是最終一條記錄的下一種位置),

這時next。返回falseo

3.執(zhí)行insert命令

先從界面得到需要插入日勺數(shù)據(jù),連接好數(shù)據(jù)庫后,執(zhí)行INSERT命令,向數(shù)據(jù)庫插入

新日勺數(shù)據(jù)。

voidAddAccount::createAccount(){

/*從界面得到數(shù)據(jù)*/

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

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

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

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

/*調(diào)用訪問數(shù)據(jù)庫的對象把對象存入數(shù)據(jù)庫*/

AccountDaoadao;

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

3306,“root”,”123456”);〃連接數(shù)據(jù)庫

/*鏈接到數(shù)據(jù)庫后執(zhí)行insert命令更新數(shù)據(jù)庫⑸*/

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中找到該記錄的位置。然后抽出記錄,更

新域值,再將記錄寫入數(shù)據(jù)庫叫

從界面得到需要改動的數(shù)據(jù)信息:

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());

連接到數(shù)據(jù)庫:

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鏈接到數(shù)據(jù)庫保留對應(yīng)設(shè)計

對對應(yīng)的數(shù)據(jù)進(jìn)行更新:

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工程措施環(huán)節(jié)

第一步:進(jìn)入QTCreator選擇創(chuàng)立項目,

第二步:選擇QT控件項目,QTGui應(yīng)用

圖3-1創(chuàng)立QT控件項目圖

第三步:點(diǎn)擊下一步給項目起名稱

第四步:點(diǎn)擊下一步,創(chuàng)立源碼文獻(xiàn)H勺基本類信息

■A

圖3-2創(chuàng)立源碼文獻(xiàn)H勺基本類信息圖

第六步:下一步點(diǎn)擊完畢

這時候我們就完畢了一種QT項目日勺構(gòu)建,之后我們就可以在其基礎(chǔ)上根據(jù)設(shè)計需要添

加QT日勺設(shè)計界面類⑺。

3.3添加QT設(shè)計界面類日勺設(shè)計

第一步:在項目名Bank上右擊選擇新建文獻(xiàn)

第二步:選擇新建QT設(shè)計界面類

第三步:選擇DialogwithoutButtons界面模版

第四步:填寫需要添加的類名,頭文獻(xiàn)名、源文獻(xiàn)名和界面文獻(xiàn)名稱會隨類名變化而變化。

添加類名是要注意類名的首字母要大寫。

第五步:點(diǎn)擊下一步,查對添加至項目無誤狀況下,點(diǎn)擊完畢。

這樣,我們就將一種新口勺類添加到項目中,并且將頭文獻(xiàn)、實(shí)現(xiàn)文獻(xiàn)、界面文獻(xiàn)一起

創(chuàng)立完畢。

3.4管理員登陸的設(shè)計

第一步:按照3.1環(huán)節(jié)完畢項目構(gòu)建后,AdminloginH勺界面類會完畢,系統(tǒng)會提供一種空

界面,在空界面上我們根據(jù)管理員登陸界面用例,來添加組件。

(1)選中ui界面文獻(xiàn),進(jìn)入ui設(shè)計界面,選擇DisplayWidgets下的JLabel,給ui界面

添加文本框,雙擊文本框,修改文本框顯示口勺內(nèi)容。

(2)選擇InputWidgets下的LineEdit,給界面添加輸入框。

(3)選擇Buttons下的|PushButton,給界面添加按鈕。

(4)添加完后如下圖

在這里輸入

管理員ID

置陸取消

圖3-3管理員登錄設(shè)計界面圖

(5)添加組件完畢后,考慮到密碼日勺保護(hù),我們要將密碼時顯示修改為非明碼顯示,點(diǎn)

擊選中密碼輸入文本框,在屬性欄中找到echoMode將其默認(rèn)的INormal改換成

Passwordo

第二步:功能設(shè)計

adminid:管理員ID

adminpasswd:第碼

adminid和adminpasswd從數(shù)據(jù)庫中查詢出來得到登陸界面的輸入數(shù)據(jù)并做

判斷,登陸成功進(jìn)入主操作界面

假如管理員ID和密碼不對日勺任意一種或都不對日勺,則輸出“selectdbfailed!!",

并彈出提醒對話框,但不是由于輸入錯誤導(dǎo)致登錄失敗時,則會輸出〃connectdb

failed”,并彈出提醒對話框.

對應(yīng)代碼如下:

voidAdminLogin::adminLogin(){

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

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

/*連接數(shù)據(jù)庫得到管理員的有關(guān)信息*/

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和密碼與否與數(shù)據(jù)庫中定義日勺管理員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和密碼輸入后點(diǎn)擊登錄則進(jìn)入主操控界面,點(diǎn)擊退出則退出登陸界面,

對應(yīng)代碼如下:

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主操控界面設(shè)計

按需求分析的規(guī)定主操控界面重要設(shè)計開戶、查詢、存款、取款、轉(zhuǎn)賬、修改密

碼和退出七個選項,界面設(shè)計過程如下:

第一步:按照3.2的環(huán)節(jié)新建界面模版,填寫Adminall類頭文獻(xiàn)名、源文獻(xiàn)名和界面

文獻(xiàn)名稱。

第二步:在建好時空界面模版上,按照主操控界面用例規(guī)定,添加Button按鈕,并修

改Button按鈕名稱。完畢的I界面圖如下:

轉(zhuǎn)瞇

修改空碼

退出

圖3-4主界面設(shè)計圖

第三步:給各個按鈕創(chuàng)立連接

分別點(diǎn)擊不一樣的按鈕會進(jìn)入不一樣的界面,每個diked都會對應(yīng)一種connect,通過

connect進(jìn)入對應(yīng)的界面。重要代碼如下:

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開戶時設(shè)計

第一步:分析。根據(jù)個人賬戶管理系統(tǒng)的需求分析可知,開戶需要有賬戶名、身份證、

密碼、和反復(fù)密碼四項輸入。

第二步:按需求進(jìn)行設(shè)計。按照3.2日勺環(huán)節(jié)新建界而模版,填寫Addaccount類頭文獻(xiàn)

名、源文獻(xiàn)名和界面文獻(xiàn)名稱。

第二步:在提供的空界面上我們根據(jù)開戶界面用例,來添加組件。

(1)選中ui界面文獻(xiàn),進(jìn)入ui設(shè)計界面,選擇DisplayWidgets下日勺Label,給ui

界面添加文本框,雙擊文本框,修改文本框顯示的內(nèi)容。

(2)選擇InputWidgets下的LineEdit,給界面添加輸入框。

(3)選擇Buttons下H勺PushButton,給界面添加按鈕。

(4)添加組件完畢后,考慮到密碼的保護(hù),我們要將密碼H勺顯示修改為非明碼顯示,

點(diǎn)擊選中密碼輸入文本框,在屬性欄中找到echoMode將其默認(rèn)H勺Normal改換成

Password?

(5)添加完后如下圖

瞇尸名:I1

身份證:

■定碼:?■

里復(fù)密碼:]

[開戶j取消?

■-----------------------------------0-----------------------------------?

圖3-5開戶界面設(shè)計圖

第四步:獲取界面填寫口勺數(shù)據(jù)存入數(shù)據(jù)庫的設(shè)計。

系統(tǒng)從管理員輸入的數(shù)據(jù)得到信息,并把信息存儲到數(shù)據(jù)庫中,開戶成功則會彈出

"createaccountsuccess!!"對話框,假如開戶失敗則會彈出"createaccountfailed!!"對話

框。

假如開戶成功,點(diǎn)擊提醒對話框確實(shí)定按鈕(如下圖),這樣就得到了界面數(shù)據(jù),并用

數(shù)據(jù)來構(gòu)建賬戶對象,調(diào)用訪問數(shù)據(jù)庫的類,并把數(shù)據(jù)存入數(shù)據(jù)庫,最終返回主操控

界面。

賬.

Bank

Rcreateaccountsuccess!!

StOK,

——r******

圖3-6開戶成功界面演示圖

數(shù)據(jù)庫設(shè)計需求的重要代碼如下:

voidAddAccount::createAccount(){

/*從界面得到數(shù)據(jù)*/

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

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

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

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

/*調(diào)用訪問數(shù)據(jù)庫的對象把對象存入數(shù)據(jù)庫*/

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論