




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java語言程序設(shè)計(jì)課程設(shè)計(jì)題 目 用Java語言模擬ATM系統(tǒng) 院 (系) XXXXX學(xué)院 專 業(yè) 班 級(jí) 12級(jí)XXXX班 學(xué) 生 姓 名 XXXXXXXXXXXXXXXXX 學(xué) 號(hào) 設(shè) 計(jì) 地 點(diǎn) 指 導(dǎo) 教 師 起止時(shí)間:2014年6月3日至2014年6月13日J(rèn)ava語言程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)分配院(系):信息工程學(xué)院 教研室:軟件教研室課程設(shè)計(jì)題目用Java語言模擬ATM系統(tǒng)課 程 設(shè) 計(jì)目的Java語言程序設(shè)計(jì)課程設(shè)計(jì)是計(jì)算機(jī)類專業(yè)的集中實(shí)踐性環(huán)節(jié)之一,是課程教學(xué)中的一項(xiàng)重要內(nèi)容,是完成教學(xué)計(jì)劃達(dá)到教學(xué)目標(biāo)的重要環(huán)節(jié),是幫助學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)學(xué)生分析問題、解決問題的能力進(jìn)行的一次全面的綜合練習(xí)。通過結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度,對(duì)提高學(xué)生的綜合素質(zhì)具有重要的意義。1) 掌握J(rèn)ava的語言規(guī)范,面向?qū)ο蟮暮诵母拍詈吞匦浴?) 掌握J(rèn)ava的編程技術(shù),包括異常處理,圖形界面設(shè)計(jì),多線程,網(wǎng)絡(luò)通信程序等。3) 掌握J(rèn)ava應(yīng)用軟件的開發(fā)環(huán)境和開發(fā)過程4)掌握面向?qū)ο蟮乃枷牒统绦蛟O(shè)計(jì)方法。小組成員及任務(wù)分配姓名學(xué)號(hào)承擔(dān)任務(wù)是否組長(zhǎng)XX總體結(jié)構(gòu)設(shè)計(jì),系統(tǒng)分析,軟件的調(diào)試與測(cè)試,修改密碼模塊,分配任務(wù)是XX取款模塊,可行性研究否XX查詢模塊,界面模塊設(shè)置否XX存款模塊,系統(tǒng)開發(fā)方法否XX文檔,系統(tǒng)詳細(xì)調(diào)查及提出否目錄第一章 ATM系統(tǒng)綜述41.1 概述41.2 ATM的發(fā)展41.3 ATM取款機(jī)系統(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)詳細(xì)調(diào)查及提出8第四章 系統(tǒng)設(shè)計(jì)104.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)104.2 系統(tǒng)詳細(xì)設(shè)計(jì)114.2.1系統(tǒng)設(shè)置124.2.2界面模塊設(shè)置12第五章 系統(tǒng)實(shí)現(xiàn)165.1 開發(fā)環(huán)境165.2 程序設(shè)計(jì)與調(diào)試165.2.1、程序設(shè)計(jì)165.2.2、程序調(diào)試17第六章 結(jié)束語19參考文獻(xiàn)20源代碼部分21注:如果想要本程序的完整源代碼及JAVA程序請(qǐng)聯(lián)系作者(郵箱:)第一章 ATM系統(tǒng)綜述1.1 概述ATM自動(dòng)取款機(jī)是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。ATM是英文Automatic Teller Machine的縮寫。ATM是最普遍的自助銀行設(shè)備,可以提供最基本的銀行服務(wù)之一,即出鈔交易,有些全功能的產(chǎn)品還可以提供信封存款業(yè)務(wù)。在ATM自動(dòng)取款機(jī)上也可以進(jìn)行賬戶查詢、修改密碼和轉(zhuǎn)賬的業(yè)務(wù)。同時(shí)在制作這個(gè)系統(tǒng)的過程中也應(yīng)用了數(shù)據(jù)庫(kù)的知識(shí),這個(gè)相對(duì)于我們專業(yè)來說是比較重要的內(nèi)容,這個(gè)也是這個(gè)學(xué)期學(xué)習(xí)的重點(diǎn)知識(shí),同時(shí)數(shù)據(jù)庫(kù)鏈接是必須要學(xué)會(huì)的,因?yàn)檫@個(gè)是最核心的內(nèi)容,培養(yǎng)自己堅(jiān)實(shí)的邏輯表達(dá)能力和溝通能力,和培養(yǎng)自己良好的文案能力。掌握ATM取款機(jī)的具體工作原理以及java簡(jiǎn)單系統(tǒng)的設(shè)計(jì)方法。1.2 ATM的發(fā)展眾所周知隨著信息時(shí)代科技的飛速發(fā)展和隨著全球金融行業(yè)的興起,使用ATM取款機(jī)、計(jì)算機(jī)信息技術(shù)以及計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,給人們的生活帶來了天翻地覆的變化,同時(shí)這些技術(shù)在人們生活中的運(yùn)用,隨著科學(xué)技術(shù)的進(jìn)步,經(jīng)營(yíng)方式的轉(zhuǎn)變,處理信息系統(tǒng)的內(nèi)容和形式也在發(fā)生變化。當(dāng)前,以計(jì)算機(jī)和通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處在蓬勃發(fā)展的時(shí)期,ATM取款系統(tǒng)可充分利用網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,形成一種全新的運(yùn)作方式。隨著因特網(wǎng)的形成和發(fā)展,基于網(wǎng)絡(luò)技術(shù)的信息系統(tǒng)除了它傳統(tǒng)的功能外,實(shí)現(xiàn)了特定地方刷卡消費(fèi)等。不僅提高了銀行的業(yè)務(wù)處理能力,而且大大的節(jié)省了人們?nèi)″X所花費(fèi)的時(shí)間和價(jià)值;并且在有效防止了一些非法的業(yè)務(wù)操作,對(duì)于一些復(fù)雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。雖然起步較晚,近幾年發(fā)展卻較快,優(yōu)其是隨著微型計(jì)算機(jī)的出現(xiàn)和普及,為信息處理提供了物美價(jià)廉的手段,對(duì)于推動(dòng)我國(guó)信息處理的現(xiàn)代化起了重要的作用。ATM取款系統(tǒng)正在朝著自適應(yīng)、自學(xué)習(xí)的方向發(fā)展,也就是更好的實(shí)現(xiàn)模擬人性化過程。1.3 ATM取款機(jī)系統(tǒng)的影響ATM取款機(jī)誕生可以說是世界金融行業(yè)的一大進(jìn)步,也是歷史性的轉(zhuǎn)折點(diǎn)。ATM自動(dòng)取款機(jī)不僅能提高了銀行的業(yè)務(wù)處理能力,還能大大的節(jié)省人們?nèi)″X所花費(fèi)的時(shí)間和價(jià)值;并且在有效防止了一些非法的業(yè)務(wù)操作,對(duì)于一些復(fù)雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。ATM系統(tǒng)對(duì)金融業(yè)的變革產(chǎn)生了和正在產(chǎn)生著深遠(yuǎn)的影響。從現(xiàn)代金融業(yè)新概念來看,ATM系統(tǒng)就是電子信息技術(shù)在金融業(yè)金融管理的一種應(yīng)用。它避免了對(duì)于用戶的信息資料、以及資金統(tǒng)計(jì)等用人工辦理。數(shù)據(jù)信息處理工作量大,繁瑣,數(shù)據(jù)處理手工操作,工作量大,工作時(shí)需實(shí)時(shí)認(rèn)真辦理,一但出現(xiàn)錯(cuò)誤將帶來很大的損失。從而解決了用戶信息和資金信息的繁雜問題,對(duì)于ATM取款系統(tǒng)數(shù)據(jù)的統(tǒng)計(jì)和核實(shí)等都是采用卡號(hào)進(jìn)行核對(duì)的,進(jìn)而實(shí)現(xiàn)了數(shù)據(jù)的準(zhǔn)確性、完整性、及時(shí)性,避免了工作人員和管理員工作時(shí)間一長(zhǎng),再進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。同時(shí)也得用戶可以安全的進(jìn)行操作,便捷,快速的進(jìn)行取款以及完成一些商業(yè)上的交易,大大提高辦公效率,能夠及時(shí)、準(zhǔn)確、有效的幫用戶辦理各種繁瑣的手續(xù),也減緩了銀行工作人員的壓力。第二章 ATM系統(tǒng)開發(fā)方法2.1 系統(tǒng)開發(fā)方法概述軟件開發(fā)方法是一種使用早已定義好的技術(shù)集及符號(hào)表示習(xí)慣來組織軟件生產(chǎn)的過程。開發(fā)目標(biāo)是在規(guī)定的投資和時(shí)間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件。任何系統(tǒng)均有其產(chǎn)生、發(fā)展、成熟、消亡或更新?lián)Q代的過程。這個(gè)過程稱為系統(tǒng)的生命周期。系統(tǒng)生命周期法提供的思路、邏輯、技能、工具與工作規(guī)范,是系統(tǒng)開發(fā)、處理管理信息系統(tǒng)建設(shè)中各類實(shí)際問題的重要基礎(chǔ),對(duì)復(fù)雜系統(tǒng)的建設(shè)具有重要的指導(dǎo)意義。系統(tǒng)開發(fā)是管理信息系統(tǒng)建設(shè)中工作任務(wù)最為繁重,也是最重要的一個(gè)階段。從項(xiàng)目開發(fā)到結(jié)束的整個(gè)過程,稱為系統(tǒng)開發(fā)的生命周期。系統(tǒng)開發(fā)的生命周期一般分為系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)施。結(jié)構(gòu)化生命周期法是一種面向數(shù)據(jù)流的開發(fā)方法。該方法簡(jiǎn)單實(shí)用、應(yīng)用較廣、技術(shù)成熟,方法的指導(dǎo)思想是自頂向下、逐步求精,基本原則是動(dòng)能的分解與抽象,特別適合于數(shù)據(jù)處理領(lǐng)域的問題,隨著開發(fā)項(xiàng)目規(guī)模的變化,該方法也就暴漏出了它的缺點(diǎn):(1)對(duì)于規(guī)模大、特別復(fù)雜的項(xiàng)目不太適應(yīng)(2)難于解決軟件重用問題(3)難于適應(yīng)需求變化問題,難于徹底解決維護(hù)問題。2.2 該系統(tǒng)開發(fā)方法比較各種開發(fā)方法的特點(diǎn),結(jié)合銀行取款系統(tǒng)的實(shí)際情況,整個(gè)系統(tǒng)采用結(jié)構(gòu)化生命周期法,以原型法和面向?qū)ο蟮拈_發(fā)方法作為輔助,即系統(tǒng)總體上采用結(jié)構(gòu)化生命周期法進(jìn)行系統(tǒng)分析和系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施等步驟采用面向?qū)ο蠓椒ā1鞠到y(tǒng)開發(fā)工具使用的是基于 Java 的可擴(kuò)展開發(fā)平臺(tái)的Eclipse。第三章 系統(tǒng)分析系統(tǒng)分析是管理系統(tǒng)開發(fā)的起始階段,也是MIS開發(fā)工作中最重要的一環(huán)。系統(tǒng)分析階段的主要活動(dòng)有:系統(tǒng)初步調(diào)查、可行性研究、系統(tǒng)詳細(xì)調(diào)查、新系統(tǒng)邏輯方案的提出。系統(tǒng)分析的目標(biāo)是明確系統(tǒng)開發(fā)的目標(biāo)和用戶信息需求,提出系統(tǒng)的邏輯方案。為系統(tǒng)設(shè)計(jì)做好準(zhǔn)備。3.1 系統(tǒng)初步調(diào)查系統(tǒng)的初步調(diào)查是系統(tǒng)分析階段的第一項(xiàng)活動(dòng),也是系統(tǒng)開發(fā)的第一項(xiàng)活動(dòng),初步調(diào)查的主要目標(biāo)是從系統(tǒng)分析人中和管理人員的角度看新系統(tǒng)開發(fā)有無必要和可能。通過親身體驗(yàn)總結(jié)各銀行ATM提款機(jī)界面流程,得到本系統(tǒng)開發(fā)的主要流程界面(主要功能取款、轉(zhuǎn)賬、查詢、修改密碼等)。并決定親自開發(fā)取款機(jī)系統(tǒng),測(cè)試自己水平。3.2 可行性研究可行性研究的目的就是用最小的代價(jià)在最短的時(shí)間內(nèi)確定該軟件項(xiàng)目是否能夠開發(fā),是否值得去開發(fā)。實(shí)質(zhì)上就是進(jìn)行一次簡(jiǎn)化、壓縮了的需求分析、設(shè)計(jì)過程??蓮囊韵氯齻€(gè)方面分析研究每種解決問題的可行性:a.技術(shù)可行性:對(duì)項(xiàng)目的功能、性能、限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下項(xiàng)目是否能實(shí)現(xiàn)。(開發(fā)的風(fēng)險(xiǎn)、資源的有效性、技術(shù))b.社會(huì)可行性:要開發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。c.經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以及了解得到效益的評(píng)估,確定要開發(fā)項(xiàng)目是否值得投資開發(fā)。對(duì)銀行業(yè)來說,是靠存款貸款之間的差額來生存的,所以要盡可能的拉攏更多的客戶使用本行,ATM取款機(jī)是為了能讓為客戶更便捷的服務(wù),從而更具有吸引力。銀行角度出發(fā)還是非常還是愿意把一部分資金投入到這方面的。3.3系統(tǒng)詳細(xì)調(diào)查及提出系統(tǒng)詳細(xì)調(diào)查是在可行性研究的基礎(chǔ)上進(jìn)一步對(duì)現(xiàn)行系統(tǒng)進(jìn)行全面、深入的調(diào)查和分析,弄清現(xiàn)行系統(tǒng)運(yùn)行狀況,發(fā)現(xiàn)其薄弱環(huán)節(jié),確保新系統(tǒng)比原系統(tǒng)更有效。詳細(xì)調(diào)查的重點(diǎn)在于對(duì)系統(tǒng)的內(nèi)部情況更詳細(xì)和具體的了解,從而可以提供在新系統(tǒng)建設(shè)時(shí)改進(jìn)或更換的內(nèi)容。明確用戶的信息需求,明確新系統(tǒng)的邏輯功能。主要工作是對(duì)用戶需求進(jìn)行進(jìn)一步調(diào)查分析,創(chuàng)建新系統(tǒng)的邏輯模型。邏輯模型主要以數(shù)據(jù)流程圖和數(shù)據(jù)典為主要描述工具。通過仔細(xì)調(diào)查得以下功能圖和業(yè)務(wù)流程圖:一般登陸模塊只輸入賬號(hào)、密碼,當(dāng)然在實(shí)際應(yīng)用中沒有要求用戶輸入賬號(hào),這是因?yàn)樵诖趴ㄉ嫌袀€(gè)感應(yīng)區(qū),編此模塊時(shí)加上了驗(yàn)證碼。 ATM柜員機(jī)模擬系統(tǒng)登錄模塊輸入密碼事物模塊驗(yàn)證號(hào)存款取款余額查詢修改密碼圖3-1 功能圖該系統(tǒng)主要實(shí)現(xiàn)銀行卡用戶的存取款,以及進(jìn)行一些簡(jiǎn)單的查詢和轉(zhuǎn)賬業(yè)務(wù),同時(shí)能夠在系統(tǒng)里面進(jìn)行客戶密碼的修改,實(shí)現(xiàn)簡(jiǎn)單的機(jī)器與客戶交互。選擇界面(查詢、取款、轉(zhuǎn)帳、修改密碼、取消)登錄界面(卡號(hào)、密碼、驗(yàn)證碼、取消等選項(xiàng))待機(jī)界面(按確定鍵進(jìn)入登錄界面)密碼錯(cuò)誤,請(qǐng)從新輸入!查詢余額修改密碼取款存款交易完成點(diǎn)擊退出退出程序圖3-2 業(yè)務(wù)流程圖:第四章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)階段的主要目的是將系統(tǒng)分析所提出的反映用戶信息需求的系統(tǒng)邏輯方案轉(zhuǎn)換成可以實(shí)施的基本計(jì)算機(jī)(ATM取款機(jī))與通信系統(tǒng)的物理(技術(shù))方案。系統(tǒng)設(shè)計(jì)主要包括系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)的依據(jù)主要有系統(tǒng)分析的成果、現(xiàn)行技術(shù)、用戶需求、系統(tǒng)運(yùn)行環(huán)境。4.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 系統(tǒng)總體結(jié)構(gòu)是指整個(gè)系統(tǒng)由哪些部分組成,以及各部分在物理上、邏輯上的相互關(guān)系,包括硬件部分和軟件部分,該設(shè)計(jì)包括:系統(tǒng)總體布局方案的確定、軟件系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、計(jì)算機(jī)硬件方案的選擇和設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)的總體設(shè)計(jì)。根據(jù)業(yè)務(wù)流程圖轉(zhuǎn)化為軟件的體系結(jié)構(gòu),進(jìn)而用軟件結(jié)構(gòu)圖建立物理模型,得系統(tǒng)活動(dòng)圖,如下:歡迎界面儲(chǔ)戶登錄用戶主界面退出系統(tǒng)取款存款修改密碼余額查詢圖4.1.1系統(tǒng)結(jié)構(gòu)圖:圖4.1.2系統(tǒng)流程圖:4.2 系統(tǒng)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的實(shí)現(xiàn)根據(jù)結(jié)構(gòu)程序設(shè)計(jì)原理,將每個(gè)模塊的功能用相應(yīng)的標(biāo)準(zhǔn)語句表示出來。包括代碼設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、用戶界面設(shè)計(jì)、處理過程設(shè)計(jì)。代碼設(shè)計(jì)是指把系統(tǒng)管理對(duì)象數(shù)字化或字符化,便于計(jì)算機(jī)的處理。遵照代碼設(shè)計(jì)的原則:合理性、簡(jiǎn)明性、系統(tǒng)性、穩(wěn)定性、可擴(kuò)充性、標(biāo)準(zhǔn)化、便于識(shí)別和記憶。進(jìn)行分析和設(shè)計(jì)。它也是管理信息系統(tǒng)設(shè)計(jì)的重要組成部分。數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則是盡可能提高數(shù)據(jù)組織的相對(duì)獨(dú)立性,簡(jiǎn)化其結(jié)構(gòu),即用規(guī)范化方法設(shè)施數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu),提高數(shù)據(jù)的可維護(hù)性、數(shù)據(jù)庫(kù)設(shè)計(jì)指對(duì)系統(tǒng)所采用的數(shù)據(jù)模式、子模式、應(yīng)用程序、數(shù)據(jù)庫(kù)等根據(jù)用戶的具體要求完整性、一致性。通過收集和分析用戶需求,確定了數(shù)據(jù)庫(kù)要保存的信息,我將此次數(shù)據(jù)庫(kù)設(shè)計(jì)為二個(gè)如下所示表的設(shè)計(jì)如下:4.2.1系統(tǒng)設(shè)置Card表字段信息字段名稱類型寬度是否為空卡號(hào)cnoint10N賬戶余額cjineint10N密碼cnimaint10N圖 4.2.1 賬戶信息設(shè)計(jì)表4.2.2界面模塊設(shè)置用戶界面設(shè)計(jì)目前已成為評(píng)價(jià)軟件質(zhì)量的一條重要指標(biāo),所謂用戶界面是批軟件系統(tǒng)與用戶交互的接口,通常包括輸入、輸出設(shè)計(jì)、人機(jī)對(duì)話的界面設(shè)計(jì)。1. 歡迎界面:點(diǎn)擊確定按鈕進(jìn)入ATM系統(tǒng)歡迎界面圖4.2.1歡迎界面2. 登錄模塊:登錄模塊依然采用的是密碼驗(yàn)證的方式,需要用戶輸入卡號(hào)、密碼和驗(yàn)證碼然后點(diǎn)擊確認(rèn)進(jìn)行驗(yàn)證,程序?qū)⒏鶕?jù)輸入卡號(hào)查找密碼。第一沒有找到提示,輸入正確驗(yàn)證碼后,程序系統(tǒng)將根據(jù)卡號(hào)調(diào)用后臺(tái)數(shù)據(jù)庫(kù)查找與卡號(hào)對(duì)應(yīng)的密碼并與用戶輸入的密碼相對(duì)比。密碼正確繼續(xù),否則當(dāng)輸入的次數(shù)達(dá)到三次時(shí),系統(tǒng)將自動(dòng)關(guān)閉。第二如果沒有找到,提示輸入賬號(hào)錯(cuò)誤。圖 4.2.2登錄模塊3. 主界面:主界面的設(shè)計(jì)主要是設(shè)計(jì)了查詢余額、取款、轉(zhuǎn)賬、密碼更改及退出按鈕等ATM的一些標(biāo)準(zhǔn)操作界面。圖4. 2.3主界面4. 查詢模塊:在此模塊中,將通過用戶所使用的賬戶編號(hào)來進(jìn)行余額的查詢,將顯示賬戶的實(shí)際余額,點(diǎn)擊“查詢”按鈕,通過按鈕的Action方法進(jìn)行方法調(diào)用,就可以實(shí)現(xiàn)查詢的功能并把查詢到的賬戶余額顯示到界面上。當(dāng)用戶點(diǎn)擊“返回”時(shí),程序返回到主界面。 圖4. 2.4查詢模塊5. 修改密碼模塊:此模塊需要用戶輸入舊密碼后,兩次輸入新密碼進(jìn)行確認(rèn),然后,點(diǎn)擊確定,修改密碼,成功后給出提示信息,其中考慮到一些用戶的輸入錯(cuò)誤問題,做出了一些異常的判斷和處理,空輸入,輸入兩次新密碼不匹配和原密碼不正確等問題。修改更新密碼的完成仍然依靠按鈕控件的Action事件完成。 圖4. 2.5 修改密碼模塊 6. 存款模塊:在此模塊,用戶根據(jù)需要自己輸入卡號(hào)及欲存金額,這里的設(shè)計(jì)其實(shí)最終歸結(jié)于具體的SQL語句而言,系統(tǒng)將根據(jù)輸入的金額修改金額。點(diǎn)擊確定按鈕提示操作成功。 圖4. 2.6 存款模塊 7. 取款模塊:取款模塊是一個(gè)相對(duì)比較重要的模塊,因?yàn)锳TM機(jī)就要的功能就是取款業(yè)務(wù),用戶選擇賬戶名點(diǎn)擊取款金額然后點(diǎn)擊取款進(jìn)行取款操作,所以幾個(gè)數(shù)字按鈕的設(shè)計(jì)比較大,方便用戶操作,其中一些提示信息也相應(yīng)地給出,以防用戶誤操作。用戶可以手動(dòng)輸入取款金額,但每次取款金額必須為100的倍數(shù),總額不超過5000元,且支取金額不允許透支,否則系統(tǒng)報(bào)錯(cuò)。圖4. 2.7 取款模塊第五章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)施是ATM系統(tǒng)開發(fā)過程中的最后一個(gè)階段。它的目標(biāo)是將技術(shù)設(shè)計(jì)轉(zhuǎn)化成物理實(shí)現(xiàn)。系統(tǒng)實(shí)施階段的主要任務(wù)有:按總體設(shè)計(jì)方案購(gòu)置和安裝計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)、建立數(shù)據(jù)庫(kù)、編程與調(diào)試、整理基礎(chǔ)數(shù)據(jù)、培訓(xùn)操作人員、程序試運(yùn)行和系統(tǒng)切換。5.1 開發(fā)環(huán)境(1)、軟件開發(fā)具的選擇本系統(tǒng)采用Java作為編程語言,采用Eclipse軟件開發(fā)環(huán)境,Eclipse對(duì)數(shù)據(jù)庫(kù)應(yīng)用的強(qiáng)大支持,使數(shù)據(jù)庫(kù)應(yīng)用開發(fā)功能更強(qiáng)大,控制更靈活,編譯后的程序運(yùn)行速度更快。(2)、數(shù)據(jù)庫(kù)管理系統(tǒng)的選擇由于本次設(shè)計(jì)所采用的是MYSQL數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)用來存儲(chǔ)少量數(shù)據(jù),在設(shè)計(jì)和實(shí)施上有很大的優(yōu)勢(shì),根據(jù)之前所做的功能分析,以及ATM柜員機(jī)自身所具備的功能。 (3)、開發(fā)平臺(tái)的選擇windows 平臺(tái)以其全新的界面簡(jiǎn)單快捷的操作方式而成為軟件開發(fā)的趨勢(shì)。根據(jù)本系統(tǒng)的運(yùn)行環(huán)境和實(shí)際情況,選擇Windowsxp作為開發(fā)測(cè)試和運(yùn)行的平臺(tái)。5.2 程序設(shè)計(jì)與調(diào)試5.2.1、程序設(shè)計(jì)程序設(shè)計(jì)語言的選擇通常考慮到項(xiàng)目的應(yīng)用領(lǐng)域、軟件開發(fā)方法、軟件執(zhí)行環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性、和軟件開發(fā)人員的知識(shí)。程序設(shè)計(jì)是指使用選定的程序設(shè)計(jì)語言,把經(jīng)過概要設(shè)計(jì)各詳細(xì)設(shè)計(jì)所得到的信息處理過程,轉(zhuǎn)換成能在計(jì)算機(jī)上運(yùn)行的程序源代碼。本系統(tǒng)中用Eclipse編程工具,采用結(jié)構(gòu)化的編程方法對(duì)模塊進(jìn)行程序編寫。具體源程序見附頁。5.2.2、程序調(diào)試軟件測(cè)試的目的是盡可能多的發(fā)現(xiàn)程序中的錯(cuò)誤,而調(diào)試則是在進(jìn)行了成功的測(cè)試之后才開始的工作。程序調(diào)試是指在系統(tǒng)測(cè)試的基礎(chǔ)上,將發(fā)現(xiàn)的問題進(jìn)行改正,使之符合設(shè)計(jì)標(biāo)準(zhǔn)。本系統(tǒng)采用的主要方法如下:?jiǎn)卧獪y(cè)試:是指原程序中每個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。采用白盒法對(duì)各模塊進(jìn)行邏輯錯(cuò)誤排查,用黑盒法錄入一些有特征的數(shù)據(jù)從不同角度驗(yàn)證結(jié)果。取款模塊測(cè)試:1.取款之前賬戶余額:15600:圖5.2.12.取款600:圖5.2.23.系統(tǒng)提示:操作成功。圖5.2.34.再次查詢余額:15000圖5.2.45.如果輸入取款金額不為100的整數(shù)倍且超過5000,系統(tǒng)會(huì)提示錯(cuò)誤圖5.2.5圖5.2.6圖5.2.76.測(cè)試結(jié)束第六章 結(jié)束語通過java編寫簡(jiǎn)單的ATM登錄系統(tǒng)的設(shè)計(jì),我們不僅復(fù)習(xí)了上學(xué)期的java編程設(shè)計(jì)基礎(chǔ)知識(shí),并且增強(qiáng)了我們對(duì)java語言的領(lǐng)悟和應(yīng)用,同時(shí)也更深刻的懂得了學(xué)好學(xué)會(huì)了并不是代表能夠真正的在實(shí)踐中運(yùn)用得流暢,這次實(shí)踐給了我們一個(gè)既動(dòng)手又動(dòng)腦獨(dú)立實(shí)踐的機(jī)會(huì),但其中也包含了自我尋找資料的能力和同學(xué)間的合作能力。這個(gè)系統(tǒng)將理論和實(shí)踐相結(jié)合,提高自己的分析、解決問題的能力,并且讓我們明白了計(jì)算機(jī)的技術(shù)一定要從實(shí)際出發(fā)才能真正的提高自己的能力。經(jīng)過了一個(gè)多月的設(shè)計(jì)和編寫這個(gè)系統(tǒng),我們也認(rèn)識(shí)到了自己的不足和缺點(diǎn),自己處在什么水平,和同學(xué)相比自己的差距,但是我也發(fā)現(xiàn)了自己的優(yōu)點(diǎn)和長(zhǎng)處,不管怎么樣,通過這次學(xué)習(xí),我們懂得了怎樣取長(zhǎng)補(bǔ)短,充分利用網(wǎng)絡(luò)資源的重要性。參考文獻(xiàn)1 Eric. Java編程思想M. 第4版. 機(jī)械工業(yè)出版社, 機(jī)械工業(yè)出版社.2 杜波依斯. MySQL技術(shù)內(nèi)幕M. 第4版. 人民郵電出版社 , 2011年07月.3 張峋, 楊三成. 關(guān)鍵技術(shù):JSP與JDBC應(yīng)用詳解M.中國(guó)鐵道出版社, 2010年11月.4 Weiss, MA. 數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述M. 第2版. 機(jī)械工業(yè)出版社, 2009年01月.5 Metsker S J. Java設(shè)計(jì)模式M. 第2版. 電子工業(yè)出版社, 2012年09月.6 陳剛Eclipse從入門到精通北京:清華大學(xué)出版社, 2005年4月.7清宏計(jì)算機(jī)工作室.JSP編程技巧. 機(jī)械工業(yè)出版社, 2004年5月.8薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論.高等教育出版社,2002年2月.9 溫謙. HTML+CSS網(wǎng)頁設(shè)計(jì)與布局從入門到精通M.人民郵電出版社, 2008年08月.10 劉曉義. XML技術(shù)及應(yīng)用M.哈爾濱工程大學(xué)出版社, 2011年06月.11 趙俊峰 等. Java Web應(yīng)用開發(fā)案例教程:基于MVC模式的JSP+Servlet+JDBC和AJAXM. 清華大學(xué)出版社, 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( +點(diǎn)擊確定按鈕進(jìn)入本系統(tǒng),點(diǎn)擊退出按鈕退出本系統(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(請(qǐng)輸入卡號(hào):); label1=new JLabel(請(qǐng)輸入密碼:); label3=new JLabel();label4=new JLabel(請(qǐng)輸入驗(yàn)證碼:); 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,你輸入的驗(yàn)證碼有,請(qǐng)重新輸入。); 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,請(qǐng)輸入賬號(hào)、密碼!); 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+次機(jī)會(huì),請(qǐng)你再仔細(xì)想想.); panel1.textA.setText(); else JOptionPane.showMessageDialog(frame,對(duì)不起,你輸入的密碼次數(shù)達(dá)三次,下次再見。); 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 最美物業(yè)評(píng)比活動(dòng)方案
- 服務(wù)策劃活動(dòng)方案
- 機(jī)關(guān)禁毒教育活動(dòng)方案
- 機(jī)構(gòu)線下活動(dòng)方案
- 最佳球員充值活動(dòng)方案
- 春節(jié)足浴活動(dòng)方案
- 暑期防汛活動(dòng)方案
- 機(jī)械公司年會(huì)策劃方案
- 服裝企劃系列活動(dòng)方案
- 村委黨建活動(dòng)方案
- 醫(yī)院后勤禮儀培訓(xùn)課件
- 《咕咚》課件 小學(xué)語文一年級(jí)下冊(cè)
- 小學(xué)二年級(jí)下冊(cè)豎式計(jì)算題400道
- 小兒心力衰竭的護(hù)理查房
- TCSTM00829-2022鋼軌自動(dòng)渦流檢測(cè)系統(tǒng)綜合性能測(cè)試方法
- 2025年美術(shù)教師編制考試模擬試卷:美術(shù)教育心理學(xué)在課堂管理中的應(yīng)用試題
- 農(nóng)村商業(yè)銀行貸款協(xié)議書
- DB62T 3081-2022 綠色建筑工程驗(yàn)收標(biāo)準(zhǔn)
- 建筑與環(huán)境設(shè)計(jì)專題知到智慧樹期末考試答案題庫(kù)2025年寧夏大學(xué)
- 從北銀消費(fèi)金融騙貸事件透視北京銀行風(fēng)險(xiǎn)結(jié)構(gòu)與應(yīng)對(duì)策略
- 《蠟染與扎染》教學(xué)課件-2024-2025學(xué)年人教版(2024)初中美術(shù)九年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論