秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計

上傳人:無*** 文檔編號:50926465 上傳時間:2022-01-24 格式:DOCX 頁數(shù):41 大小:573.30KB
收藏 版權申訴 舉報 下載
施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計_第1頁
第1頁 / 共41頁
施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計_第2頁
第2頁 / 共41頁
施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計_第3頁
第3頁 / 共41頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計》由會員分享,可在線閱讀,更多相關《施工組織設計-軟件工程 ATM柜員機系統(tǒng) 課程設計(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 軟件工程課程設計 題 目: ATM柜員機系統(tǒng) 學 院: 信息科學與工程學院 專 業(yè): 計算機科學與技術 學 號: 班 級: 學生姓名: 一 可行性研究 1編寫目的 1.1 目的 這份可行性研究報告是對ATM柜員機的可行性研究分析及指出存在的必要性。 1.2 預期的讀者 軟件管理人員、開發(fā)人員、維護人員、顧客用戶。 2 問題定義 2.1 ATM柜員機介紹 ATM柜員機使用與ATM機相似的圖形用戶界面,當用戶在登錄界面輸入給定的卡號和密碼時,系統(tǒng)能登錄ATM柜員機系

2、統(tǒng),通過數(shù)據(jù)鏈接操作來達到獨立的客戶與機器交互從而進行取款、存款、轉賬、查詢余額、修改密碼等業(yè)務辦理的目的。 2.2 基本目標 ATM柜員機主要是由各個實體窗口組成,它是由登錄頁面、選擇服務、存款、取款、查詢余額、修改密碼以及查看交易記錄等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機的要求,讓用戶在電腦上可以輕松體驗ATM取款機的使用流程,以達到易學易用的效果,避免用戶在真實的ATM機上出現(xiàn)失誤,帶來不必要的損失。 2.3 經(jīng)濟目標 由于本軟件的主要背景(為課程設計)在經(jīng)濟上不注重直接的經(jīng)濟收益,而是注重小組成員整體水平的提高。 3 可行性研究的方法及評價度 3.1

3、 可行性研究所采用的方法 根據(jù)調查,本小組成員多數(shù)有JAVA編程經(jīng)驗,也具備MY SQL的使用經(jīng)驗,因而開發(fā)此系統(tǒng)采用JAVA結合MY SQL的數(shù)據(jù)庫系統(tǒng)開發(fā)。 3.2 評價尺度 此軟件暫時只是一個初級產品,實現(xiàn)的功能也只能完成初步的工作。 4 工作產品 4.1 設計目標 為了減少銀行的業(yè)務處理壓力,盡量節(jié)省人們取錢所花費的時間和價值;并且盡可能的防止一些非法的業(yè)務操作,同時它的使用可以有效解決用戶信息和資金信息的繁雜問題。 4.2 設計及約束條件 a. ATM面向客戶十分廣泛,所以界面設計要力求簡單明了,只要認識漢字并具備實際行動能力的人,就可以順利進行操作,對

4、于用戶輸入的數(shù)據(jù),系統(tǒng)能進行嚴格的數(shù)據(jù)檢驗,盡可能的排除人為地錯誤。 b. 開發(fā)人員應具備相應的開發(fā)能力,懂C++ 與java編程,小組成員能夠根據(jù)計劃的要求,按時完成系統(tǒng)的每一部分,保證后面的開發(fā)進程可以順利進行。但根據(jù)現(xiàn)有條件和知識,我們還得在技術方面進行學習和提高。 4.3 工作原理 a. 先建立數(shù)據(jù)庫且追建數(shù)據(jù)庫的驅動程序。 b. 在使用時,分為后臺管理和前臺操作。 c. 用戶輸入賬戶基本信息進行登錄,然后方能進行下一步操作 。 4.4 系統(tǒng)流程圖 4.5 數(shù)據(jù)流圖 4.6 數(shù)據(jù)詞典 數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)中包含的所有元素的定義的集合

5、,它為軟件開發(fā)人員提供數(shù)據(jù)庫設計的參考,并為用戶了解系統(tǒng)時作為一個必有工具。 (1)數(shù)據(jù)項定義 名字:用戶 別名: 描述:銀行賬戶的持有者 定義:用戶=賬戶+姓名+證件號碼+存款余額 位置:全部由賬戶持有者所擁有 名字:信息 別名: 描述:銀行系統(tǒng)用來鑒別是否有權來支配該賬戶存款余額的憑證 定義:信息=賬戶+密碼 位置:輸入到ATM (2)操作說明 輸入賬戶信息,就可以登陸并在ATM上進行一系列操作 選擇交易類型,就可以進行相應操作 輸入轉賬賬號,就可以進行轉賬操作 選擇對應金額,就可以取得相應數(shù)量的現(xiàn)金 選擇余額查詢,直接顯示對應賬號余額 4.7 產

