2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(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è)計結(jié)果2</p><p>  1.2.1 設(shè)計目標(biāo)2</p><p>  

2、1.2.2 設(shè)計內(nèi)容2</p><p>  1.3 實施步驟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è)計8</p><p>  3.1 系統(tǒng)結(jié)構(gòu)8</p><p>  3.2 系統(tǒng)主要功能8</p><p>  第四章 數(shù)據(jù)庫設(shè)計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è)計11</p><p>  第五章 詳細(xì)設(shè)計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柜臺操作模塊時序圖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ù)模塊時序圖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 重點代碼33</p><p><b>  第七章 總結(jié)40</b></p><p><b>  第一章 引言<

7、/b></p><p>  1.1 課題的背景及意義</p><p>  自1580年第一家銀行在意大利威尼斯誕生至今,隨著商品交換、貨幣流通的迅速擴大,以及國際貿(mào)易的迅速發(fā)展,銀行業(yè)獲得了空前飛速的發(fā)展,其地位、作用日益加強,銀行的工作效率和貨幣流通能力更是成為整個經(jīng)濟發(fā)展速度的決定性因素之一。而隨著電子信息技術(shù)的崛起,銀行的業(yè)務(wù)處理能力與日俱增,作為銀行支付結(jié)算工作的前提和基礎(chǔ),

8、銀行結(jié)算賬戶的管理成為了銀行管理流程中的至關(guān)重要的部分。</p><p>  銀行結(jié)算賬戶是指存款人在經(jīng)辦銀行開立的辦理資金收付結(jié)算的人民幣活期存款賬戶,是集中反映整個社會經(jīng)濟活動中資金流動的基礎(chǔ)。銀行結(jié)算賬戶管理需經(jīng)過國務(wù)院行政許可授權(quán),是各大銀行支付結(jié)算管理工作中的一向重要內(nèi)容,有效的銀行結(jié)算賬戶管理可以為經(jīng)濟、金融秩序運行提供強有力的基礎(chǔ)支持,營造公平競爭、合規(guī)有序的良好氛圍,對于促進我國金融業(yè)健康、平穩(wěn)發(fā)

9、展有著重要意義。</p><p>  銀行賬戶管理制度的確立,賬戶管理系統(tǒng)的設(shè)計直接影響著銀行在結(jié)算管理中的效率,有效的賬戶管理工作就相當(dāng)與一面“防火墻”,可以從源頭上控制非法金融活動,穩(wěn)定金融秩序,同時在反洗錢,反貪污中也能發(fā)揮關(guān)鍵性作用。以法律形式明確規(guī)定存款人在賬戶開立、使用中應(yīng)承擔(dān)的責(zé)任、義務(wù),賦予人民銀行和商業(yè)銀行相應(yīng)的限制權(quán)利和措施,提高行政執(zhí)法效率,進一步規(guī)范結(jié)算賬戶的開立和使用,對于完善我國的賬戶

10、管理制度,提高對賬戶的管理效率,促進人民銀行履行職能具有重要的意義。</p><p>  由于受到計算機技術(shù)的限制,我國銀行電子化起步較晚,各方面技術(shù)也不太完善。以中國人民銀行為例,其銀行賬戶管理系統(tǒng)先后經(jīng)歷了單機版、集中式處理、雙層的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)推廣到全國,實現(xiàn)了結(jié)算賬戶的全國統(tǒng)一管理。系統(tǒng)投入使用后,能夠在全國范圍內(nèi)嚴(yán)格控制核準(zhǔn)類賬戶的開立,監(jiān)控存款人在全國開立的所有結(jié)算賬戶。結(jié)算賬戶管理系統(tǒng)成為人民銀行實施結(jié)算賬戶管理、金融監(jiān)控業(yè)務(wù)的一個重要支撐系統(tǒng),同時也為發(fā)現(xiàn)金融犯罪提供了決策依據(jù)。 </p><p>  相比中國,美國的銀行電子化比中國早了

12、十幾年,而同在亞洲的日本銀行的電子化管理也早于中國。當(dāng)今世界,銀行賬戶系統(tǒng)的網(wǎng)絡(luò)化成了一個流行趨勢,所有的信息處理都要求極高的效率,同時還要有極高的安全性,B/S模式在系統(tǒng)開發(fā)中越來越重要,而如何實時高效地處理成千上萬的數(shù)據(jù)對系統(tǒng)設(shè)計的要求也愈來愈高。</p><p>  1.2 完成的內(nèi)容與設(shè)計結(jié)果</p><p>  1.2.1 設(shè)計目標(biāo)</p><p>  本

