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

下載本文檔

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

文檔簡介

1、 題目: 銀行個人賬戶信息管理系統(tǒng) 銀行個人賬戶管理系統(tǒng)摘要賬戶管理是現(xiàn)在每個銀行的業(yè)務(wù)流程中的最重要的一項,在銀行的各項業(yè)務(wù)流程中起著承上啟下的作用,可謂是銀行業(yè)務(wù)的重中之重。本文針對上述問題,采用軟件工程的開發(fā)原理,依據(jù)軟件工程的流程過程規(guī)范,按照需求分析、概要設(shè)計、詳細(xì)設(shè)計、程序編碼、測試、軟件應(yīng)用、軟件維護等過程開發(fā)了一個銀行個人賬戶信息管理系統(tǒng)。采用Linux平臺作為開發(fā)環(huán)境,QT、C+作為開發(fā)工具,面向?qū)ο蠡O(shè)計,主要設(shè)計了管理員的登錄、新用戶的開戶、存取款、轉(zhuǎn)賬、查詢業(yè)務(wù),解決了銀行目前操作的繁瑣流程,方便快捷的實現(xiàn)了銀行賬戶管理的基本任務(wù)。本設(shè)計設(shè)計的銀行個人賬戶信息管理系統(tǒng),

2、能使銀行工作人員輕松快捷的完成對賬戶管理的任務(wù),使銀行的賬目管理工作系統(tǒng)化、快捷化、規(guī)范化、自動化、高效化。關(guān)鍵詞:個人信息管理;QT;C+;面向?qū)ο螅?Personal bank account management systemABSTRACTAccount 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 de

3、scribed 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, progra

4、m 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 ad

5、ministrator'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 ban

6、k 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本課題的研究意義和目的11.1開發(fā)背景11.2國內(nèi)外現(xiàn)狀11.3自動化管理銀行競爭優(yōu)勢的分析

7、22系統(tǒng)需求分析32.1開發(fā)設(shè)計思想32.2可行性研究32.3 需求分析42.4系統(tǒng)流程圖的設(shè)計52.5用例描述63設(shè)計過程及編碼103.1數(shù)據(jù)庫的創(chuàng)建與使用103.2建立Bank工程方法步驟143.3添加QT設(shè)計界面類的設(shè)計153.4管理員登陸的設(shè)計153.5主操控界面設(shè)計173.6開戶的設(shè)計183.7查詢的設(shè)計203.8存款的設(shè)計213.9取款的設(shè)計233.10轉(zhuǎn)賬的設(shè)計263.11修改密碼的設(shè)計284功能測試304.1管理員登陸界面304.2主操控界面304.3開戶界面304.4查詢界面314.5存款界面324.6取款界面334.7轉(zhuǎn)賬界面344.8修改密碼界面354.9判斷與評估365