6、品的功能 登錄ATM柜員機系統(tǒng),通過數(shù)據(jù)鏈接操作來達到獨立的客戶與機器交互從而進行取款、存款、轉賬、查詢余額、修改密碼、查看交易記錄等業(yè)務的目的。 4.8 技術可行性。 根據(jù)小組成員擁有良好的JAVA編程能力及擁有MY SQL的使用經(jīng)驗,再根據(jù)上述分析情況,利用現(xiàn)有人力和物力是具備開發(fā)此系統(tǒng)能力的。對于用戶來說,此系統(tǒng)簡單、大方、美觀、易懂,顧客操作根據(jù)系統(tǒng)提示,容易完成。 5 可選方案 鑒于系統(tǒng)必須具有高安全性,在數(shù)據(jù)庫使用上都要求具有完善的管理功能且日后數(shù)據(jù)庫升級方便, 因而本次使用主要根據(jù)數(shù)據(jù)庫的易用性及易升級性提供兩種方案。 a. 采用Oracle數(shù)據(jù)庫設計,這一數(shù)據(jù)

7、庫系統(tǒng)現(xiàn)在已成為主流的數(shù)據(jù)庫管理系統(tǒng),且易操作,易升級,因此提出這一方案。 b. 采用MY SQL的數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)。 根據(jù)小組成員的技術,目前尚只有具備使用MY SQL數(shù)據(jù)環(huán)境開發(fā)的能力,且當前校園大多使用MY SQL作為數(shù)據(jù)庫管理系統(tǒng),因而第二種方案作為本次系統(tǒng)開發(fā)的方案。 6 經(jīng)濟的可行性 6.1 市場分析 按本軟件開發(fā)方案,對于本系統(tǒng)軟件投資方向,體現(xiàn)于軟件開發(fā)、軟件生產及軟件測試。 6.2 投資估計 本系統(tǒng)完全按開發(fā)計劃進行估算,估計上網(wǎng),打印需一些費用。本系統(tǒng)大約總體耗費主要為時間,精力。本系統(tǒng)本非收益性質開發(fā),重要是為解決用戶的需要。 7 社會因素方面

8、的可行性 7.1 技術 由于用戶辦理銀行業(yè)務時,比較擁擠,而且需要花費大量的時間,為了減少銀行的業(yè)務處理壓力,盡量節(jié)省人們的時間,并且可以有效解決用戶信息和資金信息的繁雜問題。 7.2 使用方面的可行性 此系統(tǒng)給銀行和用戶都帶來了利益,同時出售此系統(tǒng)的技術員也獲得利潤,相當于定期收取租金。有利于社會經(jīng)濟的發(fā)展。 8 產品可檢測性 8.1 檢測標準 軟件標準:軟件規(guī)模、復雜程度、安全性、可操作性、可觀察性、可控制性、冗余的大小。 8.2 檢測的方法 通過軟件測試: 黑盒測試法:主要在軟件界面上進行的測試。 白盒測試法:在重要邏輯路徑進行測試,檢測重要數(shù)據(jù)結

9、構的有效性。 9 產品的可生產性 正確性:程序是否按程序流程圖及數(shù)據(jù)字典完成程度。 可靠性:安全運行時間越長越好。 可用性:是否能夠解決實際的存在問題。 完整性:對未授權的人員訪問此系統(tǒng)軟件可控性強。 靈活性:修改一個程序的工作量。 10 可行性綜合分析 本工程產品開發(fā)周期為2月。 要求所有數(shù)據(jù)信息的儲存都由數(shù)據(jù)庫來完成。時間十分寬裕,對我們工程的進行非常有利。 11 可行性結論 綜上所述,本工程的技術成熟、完備,測試手段可靠,具有良好的市場拓展,因此本工程可立即開始。 二 需求分析 1 項目背景 在市場經(jīng)濟的蓬勃發(fā)展和人們日益繁忙的條件下,ATM應

10、運而生,它可以減少銀行的業(yè)務處理壓力,盡量節(jié)省人們的時間,并且可以有效解決用戶信息和資金信息的繁雜問題。 2 任務概述 2.1 目標 本系統(tǒng)在設計上,盡可能使流程清晰,操作靈活。實現(xiàn)上應該具有如下功能: 1.采用人機對話的方式,界面美觀友好。 2.為用戶提供方便,快捷的業(yè)務辦理功能。 3.對用戶輸入的數(shù)據(jù)進行檢查,盡可能排除人為的錯誤。 4.用戶可以隨時查看自己的交易記錄。 8.系統(tǒng)運行穩(wěn)定,數(shù)據(jù)存儲安全可靠。 2.2 運行環(huán)境 CPU Pentium4 1.8G以上 內存 512MB以上 硬盤空間 500MB以上 操作系統(tǒng) Windows XP或Win