13、次設(shè)計的主要目標(biāo)是透過銀行賬戶結(jié)算管理系統(tǒng)的設(shè)計,重點分析銀行賬戶的結(jié)算和管理兩個過程,對各個業(yè)務(wù)流程有更好的了解,如:</p><p>  1、模擬開戶時用戶提交信息與后臺模塊的信息數(shù)據(jù)庫中的信息進行比對,來確定是否授予開戶準(zhǔn)許,通過這一過程來分析了解銀行賬戶開戶的審核過程。</p><p>  2、了解銀行計息方式,賬戶分類,賬戶的業(yè)務(wù)狀態(tài)等來模擬銀行賬戶管理中的不同的業(yè)務(wù)流程。如銀行

14、常用的賬戶狀態(tài)處于激活,掛失,銷戶等不同狀態(tài)下所對應(yīng)的操作;不同的存款方式可使用不同的計息方式等。</p><p>  3、模擬賬戶管理中操作權(quán)限的管理,從而分析銀行在賬戶數(shù)據(jù)操作中的安全保障措施。</p><p>  1.2.2 設(shè)計內(nèi)容</p><p>  該系統(tǒng)主要完成ATM服務(wù)模塊和柜臺操作模塊的功能。</p><p>  1、ATM

15、服務(wù)模塊功能有:</p><p> ?。?)存款 </p><p><b> ?。?)取款 </b></p><p> ?。?)查詢余額 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行)</p><p> ?。?)修改密碼 </p><p&

16、gt;  2、柜臺操作模塊功能有:</p><p> ?。?)開戶 </p><p><b> ?。?)存款</b></p><p>  (3)取款 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行)</p><p>  (5)掛失

17、 </p><p><b> ?。?)銷戶</b></p><p> ?。?)用戶信息查詢 </p><p>  (8)修改賬戶信息 </p><p><b>  1.3 實施步驟</b></p><p>  銀行賬戶結(jié)算管理系統(tǒng),先后經(jīng)歷系統(tǒng)調(diào)研、需求分析、

18、系統(tǒng)設(shè)計、編碼、系統(tǒng)調(diào)試、系統(tǒng)再修改等階段。</p><p>  查閱文獻資料,進行系統(tǒng)調(diào)研</p><p>  完成前期需求分析工作,初步確定系統(tǒng)詳細(xì)開發(fā)周期。</p><p><b>  系統(tǒng)設(shè)計</b></p><p>  針對前期確定的需求分析得出一個可行的設(shè)計方案。概要系統(tǒng)所需的界面和數(shù)據(jù)表,大致確定系統(tǒng)框架結(jié)

19、構(gòu)與各功能模塊的分工。</p><p><b>  編碼</b></p><p>  根據(jù)系統(tǒng)設(shè)計確定的方案編碼,具體實現(xiàn)系統(tǒng)。主要是實現(xiàn)系統(tǒng)的框架結(jié)構(gòu)設(shè)計、界面布局設(shè)計、功能模塊設(shè)計。</p><p>  4、對系統(tǒng)的設(shè)計進行更完善的修改,并對系統(tǒng)進行分析和可行性實驗,在短時間內(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),改進相關(guān)編碼和設(shè)計。&

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ā)、維護和升級的經(jīng)濟性,對于大型的管理信息系統(tǒng),軟件開發(fā)、維護與升級的費用是非常高的,B/S模式所具有的框架結(jié)構(gòu)可以大大節(jié)省

22、這些費用,同時,B/S模式對前臺客戶機的要求并不高,可以避免盲目進行硬件升級造成的巨大浪費。 B/S模式提供了一致的用戶界面,B/S模式的應(yīng)用軟件都是基于Web瀏覽器的,這些瀏覽器的界面都很相似。對于無用戶交互功能的頁面,用戶接觸的界面都是一致的,從而可以降低軟件的培訓(xùn)費用。B/S模式具有很強的開放性,在B/S模式下,外部的用戶亦可通過通用的瀏覽器進行訪問。B/S模式的結(jié)構(gòu)易于擴展,由于Web的平臺無關(guān)性,BS模式結(jié)構(gòu)可以任意擴展,可以