8、應(yīng)用與維護376總結(jié)38參考文獻39致謝40附錄411本課題的研究意義和目的1.1開發(fā)背景隨著社會經(jīng)濟的發(fā)展,信息化程度的不斷深入,銀行的傳統(tǒng)業(yè)務(wù)己愈來愈不能滿足銀行客戶的需要。隨著我國經(jīng)濟的日益發(fā)展,我國的銀行業(yè)將面臨更加激烈的同行業(yè)競爭,如何提供更優(yōu)質(zhì)的服務(wù),如何吸引更多的客戶,如何利用計算機技術(shù)加強銀行個人帳戶信息管理、進行銀行業(yè)務(wù)再造,提高銀行的工作效率和業(yè)務(wù)竟?fàn)幠芰κ菙[在各家銀行面前的迫切需要解決的問題。隨著銀行業(yè)務(wù)不斷發(fā)展,業(yè)務(wù)的種類也是日益繁多,而各項業(yè)務(wù)的處理互有差異,這就對銀行進入電子化水平和相應(yīng)的管理水平提出了要求。如何利用電子化的手段構(gòu)建一個高效統(tǒng)一的、通用靈活的系統(tǒng)來管

9、理各種各樣的業(yè)務(wù),是每個商業(yè)銀行所要研究的課題。支持決策的系統(tǒng),需要在數(shù)據(jù)庫的基礎(chǔ)上,進行聯(lián)機分析處理,每次處理的數(shù)據(jù)量大,響應(yīng)時間長。尤其是銀行每天都要處理大量的開戶、存取款、轉(zhuǎn)賬等業(yè)務(wù),而銀行人員現(xiàn)行應(yīng)用的系統(tǒng)填寫內(nèi)容較為復(fù)雜、流程過于繁瑣,已經(jīng)是不能滿足客戶對于辦理業(yè)務(wù)時間上的快捷性的要求,做好存開戶、存取款等是銀行工作重要的環(huán)節(jié),然而要有效處理必須要有良好的程序和數(shù)據(jù)管理系統(tǒng)來建立一個良好的軟件系統(tǒng)來實現(xiàn)快速、有效、準(zhǔn)確、安全的處理銀行事物。銀行個人賬戶管理系統(tǒng)主要用于銀行的儲蓄管理,它可以幫助我們有效、準(zhǔn)確、并且高效實現(xiàn)的完成銀行柜臺業(yè)務(wù)。此系統(tǒng)操作方便效率、安全性高,只要擁有管理員

10、的賬號和密碼(也就是說是銀行的工作人員),就可以為用戶做開戶,開戶之后就可以方便的為用戶辦理各種柜臺業(yè)務(wù)。1.2 國內(nèi)外現(xiàn)狀在信息化發(fā)展極為迅速的當(dāng)今社會,金融經(jīng)濟日益趨向全球化,同行業(yè)競爭變得更加激烈,國外銀行業(yè)掀起了一股比上世紀(jì)更為聲勢浩大的信息化革命浪潮。國外銀行業(yè)信息化基礎(chǔ)設(shè)施框架已具備完善、電子銀行體系已走進成熟階段,信息化建設(shè)正由業(yè)務(wù)層向管理決策層推進。國際銀行業(yè)普遍存在著管理決策信息化、網(wǎng)點擴張?zhí)摂M化、產(chǎn)品服務(wù)客戶化以及非核心業(yè)務(wù)外包化等趨勢。在國內(nèi),隨著金融市場的逐漸開放,銀行競爭日趨激烈。銀行領(lǐng)域的競爭將緊緊圍繞著客戶,尤其是優(yōu)質(zhì)客戶這一稀缺資源進行。但是在外資銀行涌入中國的

11、進程中,我們很容易地看到這個現(xiàn)象:外資銀行作為中國市場的后來者,國內(nèi)資源暫時是它們的弱項,恰恰這一方面正是我國銀行競爭的優(yōu)勢所在。然而,客戶資源的經(jīng)營管理確實我國銀行的軟肋。國內(nèi)多數(shù)銀行的客戶關(guān)系管理還只是流于形式,這個問題是相當(dāng)令人深思的。運用客戶個人賬戶管理體系來進行客戶關(guān)系管理正是應(yīng)對未來銀行客戶資源競爭的利器??蛻魝€人賬戶管理正是基于計算機技術(shù)和平臺,通過對銀行業(yè)務(wù)流程的重組來整合客戶信息資源,以更科學(xué)有效的方法來管理客戶信息,在銀行內(nèi)部實現(xiàn)信息和資源的共享,從而降低銀行營運成本,為客戶提供更經(jīng)濟、快捷、周到的產(chǎn)品和服務(wù)來吸引客戶,最終達(dá)到銀行價值最大化。1.3自動化管理銀行競爭優(yōu)勢的

12、分析由于社會信息化的不斷深入發(fā)展和經(jīng)濟金融體制的不斷深入化,在知識經(jīng)濟和銀行電子化建設(shè)的發(fā)展中,我國經(jīng)濟結(jié)構(gòu)也在不斷地變化,社會對于金融服務(wù)的需求日新月異,金融服務(wù)的內(nèi)涵和外延變得更加豐富。這就對于銀行的管理提出了新的要求。銀行的管理日益趨向信息化、電子化、多元化。銀行的電子化和現(xiàn)代化管理水平已經(jīng)成為銀行競爭力的重要構(gòu)成要素,成為銀行市場運作、金融創(chuàng)新、量化管理的技術(shù)基礎(chǔ)。大致上來說,銀行賬戶管理的系統(tǒng)化、自動化和規(guī)范化,使銀行獲得以下幾方面的優(yōu)勢:(1)差別化競爭優(yōu)勢;(2)低成本競爭優(yōu)勢;(3)目標(biāo)集聚性優(yōu)勢;(4)知識型優(yōu)勢;(5)產(chǎn)業(yè)集聚型優(yōu)勢。2系統(tǒng)需求分析2.1開發(fā)設(shè)計思想本系統(tǒng)的