11、dows 7 數(shù)據(jù)庫 MY SQL 開發(fā)環(huán)境 NetBeans+JDK2.1 瀏覽器 IE6.0以上 服務器 2.3 條件和限制 2.3.1性能描述 實時性好、靈活性強、易于不同年齡階段的人操作。 2.3.2界面要求 以Windows窗口形式顯示,標題欄為ATM柜員機名稱,右上角有最小化按鈕、關閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。 2.3.3輸入: 輸入內容:賬號,儲戶密碼,取款額,轉賬卡號,轉賬金額 儲戶密碼:六位整數(shù); 存款額:50元的倍數(shù); 取款額,轉賬額:100元的倍數(shù); 轉賬卡號:18位整數(shù); 輸入設備:數(shù)字鍵盤 輸出內容:

12、余額,輸入密碼提示,業(yè)務選擇提示,取卡提示,交易記錄 設備:顯示器; 介質:計算機 3數(shù)據(jù)庫描述 數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術,是計算機科學的重要分支。十年來,數(shù)據(jù)庫管理系統(tǒng)已從專用的應用程序包發(fā)展成為通用系統(tǒng)軟件。 由于數(shù)據(jù)庫具有數(shù)據(jù)結構化、最低冗余度、較高的程序與數(shù)據(jù)獨立性、易于擴充、易于編制應用程序等優(yōu)點,較大的信息系統(tǒng)都是建立在數(shù)據(jù)庫設計之上的。 由于用到的數(shù)據(jù)表格多,另外考慮到實際情況,商品信息的更新,還有會員資料的變化,我們選用MY SQL作為數(shù)據(jù)庫開發(fā),而不用Access,主要是因為 Access 存放的記錄,在實際運用中不適合此系統(tǒng);而MY SQL是一種常用

13、的關系數(shù)據(jù)庫,能存放和讀取大量的數(shù)據(jù),管理眾多并發(fā)的用戶,故選用MY SQL數(shù)據(jù)庫。 4 所用技術描述 NetBeans 由Sun公司在2000年創(chuàng)立,它是開放源運動以及開發(fā)人員和客戶社區(qū)的家園,旨在構建世界級的Java IDE。NetBeans當前可以在Solaris、Windows、Linux和Macintosh OS X平臺上進行開發(fā),并在SPL(Sun公用許可)范圍內使用。 已經(jīng)獲得業(yè)界廣泛認可,并支持NetBeans擴展IDE模塊目錄中大約100多個模塊。NetBeans是一個全功能的開放源碼Java IDE,可以幫助開發(fā)人員編寫、編譯、調試和部署Java應用,并將版本控制和X

14、ML編輯融入其眾多功能之中。NetBeans 可支持Java 2平臺標準版(J2SE)應用的創(chuàng)建、采用JSP和Servlet的2層Web應用的創(chuàng)建,以及用于2層Web應用的API及軟件的核心組的創(chuàng)建。此外,NetBeans 最新牒還預裝了兩個Web服務器,即Tomcat和GlassFish,從而免除了繁瑣的配置和安裝過程。所有這些都為Java開發(fā)人員創(chuàng)造了一個可擴展的開放源多平臺的Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作,如Solaris、Linux、Windows或Macintosh。    5 功能需求 5.1 功能模塊圖 5.2 系統(tǒng)模塊結構圖 6 性

15、能需求 本ATM柜員機的主要功能如下所述: 要求使用圖形用戶界面。當輸入給定的卡號和密碼時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行: A、查詢余額:初始余額為10000元; B、ATM取款:取款不能出現(xiàn)負數(shù),每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支(若能夠提供與ATM機一樣的取款模式就更好); C、ATM存款:不能出現(xiàn)負存款,每次存款金額為50的倍數(shù);一次存款不能超過10000元; D、修改密碼:新密碼長度為6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 E、查看交易記錄:

