java課程設(shè)計(jì)-ATM柜員機(jī)模擬程序_第1頁(yè)
java課程設(shè)計(jì)-ATM柜員機(jī)模擬程序_第2頁(yè)
java課程設(shè)計(jì)-ATM柜員機(jī)模擬程序_第3頁(yè)
java課程設(shè)計(jì)-ATM柜員機(jī)模擬程序_第4頁(yè)
java課程設(shè)計(jì)-ATM柜員機(jī)模擬程序_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)(大作業(yè))報(bào)告課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目:ATM柜員機(jī)模擬程序 院 系:信息技術(shù)學(xué)院 班 級(jí): 設(shè) 計(jì) 者: 學(xué) 號(hào): 指導(dǎo)教師: 設(shè)計(jì)時(shí)間:2016-1-42016-1-8 信息技術(shù)學(xué)院昆明學(xué)院課程設(shè)計(jì)(大作業(yè))任務(wù)書姓 名:院(系):信息技術(shù)學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào):任務(wù)起止日期:2016-1-42016-1-8課程設(shè)計(jì)題目:設(shè)計(jì)一個(gè)ATM柜員機(jī)模擬程序,實(shí)現(xiàn)系統(tǒng)登錄、余額查詢、ATM取款、ATM存款、修改密碼等一些ATM柜員機(jī)的基本功能,模擬ATM的工作原理和人機(jī)交互。課程設(shè)計(jì)要求:使用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:1、查詢余額:初始余額為10000元2、ATM取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。3、ATM存款:不能出現(xiàn)負(fù)存款。4、修改密碼:新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。工作計(jì)劃及安排:1月4號(hào),老師布置任務(wù)、講授設(shè)計(jì)內(nèi)容。1月5號(hào),查閱資料,進(jìn)行初步設(shè)想并畫出流程圖。 1月6號(hào),詳細(xì)設(shè)計(jì),創(chuàng)建各個(gè)類、編寫程序代碼。1月7號(hào),測(cè)試,對(duì)程序進(jìn)行調(diào)試、運(yùn)行并進(jìn)行相應(yīng)的分析。1月8號(hào),書寫課程設(shè)計(jì)報(bào)告,驗(yàn)收、考核及答辯。指導(dǎo)教師簽字 年 月 日 課程設(shè)計(jì)(大作業(yè))成績(jī)學(xué)號(hào): 姓名: 指導(dǎo)教師: 課程設(shè)計(jì)題目:設(shè)計(jì)一個(gè)ATM柜員機(jī)模擬程序,實(shí)現(xiàn)系統(tǒng)登錄、余額查詢、ATM取款、ATM存款、修改密碼等一些ATM柜員機(jī)的基本功能,模擬ATM的工作原理和人機(jī)交互。總結(jié):通過(guò)為時(shí)一周的課程設(shè)計(jì),我受益匪淺,把平時(shí)所學(xué)的知識(shí)通通運(yùn)用了進(jìn)來(lái),雖然平時(shí)積淀的知識(shí)點(diǎn)比較少、比較單一,但是在這次實(shí)驗(yàn)中把零零碎碎的知識(shí)都連貫起來(lái)了,也達(dá)到了課程設(shè)計(jì)的目的,最主要的是通過(guò)一周的努力我終于用面向?qū)ο蟪绦蛟O(shè)計(jì)的知識(shí)做出了這個(gè)“ATM柜員機(jī)模擬系統(tǒng)”。由于知識(shí)的積淀比較少,且有些知識(shí)掌握不太牢靠,記憶模模糊糊的,最后決定惡補(bǔ)一下落下的知識(shí)點(diǎn)再進(jìn)行程序的設(shè)計(jì)。第一天,去圖書館借了相關(guān)圖書,把知識(shí)點(diǎn)打牢,然后參考了相似的的幾個(gè)實(shí)例,并進(jìn)行了一些分析和總結(jié)?;A(chǔ)功課做好以后第二天正式開工,選定好了題目,進(jìn)行方法選擇、框架設(shè)計(jì)、畫出流程圖、UML圖,進(jìn)行了初步的程序設(shè)計(jì)構(gòu)想。第三天,編寫程序代碼,這個(gè)過(guò)程我覺(jué)得是最艱難的,因?yàn)榇a太多,還有API接口不是很熟悉,所以要經(jīng)常翻閱手冊(cè),花費(fèi)了很多時(shí)間。程序一不小心就會(huì)出錯(cuò)不能運(yùn)行,還需要認(rèn)真檢查,細(xì)心細(xì)心加細(xì)心才能做好。反復(fù)的進(jìn)行分析調(diào)試,最后一天把程序調(diào)試通過(guò)后,進(jìn)行課程設(shè)計(jì)報(bào)告的撰寫。雖然很幸苦但是,最終的成果還是令人滿意的,最后感謝指導(dǎo)老師對(duì)我們幫助和支持。指導(dǎo)教師評(píng)語(yǔ):成績(jī):填表時(shí)間:指導(dǎo)教師簽名:課程設(shè)計(jì)(大作業(yè))報(bào)告一、 題目分析1.系統(tǒng)需求分析(1)設(shè)計(jì)目標(biāo):隨著市場(chǎng)經(jīng)濟(jì)的繁榮發(fā)展,人們的物質(zhì)生活得到極大的提高,手中的剩余資金也日益增多。受傳統(tǒng)觀念影響,絕大多數(shù)人喜歡把資金投進(jìn)銀行,而在需要使用現(xiàn)金的時(shí)候再到銀行提取現(xiàn)金。這就導(dǎo)致銀行業(yè)務(wù)的急劇增加。雖然銀行網(wǎng)點(diǎn)越來(lái)越多,銀行的工作效率也隨著信息化有較明顯的增長(zhǎng),但是依舊不能滿足廣大用戶的需要。而一味的增加營(yíng)業(yè)網(wǎng)點(diǎn),從理論上雖然能稍微的緩解銀行的壓力,但是治標(biāo)不治本,而且每增加一個(gè)網(wǎng)點(diǎn),不僅要付出昂貴的資金成本,還需要長(zhǎng)期投入人力資本,成本非常之昂貴。這時(shí)候就迫切的需要一種自動(dòng)的,易于普及的,低成本的設(shè)備來(lái)解決這一問(wèn)題。于是ATM機(jī)系統(tǒng)應(yīng)運(yùn)而生了。自動(dòng)柜員機(jī),即ATM,是指銀行在不同地點(diǎn)設(shè)置一種小型機(jī)器,利用一張信用卡大小的膠卡上的磁帶記錄客戶的基本戶口資料(通常就是銀行卡),讓客戶可以透過(guò)機(jī)器進(jìn)行提款、存款、轉(zhuǎn)賬等銀行柜臺(tái)服務(wù),大多數(shù)客戶都把這種自助機(jī)器稱為自動(dòng)提款機(jī)。本文正是通過(guò)設(shè)計(jì)一個(gè)ATM模擬模擬程序來(lái)實(shí)現(xiàn)ATM機(jī)系統(tǒng)的基本功能,充分運(yùn)用自己所學(xué)的Java知識(shí)進(jìn)行設(shè)計(jì)編程。(2)題目設(shè)計(jì)要求:本ATM柜員機(jī)的主要功能如下所述:要求使用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:l 查詢余額:初始余額為10000元。l ATM取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。l ATM存款:不能出現(xiàn)負(fù)存款。l 修改密碼:新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。2.ATM模擬系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)(1)設(shè)計(jì)思想:通過(guò)程序要求,我們可以清楚的知道本次設(shè)計(jì)的ATM柜員模擬程序需要實(shí)現(xiàn)四大功能,即查詢余額、取款、存款、修改密碼。初次之外,作為ATM系統(tǒng),還需要最基本的兩大功能,即登陸和退出。根據(jù)上述的功能分析,我們可以把整個(gè)ATM系統(tǒng)分為登陸模塊、查詢模塊、取款模塊、存款模塊、修改密碼模塊。除此之外,還有在登陸系統(tǒng)后的功能選擇模塊,退出功能則鑲嵌在各個(gè)需要的模塊中。由于各個(gè)模塊的功能實(shí)現(xiàn)是通過(guò)界面顯示出來(lái)的,則程序設(shè)計(jì)又可以理解為幾大界面的設(shè)計(jì):登陸界面、主界面、查詢余額界面、取款界面、存款界面、修改密碼界面。除了幾大界面之外,還有系統(tǒng)的初始化,主要是初始卡號(hào)、密碼的設(shè)定等。在程序的大體框架確定之后,我們需要了解各個(gè)模塊所要實(shí)現(xiàn)和需要具有的功能。根據(jù)現(xiàn)有的銀行ATM系統(tǒng),我們可以很快就可以了解本次設(shè)計(jì)的ATM系統(tǒng)應(yīng)該具有的操作。a.登陸界面用戶輸入正確的賬號(hào)和密碼就可以登錄到該系統(tǒng)的主界面中去,進(jìn)行相應(yīng)的操作:取款、存款、查詢、修改密碼。b.主界面主界面包括查詢、存款、取款、修改密碼、退出的功能按鈕,按下相應(yīng)的按鈕,可以進(jìn)行相應(yīng)的操作。c.查詢界面在主界面中按下查詢按鈕可以進(jìn)行查詢操作。通過(guò)查詢功能我們可以查詢賬戶的余額,在查詢過(guò)程中我們可以選擇取款的業(yè)務(wù),除此之外,查詢界面之中還有返回和退出的操作。返回的操作會(huì)使用戶回到主界面,退出的操作會(huì)使用戶直接回到登陸界面。d.取款界面取款界面既可以通過(guò)主界面進(jìn)入,也可以通過(guò)查詢、存款等操作過(guò)程中的界面進(jìn)入。取款功能在對(duì)話框中輸入你想要取出的金額,但是次金額不可以比賬戶的余額大,且必須是100的整數(shù)倍,取款完畢,會(huì)彈出是否顯示余額的提示,選“是”的話就會(huì)進(jìn)入查詢界面,選“否”的話,則回到主界面。e.存款界面在主界面按下存款按鈕可以進(jìn)行存款操作,在對(duì)話中輸入你需要存入的金額,所輸入的數(shù)字也要是100的整數(shù)倍,而且不可以是負(fù)數(shù)。存款完畢,會(huì)彈出是否顯示余額的提示,選“是”的話就會(huì)進(jìn)入查詢界面,選“否”的話,則回到主界面。f.修改密碼選擇修改密碼按鈕可以進(jìn)行修改密碼房,但是要先輸入就密碼正確并且兩次輸入新密碼一致才可以修改密碼。修改完成后,會(huì)返回主界面。(2)ATM柜員機(jī)總體流程圖,如圖 圖1圖1(3)ATM柜員機(jī)模擬模擬系統(tǒng)UML圖,如圖 圖2 圖 23.系統(tǒng)開發(fā)及運(yùn)行環(huán)境軟件平臺(tái):Eclipse,jdk全套軟件,editpuls編輯器Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE)。最初主要用來(lái)Java語(yǔ)言開發(fā),通過(guò)安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語(yǔ)言,比如C+和Python等開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。 圖 3二、各模塊分析與實(shí)現(xiàn)1.系統(tǒng)各模塊介紹代碼中出現(xiàn)的Account類、MainFrame類、Load類、Take類、Input類、Setpew類和Display類都繼承了Java類JFrame。(1)賬戶創(chuàng)建模塊Class Accout創(chuàng)建客戶,初始化客戶信息功能以及保存客戶信息,例如:卡號(hào)、密碼、原有余額、取款后卡里的余額以及存款后卡里的余額。此類包含的成員有:成員變量account、count、password和方法構(gòu)造方法Account()。實(shí)現(xiàn)了賬戶信息的初始化工作,設(shè)置默認(rèn)賬戶信息,賬號(hào):,密碼:。以便后續(xù)測(cè)試登陸時(shí)作為進(jìn)入模擬系統(tǒng)的信息憑證。創(chuàng)建賬戶關(guān)鍵代碼:class Account private int count=10000; /初始賬戶余額10000 private String account=; /初始賬號(hào) private String password=; /初始密碼 public Account() /賬戶函數(shù) public void setpw(String password) /設(shè)置密碼 this.password=password; public void deccount(int money) /deccount 取款 count-=money;/取款后再原來(lái)基礎(chǔ)上減所取部分 public void reccount(int money) /reccount 存款 count+=money;/存款后在原來(lái)基礎(chǔ)上加所存部分 (2)主界面構(gòu)造模塊Class MainFrame構(gòu)造主界面,提供業(yè)務(wù)選擇,讓用戶可以在這個(gè)界面選擇存款、取款、查詢余額、修改密碼。它包含的成員有:構(gòu)造方法MainFrame()和初始化主界面的方法 initComponents()以及成員變量checked、cunkuan、quite、qukuan、reset。實(shí)現(xiàn)的功能主要為主界面的初始化,主界面的布局管理,設(shè)置好查詢、存款、取款、退出、返回的操作按鈕。關(guān)鍵代碼:class MainFrame extends JFrame /主框架方法由JFrame繼承而來(lái) public JButton checked; /檢測(cè) public JButton cunkuan; /存款 public JButton quit; /退出 public JButton qukuan; /取款 public JButton reset; /重設(shè) /框架按鈕參數(shù) public MainFrame() /主框架函數(shù) initComponents(); /添加組件 this.setLocationRelativeTo(null); /設(shè)置窗口相對(duì)于指定組件的位置 this.setVisible(false); /隱藏其他窗口 (3)登陸模塊Class Load 實(shí)現(xiàn)登錄功能和登錄界面,如果用戶名和密碼匹配就可以登錄到主界面否則報(bào)錯(cuò)。它的成員有:Jpassword、accountnum、committ、JL1、JL2和構(gòu)造方法Load()和初始化方法initComponents()。關(guān)鍵代碼:class Load extends JFrame public JPasswordField Jpassword; public JTextField accountnum;/ public JButton commit;/增刪 private JLabel jL1;/設(shè)置對(duì)齊 private JLabel jL2; public Load() initComponents(); /初始化添加組件的和添加監(jiān)聽(tīng)器 this.setLocationRelativeTo(null);/使窗口至于屏幕中央 this.setVisible(true); (4)取款模塊Class Take實(shí)現(xiàn)取款功能,按返回鍵返回主界面,按清除鍵可以刪除輸入數(shù)字,并且取出的金額必須是100的整數(shù)倍,一次取出的金額不能超過(guò)5000,取完款后可以顯示余額。該類的成員有:back、clear、commit、quite、JL1、JT1和構(gòu)造方法Take()和初始化的initComponents()。關(guān)鍵代碼:class Take extends JFrame public JButton back; public JButton clear; public JButton commit; private JLabel jL1; public JTextField jT1; public JButton quit; String str=; public Take() initComponents(); this.setLocationRelativeTo(null); this.setVisible(false); (5)存款模塊Class input實(shí)現(xiàn)存款功能,存款的金額必須是100的整數(shù)倍,否則報(bào)錯(cuò)提示重新輸入。成員有:clear、commit、jL1、jT1、str以及構(gòu)造函數(shù)Inputhe()和初始化方法initComponents()。關(guān)鍵代碼:class Input extends JFrame private JButton clear; private JButton commit; private JLabel jL1; private JTextField jT1; String str=; public Input() initComponents(); this.setLocationRelativeTo(null); this.setResizable(false); this.setVisible(false); (6)顯示余額模塊Class Display功能為顯示當(dāng)前余額,在顯示余額時(shí)JTextField的內(nèi)容不可以編輯,成員有:成員變量back、jL1、quit、qukuan和構(gòu)造方法Display()和方法數(shù)set(String str)和初始化的方法initComponents()。關(guān)鍵代碼:class Display extends JFrame public JButton back; private JLabel jL1; public JTextField jT1; public JButton quit; public JButton qukuan; public Display() initComponents(); jT1.setText(String.valueOf(myaccount.get(); this.setLocationRelativeTo(null); this.setVisible(false); (7)修改密碼模塊class Setpw創(chuàng)建此類是為了實(shí)現(xiàn)修改密碼的功能,設(shè)置的密碼必須是六位以上的字符,并且所設(shè)置的密碼不能是同一個(gè)字符組成,否則報(bào)錯(cuò)。成員有:成員變量commit、commitpw、jPwcommit、jPwnew、jPwold、newpw、oldpw、quit和構(gòu)造方法Setpw()和初始化方法initComponents()。關(guān)鍵代碼:class Setpw extends JFrame public JButton commit; public JLabel commitpw; public JPasswordField jPwcommit; public JPasswordField jPwnew; public JPasswordField jPwold; public JLabel newpw; public JLabel oldpw; public JButton quit; public Setpw() initComponents(); this.setResizable(false); this.setLocationRelativeTo(null); this.setVisible(false); 2.事件監(jiān)聽(tīng)組件介紹(1) MainFrame類的監(jiān)聽(tīng)模塊在該類中設(shè)置了五個(gè)監(jiān)聽(tīng)器,監(jiān)聽(tīng)鼠標(biāo)單擊按鈕,分別監(jiān)聽(tīng)退出quit.addActionListener(new ActionListener()、修改密碼reset.addActionListener(new ActionListener()、查詢checked.addActionListener(new ActionListener()、取款cunkuan.addActionListener(new ActionListener()、存款qukuan.addActionListener(new ActionListener()等按鈕的事件。(2) Load類的監(jiān)模塊commit.addActionListener(new java.awt.event.ActionListener()在該類中只有一個(gè)監(jiān)聽(tīng)器,監(jiān)聽(tīng)鼠標(biāo)單擊“確定”按鈕時(shí)的事件。(3) Take類的監(jiān)聽(tīng)模塊在該類中設(shè)置了四個(gè)監(jiān)聽(tīng)器,同樣是監(jiān)聽(tīng)鼠標(biāo)單擊按鈕事件,分別監(jiān)聽(tīng)“清除” clear.addActionListener(new ActionListener()、“退出” quit.addActionListener(new ActionListener()、“返回” back.addActionListener(new ActionListener()、“確定” commit.addActionListener(new ActionListener()按鈕的事件。(4 )input類的監(jiān)模塊在這個(gè)類中共設(shè)置了兩個(gè)監(jiān)聽(tīng)器,它們也是監(jiān)聽(tīng)鼠標(biāo)單擊按鈕事件。它們監(jiān)聽(tīng)“清除” clear.addActionListener(new ActionListener()、“確定” commit.addActionListener(new ActionListener()按鈕事件。(5 )display類的監(jiān)聽(tīng)模塊在display中設(shè)置了三個(gè)監(jiān)聽(tīng)器,都屬于監(jiān)聽(tīng)鼠標(biāo)單擊按鈕事件,分別監(jiān)聽(tīng)“退出” quit.addActionListener(new ActionListener()、“返回” back.addActionListener(new ActionListener()、“取款” qukuan.addActionListener(new java.awt.event.ActionListener()按鈕事件。(6 )Setpw類的監(jiān)聽(tīng)模塊在這個(gè)類中設(shè)置了兩個(gè)監(jiān)聽(tīng)器,它們是監(jiān)聽(tīng)鼠標(biāo)單擊按鈕事件,分別監(jiān)聽(tīng)“確定” commit.addActionListener(new ActionListener()、“退出” quit.addActionListener(new ActionListener()按鈕事件。三、系統(tǒng)調(diào)試分析1.登陸界面 打開MyEcplise,編譯運(yùn)行程序后,將會(huì)看到如圖3所示的歡迎界面。點(diǎn)擊確定之后,會(huì)進(jìn)入如圖4所示的登陸界面。圖3 歡迎登陸頁(yè)面圖4 登陸界面進(jìn)入到登陸界面后,需要輸入賬號(hào)和密碼,當(dāng)賬號(hào)和密碼正確時(shí),才會(huì)進(jìn)入到主界面。賬號(hào)和密碼不符合時(shí),會(huì)進(jìn)入如圖4所示的錯(cuò)誤提示界面。初始賬號(hào)和密碼為“”。圖5 登陸出錯(cuò)提示界面2.賬號(hào)密碼登陸 當(dāng)輸入的密碼和卡號(hào)正確,單擊確定后就會(huì)進(jìn)入到主界面,選擇服務(wù),如圖6所示,點(diǎn)擊相應(yīng)的按鈕就可以選擇所需要的服務(wù)了,點(diǎn)擊“退出”會(huì)回到登陸界面。圖6 主界面3.存款點(diǎn)擊存款,進(jìn)入存款界面,如圖7所示。圖7 存款界面當(dāng)輸入的錢數(shù)不是100的倍數(shù)時(shí),就會(huì)彈出如圖7所示的錯(cuò)誤提示界面。輸入正確時(shí),進(jìn)入如圖9所示的界面。選“是”的話,會(huì)進(jìn)入查詢余額界面,查看存款操作是否成功;選“否”的話,會(huì)回到主界面。圖8 存款出錯(cuò)提示界面圖9 操作完成后的選擇界面4.取款點(diǎn)擊取款按鈕,進(jìn)入取款界面,如圖10所示。當(dāng)輸入的錢數(shù)是負(fù)數(shù),或者是0,或者不是100的倍數(shù),又或者大于5000時(shí),會(huì)彈出如圖11所示的出錯(cuò)提示界面。當(dāng)輸入的錢數(shù)符合要求時(shí),會(huì)彈出如同存款操作一樣的選擇界面,如圖9所示。圖10 取款界面圖11 取款錯(cuò)誤提示界面5.查詢點(diǎn)擊主界面中的查詢按鈕,或者是在存款和取款操作完成后的選擇界面中選“是”的話,就會(huì)進(jìn)入到如圖12所示的查詢界面。點(diǎn)擊取款按鈕,會(huì)進(jìn)入到取款界面。初始金額為50000,圖12中的余額是經(jīng)過(guò)存款、取款操作以后的金額。圖12 查詢界面6.修改密碼點(diǎn)擊主界面中的修改密碼按鈕,進(jìn)入到如圖13所示的修改密碼界面。新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼,彈出如圖14所示的提示界面,點(diǎn)擊確定后會(huì)回到主界面。否則,密碼修改不成功,點(diǎn)擊確定按鈕,界面沒(méi)有反應(yīng)。圖13 修改密碼界面圖14 修改密碼成功提示界面經(jīng)過(guò)上面的操作,既測(cè)試了程序的實(shí)現(xiàn)效果,又對(duì)系統(tǒng)的使用進(jìn)行了詳細(xì)的說(shuō)明。從上面的運(yùn)行結(jié)果可以看出,程序基本上實(shí)現(xiàn)了所有的設(shè)計(jì)要求,而且運(yùn)行正常。四、總結(jié)通過(guò)為時(shí)一周的課程設(shè)計(jì),我受益匪淺,把平時(shí)所學(xué)的知識(shí)通通運(yùn)用了進(jìn)來(lái),雖然平時(shí)積淀的知識(shí)點(diǎn)比較少、比較單一,但是在這次實(shí)驗(yàn)中把零零碎碎的知識(shí)都連貫起來(lái)了,也達(dá)到了課程設(shè)計(jì)的目的,最主要的是通過(guò)一周的努力我終于用面向?qū)ο蟪绦蛟O(shè)計(jì)的知識(shí)做出了這個(gè)“ATM柜員機(jī)模擬系統(tǒng)”。由于知識(shí)的積淀比較少,且有些知識(shí)掌握不太牢靠,記憶模模糊糊的,最后決定惡補(bǔ)一下落下的知識(shí)點(diǎn)再進(jìn)行程序的設(shè)計(jì)。第一天,去圖書館借了相關(guān)圖書,把知識(shí)點(diǎn)打牢,然后參考了相似的的幾個(gè)實(shí)例,并進(jìn)行了一些分析和總結(jié)?;A(chǔ)功課做好以后第二天正式開工,選定好了題目,進(jìn)行方法選擇、框架設(shè)計(jì)、畫出流程圖、UML圖,進(jìn)行了初步的程序設(shè)計(jì)構(gòu)想。第三天,編寫程序代碼,這個(gè)過(guò)程我覺(jué)得是最艱難的,因?yàn)榇a太多,還有API接口不是很熟悉,所以要經(jīng)常翻閱手冊(cè),花費(fèi)了很多時(shí)間。程序一不小心就會(huì)出錯(cuò)不能運(yùn)行,還需要認(rèn)真檢查,細(xì)心細(xì)心加細(xì)心才能做好。反復(fù)的進(jìn)行分析調(diào)試,最后一天把程序調(diào)試通過(guò)后,進(jìn)行課程設(shè)計(jì)報(bào)告的撰寫。雖然很幸苦但是,最終的成果還是令人滿意的,最后感謝指導(dǎo)老師對(duì)我們幫助和支持。在這次的課程設(shè)計(jì)中,我主要運(yùn)用了Java圖形界面編程方面的知識(shí),加深了對(duì)Java語(yǔ)言中各個(gè)基礎(chǔ)知識(shí)點(diǎn)的了解和應(yīng)用,將自己所學(xué)的知識(shí)運(yùn)用到實(shí)際操作當(dāng)中,而不再是紙上談兵。通過(guò)這次設(shè)計(jì),我深刻感受到了面向?qū)ο笳Z(yǔ)言中類庫(kù)的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢使用類的方法,為以后的面向?qū)ο笳Z(yǔ)言的自學(xué)奠定了基礎(chǔ)。在這次課程設(shè)計(jì)中,我查了很多資料,很好的鍛煉了自己的查閱資料的能力和快速吸收新知識(shí)的能力。同時(shí),也加深了與同學(xué)的交流,在設(shè)計(jì)過(guò)程中,我們互相幫助,共度難關(guān),培養(yǎng)了很好的默契??傊?,在這次課程設(shè)計(jì)中,我學(xué)到了很多的知識(shí),同時(shí)也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會(huì)更加努力的學(xué)習(xí)好專業(yè)知識(shí),并將所學(xué)的知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí)。五、參考文獻(xiàn)1 葉核亞. Java程序設(shè)計(jì)實(shí)用教程(第3版.電子工業(yè)出版社,20102 耿祥義. JAVA課程設(shè)計(jì).清華大學(xué)出版,20093 王文濤,袁海燕 JAVA實(shí)用程序設(shè)計(jì)100例M北京:人民郵電出版社,2005.54 雍俊海 JAVA程序設(shè)計(jì)M北京:清華大學(xué)出版社,2006.85 劉寶林 JAVA程序設(shè)計(jì)與案例M北京:高等教育出版社,2006.116 史斌星,史佳 .Java基礎(chǔ)及應(yīng)用教程 M.北京.清華大學(xué)出版社.20001.7 Y.Daniel Liang.Java語(yǔ)言程序設(shè)計(jì)M.北京.機(jī)械工業(yè)出版社.2008.六、附錄 源代碼程序源代碼:/*API接口*/import javax.swing.*;import javax.swing.JOptionPane;import java.awt.event.*;import java.awt.*;/*主類*/public class ATMmodel Account myaccount=new Account();/賬戶實(shí)例化 Load load=new Load(); MainFrame Jmain=new MainFrame();/主框架實(shí)例化 Take take=new Take(); Input input=new Input(); Display dis=new Display(); Setpw setpw=new Setpw();/設(shè)置密碼實(shí)例化 /* 主方法*/ public ATMmodel() JOptionPane.showMessageDialog(null,歡迎使用ATM柜員模擬系統(tǒng)!);/進(jìn)入主界面時(shí)用JOptionPane.showMessageDialog();彈出系統(tǒng)提示 public static void main(String args) ATMmodel atm=new ATMmodel();/主函數(shù)實(shí)例化 /*創(chuàng)建賬戶*/ class Account private int count=10000; /初始賬戶余額10000 private String account=; /初始賬號(hào) private String password=; /初始密碼 public Account() /賬戶函數(shù) public void setpw(String password) /設(shè)置密碼 this.password=password; public void deccount(int money) /deccount 取款 count-=money;/取款后再原來(lái)基礎(chǔ)上減所取部分 public void reccount(int money) /reccount 存款 count+=money;/存款后在原來(lái)基礎(chǔ)上加所存部分 public int get() return count;/獲取余額 public String getaccount() return account;/獲取賬號(hào) public String getpw() return password;/獲取密碼 /*主界面*/ class MainFrame extends JFrame /主框架方法由JFrame繼承而來(lái) public JButton checked; /檢測(cè) public JButton cunkuan; /存款 public JButton quit; /退出 public JButton qukuan; /取款 public JButton reset; /重設(shè) /框架按鈕參數(shù) public MainFrame() /主框架函數(shù) initComponents(); /添加組件 this.setLocationRelativeTo(null); /設(shè)置窗口相對(duì)于指定組件的位置 this.setVisible(false); /隱藏其他窗口 /* 控件初始化*/ private void initComponents() /初始化添加組件的和添加監(jiān)聽(tīng)器 cunkuan = new JButton(); qukuan = new JButton(); checked = new JButton(); reset = new JButton(); quit = new JButton();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/退出程序 setTitle(ATM柜員模擬程序);setName(mianframe);/設(shè)置名稱 setResizable(false); /窗口大小不可改變 cunkuan.setText(存款); /將“cunkuan”轉(zhuǎn)換成“存款” cunkuan.addActionListener(new ActionListener() /設(shè)置事件監(jiān)聽(tīng) public void actionPerformed(ActionEvent evt) /活動(dòng)事件響應(yīng) cunkuanActionPerformed(evt); );qukuan.setText(取款); qukuan.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) qukuanActionPerformed(evt); );checked.setText(查詢); checked.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) checkedActionPerformed(evt); );reset.setText(修改密碼); reset.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) resetActionPerformed(evt); );quit.setText(退出); quit.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) quitActionPerformed(evt); ); /程序界面劃分,界面布局 /GroupLayout layout = new GroupLayout(getContentPane(); /GroupLayout它將組件按層次分組,以決定它們?cè)?Container 中的位置 getContentPane().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() .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.RELATED, 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.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 的子組件按其首選大小進(jìn)行布局 private void quitActionPerformed(ActionEvent evt) /識(shí)別是否退出load.setVisible(true); this.setVisible(false); private void resetActionPerformed(ActionEvent evt) /識(shí)別是否修改setpw.setVisible(true);this.setVisible(false); private void checkedActionPerformed(ActionEvent evt) /識(shí)別是否查詢 dis.setVisible(true); this.setVisible(false); private void qukuanActionPerformed(ActionEvent evt) /識(shí)別是否取款 take.setVisible(true); this.setVisible(false); private void cunkuanActionPerformed(ActionEvent evt) /識(shí)別是否存款 input.setVisible(true); this.setVisible(false); /*登錄界面*/ class Load extends JFrame public JPasswordField Jpassword; public JTextField accountnum;/ public JButton commit;/增刪 private JLabel jL1;/設(shè)置對(duì)齊 private JLabel jL2; public L

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論