13、開發(fā)設(shè)計思想:系統(tǒng)應(yīng)當(dāng)在銀行的規(guī)定的前提下,滿足銀行對于個人賬戶管理的需求適應(yīng)銀行工作人員日常工作的需要,并應(yīng)達(dá)到操作工程簡便易行、安全可靠的要求。根據(jù)系統(tǒng)設(shè)計的目標(biāo)和主要功能和對開發(fā)工具和環(huán)境的選擇,通過軟件工程的設(shè)計方法,對系統(tǒng)的可行性進行分析,確定方案的可行性。根據(jù)系統(tǒng)的需求得到需求分析,在需求分析的基礎(chǔ)上進行設(shè)計編碼,完成后對系統(tǒng)進行功能測試和應(yīng)用維護。系統(tǒng)采用模塊化程序設(shè)計方法,不僅可以在系統(tǒng)設(shè)計時方便系統(tǒng)功能的各種組合與修改,又可以方便開發(fā)人員日后對程序修改和和維護。系統(tǒng)要具備數(shù)據(jù)庫維護的功能,即使方便用戶對數(shù)據(jù)的增加修改等操作。2.2系統(tǒng)設(shè)計目標(biāo)和主要功能通過銀行個人賬戶管理系統(tǒng)

14、,可以使銀行對于個人賬戶的管理實現(xiàn)系統(tǒng)化、自動化、簡便化,去除繁瑣的信息錄入,從而方便快捷的使銀行達(dá)到高效管理個人賬戶的目的。開發(fā)的主要任務(wù)是使工作人員能夠輕松方便快捷的完成對個人賬戶的管理的任務(wù)。設(shè)計的銀行個人賬戶管理系統(tǒng)應(yīng)該具備最基本的賬戶管理功能,以及對客戶信息變化的記錄功能,設(shè)計的銀行個人賬戶信息管理系統(tǒng)需要完成的主要功能是:1、銀行工作人員即管理員的登錄2、管理員對客戶的開戶操作(包括用戶名、身份證、密碼的填寫)3、對已有客戶(賬號)的查詢操作4、對已有客戶(賬號)的存款操作5、對已有客戶(賬號)的取款操作6、對已有客戶(賬號)的修改密碼的操作7、對已有客戶(賬號)之間的轉(zhuǎn)賬的操作2

15、.2.3開發(fā)工具和環(huán)境開發(fā)工具:QT4.8.1 、C+運行環(huán)境:LINUX或UNIX2.2可行性研究可行性研究能使新系統(tǒng)達(dá)到以最小的開發(fā)成本取得最佳的經(jīng)濟效益??尚行匝芯康哪康模歉鶕?jù)開發(fā)管理信息系統(tǒng)的請求,通過初步調(diào)查和系統(tǒng)目標(biāo)分析,對要開發(fā)的銀行個人帳戶管理信息系統(tǒng)從技術(shù)上、經(jīng)濟上、資源上和管理上進行是否可行的研究。這是一項保證資源合理使用、避免失誤和浪費的重要工作。由于實現(xiàn)了現(xiàn)代化的信息管理系統(tǒng)功能,這樣就減少了人工的消耗,也就是說一臺機器代替了多個人的工作,這樣就可以減少人員消耗上的開支。不僅如此,實現(xiàn)銀行系統(tǒng)的管理可以快速的應(yīng)對各種業(yè)務(wù),在效率上也提高了速度,為創(chuàng)造更大的價值提供了前