16、根據(jù)用戶輸入的查詢起止時間,查詢該時間段的存取款交易記錄。 7 數(shù)據(jù)描述 8 靜態(tài)數(shù)據(jù)描述 用戶: Username 用戶名 Tel 電話 賬戶 Usernumber 賬號 Password 密碼 9動態(tài)數(shù)據(jù)分析 鼠標對按鈕的點擊 受限操作所需的密碼; 輸出數(shù)據(jù): 查詢余額的信息; 查詢記錄信息; 密碼修改成功; 信息錄入、刪改結果(成功或失?。?; 10系統(tǒng)IPO圖 IPO圖是輸入輸出圖,IPO是指結構化設計中變換型結構的輸入(Input)、加工(Processing)、輸出(Output)。IPO圖是對每個模塊進行詳細

17、設計的工具,它是輸入加工輸出(INPUT PROCESS OUTPUT)圖的簡稱,在此可以簡略的描述系統(tǒng)的主要算法。 反饋處理結果 相應操作處理 用戶信息輸入 輸入 處理 輸出 三 概要設計 1 需求規(guī)定 真正的ATM針對的用戶是廣大消費者,但本系統(tǒng)設計相對簡單,數(shù)據(jù)庫資料也比較少,所以在應用上有一定的限制。但總體來說可以實現(xiàn)ATM的基本功能。 2 運行環(huán)境 硬件平臺: CPU:Pentium 4 1.8GHz 內存:521MB以上

18、 軟件平臺: 操作系統(tǒng):Windows XP或Windows 7 數(shù)據(jù)庫:MY SQL 開發(fā)工具:JDK 2.1、NetBeans 服務器: 瀏覽器:IE 6.0及以上版本,推薦使用IE 8.0 3 系統(tǒng)結構 系統(tǒng)結構根據(jù)需求規(guī)定大致分為了以下幾個模塊。 3.1總體層次結構圖: 3.2業(yè)務流程圖 登錄界面 (卡號、密碼、取消等選項) 待機界面 (按任意鍵進入登錄界面) 密碼錯誤, 請重新輸入! 選擇界面 查看記錄 存款 修改密碼 轉帳 取款 查詢余額 交易完成界面

19、 取卡界面 4 人工處理過程 該系統(tǒng)剛建立時,由于數(shù)據(jù)庫的資料比較少,所以數(shù)據(jù)庫管理員要輸入大量的資料信息,逐條輸入到數(shù)據(jù)庫表中,這是一個比較繁瑣的工程,需要花費大量的人力物力。同時還有對數(shù)據(jù)庫的維護,都需要專業(yè)人士處理。 5 尚未解決的問題 由于本系統(tǒng)屬于小組業(yè)余制作的,所以無論在功能還是數(shù)據(jù)資料方面都遠遠不能同網(wǎng)絡上的那些大型軟件媲美,所以在以后的時間里我們會繼續(xù)

20、不斷完善其功能。 6 接口設計 6.1 用戶接口 使用基于基本的用戶界面,無論是前臺的用戶還是后臺的相關操作都可以通過鼠標點擊完成操作,編輯框用于用戶輸入。 6.2 外部接口 按Windows應用軟件用戶界面的規(guī)范來設計,使用以普通頁面為主的用戶界面,簡單易懂,方便用戶操作。 1)登陸頁面模塊設計 與ATM柜員機打交道比較多的,也是大家對安全比較關心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務。 2)主界面 主界面共有取款、存款、轉賬、查詢余額、修改密碼和查看交易記錄的6項功能,用戶登陸后出現(xiàn)此界面,可以由用戶根據(jù)自己的需要選擇相應的功能。3)新品上市頁面

21、:顧名思義,該模塊是一些新上架的商品。 3)修改密碼 在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面 4)余額查詢 需要通過用戶所使用的賬戶及密碼來進行余額的查詢,因為先前進行過登陸,所以這里不用再登陸,直接點擊查詢余額即可顯示賬戶的實際余額。。 5)取款 該模塊是一個相對比較重要的模塊,因為ATM機就要的功能就是取款業(yè)務,因此在算法以及界面設計上花的功夫也是最多的,要根據(jù)功能需要中的要求做到用戶順利地取款,用戶選擇取款金額,然后點擊確定進行取款操作,數(shù)字按鈕的個數(shù)設計比較

22、大,方便用戶操作。 6)轉賬 該模塊中,只需要輸入對方的賬戶號碼以及轉賬金額就可以了,為了防止用戶出錯,我們還設計了密碼確認這一項。 7)記錄查詢 可以按輸入的日期進行交易記錄的相關查詢。 6.3 內部接口 本系統(tǒng)使用MY SQL數(shù)據(jù)庫驅動程序及接口。 7 運行設計 7.1 運行模塊組合 本系統(tǒng)無論是前臺模塊還是后臺模塊,在程序打開后,用戶單擊導航按鈕分別進入不同的子模塊,再在這些模塊中分別調用它們的子模塊完成一系列的操作。 7.2 運行控制 本軟件控制流程:主頁面運行,等待用戶選擇導航條,根據(jù)用戶的選擇調用不同的模塊。 7.3 運行時間 各模塊的運行時間比較

23、短,不至于影響軟件的質量,因此不予討論。 8數(shù)據(jù)庫設計 本系統(tǒng)共設計了2個數(shù)據(jù)表,分別為Trade表格和User表格 Trade表格 此表是用來保存交易記錄。CardNo是這個表格的唯一標識,Amount是交易數(shù)額,TradeDate用來記錄交易時間,TradeNo是用來標記交易號碼,Business是交易業(yè)務,Poundage是手續(xù)費。 User表格 此表是用來保存用戶信息。CardNo是這個表的唯一標識,username是用戶名,usertel是用戶手機號碼,ID是用戶身份證,password是用戶賬戶的密碼,balance使用戶賬戶余額。 9 系統(tǒng)出錯處理設計 在

