版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 第一章 引言1</b></p><p> 1.1 課題的背景及意義1</p><p> 1.2 完成的內(nèi)容與設(shè)計(jì)結(jié)果2</p><p> 1.2.1 設(shè)計(jì)目標(biāo)2</p><p>
2、1.2.2 設(shè)計(jì)內(nèi)容2</p><p> 1.3 實(shí)施步驟3</p><p> 第二章 相關(guān)技術(shù)介紹5</p><p> 2.1開發(fā)模式:B/S模式5</p><p> 2.2 Spring MVC5</p><p> 2.3 Bootstrap6</p><p> 2.
3、4 Jquery6</p><p> 第三章 概要設(shè)計(jì)8</p><p> 3.1 系統(tǒng)結(jié)構(gòu)8</p><p> 3.2 系統(tǒng)主要功能8</p><p> 第四章 數(shù)據(jù)庫設(shè)計(jì)10</p><p> 4.1 系統(tǒng)類圖10</p><p> 4.2 系統(tǒng)E-R圖11<
4、/p><p> 4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)11</p><p> 第五章 詳細(xì)設(shè)計(jì)13</p><p> 5.1 系統(tǒng)用例圖13</p><p> 5.2 柜臺操作模塊13</p><p> 5.2.1柜臺操作模塊功能介紹13</p><p> 5.2.2柜臺操作模塊用例圖14&l
5、t;/p><p> 5.2.3柜臺操作模塊時(shí)序圖15</p><p> 5.3 ATM服務(wù)模塊22</p><p> 5.3.1 ATM服務(wù)模塊功能介紹22</p><p> 5.3.2 ATM服務(wù)模塊用例圖23</p><p> 5.3.3 ATM服務(wù)模塊時(shí)序圖24</p><p&
6、gt; 第六章 程序?qū)崿F(xiàn)28</p><p> 6.1 柜臺操作模塊截圖28</p><p> 6.2 ATM服務(wù)模塊截圖32</p><p> 6.3 重點(diǎn)代碼33</p><p><b> 第七章 總結(jié)40</b></p><p><b> 第一章 引言<
7、/b></p><p> 1.1 課題的背景及意義</p><p> 自1580年第一家銀行在意大利威尼斯誕生至今,隨著商品交換、貨幣流通的迅速擴(kuò)大,以及國際貿(mào)易的迅速發(fā)展,銀行業(yè)獲得了空前飛速的發(fā)展,其地位、作用日益加強(qiáng),銀行的工作效率和貨幣流通能力更是成為整個(gè)經(jīng)濟(jì)發(fā)展速度的決定性因素之一。而隨著電子信息技術(shù)的崛起,銀行的業(yè)務(wù)處理能力與日俱增,作為銀行支付結(jié)算工作的前提和基礎(chǔ),
8、銀行結(jié)算賬戶的管理成為了銀行管理流程中的至關(guān)重要的部分。</p><p> 銀行結(jié)算賬戶是指存款人在經(jīng)辦銀行開立的辦理資金收付結(jié)算的人民幣活期存款賬戶,是集中反映整個(gè)社會經(jīng)濟(jì)活動中資金流動的基礎(chǔ)。銀行結(jié)算賬戶管理需經(jīng)過國務(wù)院行政許可授權(quán),是各大銀行支付結(jié)算管理工作中的一向重要內(nèi)容,有效的銀行結(jié)算賬戶管理可以為經(jīng)濟(jì)、金融秩序運(yùn)行提供強(qiáng)有力的基礎(chǔ)支持,營造公平競爭、合規(guī)有序的良好氛圍,對于促進(jìn)我國金融業(yè)健康、平穩(wěn)發(fā)
9、展有著重要意義。</p><p> 銀行賬戶管理制度的確立,賬戶管理系統(tǒng)的設(shè)計(jì)直接影響著銀行在結(jié)算管理中的效率,有效的賬戶管理工作就相當(dāng)與一面“防火墻”,可以從源頭上控制非法金融活動,穩(wěn)定金融秩序,同時(shí)在反洗錢,反貪污中也能發(fā)揮關(guān)鍵性作用。以法律形式明確規(guī)定存款人在賬戶開立、使用中應(yīng)承擔(dān)的責(zé)任、義務(wù),賦予人民銀行和商業(yè)銀行相應(yīng)的限制權(quán)利和措施,提高行政執(zhí)法效率,進(jìn)一步規(guī)范結(jié)算賬戶的開立和使用,對于完善我國的賬戶
10、管理制度,提高對賬戶的管理效率,促進(jìn)人民銀行履行職能具有重要的意義。</p><p> 由于受到計(jì)算機(jī)技術(shù)的限制,我國銀行電子化起步較晚,各方面技術(shù)也不太完善。以中國人民銀行為例,其銀行賬戶管理系統(tǒng)先后經(jīng)歷了單機(jī)版、集中式處理、雙層的C/S模式,最終發(fā)展到多層的B/S模式。B/S模式也是現(xiàn)今主流的管理系統(tǒng)開發(fā)模式。</p><p> 2004年6月至2005年2月,中國人民銀行首次采用
11、面向?qū)ο蟮姆椒ńM織開發(fā)了全國統(tǒng)一人民幣結(jié)算賬戶管理系統(tǒng)(簡稱:結(jié)算賬戶管理系統(tǒng))軟件,2005年6月此系統(tǒng)推廣到全國,實(shí)現(xiàn)了結(jié)算賬戶的全國統(tǒng)一管理。系統(tǒng)投入使用后,能夠在全國范圍內(nèi)嚴(yán)格控制核準(zhǔn)類賬戶的開立,監(jiān)控存款人在全國開立的所有結(jié)算賬戶。結(jié)算賬戶管理系統(tǒng)成為人民銀行實(shí)施結(jié)算賬戶管理、金融監(jiān)控業(yè)務(wù)的一個(gè)重要支撐系統(tǒng),同時(shí)也為發(fā)現(xiàn)金融犯罪提供了決策依據(jù)。 </p><p> 相比中國,美國的銀行電子化比中國早了
12、十幾年,而同在亞洲的日本銀行的電子化管理也早于中國。當(dāng)今世界,銀行賬戶系統(tǒng)的網(wǎng)絡(luò)化成了一個(gè)流行趨勢,所有的信息處理都要求極高的效率,同時(shí)還要有極高的安全性,B/S模式在系統(tǒng)開發(fā)中越來越重要,而如何實(shí)時(shí)高效地處理成千上萬的數(shù)據(jù)對系統(tǒng)設(shè)計(jì)的要求也愈來愈高。</p><p> 1.2 完成的內(nèi)容與設(shè)計(jì)結(jié)果</p><p> 1.2.1 設(shè)計(jì)目標(biāo)</p><p> 本
13、次設(shè)計(jì)的主要目標(biāo)是透過銀行賬戶結(jié)算管理系統(tǒng)的設(shè)計(jì),重點(diǎn)分析銀行賬戶的結(jié)算和管理兩個(gè)過程,對各個(gè)業(yè)務(wù)流程有更好的了解,如:</p><p> 1、模擬開戶時(shí)用戶提交信息與后臺模塊的信息數(shù)據(jù)庫中的信息進(jìn)行比對,來確定是否授予開戶準(zhǔn)許,通過這一過程來分析了解銀行賬戶開戶的審核過程。</p><p> 2、了解銀行計(jì)息方式,賬戶分類,賬戶的業(yè)務(wù)狀態(tài)等來模擬銀行賬戶管理中的不同的業(yè)務(wù)流程。如銀行
14、常用的賬戶狀態(tài)處于激活,掛失,銷戶等不同狀態(tài)下所對應(yīng)的操作;不同的存款方式可使用不同的計(jì)息方式等。</p><p> 3、模擬賬戶管理中操作權(quán)限的管理,從而分析銀行在賬戶數(shù)據(jù)操作中的安全保障措施。</p><p> 1.2.2 設(shè)計(jì)內(nèi)容</p><p> 該系統(tǒng)主要完成ATM服務(wù)模塊和柜臺操作模塊的功能。</p><p> 1、ATM
15、服務(wù)模塊功能有:</p><p> ?。?)存款 </p><p><b> (2)取款 </b></p><p> ?。?)查詢余額 </p><p> (4)轉(zhuǎn)賬(本地/異地/本行/跨行)</p><p> ?。?)修改密碼 </p><p&
16、gt; 2、柜臺操作模塊功能有:</p><p> ?。?)開戶 </p><p><b> ?。?)存款</b></p><p> ?。?)取款 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行)</p><p> ?。?)掛失
17、 </p><p><b> ?。?)銷戶</b></p><p> (7)用戶信息查詢 </p><p> ?。?)修改賬戶信息 </p><p><b> 1.3 實(shí)施步驟</b></p><p> 銀行賬戶結(jié)算管理系統(tǒng),先后經(jīng)歷系統(tǒng)調(diào)研、需求分析、
18、系統(tǒng)設(shè)計(jì)、編碼、系統(tǒng)調(diào)試、系統(tǒng)再修改等階段。</p><p> 查閱文獻(xiàn)資料,進(jìn)行系統(tǒng)調(diào)研</p><p> 完成前期需求分析工作,初步確定系統(tǒng)詳細(xì)開發(fā)周期。</p><p><b> 系統(tǒng)設(shè)計(jì)</b></p><p> 針對前期確定的需求分析得出一個(gè)可行的設(shè)計(jì)方案。概要系統(tǒng)所需的界面和數(shù)據(jù)表,大致確定系統(tǒng)框架結(jié)
19、構(gòu)與各功能模塊的分工。</p><p><b> 編碼</b></p><p> 根據(jù)系統(tǒng)設(shè)計(jì)確定的方案編碼,具體實(shí)現(xiàn)系統(tǒng)。主要是實(shí)現(xiàn)系統(tǒng)的框架結(jié)構(gòu)設(shè)計(jì)、界面布局設(shè)計(jì)、功能模塊設(shè)計(jì)。</p><p> 4、對系統(tǒng)的設(shè)計(jì)進(jìn)行更完善的修改,并對系統(tǒng)進(jìn)行分析和可行性實(shí)驗(yàn),在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型。</p><p>
20、主要是大致完成柜臺操作模塊和ATM服務(wù)模塊兩大功能模塊的具體功能。</p><p><b> 5、系統(tǒng)調(diào)試。</b></p><p> 調(diào)試系統(tǒng)各模塊的功能與健壯性。</p><p><b> 6、系統(tǒng)再修改。</b></p><p> 根據(jù)系統(tǒng)調(diào)試出現(xiàn)的問題修改系統(tǒng),改進(jìn)相關(guān)編碼和設(shè)計(jì)。&
21、lt;/p><p> 第二章 相關(guān)技術(shù)介紹</p><p> 2.1開發(fā)模式:B/S模式</p><p> B/S模式管理信息系統(tǒng)基本上克服了C/S 模式管理信息系統(tǒng)的不足,其主要表現(xiàn)在: </p><p> 系統(tǒng)開發(fā)、維護(hù)和升級的經(jīng)濟(jì)性,對于大型的管理信息系統(tǒng),軟件開發(fā)、維護(hù)與升級的費(fèi)用是非常高的,B/S模式所具有的框架結(jié)構(gòu)可以大大節(jié)省
22、這些費(fèi)用,同時(shí),B/S模式對前臺客戶機(jī)的要求并不高,可以避免盲目進(jìn)行硬件升級造成的巨大浪費(fèi)。 B/S模式提供了一致的用戶界面,B/S模式的應(yīng)用軟件都是基于Web瀏覽器的,這些瀏覽器的界面都很相似。對于無用戶交互功能的頁面,用戶接觸的界面都是一致的,從而可以降低軟件的培訓(xùn)費(fèi)用。B/S模式具有很強(qiáng)的開放性,在B/S模式下,外部的用戶亦可通過通用的瀏覽器進(jìn)行訪問。B/S模式的結(jié)構(gòu)易于擴(kuò)展,由于Web的平臺無關(guān)性,BS模式結(jié)構(gòu)可以任意擴(kuò)展,可以
23、從一臺服務(wù)器、幾個(gè)用戶的工作組級擴(kuò)展成為擁有成千上萬用戶的大型系統(tǒng)。B/S模式具有更強(qiáng)的信息系統(tǒng)集成性,在B/S模式下,集成了解決企事業(yè)單位各種問題的服務(wù),而非零散的單一功能的多系統(tǒng)模式,因而它能提供更高的工作效率。B/S模式提供靈活的信息交流和信息發(fā)布服務(wù)。B/S模式借助Internet強(qiáng)大的信息發(fā)布與信息傳送能力可以有效地解決企業(yè)內(nèi)部的大量不規(guī)則的信息交流。</p><p> 2.2 Spring MVC&
24、lt;/p><p> Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還可以是 Struts 這樣的 Web 框架。通過策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如
25、JavaServer Pages(JSP)技術(shù)、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的視圖,所以不會強(qiáng)迫您只使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更容易進(jìn)行定制。</p><p> MVC作為WEB項(xiàng)目開發(fā)的核心環(huán)節(jié),正如三個(gè)單詞的分解那樣,C(控制器)將V(視圖、用戶客戶端)與M(模塊
26、,業(yè)務(wù))分開構(gòu)成了MVC ,這邊不去討論項(xiàng)目中是否應(yīng)用MVC ,也不針對MVC的實(shí)現(xiàn)原理進(jìn)行講解,而是探討實(shí)踐中如何從應(yīng)用SSH, 到Spring MVC + Spring+Hibernate的演化過程。</p><p> 2.3 Bootstrap</p><p> Bootstrap是Twitter推出的一個(gè)開源的用于前端開發(fā)的工具包。它由Twitter的設(shè)計(jì)師Mark Otto和
27、Jacob Thornton合作開發(fā),是一個(gè)CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動態(tài)CSS語言Less寫成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門開源項(xiàng)目,包括NASA的MSNBC(微軟全國廣播公司)的Breaking News都使用了該項(xiàng)目。Bootstrap是基于jQuery框架開發(fā)的,它在jQuery框架的基礎(chǔ)上進(jìn)行了更為個(gè)性化和人性化的完善,形成一套自己獨(dú)有
28、的網(wǎng)站風(fēng)格,并兼容大部分jQuery插件。Bootstrap中包含了豐富的Web組件,根據(jù)這些組件,可以快速的搭建一個(gè)漂亮、功能完備的網(wǎng)站。其中包括以下組件:下拉菜單、按鈕組、按鈕下拉菜單、導(dǎo)航、導(dǎo)航條、面包屑、分頁、排版、縮略圖、警告對話框、進(jìn)度條、媒體對象等。</p><p> 2.4 Jquery</p><p> Jquery是繼prototype之后又一個(gè)優(yōu)秀的Javascr
29、ipt框架。它是輕量級的js庫,它兼容CSS3,還兼容各種瀏覽器。jQuery使用戶能更方便地處理HTML documents、events、實(shí)現(xiàn)動畫效果,并且方便地為網(wǎng)站提供AJAX交互。</p><p> jQuery EasyUI是一組基于jQuery的UI插件集合,而jQuery EasyUI的目標(biāo)就是幫助web開發(fā)者更輕松的打造出功能豐富并且美觀的UI界面。開發(fā)者不需要編寫復(fù)雜的javascript,
30、也不需要對css樣式有深入的了解,開發(fā)者需要了解的只有一些簡單的html標(biāo)簽。</p><p> Uploadify是一款優(yōu)秀jQuery插件,主要功能是批量上傳文件,此插件在項(xiàng)目中已被廣泛使用。</p><p><b> 第三章 概要設(shè)計(jì)</b></p><p><b> 3.1 系統(tǒng)結(jié)構(gòu)</b></p>
31、;<p> 銀行賬戶結(jié)算管理系統(tǒng)的分為ATM服務(wù)模塊,柜臺操作模塊和后臺管理模塊。我主要完成的是ATM服務(wù)模塊和柜臺操作模塊功能的實(shí)現(xiàn)。系統(tǒng)結(jié)構(gòu)如圖3.1所示</p><p><b> 圖3.1系統(tǒng)結(jié)構(gòu)圖</b></p><p> Fig 3.1 System Structure</p><p> 3.2 系統(tǒng)主要功能&l
32、t;/p><p> 銀行賬戶結(jié)算管理系統(tǒng)的分為ATM服務(wù)模塊和柜臺操作模塊。</p><p> 其中,有三個(gè)角色,分別是:用戶、操作員、管理員。</p><p><b> 具體功能設(shè)計(jì)如下:</b></p><p> 1、柜臺操作模塊主要功能要求</p><p> ?。?)開戶:用戶可以向操作
33、員申請開戶,申請成功后經(jīng)管理員批準(zhǔn)則開戶成功。 </p><p> ?。?)存款:用戶登錄成功后可以選擇已綁定的某張銀行卡進(jìn)行存款。</p><p> ?。?)取款:用戶登錄成功后可以選擇已綁定的某張銀行卡進(jìn)行取款。 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行):用戶登錄成功后可以選擇已綁定的某張銀行卡進(jìn)行轉(zhuǎn)賬,支持多種方式。&l
34、t;/p><p> ?。?)掛失:用戶登錄成功后可以選擇已綁定的某張銀行卡進(jìn)行掛失。 </p><p> ?。?)銷戶:操作員可以對用戶進(jìn)行注銷。</p><p> ?。?)用戶信息查詢: 用戶登錄成功后可以查看自己的用戶信息,操作員和管理員可以查看所有用戶的用戶信息。 </p><p> ?。?)修改賬戶信息: 用于對
35、已有信息進(jìn)行更改,對于一些錯(cuò)誤的數(shù)據(jù)可以進(jìn)行及時(shí)的修改。用戶登錄成功后可以修改自己的賬戶信息,操作員和管理員可以修改所有用戶的賬戶信息。 </p><p> 2、ATM服務(wù)模塊主要功能要求</p><p> (1)存款: 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進(jìn)行存款。 </p><p> (2)取款: 用戶登錄成功后選擇“
36、ATM服務(wù)”可以選擇已綁定的某張銀行卡進(jìn)行取款。 </p><p> ?。?)查詢余額: 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進(jìn)行余額的查詢。 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行): 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進(jìn)行轉(zhuǎn)賬,支持多種方式。</p><p> ?。?)修改密碼: 用戶登錄成
37、功后可以修改自己的密碼。 </p><p><b> 第四章 數(shù)據(jù)庫設(shè)計(jì)</b></p><p><b> 4.1 系統(tǒng)類圖</b></p><p> 系統(tǒng)類圖如圖4.1所示:</p><p><b> 圖4.1 系統(tǒng)類圖</b></p><p&
38、gt; Fig 4.1 System Class Diagram</p><p> 用戶表、權(quán)限表、用戶權(quán)限表是相互關(guān)聯(lián)的關(guān)系,用戶表和用戶權(quán)限表是一對多,權(quán)限表和用戶權(quán)限表是一對多;一個(gè)用戶表可以有多個(gè)賬戶表。</p><p> 4.2 系統(tǒng)E-R圖</p><p> 系統(tǒng)E-R圖如圖4.2所示:</p><p> 圖4.2 系統(tǒng)
39、E-R圖</p><p> Fig 4.2 System E-R Diagram</p><p> 4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)</p><p> 系統(tǒng)數(shù)據(jù)庫利用MySQL創(chuàng)建,數(shù)據(jù)庫是一個(gè)信息系統(tǒng)的重要組成部分。所以在做系統(tǒng)需求分析時(shí)就必須設(shè)計(jì)好數(shù)據(jù)庫。本系統(tǒng)涉及的數(shù)據(jù)表主要有:</p><p> 1、用戶表 t_user:(附表.1)&l
40、t;/p><p> 存儲用戶信息,包括有用戶名和密碼等具體信息。</p><p> 2、賬戶表 t_account:(附表.2)</p><p> 存儲每個(gè)用戶的賬戶信息,每個(gè)用戶可以有多個(gè)賬戶信息。</p><p> 3、權(quán)限表 t_app:(附表.3)</p><p><b> 存儲權(quán)限信息。<
41、;/b></p><p> 4、用戶權(quán)限表 t_user_app:(附表.4)</p><p> 對不同用戶不同的權(quán)限分配進(jìn)行管理。</p><p><b> 第五章 詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1 系統(tǒng)用例圖</b></p><p> 圖
42、5.1 系統(tǒng)用例圖</p><p> Fig 5.1 System Use Case Diagram</p><p> 5.2 柜臺操作模塊</p><p> 5.2.1柜臺操作模塊功能介紹</p><p> 用戶可以向操作員申請開戶,申請成功后經(jīng)管理員批準(zhǔn)則開戶成功;用戶登錄成功后可以選擇已綁定的某張銀行卡進(jìn)行存款、取款、轉(zhuǎn)賬和掛失
43、; 操作員可以對用戶進(jìn)行注銷; 用戶登錄成功后可以查看或修改自己的用戶信息,操作員和管理員可以查看或修改所有用戶的用戶信息。</p><p> 5.2.2柜臺操作模塊用例圖</p><p> 圖5.2.2 柜臺操作模塊用例圖</p><p> Fig 5.2.2 Counter Operation Module Use Case Diagram</p&g
44、t;<p> 5.2.3柜臺操作模塊時(shí)序圖</p><p> 5.2.3.1 開戶</p><p> 圖5.2.3.1 開戶時(shí)序圖</p><p> Fig 5.2.3.1 Opening Sequence Diagram</p><p> 5.2.3.2 存款</p><p> 圖5.2.3
45、.2 存款時(shí)序圖</p><p> Fig 5.2.3.2 Deposit Sequence Diagram</p><p> 5.2.3.3 取款</p><p> 圖5.2.3.3 取款時(shí)序圖</p><p> Fig 5.2.3.3 Withdrawals Sequence Diagram</p><p>
46、; 5.2.3.4 轉(zhuǎn)賬</p><p> 圖5.2.3.4 轉(zhuǎn)賬時(shí)序圖</p><p> Fig 5.2.3.4 Transfer Sequence Diagram</p><p> 5.2.3.5 掛失</p><p> 圖5.2.3.5 掛失時(shí)序圖</p><p> Fig 5.2.3.5 Loss
47、Report Sequence Diagram</p><p> 5.2.3.6 銷戶</p><p> 圖5.2.3.6 銷戶時(shí)序圖</p><p> Fig 5.2.3.6 Cancel the Account Sequence Diagram</p><p> 5.2.3.7 用戶信息查詢</p><p>
48、; 圖5.2.3.7 用戶信息查詢時(shí)序圖</p><p> Fig 5.2.3.7 Query User Information Sequence Diagram</p><p> 5.2.3.8 修改用戶信息</p><p> 圖5.2.3.8 修改用戶信息時(shí)序圖</p><p> Fig 5.2.3.8 Modify User
49、InformationSequence Diagram</p><p> 5.3 ATM服務(wù)模塊</p><p> 5.3.1 ATM服務(wù)模塊功能介紹</p><p> 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進(jìn)行存款、取款、轉(zhuǎn)賬以及余額的查詢; 用戶登錄成功后可以修改自己的密碼。</p><p> 5.3.2 AT
50、M服務(wù)模塊用例圖</p><p> 圖5.3.2 ATM服務(wù)模塊用例圖</p><p> Fig 5.3.2 ATM Services Module Use Case Diagram</p><p> 5.3.3 ATM服務(wù)模塊時(shí)序圖</p><p> 5.3.3.1 存款</p><p> 圖5.3.3.1
51、 存款時(shí)序圖</p><p> Fig 5.3.3.1 Deposit Sequence Diagram</p><p> 5.3.3.2 取款</p><p> 圖5.3.3.2 取款時(shí)序圖</p><p> Fig 5.3.3.2 Withdrawals Sequence Diagram</p><p>
52、 5.3.3.3 轉(zhuǎn)賬</p><p> 圖5.3.3.3 轉(zhuǎn)賬時(shí)序圖</p><p> Fig 5.3.3.3 Transfer Sequence Diagram</p><p> 5.3.3.4 查詢余額</p><p> 圖5.3.3.4 查詢余額時(shí)序圖</p><p> Fig 5.3.3.4 Que
53、ry Balance Sequence Diagram</p><p> 5.3.3.5 修改密碼</p><p> 圖5.3.3.5 修改密碼時(shí)序圖</p><p> Fig 5.3.3.5 Change Password Sequence Diagram</p><p><b> 第六章 程序?qū)崿F(xiàn)</b>&l
54、t;/p><p> 6.1 柜臺操作模塊截圖</p><p> 登陸界面:用戶打開瀏覽器在地址欄輸入</p><p> http://localhost:8080/ </p><p> 進(jìn)入到登陸界面輸入用戶名密碼,登錄成功后,如圖6.1.1所示</p><p> 輸入用戶名和密碼后,跳轉(zhuǎn)到如圖6.1.2的頁面中
55、</p><p> 點(diǎn)擊新建賬戶,即開戶操作,跳轉(zhuǎn)到如圖6.1.3的頁面中,輸入信息后,“保存”則開戶成功。</p><p> 點(diǎn)擊存款,跳轉(zhuǎn)到如圖6.1.4的頁面中,可以輸入存款金額進(jìn)行存款。</p><p> 點(diǎn)擊取款,跳轉(zhuǎn)到如圖6.1.5的頁面中,可以輸入取款金額進(jìn)行取款。</p><p> 點(diǎn)擊轉(zhuǎn)賬,跳轉(zhuǎn)到如圖6.1.6的頁面
56、中,可以輸入轉(zhuǎn)賬卡號和轉(zhuǎn)賬金額進(jìn)行轉(zhuǎn)賬。</p><p> 點(diǎn)擊修改信息,跳轉(zhuǎn)到如圖6.1.7的頁面中,可以修改用戶信息。用戶也可以注銷自己。</p><p> 點(diǎn)擊用戶信息查詢,跳轉(zhuǎn)到如圖6.1.8的頁面中,可以查看賬戶信息。</p><p> 6.2 ATM服務(wù)模塊截圖</p><p> 用戶登錄成功,跳轉(zhuǎn)到如圖6.2.1的頁面中
57、,顯示ATM服務(wù)的賬戶信息。</p><p> 點(diǎn)擊顯示余額,跳轉(zhuǎn)到如圖6.2.2的頁面中,可以顯示賬戶的余額。</p><p> 點(diǎn)擊修改密碼,跳轉(zhuǎn)到如圖6.2.3的頁面中,可以輸入原密碼和新密碼。</p><p><b> 6.3 重點(diǎn)代碼</b></p><p> @Controller</p>
58、<p> @RequestMapping("/admin/account")</p><p> public class AccountController extends BaseController{</p><p> @Autowired</p><p> private AccountService accountS
59、ervice;</p><p> @RequestMapping("/list.do")</p><p> public String list(HttpServletRequest request) {</p><p> String searchTruename = request.getParameter("searchTr
60、uename");</p><p> String type = request.getParameter("type");</p><p> request.setAttribute("List", accountService.findAll(searchTruename ,this.getLoginUser().getUserna
61、me()));</p><p> request.setAttribute("searchTruename", searchTruename);</p><p> String a = "admin/biz/account/list";</p><p> if(type.equals("1")){&l
62、t;/p><p> a = "admin/biz/account/list1";</p><p><b> }</b></p><p> if(type.equals("2")){</p><p> a = "admin/biz/account/list";
63、</p><p><b> }</b></p><p> if(type.equals("3")){</p><p> a = "admin/biz/account/list2";</p><p><b> }</b></p><p
64、><b> return a;</b></p><p><b> }</b></p><p> @RequestMapping("/show.do")</p><p> public String show(HttpServletRequest request) {</p>
65、<p> String id = request.getParameter("id");</p><p> if(StringUtils.isNotEmpty(id))</p><p> request.setAttribute("entity", accountService.findByID(Integer.valueOf(id)
66、));</p><p> return "admin/biz/account/show";</p><p><b> }</b></p><p> @RequestMapping("/setstate.do")</p><p> public String setState
67、(@RequestParam("id")int id,@RequestParam("state")String state,HttpServletRequest request) {</p><p> accountService.setState(id,state);</p><p> return "redirect:/admin/
68、account/list.do";</p><p><b> }</b></p><p> @RequestMapping("/edit.do")</p><p> public String edit(HttpServletRequest request) {</p><p> S
69、tring id = request.getParameter("id");</p><p> if(StringUtils.isNotEmpty(id))</p><p> request.setAttribute("entity", accountService.findByID(Integer.valueOf(id)));</p>
70、;<p> return "admin/biz/account/edit";</p><p><b> }</b></p><p> @RequestMapping("/toZhuanzhang.do")</p><p> public String toZhuanzhang(Htt
71、pServletRequest request) {</p><p> String id = request.getParameter("id");</p><p> if(StringUtils.isNotEmpty(id)){</p><p> request.setAttribute("entity", acco
72、untService.findByID(Integer.valueOf(id)));</p><p> request.setAttribute("accountEntity", accountService.findOthers(id));</p><p><b> }</b></p><p> request.se
73、tAttribute("type", request.getParameter("type"));</p><p> return "admin/biz/account/zhuanzhang";</p><p><b> }</b></p><p> @RequestMappin
74、g("/changeMoney.do")</p><p> public String changeMoney(HttpServletRequest request) {</p><p> String id = request.getParameter("id");</p><p> if(StringUtils.is
75、NotEmpty(id))</p><p> request.setAttribute("entity", accountService.findByID(Integer.valueOf(id)));</p><p> request.setAttribute("moneyState", request.getParameter("mo
76、neyState"));</p><p> request.setAttribute("type", request.getParameter("type"));</p><p> return "admin/biz/account/changeMoney";</p><p><b>
77、; }</b></p><p><b> /**</b></p><p><b> * 存取款</b></p><p> * @param request</p><p><b> * @return</b></p><p><
78、;b> */</b></p><p> @RequestMapping("/updateMoney.do")</p><p> public String updateMoney(HttpServletRequest request) {</p><p> String id = request.getParamete
79、r("id");</p><p> String moneyState = request.getParameter("moneyState");</p><p> String changeMoney = request.getParameter("changeMoney");</p><p>
80、 String type = request.getParameter("type");</p><p><b> //1代表存款</b></p><p><b> //2代表取款</b></p><p> if("1".equals(StringUtils.trim(mon
81、eyState))){</p><p> TAccount account = accountService.findByID(Integer.valueOf(id));</p><p> account.setMoney((Double.valueOf(account.getMoney()) + Double.valueOf(changeMoney)) * 1.03 +"&
82、quot;);</p><p> accountService.saveOrUpdate(account);</p><p><b> }</b></p><p> if("2".equals(StringUtils.trim(moneyState))){</p><p> TAccount
83、account = accountService.findByID(Integer.valueOf(id));</p><p> account.setMoney((Double.valueOf(account.getMoney()) - Double.valueOf(changeMoney)) * 1.03 +"");</p><p> accountServic
84、e.saveOrUpdate(account);</p><p><b> }</b></p><p> return "redirect:/admin/account/list.do?type="+type;</p><p><b> }</b></p><p><
85、b> /**</b></p><p><b> * 轉(zhuǎn)賬</b></p><p> * @param request</p><p><b> * @return</b></p><p><b> */</b></p><p>
86、; @RequestMapping("/zhuanzhang.do")</p><p> public String zhuanzhang(HttpServletRequest request) {</p><p> String id = request.getParameter("id");</p><p> St
87、ring toId = request.getParameter("toId");</p><p> String changeMoney = request.getParameter("changeMoney");</p><p> String type = request.getParameter("type");&l
88、t;/p><p> TAccount account = accountService.findByID(Integer.valueOf(id));</p><p> account.setMoney((Double.valueOf(account.getMoney()) - Double.valueOf(changeMoney)) * 1.03 +"");</p
89、><p> TAccount toAccount = accountService.findByID(Integer.valueOf(toId));</p><p> toAccount.setMoney((Double.valueOf(toAccount.getMoney()) + Double.valueOf(changeMoney)) * 1.03 +"");&l
90、t;/p><p> accountService.saveOrUpdate(account);</p><p> accountService.saveOrUpdate(toAccount);</p><p> //return "redirect:/admin/account/listForUserid.do?userId" + this
91、.getLoginUser().getUserid();</p><p> return "redirect:/admin/account/list.do?type="+type;</p><p><b> }</b></p><p> @RequestMapping("/save.do")<
92、/p><p> public String save(HttpServletRequest request) throws IllegalAccessException, InvocationTargetException {</p><p> TAccount account = new TAccount();</p><p> String id = requ
93、est.getParameter("id");</p><p> if(StringUtils.isNotEmpty(id))</p><p> account = accountService.findByID(Integer.valueOf(id));</p><p> BeanUtils.populate(account, reque
94、st.getParameterMap());</p><p> account.setMoney(Double.valueOf(account.getMoney())* 1.03 + "");</p><p> String password = request.getParameter("password");</p><p
95、> if(StringUtils.isNotEmpty(password))</p><p> account.setPassword(SHAUtil.sha(account.getPassword()));</p><p> if(account.getId() == 0){</p><p> account.setTruename(this.get
96、LoginUser().getRealname());</p><p> account.setUsername(this.getLoginUser().getUsername());</p><p> account.setCreUid(Integer.valueOf(this.getLoginUser().getUserid()));</p><p> a
97、ccount.setCreTime(CalendarUtils.getNowTimeTimestamp());</p><p><b> }else{</b></p><p> account.setEdiTime(CalendarUtils.getNowTimeTimestamp());</p><p> account.setEdiU
98、id(Integer.valueOf(this.getLoginUser().getUserid()));</p><p><b> }</b></p><p> accountService.saveOrUpdate(account);</p><p> return "redirect:/admin/account/list
99、.do";</p><p><b> }</b></p><p> @RequestMapping("/goChangepwd.do")</p><p> public String goChangepwd(HttpServletRequest request) {</p><p>
100、 request.setAttribute("id", request.getParameter("id"));</p><p> return "admin/biz/account/changepwd";</p><p><b> }</b></p><p> @Request
101、Mapping("/changepwd.do")</p><p> public String changepwd(HttpServletRequest request) throws IllegalAccessException, InvocationTargetException {</p><p> String id = request.getParamet
102、er("id");</p><p> TAccount account = accountService.findByID(Integer.valueOf(id));</p><p> String oldpwd = request.getParameter("oldpwd");</p><p> String newp
103、wd1 = request.getParameter("newpwd1");</p><p> String newpwd2 = request.getParameter("newpwd2");</p><p> String rs = null;</p><p> if(StringUtils.isNotEmpty(o
104、ldpwd) && SHAUtil.sha(oldpwd).equals(account.getPassword())){</p><p> if(newpwd1.equals(newpwd2)){</p><p> account.setPassword(SHAUtil.sha(newpwd1));</p><p> accountServi
105、ce.saveOrUpdate(account);</p><p> rs = "密碼修改成功!";</p><p><b> }else{</b></p><p> rs = "新密碼兩次輸入不一致!";</p><p><b> }</b><
106、/p><p><b> }else{</b></p><p> rs = "原密碼輸入錯(cuò)誤!";</p><p><b> }</b></p><p> request.setAttribute("rs", rs);</p><p>
107、; return "admin/biz/account/changepwd";</p><p> //return "redirect:/admin/account/listForUserid.do?userId" + this.getLoginUser().getUserid();</p><p><b> }</b>
108、;</p><p> @RequestMapping("/export.do")</p><p> public String export(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException{</p><p&g
109、t; /*下載xls名字在這命名*/</p><p> String fileName = "賬號信息";</p><p> request.setAttribute("List", accountService.findAll());</p><p> response.setContentType("te
110、xt/html;charset=utf-8");</p><p><b> try {</b></p><p> request.setCharacterEncoding("UTF-8");</p><p> } catch (UnsupportedEncodingException e) {</p&g
111、t;<p> e.printStackTrace();</p><p><b> }</b></p><p> String excelName = new String(fileName.getBytes(), "ISO8859-1")+ ".xls";</p><p> resp
112、onse.setHeader("Content-disposition", "attachment;filename="+ excelName);</p><p> /*跳轉(zhuǎn)你自己下載模版路徑*/</p><p> return "admin/biz/account/export";</p><p>&
113、lt;b> }</b></p><p><b> }</b></p><p><b> 第七章 總結(jié)</b></p><p> 經(jīng)過這次開發(fā),我對SpringMVC框架有了更加系統(tǒng)的把握。本系統(tǒng)在開發(fā)過程中,我自始至終都著眼于實(shí)際應(yīng)用需求,致力于完善業(yè)務(wù)邏輯,而把繁瑣的實(shí)現(xiàn)細(xì)節(jié)交給了SpringM
114、VC架構(gòu)完成,較使用普通的jsp開發(fā)效率明顯提高。整個(gè)開發(fā)過程充分發(fā)揮了SpringMVC作為成熟的應(yīng)用框架的優(yōu)勢。</p><p> 從設(shè)計(jì)角度看本系統(tǒng)合理使用了分層模型,使得代碼結(jié)構(gòu)清晰,易于調(diào)用和維護(hù)。但需要注意的是并不分層越多越好,關(guān)鍵看解決問題的復(fù)雜度的考量。由于分層越多,雖然邏輯上會更清晰,更利于開發(fā)和維護(hù),但也會帶來創(chuàng)建實(shí)例的次數(shù)增多的問題,隨之而來的是代碼效率的降低。因此必須需要權(quán)衡好分層數(shù)目和
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--銀行賬戶管理系統(tǒng)
- 本科畢業(yè)設(shè)計(jì)論文_基于java的銀行賬戶管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- java課程設(shè)計(jì)---銀行賬戶管理系統(tǒng)
- 銀行賬戶管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 銀行柜臺服務(wù)系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 課程設(shè)計(jì)---個(gè)人銀行賬戶管理系統(tǒng)
- c++銀行賬戶管理系統(tǒng)資料
- c++課程設(shè)計(jì) 銀行賬戶管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---銀行賬戶管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---銀行賬戶管理系統(tǒng)
- c++課程設(shè)計(jì)---銀行賬戶管理系統(tǒng)程序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_銀行賬戶管理系統(tǒng)
- 下屬企業(yè)銀行賬戶管理規(guī)定
- 中信銀行賬戶管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 數(shù)據(jù)庫課程設(shè)計(jì)--個(gè)人銀行賬戶管理系統(tǒng)
- atm系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 銀行本票結(jié)算系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)──單位賬戶開戶【畢業(yè)論文】
- 畢業(yè)設(shè)計(jì)(論文)報(bào)告銀行atm系統(tǒng)方案設(shè)計(jì)
- 銀行賬戶管理廉政承諾書
- c語言課程設(shè)計(jì)報(bào)告(銀行賬戶信息管理系統(tǒng))
評論
0/150
提交評論