16、提條件。系統(tǒng)對于計算機的硬件、網(wǎng)絡(luò)和系統(tǒng)條件的要求并不高,這樣就方便了,銀行信息管理系統(tǒng)的實施和普及應(yīng)用。對于管理和經(jīng)費問題上,都是非常透明和樂于讓人接受的。系統(tǒng)實施運行后,并不需要特定的工作人員去管理,我們只需要一個管理員來管理一臺裝備。所以在管理經(jīng)費上是不會有多大消耗的。由于是電腦管理系統(tǒng),所以對于賬戶的管理是相當(dāng)高的。而銀行信息管理系統(tǒng)的運行過程不僅不違反銀行的管理規(guī)章制度,還會有效地實現(xiàn)信息的快速存取。由于不僅節(jié)約了銀行自身的成本而且他的管理效率也會提高了。 2.3 需求分析結(jié)構(gòu)設(shè)計的第一個階段就是需求分析,這個階段主要是為了收集系統(tǒng)設(shè)計過程中所要用到的基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理的流

17、程,從而組織成盡可能詳細(xì)的數(shù)據(jù),方便以后設(shè)計的需要。管理員管理存款取款轉(zhuǎn)賬修改密碼賬戶信息圖2-1 數(shù)據(jù)流圖通過對銀行個人賬戶管理的內(nèi)容及數(shù)據(jù)流的分析,我們便可以列出設(shè)計的數(shù)據(jù)項:1、 開戶信息表。包括:賬戶名、身份證、密碼、重復(fù)密碼。2、 查詢信息表。包括:賬戶名、身份證、密碼、余額。3、 存款信息表。包括:賬戶名、身份證、密碼、存款額。4、 取款信息表。包括:賬戶名、身份證、密碼、取款額。5、 轉(zhuǎn)賬信息表。包括:轉(zhuǎn)賬人、密碼、收款人、金額。6、 修改密碼信息表。包括:賬戶名、身份證、密碼、新密碼、重復(fù)新密碼。2.4 系統(tǒng)流程圖的設(shè)計這一階段的設(shè)計是基于需求分析上的,通過需求分析來設(shè)計出能夠

18、滿足用戶需求的各種實體以及它們之間的聯(lián)系,以方便下一步的邏輯結(jié)構(gòu)設(shè)計。根據(jù)系統(tǒng)設(shè)計要求系統(tǒng)流程圖設(shè)計如下:Yes進入主窗口退出賬戶名身份證密碼重復(fù)密碼賬戶名身份證密碼余額賬戶名身份證密碼存款額賬戶名身份證密碼取款額轉(zhuǎn)賬人轉(zhuǎn)出賬號密碼收款人轉(zhuǎn)入賬號金額賬戶名身份證密碼新密碼重復(fù)新密碼NO留在登陸界面開戶查詢存款取款轉(zhuǎn)賬修改取消主窗口取消取消取消取消取消管理員登錄開始用戶名密碼開戶查詢存款取款轉(zhuǎn)賬修改密碼圖2-2系統(tǒng)流程圖2.5用例描述2.5.1管理員登錄用例管理員登錄用例表如表2-1表2-1管理員登錄用例表用例名稱登錄用例描述描述了管理員如何登錄到系統(tǒng)中參與者管理員狀態(tài)審查通過前置條件無后置條件

19、如果用例成功,則管理員登錄到系統(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)不變。基本操

20、作流程當(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

21、)系統(tǒng)提示管理員輸入賬戶名、身份證、密碼和存款額。(2)管理員輸入相關(guān)信息后提交。(3)系統(tǒng)更新賬戶的相關(guān)信息。可選操作流程賬戶不存在或者無效,顯示提示信息,用戶可以重新輸入或終止該用例。2.5.4取款用例取款用例表如表2-4表2-4取款用例表用例名稱取款用例描述本用例允許管理員按照客戶的要求從客戶的帳戶中取款參與者管理員 前置條件本用例開始前,管理員必須登錄到系統(tǒng)中后置條件如果用例成功,則客戶賬戶中存款的金額發(fā)生變化。否則,系統(tǒng)狀態(tài)不變?;静僮髁鞒坍?dāng)客戶想存錢到自己的賬戶時,要向管理員提供賬戶名、身份證、密碼、取款額,用例啟動。(1) 系統(tǒng)提示管理員輸入賬戶名、身份證、密碼和取款額。(2)