24、運行本程序過程中難免會遇到這樣那樣的問題導致系統(tǒng)無法正常操作,例如加載數(shù)據(jù)庫驅動程序失敗、連接數(shù)據(jù)庫失敗、更新數(shù)據(jù)庫失敗等,那么怎么解決這些問題呢?在這里我們列舉一些常見的問題以及解決辦法。 9.1 加載數(shù)據(jù)庫驅動程序失敗 對于該問題,如果用戶使用的是JDBC連接數(shù)據(jù)庫,首先單看通過Class.forName()方法加載的驅動程序是否正確,然后查看WEB-INF/lib目錄下是否存在msutil.jar、mssqlserver.jar、mabase.jar文件。 9.2 更新數(shù)據(jù)庫失敗 更新數(shù)據(jù)庫失敗一般情況下是因為進行添加、刪除、修改、查找的SQL語句存在錯誤,例如,將from寫成f

25、orm,或者所寫的字表名與實際要操作的字表名不一致等。 10 維護設計 除了嚴格按照軟件工程的科學方法開發(fā)軟件、認真建立文檔、編碼階段寫詳細的注釋外,沒有特殊的維護設計。 四 詳細設計 1 編寫目的 在前面所述的基礎上該階段正式進入ATM系統(tǒng)軟件的實際開發(fā),本階段完成系統(tǒng)的詳細設計并明確系統(tǒng)的功能與編碼。 2 背景 眾所周知隨著信息時代科技的飛速發(fā)展和隨著全球金融行業(yè)的興起,使用ATM取款機、計算機信息技術以及計算機科學技術的發(fā)展,給人們的生活帶來了天翻地覆的變化,同時這些技術在人們生活中的運用,不僅提高了銀行的業(yè)務處理能力,而且大大的節(jié)省了人們取錢所花費的時間和價值;并且在

26、有效防止了一些非法的業(yè)務操作,對于一些復雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。 說明: a. 開發(fā)的軟件系統(tǒng)名稱:ATM系統(tǒng) b. 本項目的提出者:課程設計小組 c. 開發(fā)者: d. 指導老師: 3 定義 什么是ATM柜員機?ATM柜員機使用與ATM機相似的圖形用戶界面,當用戶在登錄界面輸入給定的卡號和密碼時,系統(tǒng)能登錄ATM柜員機系統(tǒng),通過數(shù)據(jù)鏈接操作來達到獨立的客戶與機器交互從而進行取款、存款、轉賬、查詢余額、修改密碼等業(yè)務辦理的目的。 4 參考資料 [1]雍俊海 JAVA程序設計[M]北京:清華大學出版社,2006 [2]張海潘 軟件工程導論[M]北京:清華大學出版

27、社,2010 [3] 耿祥義JAVA面向對象程序設計[M]北京:清華大學出版社,2010 5 程序系統(tǒng)的結構 本系統(tǒng)的總功能可以劃分為6大塊,就是轉賬、存款、取款、查詢余額、修改密碼以及查看交易記錄幾項大功能(子系統(tǒng))。 6 輸入輸出 輸入內容:賬號,儲戶密碼,取款額,轉賬卡號,轉賬金額 輸出內容:余額,輸入密碼提示,業(yè)務選擇提示,取卡提示,交易記錄 7界面設計 一個系統(tǒng)界面的好壞直接影響到用戶的操作,界面設計要求樣式美觀、簡單明了、方便易操作。我設計的界面主要分為窗體、菜單、按鈕和文本輸入框幾個部分,分別執(zhí)行相應的操作。 7.1窗體設計 窗體整個框架使用Frame類構造

28、,F(xiàn)rame有自己的外邊框和自己的標題,創(chuàng)建Frame時可以指定其窗口標題,我創(chuàng)建的窗口標題是各個不同功能的模塊的名字,比如說查詢余額,還有取款等。 向Frame窗口中添加組件使用add()。 例如:button1 = new Button("存款"); p1.add(button1); 我所設計的窗口的主要結構的特點就是每個窗口都對應著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務等,所以它們都是由各種按鈕和文本框,標簽組成的,而聯(lián)系各個窗體成為一個整體的就是各個按鈕的監(jiān)聽事件。所以整個設計就趨向簡單化了。 為了定義各個按鈕所對應的命令和操作,首先需要

29、將各個按鈕注冊給實現(xiàn)了動作事件的監(jiān)聽接口ActionListener的監(jiān)聽者,然后為監(jiān)聽者定義actionPerformed(ActionEvent e)方法,在這個方法中調用e.getSource() 來判斷用戶點擊的菜單子項,并完成這個菜單子項定義的操作。 7.2主要模塊設計 7.2.1登陸頁面模塊設計 與ATM柜員機打交道比較多的,也是大家對安全比較關心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務。 文本區(qū)調用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,

