版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計(大作業(yè))報告課程名稱:面向?qū)ο蟪绦蛟O計課程設計設計題目:ATM柜員機模擬程序院系:信息技術學院班級:設計者:學號:指導教師:設計時間:2016-1-42016-1-8信息技術學院姓名:院(系):信息技術學院專業(yè):計算機科學與技術學號:任務起止日期:2016-1-42016-1-8課程設計題目:設計一個ATM柜員機模擬程序,實現(xiàn)系統(tǒng)登錄、余額查詢、ATM取款、ATM存款、修改密碼等一些ATM柜員機的基本功能,模擬ATM的工作原理和人機交互。課程設計要求:使用圖形用戶界面。當輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:1、
2、查詢余額:初始余額為10000元2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。3、ATM存款:不能出現(xiàn)負存款。4、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。工作計劃及安排:1月4號,老師布置任務、講授設計內(nèi)容。1月5號,查閱資料,進行初步設想并畫出流程圖。1月6號,詳細設計,創(chuàng)建各個類、編寫程序代碼。1月7號,測試,對程序進行調(diào)試、運行并進行相應的分析。1月8號,書寫課程設計報告,驗收、考核及答辯。指導教師簽字課程設計(大作業(yè))成績課程設計(大作業(yè))成績學號姓名
3、指導教師:課程設計題目:設計一個ATM柜員機模擬程序,實現(xiàn)系統(tǒng)登錄、余額查詢、ATM取款、ATM存款、修改密碼等一些ATM柜員機的基本功能,模擬ATM的工作原理和人機交互??偨Y(jié):通過為時一周的課程設計,我受益匪淺,把平時所學的知識通通運用了進來,雖然平時積淀的知識點比較少、比較單一,但是在這次實驗中把零零碎碎的知識都連貫起來了,也達到了課程設計的目的,最主要的是通過一周的努力我終于用面向?qū)ο蟪绦蛟O計的知識做出了這個“ATM柜員機模擬系統(tǒng)”由于知識的積淀比較少,且有些知識掌握不太牢靠,記憶模模糊糊的,最后決定惡補一下落下的知識點再進行程序的設計。第一天,去圖書館借了相關圖書,把知識點打牢,然后參
4、考了相似的的幾個實例,并進行了一些分析和總結(jié)?;A功課做好以后第二天正式開工,選定好了題目,進行方法選擇、框架設計、畫出流程圖、UML圖,進行了初步的程序設計構(gòu)想。第三天,編寫程序代碼,這個過程我覺得是最艱難的,因為代碼太多,還有API接口不是很熟悉,所以要經(jīng)常翻閱手冊,花費了很多時間。程序一不小心就會出錯不能運行,還需要認真檢查,細心細心加細心才能做好。反復的進行分析調(diào)試,最后一天把程序調(diào)試通過后,進行課程設計報告的撰寫。雖然很幸苦但是,最終的成果還是令人滿意的,最后感謝指導老師對我們幫助和支持。指導教師評語:成績:填表時間:指導教師簽名:課程設計(大作業(yè))報告一、題目分析系統(tǒng)需求分析(1)
5、設計目標:隨著市場經(jīng)濟的繁榮發(fā)展,人們的物質(zhì)生活得到極大的提高,手中的剩余資金也日益增多。受傳統(tǒng)觀念影響,絕大多數(shù)人喜歡把資金投進銀行,而在需要使用現(xiàn)金的時候再到銀行提取現(xiàn)金。這就導致銀行業(yè)務的急劇增加。雖然銀行網(wǎng)點越來越多,銀行的工作效率也隨著信息化有較明顯的增長,但是依舊不能滿足廣大用戶的需要。而一味的增加營業(yè)網(wǎng)點,從理論上雖然能稍微的緩解銀行的壓力,但是治標不治本,而且每增加一個網(wǎng)點,不僅要付出昂貴的資金成本,還需要長期投入人力資本,成本非常之昂貴。這時候就迫切的需要一種自動的,易于普及的,低成本的設備來解決這一問題。于是ATM機系統(tǒng)應運而生了。自動柜員機,即ATM,是指銀行在不同地點設
6、置一種小型機器,利用一張信用卡大小的膠卡上的磁帶記錄客戶的基本戶口資料(通常就是銀行卡),讓客戶可以透過機器進行提款、存款、轉(zhuǎn)賬等銀行柜臺服務,大多數(shù)客戶都把這種自助機器稱為自動提款機。本文正是通過設計一個ATM模擬模擬程序來實現(xiàn)ATM機系統(tǒng)的基本功能,充分運用自己所學的Java知識進行設計編程。(2)題目設計要求:本ATM柜員機的主要功能如下所述:要求使用圖形用戶界面。當輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:查詢余額:初始余額為10000元。ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支
7、。ATM存款:不能出現(xiàn)負存款。修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。ATM模擬系統(tǒng)總體設計結(jié)構(gòu)(1)設計思想:通過程序要求,我們可以清楚的知道本次設計的ATM柜員模擬程序需要實現(xiàn)四大功能,即查詢余額、取款、存款、修改密碼。初次之外,作為ATM系統(tǒng),還需要最基本的兩大功能,即登陸和退出。根據(jù)上述的功能分析,我們可以把整個ATM系統(tǒng)分為登陸模塊、查詢模塊、取款模塊、存款模塊、修改密碼模塊。除此之外,還有在登陸系統(tǒng)后的功能選擇模塊,退出功能則鑲嵌在各個需要的模塊中。由于各個模塊的功能實現(xiàn)是通過界面顯示出
8、來的,則程序設計又可以理解為幾大界面的設計:登陸界面、主界面、查詢余額界面、取款界面、存款界面、修改密碼界面。除了幾大界面之外,還有系統(tǒng)的初始化,主要是初始卡號、密碼的設定等。在程序的大體框架確定之后,我們需要了解各個模塊所要實現(xiàn)和需要具有的功能。根據(jù)現(xiàn)有的銀行ATM系統(tǒng),我們可以很快就可以了解本次設計的ATM系統(tǒng)應該具有的操作。登陸界面用戶輸入正確的賬號和密碼就可以登錄到該系統(tǒng)的主界面中去,進行相應的操作:取款、存款、查詢、修改密碼。主界面主界面包括查詢、存款、取款、修改密碼、退出的功能按鈕,按下相應的按鈕,可以進行相應的操作。查詢界面在主界面中按下查詢按鈕可以進行查詢操作。通過查詢功能我們
9、可以查詢賬戶的余額,在查詢過程中我們可以選擇取款的業(yè)務,除此之外,查詢界面之中還有返回和退出的操作。返回的操作會使用戶回到主界面,退出的操作會使用戶直接回到登陸界面。取款界面取款界面既可以通過主界面進入,也可以通過查詢、存款等操作過程中的界面進入。取款功能在對話框中輸入你想要取出的金額,但是次金額不可以比賬戶的余額大,且必須是100的整數(shù)倍,取款完畢,會彈出是否顯示余額的提示,選“是”的話就會進入查詢界面,選“否”的話,則回到主界面。存款界面在主界面按下存款按鈕可以進行存款操作,在對話中輸入你需要存入的金額,所輸入的數(shù)字也要是100的整數(shù)倍,而且不可以是負數(shù)。存款完畢,會彈出是否顯示余額的提示
10、,選“是”的話就會進入查詢界面,選“否”的話,則回到主界面。修改密碼選擇修改密碼按鈕可以進行修改密碼房,但是要先輸入就密碼正確并且兩次輸入新密碼致才可以修改密碼。修改完成后,會返回主界面。ATM柜員機總體流程圖,如圖圖1修改密碼修改密碼圖圖1ATM柜員機模擬模擬系統(tǒng)UML圖,如圖圖2ATIV1model+JOptionPane.showMessageDiaiog(nuII)+ATMmodel-+main(5tringJargs:void3系統(tǒng)開發(fā)及運行環(huán)境軟件平臺:Eclipse,jdk全套軟件,editpuls編輯器Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言
11、,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),通過安裝不同的插件Eclipse可以支持不同的計算機語言,比如C+和Python等開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。圖3二、各模塊分析與實現(xiàn)1系統(tǒng)各模塊介紹代碼中出現(xiàn)的Account
12、類、MainFrame類、Load類、Take類、Input類、Setpew類和Display類都繼承了Java類JFrame。(1)賬戶創(chuàng)建模塊ClassAccout創(chuàng)建客戶,初始化客戶信息功能以及保存客戶信息,例如:卡號、密碼、原有余額、取款后卡里的余額以及存款后卡里的余額。此類包含的成員有:成員變量account、count、password和方法構(gòu)造方法Account。實現(xiàn)了賬戶信息的初始化工作,設置默認賬戶信息,賬號:123456,密碼:123456。以便后續(xù)測試登陸時作為進入ATM模擬系統(tǒng)的信息憑證。創(chuàng)建賬戶關鍵代碼:classAccountprivateintcount=1000
13、0;/初始賬戶余額10000privateStringaccount=123456;/初始賬號privateStringpassword=123456;/初始密碼publicAccount()/賬戶函數(shù)publicvoidsetpw(Stringpassword)/設置密碼this.password=password;publicvoiddeccount(intmoney)/deccount取款count-=money;取款后再原來基礎上減所取部分publicvoidreccount(intmoney)/reccount存款count+=money;存款后在原來基礎上加所存部分主界面構(gòu)造模塊C
14、lassMainFrame構(gòu)造主界面,提供業(yè)務選擇,讓用戶可以在這個界面選擇存款、取款、查詢余額、修改密碼。它包含的成員有:構(gòu)造方法MainFrame()和初始化主界面的方法initComponents()以及成員變量checked、cunkuan、quite、qukuan、reset。實現(xiàn)的功能主要為主界面的初始化,主界面的布局管理,設置好查詢、存款、取款、退出、返回的操作按鈕。關鍵代碼:classMainFrameextendsJFrame主框架方法由JFrame繼承而來publicJButtonchecked;/檢測publicJButtoncunkuan;/存款publicJButto
15、nquit;/退出publicJButtonqukuan;/取款publicJButtonreset;/重設/框架按鈕參數(shù)publicMainFrame()/主框架函數(shù)initComponents();/添加組件this.setLocationRelativeTo(null);/設置窗口相對于指定組件的位置this.setVisible(false);/隱藏其他窗口登陸模塊ClassLoad實現(xiàn)登錄功能和登錄界面,如果用戶名和密碼匹配就可以登錄到主界面否則報錯。它的成員有:Jpassword、accountnumcommitt、JL1、JL2和構(gòu)造方法Load()和初始化方法initCompo
16、nents()。關鍵代碼:classLoadextendsJFramepublicJPasswordFieldJpassword;publicJTextFieldaccountnum;/publicJButtoncommit;/增刪privateJLabeljLl;設置對齊privateJLabeljL2;publicLoad()initComponents();/初始化添加組件的和添加監(jiān)聽器this.setLocationRelativeTo(null);/使窗口至于屏幕中央this.setVisible(true);(4)取款模塊ClassTake實現(xiàn)取款功能,按返回鍵返回主界面,按清除鍵
17、可以刪除輸入數(shù)字,并且取出的金額必須是100的整數(shù)倍,一次取出的金額不能超過5000,取完款后可以顯示余額。該類的成員有:back、clear、commit、quite、JL1、JT1和構(gòu)造方法Take()和初始化的initComponents()。關鍵代碼:classTakeextendsJFramepublicJButtonback;publicJButtonclear;publicJButtoncommit;privateJLabeljL1;publicJTextFieldjT1;publicJButtonquit;Stringstr=;publicTake()initComponent
18、s();this.setLocationRelativeTo(null);this.setVisible(false);(5)存款模塊Classinput實現(xiàn)存款功能,存款的金額必須是100的整數(shù)倍,否則報錯提示重新輸入。成員有:clear、commit、jL1、T1、str以及構(gòu)造函數(shù)Inputhe()和初始化方法initComponents()。classInputextendsJFrameprivateJButtonclear;privateJButtoncommit;privateJLabeljL1;privateJTextFieldjT1;Stringstr=;publicInput
19、()initComponents();this.setLocationRelativeTo(null);this.setResizable(false);this.setVisible(false);(6)顯示余額模塊ClassDisplay功能為顯示當前余額,在顯示余額時JTextField的內(nèi)容不可以編輯,成員有:成員變量back、jLl、quit、qukuan和構(gòu)造方法Display()和方法數(shù)set(Stringstr)和初始化的方法initComponents()。關鍵代碼:classDisplayextendsJFramepublicJButtonback;privateJLabe
20、ljLl;publicJTextFieldjTl;publicJButtonquit;publicJButtonqukuan;publicDisplay()initComponents();jTl.setText(String.valueOf(myaccount.get();this.setLocationRelativeTo(null);this.setVisible(false);(7)修改密碼模塊classSetpw創(chuàng)建此類是為了實現(xiàn)修改密碼的功能,設置的密碼必須是六位以上的字符,并且所設置的密碼不能是同一個字符組成,否則報錯。成員有:成員變量commit、commitpwjPwcomm
21、it、jPwnew、jPwold、newpw、oldpw、quit和構(gòu)造方法Setpw()和初始化方法initComponents()。代碼:classSetpwextendsJFramepublicJButtoncommit;publicJLabelcommitpw;publicJPasswordFieldjPwcommit;publicJPasswordFieldjPwnew;publicJPasswordFieldjPwold;publicJLabelnewpw;publicJLabeloldpw;publicJButtonquit;publicSetpw()initComponents
22、();this.setResizable(false);this.setLocationRelativeTo(null);this.setVisible(false);2.事件監(jiān)聽組件介紹MainFrame類的監(jiān)聽模塊在該類中設置了五個監(jiān)聽器,監(jiān)聽鼠標單擊按鈕,分別監(jiān)聽退出quit.addActionListener(newActionListener()、修改密碼reset.addActionListener(newActionListener()、查詢checked.addActionListener(newActionListener()、取款cunkuan.addActionListe
23、ner(newActionListener()、存款qukuan.addActionListener(newActionListener()等按鈕的事件。Load類的監(jiān)模塊commit.addActionListener(newjava.awt.event.ActionListener()在該類中只有一個監(jiān)聽器,監(jiān)聽鼠標單擊“確定”按鈕時的事件。Take類的監(jiān)聽模塊在該類中設置了四個監(jiān)聽器,同樣是監(jiān)聽鼠標單擊按鈕事件,分別監(jiān)聽“清除”clear.addActionListener(newActionListener()、“退出”quit.addActionListener(newActionL
24、istener()、“返回”back.addActionListener(newActionListener()、“確定”commit.addActionListener(newActionListener()按鈕的事件。(4)input類的監(jiān)模塊在這個類中共設置了兩個監(jiān)聽器,它們也是監(jiān)聽鼠標單擊按鈕事件。它們監(jiān)聽“清除”clear.addActionListener(newActionListener()、“確定”commit.addActionListener(newActionListener()按鈕事件。(5)display類的監(jiān)聽模塊在display中設置了三個監(jiān)聽器,都屬于監(jiān)聽鼠標
25、單擊按鈕事件,分別監(jiān)聽“退出”quit.addActionListener(newActionListener()、“返回”back.addActionListener(newActionListener()、“取款”qukuan.addActionListener(newjava.awt.event.ActionListener()按鈕事件。(6)Setpw類的監(jiān)聽模塊在這個類中設置了兩個監(jiān)聽器,它們是監(jiān)聽鼠標單擊按鈕事件,分別監(jiān)聽“確定”commit.addActionListener(newActionListener()、“退出”quit.addActionListener(newAc
26、tionListener()按鈕事件。三、系統(tǒng)調(diào)試分析1.登陸界面打開MyEcplise,編譯運行程序后,將會看到如圖3所示的歡迎界面。點擊確定之后,會進入如圖4所示的登陸界面。LJ圖3歡迎登陸頁面圖4登陸界面進入到登陸界面后,需要輸入賬號和密碼,當賬號和密碼正確時,才會進入到主界面。賬號和密碼不符合時,會進入如圖4所示的錯誤提示界面。初始賬號和密碼為“123456”。圏茁TM桓員腳程序圖5登陸出錯提示界面2.賬號密碼登陸當輸入的密碼和卡號正確,單擊確定后就會進入到主界面,選擇服務,如圖6所示,點擊相應的按鈕就可以選擇所需要的服務了,點擊“退出”會回到登陸界面。圖6主界面3存款點擊存款,進入存
27、款界面,如圖7所示。圖7存款界面當輸入的錢數(shù)不是100的倍數(shù)時,就會彈出如圖7所示的錯誤提示界面。輸入正確時,進入如圖9所示的界面。選“是”的話,會進入查詢余額界面,查看存款操作是否成功;選“否”的話,會回到主界面。圖8存款出錯提示界面圖9操作完成后的選擇界面取款點擊取款按鈕,進入取款界面,如圖10所示。當輸入的錢數(shù)是負數(shù),或者是0,或者不是100的倍數(shù),又或者大于5000時,會彈出如圖11所示的出錯提示界面。當輸入的錢數(shù)符合要求時,會彈出如同存款操作一樣的選擇界面,如圖9所示。圖10取款界面即即圖11取款錯誤提示界面查詢點擊主界面中的查詢按鈕,或者是在存款和取款操作完成后的選擇界面中選“是”
28、的話,就會進入到如圖12所示的查詢界面。點擊取款按鈕,會進入到取款界面。初始金額為50000,圖12中的余額是經(jīng)過存款、取款操作以后的金額。圖12查詢界面修改密碼點擊主界面中的修改密碼按鈕,進入到如圖13所示的修改密碼界面。新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼,彈出如圖14所示的提示界面,點擊確定后會回到主界面。否則,密碼修改不成功,點擊確定按鈕,界面沒有反應。圖13修改密碼界面圖14修改密碼成功提示界面經(jīng)過上面的操作,既測試了程序的實現(xiàn)效果,又對系統(tǒng)的使用進行了詳細的說明。從上面的運行結(jié)果可以看出,程序基
29、本上實現(xiàn)了所有的設計要求,而且運行正常。四、總結(jié)通過為時一周的課程設計,我受益匪淺,把平時所學的知識通通運用了進來,雖然平時積淀的知識點比較少、比較單一,但是在這次實驗中把零零碎碎的知識都連貫起來了,也達到了課程設計的目的,最主要的是通過一周的努力我終于用面向?qū)ο蟪绦蛟O計的知識做出了這個“ATM柜員機模擬系統(tǒng)”由于知識的積淀比較少,且有些知識掌握不太牢靠,記憶模模糊糊的,最后決定惡補一下落下的知識點再進行程序的設計。第一天,去圖書館借了相關圖書,把知識點打牢,然后參考了相似的的幾個實例,并進行了一些分析和總結(jié)?;A功課做好以后第二天正式開工,選定好了題目,進行方法選擇、框架設計、畫出流程圖、U
30、ML圖,進行了初步的程序設計構(gòu)想。第三天,編寫程序代碼,這個過程我覺得是最艱難的,因為代碼太多,還有API接口不是很熟悉,所以要經(jīng)常翻閱手冊,花費了很多時間。程序一不小心就會出錯不能運行,還需要認真檢查,細心細心加細心才能做好。反復的進行分析調(diào)試,最后一天把程序調(diào)試通過后,進行課程設計報告的撰寫。雖然很幸苦但是,最終的成果還是令人滿意的,最后感謝指導老師對我們幫助和支持。在這次的課程設計中,我主要運用了Java圖形界面編程方面的知識,加深了對Java語言中各個基礎知識點的了解和應用,將自己所學的知識運用到實際操作當中,而不再是紙上談兵。通過這次設計,我深刻感受到了面向?qū)ο笳Z言中類庫的強大功能,
31、掌握了運用Java中的類實現(xiàn)某些基本功能,并學會了自己查詢使用類的方法,為以后的面向?qū)ο笳Z言的自學奠定了基礎。在這次課程設計中,我查了很多資料,很好的鍛煉了自己的查閱資料的能力和快速吸收新知識的能力。同時,也加深了與同學的交流,在設計過程中,我們互相幫助,共度難關,培養(yǎng)了很好的默契??傊谶@次課程設計中,我學到了很多的知識,同時也感謝我的同學的幫助和指導。在以后的學習當中,我會更加努力的學習好專業(yè)知識,并將所學的知識用于實踐當中去,以便牢固掌握知識。五、參考文獻1葉核亞.Java程序設計實用教程(第3版電子工業(yè)出版社,20102耿祥義.JAVA課程設計清華大學出版,20093王文濤,袁海燕J
32、AVA實用程序設計100例M北京:人民郵電出版社,2005.54雍俊海JAVA程序設計M北京:清華大學出版社,2006.85劉寶林JAVA程序設計與案例M北京:高等教育出版社,2006.11史斌星,史佳Java基礎及應用教程M.北京清華大學出版社.20001.Y.DanielLiang.Java語言程序設計M.北京.機械工業(yè)出版社.2008.六、附錄源代碼程序源代碼:/*API接口*/importjavax.swing.*;importjavax.swing.JOptionPane;importjava.awt.event.*;importjava.awt.*;/|*x*x*x*x*x*x*x
33、*x*x*x*/I*、-/publicclassATMmodelAccountmyaccount=newAccount。;/賬戶實例化Loadload=newLoad();MainFrameJmain=newMainFrame();/主框架實例化Taketake=newTake();Inputinput=newInput();Displaydis=newDisplay();Setpwsetpw=newSetpw();/設置密碼實例化/*X*X*X*X*X*X*X*X*X*X*X*X*II*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*/I*f*/publicATMmo
34、del()JOptionPane.showMessageDialog(null,歡迎使用ATM柜員模擬系統(tǒng)!“);/進入主界面時用JOptionPane.showMessageDialog();彈出系統(tǒng)提示publicstaticvoidmain(Stringargs)ATMmodelatm=newATMmodel();/主函數(shù)實例化/*創(chuàng)建賬戶*/classAccountTOC o 1-5 h zprivateintcount=10000;/初始賬戶余額10000privateStringaccount=123456;/初始賬號privateStringpassword=123456;/初始
35、密碼publicAccount()/賬戶函數(shù)publicvoidsetpw(Stringpassword)/設置密碼this.password=password;publicvoiddeccount(intmoney)/deccount取款count-=money;/取款后再原來基礎上減所取部分publicvoidreccount(intmoney)/reccount存款count+=money;/存款后在原來基礎上加所存部分publicintget()returncount;/獲取余額publicStringgetaccount()returnaccount;/獲取賬號publicStrin
36、ggetpw()returnpassword;/獲取密碼/*X*X*X*X*X*X*X*X*X*X*X*X*X*X*II丿JILjI/*主界面*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*/classMainFrameextendsJFrame/主框架方法由JFrame繼承而來publicJButtonchecked;/檢測publicJButtoncunkuan;/存款publicJButtonquit;/退出publicJButtonqukuan;/取款publicJButtonreset;/重設/框架按鈕參數(shù)publicMainFram
37、e()/主框架函數(shù)initComponents();/添加組件this.setLocationRelativeTo(null);/設置窗口相對于指定組件的位置this.setVisible(false);/隱藏其他窗口/*控件初始化*/privatevoidinitComponents()/初始化添加組件的和添加監(jiān)聽器cunkuan=newJButton();qukuan=newJButton();checked=newJButton();reset=newJButton();quit=newJButton();setDefaultCloseOperation(WindowConstants.
38、EXIT_ON_CLOSE);/退出程序setTitle(ATM柜員模擬程序”);setName(mianframe);/設置名稱setResizable(false);/窗口大小不可改變cunkuan.setText(存款);/將“cunkuan”轉(zhuǎn)換成“存款”ActionListener()/設置事件監(jiān)聽publicvoidactionPerformed(ActionEventevt)/活動事件響應cunkuanActionPerformed(evt););qukuan.setText(取款”);qukuan.addActionListener(newActionListener()pub
39、licvoidactionPerformed(ActionEventevt)qukuanActionPerformed(evt););checked.setText(查詢”);checked.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt)checkedActionPerformed(evt););reset.setText(修改密碼”);reset.addActionListener(newActionListener()publicvoidactionPerformed(Action
40、Eventevt)resetActionPerformed(evt););quit.setText(退出”);quit.addActionListener(newActionListener()cunkuan.addActionListener(newpublicvoidactionPerformed(ActionEventevt)quitActionPerformed(evt););/程序界面劃分,界面布局/GroupLayoutlayout=newGroupLayout(getContentPane();/GroupLayout它將組件按層次分組,以決定它們在Container中的位置ge
41、tContentPane()setLayout(layout);/內(nèi)容面板layout.setHorizontalGroup(/水平劃分layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup
42、().addComponent(cunkuan).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,105,Short.MAX_VALUE).addComponent(reset).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addComponent(qukuan).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELA
43、TED,143,Short.MAX_VALUE).addComponent(quit).addComponent(checked).addContainerGap();layout.setVerticalGroup(/垂直劃分layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(46,46,46).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.
44、Alignment.BASELINE).addComponent(cunkuan).addComponent(reset).addGap(51,51,51).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(quit).addComponent(qukuan).addGap(57,57,57).addComponent(checked).addGap(39,39,39);pack();/使此JFrame的子組件按其首選大小進行布局privatevoidquit
45、ActionPerformed(ActionEventevt)/識別是否退出load.setVisible(true);this.setVisible(false);privatevoidresetActionPerformed(ActionEventevt)/識別是否修改setpw.setVisible(true);this.setVisible(false);privatevoidcheckedActionPerformed(ActionEventevt)/識別是否查詢dis.setVisible(true);this.setVisible(false);privatevoidqukuan
46、ActionPerformed(ActionEventevt)/識別是否取款take.setVisible(true);this.setVisible(false);privatevoidcunkuanActionPerformed(ActionEventevt)/識別是否存款input.setVisible(true);this.setVisible(false);/*登錄界面*/classLoadextendsJFramepublicJPasswordFieldJpassword;publicJTextFieldaccountnum;/publicJButtoncommit;/增刪priv
47、ateJLabeljLl;/設置對齊privateJLabeljL2;publicLoad()initComponents();/初始化添加組件的和添加監(jiān)聽器this.setLocationRelativeTo(null);/使窗口至于屏幕中央this.setVisible(true);privatevoidinitComponents()jL1=newJLabel();/對齊方法jL2=newJLabel();accountnum=newJTextField();/允許編輯單行文本commit=newJButton();Jpassword=newJPasswordField();/單獨提供它
48、可以較方便地安全更改JTextField的UI而不影響密碼輸入setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setTitle(ATM柜員模擬程序“);/設置標題setResizable(false);/窗口大小不可改變jL1.setText(賬號:);jL2.setText(密碼:);commit.setText(確定);commit.addActionListener(newjava.awt.event.ActionListener()/設置事件監(jiān)聽publicvoidactionPerformed(java.awt.even
49、t.ActionEventevt)commitActionPerformed(evt););/*界面登陸設計*/javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane();getContentPane()setLayout(layout);/獲取組件窗格layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialG
50、roup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap(50,Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jLI)/添加組件jLl.addComponent(jL2).addGap(31,31,3
51、1).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false).addComponent(Jpassword).addComponent(accountnum,javax.swing.GroupLayout.DEFAULT_SIZE,143,Short.MAX_VALUE).addGroup(layout.createSequentialGroup().addGap(122,122,122).addComponent(commi.addContainerGap(72,Short.MA
52、X_VALUE);layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(85,85,85).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(accountnum,javax.swing.GroupLayout.PREFERRED_SI
53、ZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jL1).addGap(41,41,41).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jL2).addComponent(Jpassword,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.D
54、EFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,72,Short.MAX_VALUE).addComponent(commit).addGap(64,64,64);pack();t)privatevoidcommitActionPerformed(ActionEventevt)t)if(accountnum.getText().equals(myaccount.getaccount()&Jpassword.
55、getText().equals(myaccount.getpw()/識別密碼是否與初始密碼一致Jmain.setVisible(true);this.setVisible(false);accountnum.setText();Jpassword.setText();elseJOptionPane.showMessageDialog(null,密碼與賬戶不匹配,請重新輸入,出錯提示,1);/密碼不正確的提示accountnum.setText();Jpassword.setText();/*取款界面*/classTakeextendsJFramepublicJButtonback;publi
56、cJButtonclear;publicJButtoncommit;privateJLabeljL1;publicJTextFieldjT1;publicJButtonquit;Stringstr=;publicTake()initComponents();this.setLocationRelativeTo(null);this.setVisible(false);privatevoidinitComponents()jL1=newJLabel();jT1=newJTextField();commit=newJButton();back=newJButton();quit=newJButto
57、n();clear=newJButton();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);jLl.setText(取款金額:);commit.setText(確定”);commit.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt)commitActionPerformed(evt););back.setText(返回”);back.addActionListener(newActionListener()publicvo
58、idactionPerformed(ActionEventevt)backActionPerformed(evt););quit.setText(退出”);quit.addActionListener(newActionListener()publicvoidactionPerformed(java.awt.event.ActionEventevt)quitActionPerformed(evt););clear.setText(清除”);clear.addActionListener(newActionListener()publicvoidactionPerformed(ActionEve
59、ntevt)clearActionPerformed(evt););javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane();getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(41,41,41).addG
60、roup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jL1).addGap(33,33,33).addComponent(jT1,javax.swing.GroupLayout.PREFERRED_SIZE,174,javax.swing.GroupLayout.PREFERRED_SIZE).addGroup(layout.createSequentialGroup().addCompone
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共自行車租賃服務合同范本8篇
- 2025年度有機農(nóng)產(chǎn)品生產(chǎn)加工合作合同范本3篇
- 2025年度面粉產(chǎn)品區(qū)域總代理合同樣本4篇
- 2025年度航空保險理賠服務合同
- 二零二五年度企業(yè)稅務顧問聘請協(xié)議3篇
- 2025年國際貿(mào)易實訓報告編寫與推廣服務合同3篇
- 二零二五年專業(yè)植物租賃及養(yǎng)護服務合同2篇
- 二零二五年度環(huán)保型木工清工分包合同創(chuàng)新范本3篇
- 2025年度木材加工企業(yè)原材料采購合同4篇
- 2025年度國際貨運代理合同欺詐風險控制與合同管理2篇
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評標數(shù)字見證服務規(guī)范
- 人教版2024-2025學年八年級上學期數(shù)學期末壓軸題練習
- 【人教版化學】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學年八年級上學期期末數(shù)學試題(原卷版)
- 俄語版:中國文化概論之中國的傳統(tǒng)節(jié)日
- 2022年湖南省公務員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護理匯報
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語文試卷及答案
- 2024年全國統(tǒng)一高考數(shù)學試卷(新高考Ⅱ)含答案
評論
0/150
提交評論