22、 管理員輸入相關(guān)信息后提交,賬戶中的存款金額是否足夠支付所取款項。(3) 更新賬戶的相關(guān)信息??蛇x操作流程賬戶中的存款金額不足,顯示提示信息,用戶可以重新輸入金額或終止該用例。2.5.5查詢用例查詢用例表如表2-5表2-5查詢用例表用例名稱查詢用例描述本用例允許管理員按照客戶的要求從客戶的帳戶中查詢余額參與者管理員 前置條件本用例開始前,管理員必須登錄到系統(tǒng)中后置條件系統(tǒng)狀態(tài)不變。基本操作流程當(dāng)客戶想查詢到自己的賬戶余額時,要向管理員提供賬戶名、身份證、密碼,用例啟動。(1)系統(tǒng)提示管理員輸入賬戶名、身份證、密碼。(2)管理員輸入相關(guān)信息后提交。(3)顯示賬戶余額信息。2.5.6轉(zhuǎn)賬用例轉(zhuǎn)賬用

23、例表如表2-6表2-6轉(zhuǎn)賬用例表用例名稱轉(zhuǎn)賬用例描述本用例允許管理員按照用戶的要求將資金從一個賬戶轉(zhuǎn)到另一個賬戶。參與者管理員狀態(tài)審查通過前置條件本用例開始前,管理員必須登陸到系統(tǒng)中。后置條件如果用例成功,則客戶賬戶中存款的金額發(fā)生變化。否則,系統(tǒng)狀態(tài)不變?;静僮髁鞒坍?dāng)客戶要求轉(zhuǎn)帳時,用例啟動(1) 系統(tǒng)提示管理員輸入轉(zhuǎn)賬人、密碼、收款人和所轉(zhuǎn)款項的金額。(2) 管理員輸入相關(guān)信息后提交.(3) 系統(tǒng)確認(rèn)賬戶中的存款金額是否足夠支付所取款項。(4) 系統(tǒng)更新賬戶的相關(guān)信息。可選操作流程賬戶中的存款金額不足,顯示提示信息,用戶可以重新輸入金額或終止該用例。2.5.7修改密碼用例修改密碼用例表如

24、表2-7 表2-7修改密碼用例表用例名稱修改密碼用例描述本用例允許管理員按照用戶的要求將原來密碼修改參與者管理員狀態(tài)審查通過前置條件本用例開始前,管理員必須登陸到系統(tǒng)中。后置條件如果用例成功,則客戶賬戶密碼發(fā)生變化?;静僮髁鞒坍?dāng)客戶要求修改密碼時,用例啟動(1)系統(tǒng)提示管理員輸入賬戶名、身份證、密碼、新密碼、重復(fù)新密碼。(2)管理員輸入相關(guān)信息后提交.(3)系統(tǒng)更新賬戶的相關(guān)信息。3設(shè)計過程及編碼主要開發(fā)設(shè)計思想:首先建立工程,利用QT將界面和類的頭文件、實現(xiàn)文件以及界面文件完成,并編寫代碼通過ui界面得到輸入信息,將界面信息存入數(shù)據(jù)庫(或與數(shù)據(jù)庫數(shù)據(jù)匹配)之后,再適當(dāng)?shù)奶砑哟a把不同的界面