30、并用dispose()關掉窗口。 7.2.2主界面 主界面共有取款、存款、轉賬、查詢余額、修改密碼和查看交易記錄的6項功能,用戶登陸后出現(xiàn)此界面,可以由用戶根據(jù)自己的需要選擇相應的功能。部分代碼如下: private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked new ZhuanZhang(this).setVisible(true); this.dispose(); } 7.2.3修改

31、密碼 在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面。在修改密碼時用到的方法為: String patternStr="[0-9a-zA-Z]{6}"; String newPwd1=jPasswordField1.getText(); 8主要模塊界面設計 ① 登陸界面 登錄模塊依然采用的是用戶名和密碼驗證的方式,首先需要用戶輸入用戶名和密碼然后點擊確認進行驗證,這里涉及到一組輸入位數(shù)的問題,系統(tǒng)規(guī)定用戶需要輸入18位的用戶名和6位的密碼。 ② 主界面 主界

32、面的設計主要是設計了查詢余額、取款、存款、轉賬、密碼更改及退出按鈕等ATM的一些標準操作界面。 ③ 存款界面 此模塊是用戶登錄成功后需要存款時的操作界面,在這個界面中輸入存款金額,點擊確定按鈕后進行存款操作。 ④ 余額查詢界面 在此模塊中,需要通過用戶所使用的賬戶及密碼來進行余額的查詢,因為先前進行過登陸,所以這里不用再登陸,直接點擊查詢余額即可顯示賬戶的實際余額。 ⑤ 密碼修改界面 因為先前已經(jīng)用密碼登陸,故此處不需要用戶輸入舊密碼,直接兩次輸入新密碼進行確認,然后系統(tǒng)會給出成功的提示信息。 ⑥ 取款界面 取款模塊是一個相對比較重要的模塊,因為ATM機就要的功

33、能就是取款業(yè)務,因此在算法以及界面設計上花的功夫也是最多的,要根據(jù)功能需要中的要求做到用戶順利地取款,用戶選擇取款金額,然后點擊確定進行取款操作,數(shù)字按鈕的個數(shù)設計比較大,方便用戶操作。 ⑦ 轉賬界面 在轉賬模塊中,只需要輸入對方的賬戶號碼以及轉賬金額就可以了,為了防止用戶出錯,我們還設計了密碼確認這一項。 ⑧ 記錄查詢界面 9 異常處理情況說明 (1)打開、保存文件時的異常處理 需要處理的異常:IOException (2)數(shù)據(jù)庫訪問時的異常處理 需要處理的異常:SQLException (3)加載類時的異常處理 需要處理的異常:ClassNotFindExc

34、eption,當應用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。 五 代碼(見附錄) 六 測試 1測試方案 考慮到各種因素和條件的限制,我們決定采用黑盒測試方案(又稱功能測試,其測試用例完全是根據(jù)程序的功能說明來設計的)。即我們不考濾所編寫程序的具體結構, 而是根據(jù)軟件所需要的輸入數(shù)據(jù)的格式以及應該完成的功能,設計一些合法的測試用例和不合法的測試用例,特別是根據(jù)邊界條件設計一些邊界測試用例。以檢查系統(tǒng)是否能正確的完成預訂功能,得到希望的輸出?;蛘呤菍Σ缓戏ǖ妮斎牒筒僮髂軌蛘_的識別和防御。 黑盒法是最基本的測試法,主要測試

35、軟件能否滿足功能要求。 2 測試項目 應該注意到,在本系統(tǒng)中從總體上分為了轉賬、選擇服務、存款、取款、查詢余額、修改密碼以及查看交易記錄模塊設計。我們在設計測試用例的時候應該選擇有代表的,可以用最小的工作量完成對整個系統(tǒng)的測試。 3測試方法 3.1單元測試 1)模塊接口 參數(shù)的數(shù)目、次序與變元的是否相一致;全局變量的定義和用法在各個模塊中是否也相一致。 2)邊界條件 做完第一次操作進行第二次循環(huán)操作時,有沒有出現(xiàn)使用上的錯誤;使用過大或過小的數(shù)據(jù)值和控制量時,系統(tǒng)是否進行了錯誤提示,有沒有導致軟件卡死或電腦死機情況。 3.2集成測試 1)模塊測試 第一步,

36、對主控制模塊進行測試,測試時用存根程序代替所有直接附屬于主控制模塊的模塊; 第二步,根據(jù)選定的結合策略,每次用一個實際模塊代替一個存根程序; 第三步,在結合進一個模塊的同時進行測試。 2)回歸測試 主要是檢測軟件全部功能的代表性測試用例。 3)確認測試 主要用來檢測軟件是否與需求一致,并要通過調試和測試觀察軟件能否滿足所有的功能要求,能否達到每個性能要求。 4測試環(huán)境與測試輔助工具 測試輔助工具:Eclipse、NetBeans、MYSQL、JDK 測試環(huán)境:Windows 7、windows xp 5系統(tǒng)測試 5.1登陸模塊測試 只要輸入正確的用戶名和密碼

