用Java模擬ATM系統(tǒng).doc_第1頁
用Java模擬ATM系統(tǒng).doc_第2頁
用Java模擬ATM系統(tǒng).doc_第3頁
用Java模擬ATM系統(tǒng).doc_第4頁
用Java模擬ATM系統(tǒng).doc_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java語言程序設(shè)計課程設(shè)計題 目 用Java語言模擬ATM系統(tǒng) 院 (系) XXXXX學院 專 業(yè) 班 級 12級XXXX班 學 生 姓 名 XXXXXXXXXXXXXXXXX 學 號 設(shè) 計 地 點 指 導 教 師 起止時間:2014年6月3日至2014年6月13日Java語言程序設(shè)計課程設(shè)計任務(wù)分配院(系):信息工程學院 教研室:軟件教研室課程設(shè)計題目用Java語言模擬ATM系統(tǒng)課 程 設(shè) 計目的Java語言程序設(shè)計課程設(shè)計是計算機類專業(yè)的集中實踐性環(huán)節(jié)之一,是課程教學中的一項重要內(nèi)容,是完成教學計劃達到教學目標的重要環(huán)節(jié),是幫助學生全面牢固地掌握課堂教學內(nèi)容、培養(yǎng)學生分析問題、解決問題的能力進行的一次全面的綜合練習。通過結(jié)合設(shè)計題目進行綜合性應(yīng)用,對所學知識達到融會貫通的程度,對提高學生的綜合素質(zhì)具有重要的意義。1) 掌握Java的語言規(guī)范,面向?qū)ο蟮暮诵母拍詈吞匦浴?) 掌握Java的編程技術(shù),包括異常處理,圖形界面設(shè)計,多線程,網(wǎng)絡(luò)通信程序等。3) 掌握Java應(yīng)用軟件的開發(fā)環(huán)境和開發(fā)過程4)掌握面向?qū)ο蟮乃枷牒统绦蛟O(shè)計方法。小組成員及任務(wù)分配姓名學號承擔任務(wù)是否組長XX總體結(jié)構(gòu)設(shè)計,系統(tǒng)分析,軟件的調(diào)試與測試,修改密碼模塊,分配任務(wù)是XX取款模塊,可行性研究否XX查詢模塊,界面模塊設(shè)置否XX存款模塊,系統(tǒng)開發(fā)方法否XX文檔,系統(tǒng)詳細調(diào)查及提出否目錄第一章 ATM系統(tǒng)綜述41.1 概述41.2 ATM的發(fā)展41.3 ATM取款機系統(tǒng)的影響5第二章 ATM系統(tǒng)開發(fā)方法62.1 系統(tǒng)開發(fā)方法概述62.2 該系統(tǒng)開發(fā)方法6第三章 系統(tǒng)分析73.1 系統(tǒng)初步調(diào)查73.2 可行性研究73.3系統(tǒng)詳細調(diào)查及提出8第四章 系統(tǒng)設(shè)計104.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計104.2 系統(tǒng)詳細設(shè)計114.2.1系統(tǒng)設(shè)置124.2.2界面模塊設(shè)置12第五章 系統(tǒng)實現(xiàn)165.1 開發(fā)環(huán)境165.2 程序設(shè)計與調(diào)試165.2.1、程序設(shè)計165.2.2、程序調(diào)試17第六章 結(jié)束語19參考文獻20源代碼部分21注:如果想要本程序的完整源代碼及JAVA程序請聯(lián)系作者(郵箱:)第一章 ATM系統(tǒng)綜述1.1 概述ATM自動取款機是由計算機控制的持卡人自我服務(wù)型的金融專用設(shè)備。ATM是英文Automatic Teller Machine的縮寫。ATM是最普遍的自助銀行設(shè)備,可以提供最基本的銀行服務(wù)之一,即出鈔交易,有些全功能的產(chǎn)品還可以提供信封存款業(yè)務(wù)。在ATM自動取款機上也可以進行賬戶查詢、修改密碼和轉(zhuǎn)賬的業(yè)務(wù)。同時在制作這個系統(tǒng)的過程中也應(yīng)用了數(shù)據(jù)庫的知識,這個相對于我們專業(yè)來說是比較重要的內(nèi)容,這個也是這個學期學習的重點知識,同時數(shù)據(jù)庫鏈接是必須要學會的,因為這個是最核心的內(nèi)容,培養(yǎng)自己堅實的邏輯表達能力和溝通能力,和培養(yǎng)自己良好的文案能力。掌握ATM取款機的具體工作原理以及java簡單系統(tǒng)的設(shè)計方法。1.2 ATM的發(fā)展眾所周知隨著信息時代科技的飛速發(fā)展和隨著全球金融行業(yè)的興起,使用ATM取款機、計算機信息技術(shù)以及計算機科學技術(shù)的發(fā)展,給人們的生活帶來了天翻地覆的變化,同時這些技術(shù)在人們生活中的運用,隨著科學技術(shù)的進步,經(jīng)營方式的轉(zhuǎn)變,處理信息系統(tǒng)的內(nèi)容和形式也在發(fā)生變化。當前,以計算機和通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處在蓬勃發(fā)展的時期,ATM取款系統(tǒng)可充分利用網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)的發(fā)展,形成一種全新的運作方式。隨著因特網(wǎng)的形成和發(fā)展,基于網(wǎng)絡(luò)技術(shù)的信息系統(tǒng)除了它傳統(tǒng)的功能外,實現(xiàn)了特定地方刷卡消費等。不僅提高了銀行的業(yè)務(wù)處理能力,而且大大的節(jié)省了人們?nèi)″X所花費的時間和價值;并且在有效防止了一些非法的業(yè)務(wù)操作,對于一些復雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。雖然起步較晚,近幾年發(fā)展卻較快,優(yōu)其是隨著微型計算機的出現(xiàn)和普及,為信息處理提供了物美價廉的手段,對于推動我國信息處理的現(xiàn)代化起了重要的作用。ATM取款系統(tǒng)正在朝著自適應(yīng)、自學習的方向發(fā)展,也就是更好的實現(xiàn)模擬人性化過程。1.3 ATM取款機系統(tǒng)的影響ATM取款機誕生可以說是世界金融行業(yè)的一大進步,也是歷史性的轉(zhuǎn)折點。ATM自動取款機不僅能提高了銀行的業(yè)務(wù)處理能力,還能大大的節(jié)省人們?nèi)″X所花費的時間和價值;并且在有效防止了一些非法的業(yè)務(wù)操作,對于一些復雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。ATM系統(tǒng)對金融業(yè)的變革產(chǎn)生了和正在產(chǎn)生著深遠的影響。從現(xiàn)代金融業(yè)新概念來看,ATM系統(tǒng)就是電子信息技術(shù)在金融業(yè)金融管理的一種應(yīng)用。它避免了對于用戶的信息資料、以及資金統(tǒng)計等用人工辦理。數(shù)據(jù)信息處理工作量大,繁瑣,數(shù)據(jù)處理手工操作,工作量大,工作時需實時認真辦理,一但出現(xiàn)錯誤將帶來很大的損失。從而解決了用戶信息和資金信息的繁雜問題,對于ATM取款系統(tǒng)數(shù)據(jù)的統(tǒng)計和核實等都是采用卡號進行核對的,進而實現(xiàn)了數(shù)據(jù)的準確性、完整性、及時性,避免了工作人員和管理員工作時間一長,再進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。同時也得用戶可以安全的進行操作,便捷,快速的進行取款以及完成一些商業(yè)上的交易,大大提高辦公效率,能夠及時、準確、有效的幫用戶辦理各種繁瑣的手續(xù),也減緩了銀行工作人員的壓力。第二章 ATM系統(tǒng)開發(fā)方法2.1 系統(tǒng)開發(fā)方法概述軟件開發(fā)方法是一種使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程。開發(fā)目標是在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。任何系統(tǒng)均有其產(chǎn)生、發(fā)展、成熟、消亡或更新?lián)Q代的過程。這個過程稱為系統(tǒng)的生命周期。系統(tǒng)生命周期法提供的思路、邏輯、技能、工具與工作規(guī)范,是系統(tǒng)開發(fā)、處理管理信息系統(tǒng)建設(shè)中各類實際問題的重要基礎(chǔ),對復雜系統(tǒng)的建設(shè)具有重要的指導意義。系統(tǒng)開發(fā)是管理信息系統(tǒng)建設(shè)中工作任務(wù)最為繁重,也是最重要的一個階段。從項目開發(fā)到結(jié)束的整個過程,稱為系統(tǒng)開發(fā)的生命周期。系統(tǒng)開發(fā)的生命周期一般分為系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實施。結(jié)構(gòu)化生命周期法是一種面向數(shù)據(jù)流的開發(fā)方法。該方法簡單實用、應(yīng)用較廣、技術(shù)成熟,方法的指導思想是自頂向下、逐步求精,基本原則是動能的分解與抽象,特別適合于數(shù)據(jù)處理領(lǐng)域的問題,隨著開發(fā)項目規(guī)模的變化,該方法也就暴漏出了它的缺點:(1)對于規(guī)模大、特別復雜的項目不太適應(yīng)(2)難于解決軟件重用問題(3)難于適應(yīng)需求變化問題,難于徹底解決維護問題。2.2 該系統(tǒng)開發(fā)方法比較各種開發(fā)方法的特點,結(jié)合銀行取款系統(tǒng)的實際情況,整個系統(tǒng)采用結(jié)構(gòu)化生命周期法,以原型法和面向?qū)ο蟮拈_發(fā)方法作為輔助,即系統(tǒng)總體上采用結(jié)構(gòu)化生命周期法進行系統(tǒng)分析和系統(tǒng)設(shè)計,系統(tǒng)實施等步驟采用面向?qū)ο蠓椒ā1鞠到y(tǒng)開發(fā)工具使用的是基于 Java 的可擴展開發(fā)平臺的Eclipse。第三章 系統(tǒng)分析系統(tǒng)分析是管理系統(tǒng)開發(fā)的起始階段,也是MIS開發(fā)工作中最重要的一環(huán)。系統(tǒng)分析階段的主要活動有:系統(tǒng)初步調(diào)查、可行性研究、系統(tǒng)詳細調(diào)查、新系統(tǒng)邏輯方案的提出。系統(tǒng)分析的目標是明確系統(tǒng)開發(fā)的目標和用戶信息需求,提出系統(tǒng)的邏輯方案。為系統(tǒng)設(shè)計做好準備。3.1 系統(tǒng)初步調(diào)查系統(tǒng)的初步調(diào)查是系統(tǒng)分析階段的第一項活動,也是系統(tǒng)開發(fā)的第一項活動,初步調(diào)查的主要目標是從系統(tǒng)分析人中和管理人員的角度看新系統(tǒng)開發(fā)有無必要和可能。通過親身體驗總結(jié)各銀行ATM提款機界面流程,得到本系統(tǒng)開發(fā)的主要流程界面(主要功能取款、轉(zhuǎn)賬、查詢、修改密碼等)。并決定親自開發(fā)取款機系統(tǒng),測試自己水平。3.2 可行性研究可行性研究的目的就是用最小的代價在最短的時間內(nèi)確定該軟件項目是否能夠開發(fā),是否值得去開發(fā)。實質(zhì)上就是進行一次簡化、壓縮了的需求分析、設(shè)計過程。可從以下三個方面分析研究每種解決問題的可行性:a.技術(shù)可行性:對項目的功能、性能、限制條件進行分析,確定在現(xiàn)有的資源條件下項目是否能實現(xiàn)。(開發(fā)的風險、資源的有效性、技術(shù))b.社會可行性:要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。c.經(jīng)濟可行性:進行開發(fā)成本的估算以及了解得到效益的評估,確定要開發(fā)項目是否值得投資開發(fā)。對銀行業(yè)來說,是靠存款貸款之間的差額來生存的,所以要盡可能的拉攏更多的客戶使用本行,ATM取款機是為了能讓為客戶更便捷的服務(wù),從而更具有吸引力。銀行角度出發(fā)還是非常還是愿意把一部分資金投入到這方面的。3.3系統(tǒng)詳細調(diào)查及提出系統(tǒng)詳細調(diào)查是在可行性研究的基礎(chǔ)上進一步對現(xiàn)行系統(tǒng)進行全面、深入的調(diào)查和分析,弄清現(xiàn)行系統(tǒng)運行狀況,發(fā)現(xiàn)其薄弱環(huán)節(jié),確保新系統(tǒng)比原系統(tǒng)更有效。詳細調(diào)查的重點在于對系統(tǒng)的內(nèi)部情況更詳細和具體的了解,從而可以提供在新系統(tǒng)建設(shè)時改進或更換的內(nèi)容。明確用戶的信息需求,明確新系統(tǒng)的邏輯功能。主要工作是對用戶需求進行進一步調(diào)查分析,創(chuàng)建新系統(tǒng)的邏輯模型。邏輯模型主要以數(shù)據(jù)流程圖和數(shù)據(jù)典為主要描述工具。通過仔細調(diào)查得以下功能圖和業(yè)務(wù)流程圖:一般登陸模塊只輸入賬號、密碼,當然在實際應(yīng)用中沒有要求用戶輸入賬號,這是因為在磁卡上有個感應(yīng)區(qū),編此模塊時加上了驗證碼。 ATM柜員機模擬系統(tǒng)登錄模塊輸入密碼事物模塊驗證號存款取款余額查詢修改密碼圖3-1 功能圖該系統(tǒng)主要實現(xiàn)銀行卡用戶的存取款,以及進行一些簡單的查詢和轉(zhuǎn)賬業(yè)務(wù),同時能夠在系統(tǒng)里面進行客戶密碼的修改,實現(xiàn)簡單的機器與客戶交互。選擇界面(查詢、取款、轉(zhuǎn)帳、修改密碼、取消)登錄界面(卡號、密碼、驗證碼、取消等選項)待機界面(按確定鍵進入登錄界面)密碼錯誤,請從新輸入!查詢余額修改密碼取款存款交易完成點擊退出退出程序圖3-2 業(yè)務(wù)流程圖:第四章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計階段的主要目的是將系統(tǒng)分析所提出的反映用戶信息需求的系統(tǒng)邏輯方案轉(zhuǎn)換成可以實施的基本計算機(ATM取款機)與通信系統(tǒng)的物理(技術(shù))方案。系統(tǒng)設(shè)計主要包括系統(tǒng)總體結(jié)構(gòu)設(shè)計和詳細設(shè)計。系統(tǒng)設(shè)計的依據(jù)主要有系統(tǒng)分析的成果、現(xiàn)行技術(shù)、用戶需求、系統(tǒng)運行環(huán)境。4.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計 系統(tǒng)總體結(jié)構(gòu)是指整個系統(tǒng)由哪些部分組成,以及各部分在物理上、邏輯上的相互關(guān)系,包括硬件部分和軟件部分,該設(shè)計包括:系統(tǒng)總體布局方案的確定、軟件系統(tǒng)總體結(jié)構(gòu)的設(shè)計、計算機硬件方案的選擇和設(shè)計、數(shù)據(jù)存儲的總體設(shè)計。根據(jù)業(yè)務(wù)流程圖轉(zhuǎn)化為軟件的體系結(jié)構(gòu),進而用軟件結(jié)構(gòu)圖建立物理模型,得系統(tǒng)活動圖,如下:歡迎界面儲戶登錄用戶主界面退出系統(tǒng)取款存款修改密碼余額查詢圖4.1.1系統(tǒng)結(jié)構(gòu)圖:圖4.1.2系統(tǒng)流程圖:4.2 系統(tǒng)詳細設(shè)計詳細設(shè)計的實現(xiàn)根據(jù)結(jié)構(gòu)程序設(shè)計原理,將每個模塊的功能用相應(yīng)的標準語句表示出來。包括代碼設(shè)計、數(shù)據(jù)庫設(shè)計、用戶界面設(shè)計、處理過程設(shè)計。代碼設(shè)計是指把系統(tǒng)管理對象數(shù)字化或字符化,便于計算機的處理。遵照代碼設(shè)計的原則:合理性、簡明性、系統(tǒng)性、穩(wěn)定性、可擴充性、標準化、便于識別和記憶。進行分析和設(shè)計。它也是管理信息系統(tǒng)設(shè)計的重要組成部分。數(shù)據(jù)庫設(shè)計的基本原則是盡可能提高數(shù)據(jù)組織的相對獨立性,簡化其結(jié)構(gòu),即用規(guī)范化方法設(shè)施數(shù)據(jù)存儲的結(jié)構(gòu),提高數(shù)據(jù)的可維護性、數(shù)據(jù)庫設(shè)計指對系統(tǒng)所采用的數(shù)據(jù)模式、子模式、應(yīng)用程序、數(shù)據(jù)庫等根據(jù)用戶的具體要求完整性、一致性。通過收集和分析用戶需求,確定了數(shù)據(jù)庫要保存的信息,我將此次數(shù)據(jù)庫設(shè)計為二個如下所示表的設(shè)計如下:4.2.1系統(tǒng)設(shè)置Card表字段信息字段名稱類型寬度是否為空卡號cnoint10N賬戶余額cjineint10N密碼cnimaint10N圖 4.2.1 賬戶信息設(shè)計表4.2.2界面模塊設(shè)置用戶界面設(shè)計目前已成為評價軟件質(zhì)量的一條重要指標,所謂用戶界面是批軟件系統(tǒng)與用戶交互的接口,通常包括輸入、輸出設(shè)計、人機對話的界面設(shè)計。1. 歡迎界面:點擊確定按鈕進入ATM系統(tǒng)歡迎界面圖4.2.1歡迎界面2. 登錄模塊:登錄模塊依然采用的是密碼驗證的方式,需要用戶輸入卡號、密碼和驗證碼然后點擊確認進行驗證,程序?qū)⒏鶕?jù)輸入卡號查找密碼。第一沒有找到提示,輸入正確驗證碼后,程序系統(tǒng)將根據(jù)卡號調(diào)用后臺數(shù)據(jù)庫查找與卡號對應(yīng)的密碼并與用戶輸入的密碼相對比。密碼正確繼續(xù),否則當輸入的次數(shù)達到三次時,系統(tǒng)將自動關(guān)閉。第二如果沒有找到,提示輸入賬號錯誤。圖 4.2.2登錄模塊3. 主界面:主界面的設(shè)計主要是設(shè)計了查詢余額、取款、轉(zhuǎn)賬、密碼更改及退出按鈕等ATM的一些標準操作界面。圖4. 2.3主界面4. 查詢模塊:在此模塊中,將通過用戶所使用的賬戶編號來進行余額的查詢,將顯示賬戶的實際余額,點擊“查詢”按鈕,通過按鈕的Action方法進行方法調(diào)用,就可以實現(xiàn)查詢的功能并把查詢到的賬戶余額顯示到界面上。當用戶點擊“返回”時,程序返回到主界面。 圖4. 2.4查詢模塊5. 修改密碼模塊:此模塊需要用戶輸入舊密碼后,兩次輸入新密碼進行確認,然后,點擊確定,修改密碼,成功后給出提示信息,其中考慮到一些用戶的輸入錯誤問題,做出了一些異常的判斷和處理,空輸入,輸入兩次新密碼不匹配和原密碼不正確等問題。修改更新密碼的完成仍然依靠按鈕控件的Action事件完成。 圖4. 2.5 修改密碼模塊 6. 存款模塊:在此模塊,用戶根據(jù)需要自己輸入卡號及欲存金額,這里的設(shè)計其實最終歸結(jié)于具體的SQL語句而言,系統(tǒng)將根據(jù)輸入的金額修改金額。點擊確定按鈕提示操作成功。 圖4. 2.6 存款模塊 7. 取款模塊:取款模塊是一個相對比較重要的模塊,因為ATM機就要的功能就是取款業(yè)務(wù),用戶選擇賬戶名點擊取款金額然后點擊取款進行取款操作,所以幾個數(shù)字按鈕的設(shè)計比較大,方便用戶操作,其中一些提示信息也相應(yīng)地給出,以防用戶誤操作。用戶可以手動輸入取款金額,但每次取款金額必須為100的倍數(shù),總額不超過5000元,且支取金額不允許透支,否則系統(tǒng)報錯。圖4. 2.7 取款模塊第五章 系統(tǒng)實現(xiàn)系統(tǒng)實施是ATM系統(tǒng)開發(fā)過程中的最后一個階段。它的目標是將技術(shù)設(shè)計轉(zhuǎn)化成物理實現(xiàn)。系統(tǒng)實施階段的主要任務(wù)有:按總體設(shè)計方案購置和安裝計算機網(wǎng)絡(luò)系統(tǒng)、建立數(shù)據(jù)庫、編程與調(diào)試、整理基礎(chǔ)數(shù)據(jù)、培訓操作人員、程序試運行和系統(tǒng)切換。5.1 開發(fā)環(huán)境(1)、軟件開發(fā)具的選擇本系統(tǒng)采用Java作為編程語言,采用Eclipse軟件開發(fā)環(huán)境,Eclipse對數(shù)據(jù)庫應(yīng)用的強大支持,使數(shù)據(jù)庫應(yīng)用開發(fā)功能更強大,控制更靈活,編譯后的程序運行速度更快。(2)、數(shù)據(jù)庫管理系統(tǒng)的選擇由于本次設(shè)計所采用的是MYSQL數(shù)據(jù)庫,這種數(shù)據(jù)庫用來存儲少量數(shù)據(jù),在設(shè)計和實施上有很大的優(yōu)勢,根據(jù)之前所做的功能分析,以及ATM柜員機自身所具備的功能。 (3)、開發(fā)平臺的選擇windows 平臺以其全新的界面簡單快捷的操作方式而成為軟件開發(fā)的趨勢。根據(jù)本系統(tǒng)的運行環(huán)境和實際情況,選擇Windowsxp作為開發(fā)測試和運行的平臺。5.2 程序設(shè)計與調(diào)試5.2.1、程序設(shè)計程序設(shè)計語言的選擇通??紤]到項目的應(yīng)用領(lǐng)域、軟件開發(fā)方法、軟件執(zhí)行環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復雜性、和軟件開發(fā)人員的知識。程序設(shè)計是指使用選定的程序設(shè)計語言,把經(jīng)過概要設(shè)計各詳細設(shè)計所得到的信息處理過程,轉(zhuǎn)換成能在計算機上運行的程序源代碼。本系統(tǒng)中用Eclipse編程工具,采用結(jié)構(gòu)化的編程方法對模塊進行程序編寫。具體源程序見附頁。5.2.2、程序調(diào)試軟件測試的目的是盡可能多的發(fā)現(xiàn)程序中的錯誤,而調(diào)試則是在進行了成功的測試之后才開始的工作。程序調(diào)試是指在系統(tǒng)測試的基礎(chǔ)上,將發(fā)現(xiàn)的問題進行改正,使之符合設(shè)計標準。本系統(tǒng)采用的主要方法如下:單元測試:是指原程序中每個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。采用白盒法對各模塊進行邏輯錯誤排查,用黑盒法錄入一些有特征的數(shù)據(jù)從不同角度驗證結(jié)果。取款模塊測試:1.取款之前賬戶余額:15600:圖5.2.12.取款600:圖5.2.23.系統(tǒng)提示:操作成功。圖5.2.34.再次查詢余額:15000圖5.2.45.如果輸入取款金額不為100的整數(shù)倍且超過5000,系統(tǒng)會提示錯誤圖5.2.5圖5.2.6圖5.2.76.測試結(jié)束第六章 結(jié)束語通過java編寫簡單的ATM登錄系統(tǒng)的設(shè)計,我們不僅復習了上學期的java編程設(shè)計基礎(chǔ)知識,并且增強了我們對java語言的領(lǐng)悟和應(yīng)用,同時也更深刻的懂得了學好學會了并不是代表能夠真正的在實踐中運用得流暢,這次實踐給了我們一個既動手又動腦獨立實踐的機會,但其中也包含了自我尋找資料的能力和同學間的合作能力。這個系統(tǒng)將理論和實踐相結(jié)合,提高自己的分析、解決問題的能力,并且讓我們明白了計算機的技術(shù)一定要從實際出發(fā)才能真正的提高自己的能力。經(jīng)過了一個多月的設(shè)計和編寫這個系統(tǒng),我們也認識到了自己的不足和缺點,自己處在什么水平,和同學相比自己的差距,但是我也發(fā)現(xiàn)了自己的優(yōu)點和長處,不管怎么樣,通過這次學習,我們懂得了怎樣取長補短,充分利用網(wǎng)絡(luò)資源的重要性。參考文獻1 Eric. Java編程思想M. 第4版. 機械工業(yè)出版社, 機械工業(yè)出版社.2 杜波依斯. MySQL技術(shù)內(nèi)幕M. 第4版. 人民郵電出版社 , 2011年07月.3 張峋, 楊三成. 關(guān)鍵技術(shù):JSP與JDBC應(yīng)用詳解M.中國鐵道出版社, 2010年11月.4 Weiss, MA. 數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述M. 第2版. 機械工業(yè)出版社, 2009年01月.5 Metsker S J. Java設(shè)計模式M. 第2版. 電子工業(yè)出版社, 2012年09月.6 陳剛Eclipse從入門到精通北京:清華大學出版社, 2005年4月.7清宏計算機工作室.JSP編程技巧. 機械工業(yè)出版社, 2004年5月.8薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社,2002年2月.9 溫謙. HTML+CSS網(wǎng)頁設(shè)計與布局從入門到精通M.人民郵電出版社, 2008年08月.10 劉曉義. XML技術(shù)及應(yīng)用M.哈爾濱工程大學出版社, 2011年06月.11 趙俊峰 等. Java Web應(yīng)用開發(fā)案例教程:基于MVC模式的JSP+Servlet+JDBC和AJAXM. 清華大學出版社, 2012年01月.部分源代碼1.初始界面import java.awt.*;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.*; import java.awt.event.*; class Panel1 extends JPanel JLabel label1,label2; Panel1() setLayout(new GridLayout(4,1); label1=new JLabel( +歡迎使用銀行ATM系統(tǒng)!); label2=new JLabel( +點擊確定按鈕進入本系統(tǒng),點擊退出按鈕退出本系統(tǒng)); add(new JLabel(); add(label1); add(label2); add(new JLabel(); class Panel2 extends JPanel JButton button1,button2; Panel2() setLayout(new GridLayout(3,6); button1=new JButton(確定); button2=new JButton(退出); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(button1); add(new JLabel(); add(new JLabel(); add(button2); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); add(new JLabel(); class Client extends JFrame implements ActionListener Panel1 panel1; Panel2 panel2; JFrame frame; Client(String s) super(s); Container con=this.getContentPane(); con.setLayout(new GridLayout(2,1); panel1=new Panel1(); panel2=new Panel2(); con.add(panel1); con.add(panel2); panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true); this.pack(); public void actionPerformed(ActionEvent e) if(e.getActionCommand()=確定) this.setVisible(false); new Client00(輸入密碼); else if(e.getActionCommand()=退出)this.setVisible(false);System.exit(0); public class bankSystem public static void main(String args) new Client(ATM系統(tǒng)); 2.登陸模塊import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;class Panel01 extends JPanel JLabel label1,label2,label3,label4; JPasswordField textA; JTextField textC; static JTextField textB; char t=new char4; Panel01() setLayout(new GridLayout(4,4); for(int i=0;i4;i+) ti=(char)(Math.random()*26+a); String mm=new String(t); label2=new JLabel(請輸入卡號:); label1=new JLabel(請輸入密碼:); label3=new JLabel();label4=new JLabel(請輸入驗證碼:); label3.setBackground(Color.white); label3.setForeground(Color.red); textC=new JTextField(10); textC.setForeground(Color.blue); label3.setText(mm); textA=new JPasswordField(6); textA.setEchoChar(*);textB=new JTextField(); for(int i=0;i5;i+) add(new JLabel(); add(label2); add(textB); add(new JLabel(); add(new JLabel(); add(label1); add(textA); add(new JLabel(); add(new JLabel(); add(label4); add(textC); add(label3); class Panel02 extends JPanel JButton button1,button2; Panel02() setLayout(new GridLayout(3,6); button1=new JButton(確定); button2=new JButton(退出); for(int i=0;i7;i+) add(new JLabel(); add(button1); add(new JLabel(); add(new JLabel(); add(button2); for(int i=0;i6;i+) add(new JLabel(); class Client00 extends JFrame implements ActionListener Panel01 panel1; Panel02 panel2; JFrame frame; int i=0,j=0; Client00(String s) super(s); Container con=this.getContentPane(); con.setLayout(new GridLayout(2,1); panel1=new Panel01(); panel2=new Panel02(); con.add(panel1); con.add(panel2); panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true);this.pack(); public void actionPerformed(ActionEvent e) char passwords=panel1.textA.getPassword(); if(e.getActionCommand().equals(確定) if(panel1.textC.getText().equals(panel1.label3.getText() heshi(); else JOptionPane.showMessageDialog(frame,你輸入的驗證碼有,請重新輸入。); else if( e.getActionCommand()=退出) this.setVisible(false); System.exit(0); public void heshi() if(panel1.textA.getText().equals()|panel1.textB.getText().equals() JOptionPane.showMessageDialog(frame,請輸入賬號、密碼!); return; try Class.forName(com.mysql.jdbc.Driver); Connection con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/atm, root,123456); Statement sql=con.createStatement(); String ql=panel1.textB.getText(); ResultSet rs=sql.executeQuery(select cnima from card where cno=+ql+); if(rs.next() String qerycmima=panel1.textA.getText(); String s=rs.getString(1); if(qerycmima.equals(s) JOptionPane.showMessageDialog(frame, 連接成功!); this.setVisible(false); new Client01(ATM系統(tǒng)); else if(i!=2) i+; j=3-i; JOptionPane.showMessageDialog(frame,密碼有誤! 你還有+j+次機會,請你再仔細想想.); panel1.textA.setText(); else JOptionPane.showMessageDialog(frame,對不起,你輸入的密碼次數(shù)達三次,下次再見。); System.exit(0); con.close(); elseJOptionPane.showMessageDialog(null, 該用戶不存在,重新輸入!,警告!, JOptionPane.YES_NO_OPTION); panel1.textA.setText(); panel1.textB.setText(); panel1.textC.setText(); return; catch(SQLException g) System.out.println(E Code+g.getErrorCode(); System.out.println(E M+g.getMessage(); catch(Exception e) e.printStackTrace(); class bankSystem00 public static void main(String args) new Client00(ATM系統(tǒng)); 3.主界面import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;class Panel03 extends JPanel JButton button1,button2,button3,button4,button5; Panel03() setLayout(new GridLayout(8,6); button1=new JButton(查詢余額); button2=new JButton(取款); button3=new JButton(存款); button4=new JButton(退出登錄); button5=new JButton(修改密碼); for(int i=0;i7;i+)add(new JLabel(); add(button1);add(new JLabel(); add(new JLabel(); add(button2); for(int i=0;i8;i+) add(new JLabel(); add(button3);add(new JLabel(); add(new JLabel(); add(button5); for(int i=0;i17;i+) add(new JLabel(); add(button4); for(int i=0;i7;i+) add(new JLabel(); class Client01 extends JFrame implements ActionListener Panel03 panel1; JFrame frame; Client01(String s) super(s); Container con=this.getContentPane(); panel1=new Panel03(); con.add(panel1); panel1.button1.addActionListener(this); panel1.button2.addActionListener(this); panel1.button3.addActionListener(this); panel1.button4.addActionListener(this); panel1.button5.addActionListener(this); this.setVisible(true);this.pack(); public void actionPerformed(ActionEvent e) if(e.getActionCommand()=取款) this.setVisible(false); new Client02(取款服務(wù)); else if(e.getActionCommand()=查詢余額) this.setVisible(false); new Client03(查詢余額服務(wù)); else if(e.getActionCommand()=修改密碼) this.setVisible(false); new Client05(修改密碼服務(wù)); else if(e.getActionCommand()=存款) this.setVisible(false); new Client04(存款服務(wù)); else if(e.getActionCommand()=退出登錄) this.setVisible(false); new Client00(ATM系統(tǒng)); class bankSystem01 public static void main(String args) new Client01(用戶取款系統(tǒng)); 4.取款界面import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import javax.

溫馨提示

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

評論

0/150

提交評論