25、文件通過按鈕事件鏈接,從而可以在不同界面之間跳轉(zhuǎn)10。3.1 數(shù)據(jù)庫的創(chuàng)建與使用數(shù)據(jù)庫的創(chuàng)建8:終端狀態(tài)下,進入mysql數(shù)據(jù)庫,在mysql中創(chuàng)建數(shù)據(jù)庫表格。終端下輸入命令:Mysql uroot p123456 回車回車后便進入Mysql建表語句如下:mysql>create database testdb;/建立數(shù)據(jù)庫mysql>use testdb;/設(shè)定當(dāng)前數(shù)據(jù)庫mysql>create table admin(adminid varchar(30),admpasswd varchar(30);/建立管理員信息數(shù)據(jù)庫表格mysql>insert into ad

26、min values('abc','123');/添加數(shù)據(jù)mysql>create table account (accountname varchar(30),accountNo varchar(30), accountpaswd varchar(30),accountMoney double);/建立賬戶信息數(shù)據(jù)庫表格數(shù)據(jù)庫的使用9:QSql 模塊提供了訪問 SQL 數(shù)據(jù)庫的接口,這些接口獨立于操作系統(tǒng),獨立于數(shù)據(jù)庫系統(tǒng)。Qt 中有很多支持這個接口的類,這些類型通過 Qt 的 mod

27、el/view 架構(gòu)將數(shù)據(jù)庫與用戶界面結(jié)合起來。數(shù)據(jù)庫連接由 QSqlDatabase 類對象表示,Qt 通過 driver 與不同的數(shù)據(jù)庫通訊。在進行 SQL 查詢之前,需要與數(shù)據(jù)庫建立連接。通常,在程序執(zhí)行前用戶需要調(diào)用創(chuàng)建連接的函數(shù)以建立與數(shù)據(jù)庫的連接數(shù)據(jù)庫設(shè)計思路:數(shù)據(jù)庫的使用分為四步:(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ù)

28、庫連接在進行SQL查詢之前,需要與數(shù)據(jù)庫建立連接。通常,在程序執(zhí)行前用戶需要調(diào)用創(chuàng)建連接的函數(shù)以建立與數(shù)據(jù)庫的連接。例如:首先要從界面得到輸入的數(shù)據(jù)void AdminLogin:adminLogin() QString adminid=ui->adminid->text(); QString adminpasswd=ui->adminpasswd->text(); /*連接數(shù)據(jù)庫 得到管理員的相關(guān)信息*/ AdminDao adao; bool cflag=adao.connectDb("QMYSQL","testdb",&qu

29、ot;127.0.0.1", 3306,"root","123456");/它的第一個參數(shù)指明了訪問數(shù)據(jù)庫的driver;接下來,分別設(shè)置數(shù)據(jù)庫的數(shù)據(jù)庫名,本地訪問,端口設(shè)置,用戶名,密碼;最后,打開數(shù)據(jù)庫連接3。 if(cflag)Admin a=adao.getAdminByIdAndPasswd(adminid,adminpasswd); qDebug(a.adminId.toLatin1(); qDebug(a.adminPasswd.toLatin1();/判斷管理員ID和密碼是否與數(shù)據(jù)庫中定義的管理員ID密碼相符 if(a.admi

30、nId=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(&q

31、uot;connect db failed"); QMessageBox msg(this); msg.setText("connect db failed!"); msg.exec();  2. 執(zhí)行select命令查詢  一旦建立連接,用戶就可以使用QSqlQuery類型執(zhí)行SQL命令。本設(shè)計中執(zhí)行SELECT命令如下1:Account AccountDao:getAccountByNameAndIdAndPasswd(Account account) QSqlQuery qu(myconn); qu.prepare(&

32、quot;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();然后可以處理查詢結(jié)果: if(qu.next() a.setAccountName(qu.value(0).toString(); a

33、.setAccountNo(qu.value(1).toString(); a.setAccountPasswd(qu.value(2).toString(); a.setAccountMoney(qu.value(3).toDouble(); return a; 第一次調(diào)用query.next()時,查詢記錄指針指向第一條記錄;接下來每調(diào)用一次next(),指針向后移一條記錄,直到指針指向記錄的尾端(尾端是最后一條記錄的下一個位置),這時next()返回false。3. 執(zhí)行insert命令先從界面得到需要插入的數(shù)據(jù),連接好數(shù)據(jù)庫后,執(zhí)行INSERT命令,向數(shù)據(jù)庫插入新的數(shù)據(jù)。vo

34、id AddAccount:createAccount() /*從界面得到數(shù)據(jù)*/ QString aname=ui->accountName->text(); QString aid=ui->accountId->text(); QString apaswd=ui->accountPasswd->text(); Account a(aname,aid,apaswd,0.0); /*調(diào)用訪問數(shù)據(jù)庫的對象 把對象存入數(shù)據(jù)庫*/ AccountDao adao; bool cflag=adao.connectDb("QMYSQL","

35、;testdb","127.0.0.1", 3306,"root","123456");/連接數(shù)據(jù)庫/*鏈接到數(shù)據(jù)庫后執(zhí)行insert命令更新數(shù)據(jù)庫5*/bool AccountDao:addAccount(Account account) QSqlQuery qu(myconn); qu.prepare("insert into account values(?,?,?,?)"); qu.bindValue(0,account.getAccountName(); qu.bindValue(1,accou

36、nt.getAccountNo(); qu.bindValue(2,account.getAccountPasswd(); qu.bindValue(3,account.getAccountMoney(); 4. SQL update 為了更新一條記錄,首先從QSqlTableModel中找到該記錄的位置。然后抽出記錄,更新域值,再將記錄寫入數(shù)據(jù)庫3:從界面得到需要改動的數(shù)據(jù)信息:void Transfer:transferAccount() Account sender; sender.setAccountName(ui->sname->text()

37、; sender.setAccountNo(ui->sno->text(); sender.setAccountPasswd(ui->spasswd->text(); Account reciver; reciver.setAccountName(ui->rname->text(); reciver.setAccountNo(ui->rno->text();連接到數(shù)據(jù)庫: AccountDao adao; bool cflag=adao.connectDb("QMYSQL","testdb","1

38、27.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.getAccountByNa

39、meAndId(reciver); qDebug(r.getAccountName().toLatin1(); qDebug(s.getAccountName().toLatin1(); adao.transferByAccount(s,r,ui->money->text().toDouble(); 通過accountdao.cpp鏈接到數(shù)據(jù)庫保存相應(yīng)設(shè)計對相應(yīng)的數(shù)據(jù)進行更新:void AccountDao:transferByAccount(Account sender,Account recever,double money) myconn.transaction(); QSq

40、lQuery 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,m

41、oney); qu.bindValue(1,recever.getAccountName(); bool ff=qu.exec(); if(f&&ff) qDebug("success!"); mit(); else qDebug("failed!"); myconn.rollback(); 3.2建立Bank工程方法步驟第一步:進入QT Creator 選擇創(chuàng)建項目,第二步:選擇QT控件項目,QT Gui 應(yīng)用圖3-1創(chuàng)建QT控件項目圖第三步:點擊下一步給項目起名稱第四步:點擊下一步,創(chuàng)建源碼文件的基本類信息圖3-2創(chuàng)建源碼文件的基本類

42、信息圖第六步:下一步點擊完成這時候我們就完成了一個QT項目的構(gòu)建,之后我們就可以在其基礎(chǔ)上根據(jù)設(shè)計需要添加QT的設(shè)計界面類7。3.3添加QT設(shè)計界面類的設(shè)計第一步:在項目名Bank上右擊選擇新建文件第二步:選擇新建QT設(shè)計界面類第三步:選擇Dialog without Buttons 界面模版第四步:填寫需要添加的類名,頭文件名、源文件名和界面文件名稱會隨類名變化而變化。添加類名是要注意類名的首字母要大寫。第五步:點擊下一步,核對添加至項目無誤情況下,點擊完成。這樣,我們就將一個新的類添加到項目中,并且將頭文件、實現(xiàn)文件、界面文件一起創(chuàng)建完成。3.4管理員登陸的設(shè)計第一步:按照3.1步驟完成項

43、目構(gòu)建后,Adminlogin的界面類會完成,系統(tǒng)會提供一個空界面,在空界面上我們根據(jù)管理員登陸界面用例,來添加組件。(1)選中ui界面文件,進入ui設(shè)計界面,選擇Display Widgets下的Label,給ui界面添加文本框,雙擊文本框,修改文本框顯示的內(nèi)容。(2)選擇Input Widgets下的Line Edit,給界面添加輸入框。(3)選擇Buttons下的Push Button,給界面添加按鈕。(4)添加完后如下圖圖3-3 管理員登錄設(shè)計界面圖(5)添加組件完成后,考慮到密碼的保護,我們要將密碼的顯示修改為非明碼顯示,點擊選中密碼輸入文本框,在屬性欄中找到echoMode將其默認(rèn)

44、的Normal改換成Password。第二步:功能設(shè)計adminid:管理員IDadminpasswd:密碼adminid 和adminpasswd 從數(shù)據(jù)庫中查詢出來得到登陸界面的輸入數(shù)據(jù)并做判斷,登陸成功進入主操作界面如果管理員ID和密碼不正確任意一個或都不正確,則輸出"select db failed!",并彈出提示對話框,但不是由于輸入錯誤導(dǎo)致登錄失敗時,則會輸出"connect db failed",并彈出提示對話框。相應(yīng)代碼如下:void AdminLogin:adminLogin() QString adminid=ui->admin

45、id->text(); QString adminpasswd=ui->adminpasswd->text(); /*連接數(shù)據(jù)庫 得到管理員的相關(guān)信息*/ AdminDao adao; bool cflag=adao.connectDb("QMYSQL","testdb","127.0.0.1", 3306,"root","123456"); if(cflag) Admin a=adao.getAdminByIdAndPasswd(adminid,adminpasswd); q

46、Debug(a.adminId.toLatin1(); qDebug(a.adminPasswd.toLatin1();/判斷管理員ID和密碼是否與數(shù)據(jù)庫中定義的管理員ID密碼相符 if(a.adminId=adminId && a.adminPasswd=adminpasswd &&a.adminId!="" &&a.adminPasswd!="") AdminAll aa; this->close(); aa.exec(); else qDebug("select db failed&q

47、uot;); 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和密碼輸入后點擊登錄則進入主操控界面,點擊退出則退出登陸界面,相應(yīng)代碼如下:AddAccount:AddAccount(QWidget *parent) : QD

48、ialog(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主操控界面設(shè)計按需求分析的要求主操控界面主要設(shè)計開戶、查詢、存款、取款、轉(zhuǎn)賬、修改密碼和退出七個選項,界面設(shè)計過程如下:第一步:按照3.2的步驟新建界面模版,填寫Adminall類頭文件名、源文件名和界面文件名稱

49、。第二步:在建好的空界面模版上,按照主操控界面用例要求,添加Button按鈕,并修改Button按鈕名稱。完成的界面圖如下:圖3-4 主界面設(shè)計圖第三步:給各個按鈕創(chuàng)建連接分別點擊不同的按鈕會進入不同的界面,每個cliked都會對應(yīng)一個connect,通過connect進入相應(yīng)的界面。主要代碼如下:connect(ui->createAccount,SIGNAL(clicked(), this,SLOT(createAccount(); connect(ui->seachAccount,SIGNAL(clicked(), this,SLOT(seachAccount(); conn

50、ect(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

51、(clicked(), this,SLOT(close();3.6開戶的設(shè)計第一步:分析。根據(jù)個人賬戶管理系統(tǒng)的需求分析可知,開戶需要有賬戶名、身份證、密碼、和重復(fù)密碼四項輸入。第二步:按需求進行設(shè)計。按照3.2的步驟新建界面模版,填寫Addaccount類頭文件名、源文件名和界面文件名稱。第三步:在提供的空界面上我們根據(jù)開戶界面用例,來添加組件。(1)選中ui界面文件,進入ui設(shè)計界面,選擇Display Widgets下的Label,給ui界面添加文本框,雙擊文本框,修改文本框顯示的內(nèi)容。(2)選擇Input Widgets下的Line Edit,給界面添加輸入框。(3)選擇Buttons

52、下的Push Button,給界面添加按鈕。(4)添加組件完成后,考慮到密碼的保護,我們要將密碼的顯示修改為非明碼顯示,點擊選中密碼輸入文本框,在屬性欄中找到echoMode將其默認(rèn)的Normal改換成Password。(5) 添加完后如下圖圖3-5 開戶界面設(shè)計圖第四步:獲取界面填寫的數(shù)據(jù)存入數(shù)據(jù)庫的設(shè)計。系統(tǒng)從管理員輸入的數(shù)據(jù)得到信息,并把信息存儲到數(shù)據(jù)庫中,開戶成功則會彈出"create account success!"對話框,如果開戶失敗則會彈出"create account failed!"對話框。如果開戶成功,點擊提示對話框的確定按鈕(如下圖),這樣就得到了界面數(shù)據(jù),并用數(shù)據(jù)來構(gòu)建賬戶對象,調(diào)用訪問數(shù)據(jù)庫的類,并把數(shù)據(jù)存入數(shù)據(jù)庫,最后返回主操控界面。圖3-6 開戶成功界面演示圖數(shù)據(jù)庫設(shè)計需求的主要代碼如下:void AddAccount:createAccount() /*從界面得到數(shù)據(jù)*/ QString aname=ui->accountName->text(); QString aid=ui->accountId->text(); QString apaswd=ui-&

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論