37、即可完成登陸 a.沒輸入賬號或輸入數(shù)據(jù)庫不存在的賬號 b.密碼輸入錯誤或不輸入密碼 測試用例 期望結果 實際結果 不輸入 無法登錄 無法登錄 輸入錯誤賬號 無法登錄 無法登錄 輸入錯誤密碼 無法登錄 無法登錄 5.2取款模塊測試 因為該模塊僅限于界面上的幾個按鈕可選,故測試范圍小、簡單。 5.3修改密碼功能測試 用戶可修改用戶的個人密碼信息。 a. 修改密碼成功 b. 修改密碼失敗 測試用例 期望結果 實際結果 密碼輸入5位 修改失敗 修改失敗 不輸入 修改失敗 修改失敗 輸入6位 修改成功 修改成功

38、 5.4存款模塊測試 用戶可以進行一定數(shù)額與次數(shù)的存款。 a.存款金額一次不能多于10000 b.存款金額不能為負 測試用例 期望結果 實際結果 存入11000 存款失敗 存款失敗 存入-1000 存款失敗 存款失敗 5.5 轉賬模塊測試 只要輸入正確的用戶名并進行密碼確認即可完成此功能 a.沒輸入賬號或輸入數(shù)據(jù)庫不存在的賬號 b.密碼輸入錯誤 測試用例 期望結果 實際結果 不輸入 無法轉賬 與期望相符 輸入錯誤賬號 無法轉賬 與期望相符 輸入錯誤密碼 無法轉賬 與期望相符 5.6查詢模塊測試 只要輸入正確的日期查

39、詢區(qū)間即可完成查詢 a.輸入相同的日期(即查詢區(qū)間為空) b. 輸入錯誤的日期(即查詢起始時間比結束時間晚) 測試用例 期望結果 實際結果 輸入相同的日期 提示錯誤 無記錄 輸入錯誤的日期 提示錯誤 無記錄 6測試結果及評價? 功能和性能與用戶要求基本一致,軟件可以接受。但仍有部分功能尚未實現(xiàn)或進行了更改,例如: 1、 原計劃每天取款金額不超過5000元,但迫于代碼復雜,沒有實現(xiàn); 2、 交易記錄查詢模塊,如果用戶輸入的起始時間大于結束時間(例如起始時間為2008年,而結束時間為2004年),按照錯誤處理的原則,系統(tǒng)會自動報錯,但是系統(tǒng)仍然會出現(xiàn)交易記錄

40、界面,只不過記錄為空; 3、 原計劃沒有加入聲音提示,但后來加以改進; 附錄: 1、存款模塊 private void jButton1MouseClicked(MouseEvent evt) { String yue = null; String patternStr="[0-9]*"; try { GetBalance balance=new GetBalance(); yue=balance.getyue(); String numOfMoney=jTextField1.getText().trim();

41、 if(numOfMoney.equals("")) {//金額為空 JOptionPane.showMessageDialog(this,"請輸入您需要存入的金額","錯誤",JOptionPane.ERROR_MESSAGE); return; } if(!numOfMoney.matches(patternStr)) { JOptionPane.showMessageDialog(this,"請您輸入數(shù)字","錯誤",JOptionPane.ERROR_MESSAGE); return; }

42、 double num=Double.parseDouble(numOfMoney)+Double.parseDouble(yue)-Double.parseDouble(numOfMoney)*0.005; if(num>10000.0){ JOptionPane.showMessageDialog(this,"尊敬的客戶您好,您的金額已超過我們公司可以受理的最大值,我們不能受理","錯誤",JOptionPane.ERROR_MESSAGE); jTextField1.setText(""); return; }

43、 String sql1="update user set Balance='"+num+"' where CardNo='"+Login.num+"'"; int i=con.stat.executeUpdate(sql1); if(i==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); jTextField1.setText(""); }

44、 Date now=new Date(); String date=new SimpleDateFormat("yyyy年M月d日").format(now); String sql2="insert into trade(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.num+"','"+Double.parseDouble(numOfMoney)+"','"+date.toString()+"','"+"存款"+"','"+Double.parseDouble(numOfMon

45、ey)*0.005+"')"; int f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); jTextField1.setText(""); } } catch (SQLException e) { e.printStackTrace(); } new