23、從一臺服務(wù)器、幾個用戶的工作組級擴展成為擁有成千上萬用戶的大型系統(tǒng)。B/S模式具有更強的信息系統(tǒng)集成性,在B/S模式下,集成了解決企事業(yè)單位各種問題的服務(wù),而非零散的單一功能的多系統(tǒng)模式,因而它能提供更高的工作效率。B/S模式提供靈活的信息交流和信息發(fā)布服務(wù)。B/S模式借助Internet強大的信息發(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 框架并不知道使用的視圖,所以不會強迫您只使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進行定制。</p><p>  MVC作為WEB項目開發(fā)的核心環(huán)節(jié),正如三個單詞的分解那樣,C(控制器)將V(視圖、用戶客戶端)與M(模塊

26、,業(yè)務(wù))分開構(gòu)成了MVC ,這邊不去討論項目中是否應(yīng)用MVC ,也不針對MVC的實現(xiàn)原理進行講解,而是探討實踐中如何從應(yīng)用SSH, 到Spring MVC + Spring+Hibernate的演化過程。</p><p>  2.3 Bootstrap</p><p>  Bootstrap是Twitter推出的一個開源的用于前端開發(fā)的工具包。它由Twitter的設(shè)計師Mark Otto和

27、Jacob Thornton合作開發(fā),是一個CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動態(tài)CSS語言Less寫成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門開源項目,包括NASA的MSNBC(微軟全國廣播公司)的Breaking News都使用了該項目。Bootstrap是基于jQuery框架開發(fā)的,它在jQuery框架的基礎(chǔ)上進行了更為個性化和人性化的完善,形成一套自己獨有

28、的網(wǎng)站風(fēng)格,并兼容大部分jQuery插件。Bootstrap中包含了豐富的Web組件,根據(jù)這些組件,可以快速的搭建一個漂亮、功能完備的網(wǎng)站。其中包括以下組件:下拉菜單、按鈕組、按鈕下拉菜單、導(dǎo)航、導(dǎo)航條、面包屑、分頁、排版、縮略圖、警告對話框、進度條、媒體對象等。</p><p>  2.4 Jquery</p><p>  Jquery是繼prototype之后又一個優(yōu)秀的Javascr

29、ipt框架。它是輕量級的js庫,它兼容CSS3,還兼容各種瀏覽器。jQuery使用戶能更方便地處理HTML documents、events、實現(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插件,主要功能是批量上傳文件,此插件在項目中已被廣泛使用。</p><p><b>  第三章 概要設(shè)計</b></p><p><b>  3.1 系統(tǒng)結(jié)構(gòu)</b></p>

31、;<p>  銀行賬戶結(jié)算管理系統(tǒng)的分為ATM服務(wù)模塊,柜臺操作模塊和后臺管理模塊。我主要完成的是ATM服務(wù)模塊和柜臺操作模塊功能的實現(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>  其中,有三個角色,分別是:用戶、操作員、管理員。</p><p><b>  具體功能設(shè)計如下:</b></p><p>  1、柜臺操作模塊主要功能要求</p><p>  (1)開戶:用戶可以向操作

33、員申請開戶,申請成功后經(jīng)管理員批準(zhǔn)則開戶成功。 </p><p> ?。?)存款:用戶登錄成功后可以選擇已綁定的某張銀行卡進行存款。</p><p> ?。?)取款:用戶登錄成功后可以選擇已綁定的某張銀行卡進行取款。 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行):用戶登錄成功后可以選擇已綁定的某張銀行卡進行轉(zhuǎn)賬,支持多種方式。&l

34、t;/p><p> ?。?)掛失:用戶登錄成功后可以選擇已綁定的某張銀行卡進行掛失。 </p><p>  (6)銷戶:操作員可以對用戶進行注銷。</p><p> ?。?)用戶信息查詢: 用戶登錄成功后可以查看自己的用戶信息,操作員和管理員可以查看所有用戶的用戶信息。 </p><p>  (8)修改賬戶信息: 用于對

35、已有信息進行更改,對于一些錯誤的數(shù)據(jù)可以進行及時的修改。用戶登錄成功后可以修改自己的賬戶信息,操作員和管理員可以修改所有用戶的賬戶信息。 </p><p>  2、ATM服務(wù)模塊主要功能要求</p><p> ?。?)存款: 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進行存款。 </p><p>  (2)取款: 用戶登錄成功后選擇“

36、ATM服務(wù)”可以選擇已綁定的某張銀行卡進行取款。 </p><p> ?。?)查詢余額: 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進行余額的查詢。 </p><p> ?。?)轉(zhuǎn)賬(本地/異地/本行/跨行): 用戶登錄成功后選擇“ATM服務(wù)”可以選擇已綁定的某張銀行卡進行轉(zhuǎn)賬,支持多種方式。</p><p> ?。?)修改密碼: 用戶登錄成

37、功后可以修改自己的密碼。 </p><p><b>  第四章 數(shù)據(jù)庫設(shè)計</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)限表是一對多;一個用戶表可以有多個賬戶表。</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è)計</p><p>  系統(tǒng)數(shù)據(jù)庫利用MySQL創(chuàng)建,數(shù)據(jù)庫是一個信息系統(tǒng)的重要組成部分。所以在做系統(tǒng)需求分析時就必須設(shè)計好數(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>  存儲每個用戶的賬戶信息,每個用戶可以有多個賬戶信息。</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)限分配進行管理。</p><p><b>  第五章 詳細(xì)設(shè)計</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)則開戶成功;用戶登錄成功后可以選擇已綁定的某張銀行卡進行存款、取款、轉(zhuǎn)賬和掛失