46、 SuccessfulTrade(log); this.dispose(); } private void jButton2MouseClicked(java.awt.event.MouseEvent evt) { log.initComponents(); this.dispose(); } 2、取款模塊 private void jButton1MouseClicked(MouseEvent evt) { num=100; String yue = n

47、ull; double num2; try { GetBalance balance=new GetBalance(); yue=balance.getyue(); num2=Double.parseDouble(yue)-num-num*0.005; if(num2<0) {JOptionPane.showMessageDialog(this,"余額不足!","錯誤",JOptionPane.ERROR_MESSAGE); return;

48、 } String sql1="update user set Balance='"+num2+"' where CardNo='"+Login.num+"'"; int i=con.stat.executeUpdate(sql1); if(i==0) { JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請您原諒","錯誤",JOptionPane.ERROR_MESSAGE); }

49、 Date now=new Date(); String date=new SimpleDateFormat("yyyy年M月d日").format(now); String sql2="insert into trade(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.num+"','"+num+"','"+date.toString()+"','"+"取款"+"','"+num*0.005+"')"; int

50、 f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); } } catch (SQLException e) { e.printStackTrace();

51、 } new SuccessfulTrade(log); this.dispose(); } private void jButton2MouseClicked(MouseEvent evt) { num=200; String yue = null; double num2; try { GetBalance balance=new GetBalance(); yue=balance.getyue(); num2=Double.parseDo

52、uble(yue)-num-num*0.005; if(num2<0) {JOptionPane.showMessageDialog(this,"余額不足!","錯誤",JOptionPane.ERROR_MESSAGE); return; } String sql1="update user set Balance='"+num2+"' where CardNo='"+Login.num+"'"; int i=con.stat.executeUpdate(sql1); if(i==0) {

53、 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請您原諒","錯誤",JOptionPane.ERROR_MESSAGE); } Date now=new Date(); String date=new SimpleDateFormat("yyyy年M月d日").format(now); String sql2="insert into trade(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.

54、num+"','"+num+"','"+date.toString()+"','"+"取款"+"','"+num*0.005+"')"; int f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); } } catch (SQLExcepti

55、on e) { e.printStackTrace(); } new SuccessfulTrade(log); this.dispose(); } private void jButton3MouseClicked(MouseEvent evt) { num=500; String yue = null; double num2; try { GetBalance balance=new GetBalance(); yue=balance.getyue

56、(); num2=Double.parseDouble(yue)-num-num*0.005; if(num2<0) {JOptionPane.showMessageDialog(this,"余額不足!","錯誤",JOptionPane.ERROR_MESSAGE); return; } String sql1="update user set Balance='"+num2+"' where CardNo='"+Login.num+"'"; int i=con.stat.exec

57、uteUpdate(sql1); if(i==0) { JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請您原諒","錯誤",JOptionPane.ERROR_MESSAGE); } Date now=new Date(); String date=new SimpleDateFormat("yyyy年M月d日").format(now); String sql2="insert into trade

58、(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.num+"','"+num+"','"+date.toString()+"','"+"取款"+"','"+num*0.005+"')"; int f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR

59、_MESSAGE); } } catch (SQLException e) { e.printStackTrace(); } new SuccessfulTrade(log); this.dispose(); } private void jButton4MouseClicked(MouseEvent evt) { num=5000; String yue = null; double num2; try

60、{ GetBalance balance=new GetBalance(); yue=balance.getyue(); num2=Double.parseDouble(yue)-num-num*0.005; if(num2<0) {JOptionPane.showMessageDialog(this,"余額不足!","錯誤",JOptionPane.ERROR_MESSAGE); return; } String sql1="update user set Balance='

61、"+num2+"' where CardNo='"+Login.num+"'"; int i=con.stat.executeUpdate(sql1); if(i==0) { JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請您原諒","錯誤",JOptionPane.ERROR_MESSAGE); } Date now=new Date(); String date=new SimpleDateFormat("yyyy年M月

62、d日").format(now); String sql2="insert into trade(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.num+"','"+num+"','"+date.toString()+"','"+"取款"+"','"+num*0.005+"')"; int f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JO

63、ptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); } } catch (SQLException e) { e.printStackTrace(); } new SuccessfulTrade(log); this.dispose(); } private void jButton5MouseClicked(Mouse

64、Event evt) { num=1000; String yue = null; double num2; try { GetBalance balance=new GetBalance(); yue=balance.getyue(); num2=Double.parseDouble(yue)-num-num*0.005; if(num2<0) {JOptionPane.showMessageDialog(this,"余額不足!","錯誤",JOptionPane.ERROR_MESSAGE);

65、 return; } String sql1="update user set Balance='"+num2+"' where CardNo='"+Login.num+"'"; int i=con.stat.executeUpdate(sql1); if(i==0) { JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請您原諒","錯誤",JOptionPane.ERROR_MESSAGE); } Date now=

66、new Date(); String date=new SimpleDateFormat("yyyy年M月d日").format(now); String sql2="insert into trade(CardNo,Amount,TradeDate,Business,Poundage) values('"+Login.num+"','"+num+"','"+date.toString()+"','"+"取款"+"','"+num*0.005+"')"; int f=con.stat.executeUpdate(sql2); if(f==0) {//更改失敗提示信息 JOptionPane.showMessageDialog(this,"系統(tǒng)更新失敗,請檢查您的輸入是否正確","錯誤",JOptionPane.ERROR_MESSAGE); } } catch (SQLException e) {

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!