43、; 操作員可以對用戶進行注銷; 用戶登錄成功后可以查看或修改自己的用戶信息,操作員和管理員可以查看或修改所有用戶的用戶信息。</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柜臺操作模塊時序圖</p><p>  5.2.3.1 開戶</p><p>  圖5.2.3.1 開戶時序圖</p><p>  Fig 5.2.3.1 Opening Sequence Diagram</p><p>  5.2.3.2 存款</p><p>  圖5.2.3

45、.2 存款時序圖</p><p>  Fig 5.2.3.2 Deposit Sequence Diagram</p><p>  5.2.3.3 取款</p><p>  圖5.2.3.3 取款時序圖</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)賬時序圖</p><p>  Fig 5.2.3.4 Transfer Sequence Diagram</p><p>  5.2.3.5 掛失</p><p>  圖5.2.3.5 掛失時序圖</p><p>  Fig 5.2.3.5 Loss

47、Report Sequence Diagram</p><p>  5.2.3.6 銷戶</p><p>  圖5.2.3.6 銷戶時序圖</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 用戶信息查詢時序圖</p><p>  Fig 5.2.3.7 Query User Information Sequence Diagram</p><p>  5.2.3.8 修改用戶信息</p><p>  圖5.2.3.8 修改用戶信息時序圖</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ù)”可以選擇已綁定的某張銀行卡進行存款、取款、轉(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ù)模塊時序圖</p><p>  5.3.3.1 存款</p><p>  圖5.3.3.1

51、 存款時序圖</p><p>  Fig 5.3.3.1 Deposit Sequence Diagram</p><p>  5.3.3.2 取款</p><p>  圖5.3.3.2 取款時序圖</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)賬時序圖</p><p>  Fig 5.3.3.3 Transfer Sequence Diagram</p><p>  5.3.3.4 查詢余額</p><p>  圖5.3.3.4 查詢余額時序圖</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 修改密碼時序圖</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>  進入到登陸界面輸入用戶名密碼,登錄成功后,如圖6.1.1所示</p><p>  輸入用戶名和密碼后,跳轉(zhuǎn)到如圖6.1.2的頁面中

55、</p><p>  點擊新建賬戶,即開戶操作,跳轉(zhuǎn)到如圖6.1.3的頁面中,輸入信息后,“保存”則開戶成功。</p><p>  點擊存款,跳轉(zhuǎn)到如圖6.1.4的頁面中,可以輸入存款金額進行存款。</p><p>  點擊取款,跳轉(zhuǎn)到如圖6.1.5的頁面中,可以輸入取款金額進行取款。</p><p>  點擊轉(zhuǎn)賬,跳轉(zhuǎn)到如圖6.1.6的頁面

56、中,可以輸入轉(zhuǎn)賬卡號和轉(zhuǎn)賬金額進行轉(zhuǎn)賬。</p><p>  點擊修改信息,跳轉(zhuǎn)到如圖6.1.7的頁面中,可以修改用戶信息。用戶也可以注銷自己。</p><p>  點擊用戶信息查詢,跳轉(zhuǎn)到如圖6.1.8的頁面中,可以查看賬戶信息。</p><p>  6.2 ATM服務(wù)模塊截圖</p><p>  用戶登錄成功,跳轉(zhuǎn)到如圖6.2.1的頁面中

57、,顯示ATM服務(wù)的賬戶信息。</p><p>  點擊顯示余額,跳轉(zhuǎn)到如圖6.2.2的頁面中,可以顯示賬戶的余額。</p><p>  點擊修改密碼,跳轉(zhuǎn)到如圖6.2.3的頁面中,可以輸入原密碼和新密碼。</p><p><b>  6.3 重點代碼</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 = "原密碼輸入錯誤!";</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ā)過程中,我自始至終都著眼于實際應(yīng)用需求,致力于完善業(yè)務(wù)邏輯,而把繁瑣的實現(xiàn)細(xì)節(jié)交給了SpringM

114、VC架構(gòu)完成,較使用普通的jsp開發(fā)效率明顯提高。整個開發(fā)過程充分發(fā)揮了SpringMVC作為成熟的應(yīng)用框架的優(yōu)勢。</p><p>  從設(shè)計角度看本系統(tǒng)合理使用了分層模型,使得代碼結(jié)構(gòu)清晰,易于調(diào)用和維護。但需要注意的是并不分層越多越好,關(guān)鍵看解決問題的復(fù)雜度的考量。由于分層越多,雖然邏輯上會更清晰,更利于開發(fā)和維護,但也會帶來創(chuàng)建實例的次數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論