




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JAVA程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目: 銀行存取系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 學(xué)院名稱: 信息工程學(xué)院 專業(yè)班級(jí): 13計(jì)本2 姓 名: 王田 學(xué) 號(hào): 1312252233 目錄一 需求分析。3二 概要設(shè)計(jì)。3三 詳細(xì)設(shè)計(jì)。3四 模塊中數(shù)據(jù)庫訪問。34.1數(shù)據(jù)庫核對用戶名和密碼(登錄)。34.2向數(shù)據(jù)庫添加一行(注冊)。44.3修改數(shù)據(jù)庫中數(shù)據(jù)(取款、存款、轉(zhuǎn)賬、修改密碼碼)。54.4查詢數(shù)據(jù)庫中數(shù)據(jù)(顯示余額、查詢修改)。54.5刪除數(shù)據(jù)庫中一行(注銷用戶)。6五 軟件的整體規(guī)劃。75.1登錄界面。75.2用戶業(yè)務(wù)界面。8六 數(shù)據(jù)庫設(shè)計(jì)。8七 軟件測試。87.1登錄界面(已有用戶登錄不能登錄其他用戶)。97.2注冊界面(有空文本框有提示)。97.3用戶主頁(窗口關(guān)閉按鈕不可以)。107.4存款。107.5取款(余額不足有提示)。107.6轉(zhuǎn)賬(余額不足、卡號(hào)不存在都有提示窗口)。117.7查詢修改(卡號(hào)不可修改)。117.8數(shù)據(jù)庫截圖。117.9測試方法。12八 總結(jié)。12一 需求分析 本軟件主要是為用戶在銀行自助服務(wù)的目的設(shè)計(jì)。主要業(yè)務(wù)包括注冊、取款、存款、轉(zhuǎn)賬、修改密碼、查詢余額和查詢修改信息等項(xiàng)目,一個(gè)用戶只允許操作自己的信息,保證用戶賬戶的安全。二 概要設(shè)計(jì)主要設(shè)計(jì)可以為用戶服務(wù)的ATM機(jī)客戶端,用戶可以在登錄界面注冊自己的卡號(hào),登錄后可以進(jìn)行取款、存款、轉(zhuǎn)賬、修改密碼、查詢余額和查詢修改信息的業(yè)務(wù),所有操作都會(huì)保存數(shù)據(jù)庫。實(shí)現(xiàn)銀行自助服務(wù)的目的。三 將用戶需求模塊化根據(jù)概要設(shè)計(jì)的原則來分析一下本項(xiàng)目的用戶需求,并最終轉(zhuǎn)化成用程序語言描述的模塊。什么樣的需求才是一個(gè)模塊?模塊應(yīng)該具備如下幾個(gè)特征。(1)登錄主界面:用類a來實(shí)現(xiàn)主界面的顯示,用Denlu類中的checkUser(String k,String m)方法鏈接數(shù)據(jù)庫核對用戶名和密碼是否正確,如果正確返回1,如果卡號(hào)不存在返回2,如果讀取數(shù)據(jù)庫失敗返回3。(2)用戶注冊:用類Zc來實(shí)現(xiàn)注冊界面的顯示,用Denlu類中的zhucezh(String name,String sex,String kahao,String mima,String phone)方法鏈接數(shù)據(jù)庫,將新用戶添加入數(shù)據(jù)庫。(3)用戶主頁:用類Zhuye來實(shí)現(xiàn)主頁界面的顯示,主頁中包括業(yè)務(wù)有取款、存款、轉(zhuǎn)賬、修改密碼、查詢余額和查詢修改信息,最后有退出按鈕(不能使用窗口關(guān)閉按鈕退出主頁,一個(gè)用戶登錄其他用戶不能登錄)。取款:用類Qukuan來實(shí)現(xiàn)取款窗口的顯示,用Denlu類中的qukuan(long k,long j)方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。存款:用類Cunkuan來實(shí)現(xiàn)存款窗口的顯示,用Denlu類中的cunkuan(long k,long j)方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。轉(zhuǎn)賬:用類Zuanzhang來實(shí)現(xiàn)轉(zhuǎn)賬窗口的顯示,用Denlu類中的zhuanzhang(long k,long j)方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。修改密碼:用類Xiugai來實(shí)現(xiàn)修改密碼窗口的顯示,用Denlu類中的gaimi(String y,String x)方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。查詢余額:用類Xianshi來實(shí)現(xiàn)查詢余額窗口的顯示,用Denlu類中的chaxun()方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。查詢修改:用類Chaxun來實(shí)現(xiàn)查改窗口的顯示,用Denlu類中的chagai(String name,String sex,String phone)方法鏈接數(shù)據(jù)庫操作數(shù)據(jù)。注銷:使用靜態(tài)方法shanchu(String id)實(shí)現(xiàn),注銷時(shí)如果余額不為0,提示“取出余額在注銷”。四 模塊中數(shù)據(jù)庫訪問JAVA課程設(shè)計(jì)-銀行存取管理系統(tǒng)(源代碼)同學(xué)們,這里是銀行存取管理系統(tǒng)的所有JAVA代碼,下載復(fù)制粘貼就可以用。具體建包如下圖:(按圖片建立數(shù)據(jù)庫)數(shù)據(jù)庫截圖所有源代碼:類 :a.javapackage zhuce;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class a extends JFrame static TextField Kahao=new TextField(1,20);static JPasswordField Mima=new JPasswordField(110,15);static boolean weiyi=false;public a()JFrame f=new JFrame(銀行管理系統(tǒng));f.setBounds(200,100,700,600);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setResizable(false); Container c=getContentPane(); /必須繼承JFrame類c.setLayout(null); c.setBackground(Color.blue);/不采用任何布局方式f.add(c);JLabel label1=new JLabel(歡迎您進(jìn)入銀行管理系統(tǒng)); JLabel label2=new JLabel(銀 行 卡 號(hào):); JLabel label3=new JLabel(銀行卡密碼:); label1.setFont(new Font(Serif,Font.BOLD,40);label1.setForeground(Color.WHITE);/label1.setBounds(300,200,400,300); /改變標(biāo)簽位置 錯(cuò)誤label2.setFont(new Font(Serif,Font.BOLD,20);label2.setForeground(Color.WHITE);label3.setFont(new Font(Serif,Font.BOLD,20);label3.setForeground(Color.WHITE);JButton button1=new JButton(登錄);JButton button2=new JButton(注冊);BHandler h=new BHandler();button1.addActionListener(h);button2.addActionListener(h);JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); p1.setBounds(0,0,700,200); /改變面板位置 錯(cuò)誤p1.setBackground(Color.blue);p1.add(label1);p2.setBounds(0,200,700,50); p2.setBackground(Color.blue);p2.add(label2);p2.add(Kahao);p3.setBounds(0,250,700,50); p3.setBackground(Color.blue);p3.add(label3);p3.add(Mima);p4.setBounds(0,350,700,70); /改變面板位置 錯(cuò)誤p4.setBackground(Color.blue);p4.add(button1);p4.add(button2);c.add(p1);c.add(p2);c.add(p3);c.add(p4);f.setVisible(true); public static void main(String args)a b=new a();public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) if(event.getActionCommand()=注冊)Zc zhuce=new Zc();/zhuce.validate();else if(event.getActionCommand()=登錄) if(Denlu.checkUser(Kahao.getText(),Mima.getText()=1&weiyi=false) weiyi=true; JOptionPane.showMessageDialog(a.this,登錄成功!);Zhuye zhu=new Zhuye(); else if(weiyi=true) JOptionPane.showMessageDialog(a.this,請先退出已經(jīng)登錄的用戶!); else JOptionPane.showMessageDialog(a.this,卡號(hào)或者密碼不正確!); else 類 :Chaxun.javapackage zhuce;import javax.swing.*;import zhuce.Zhuanzhang.BHandler;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Chaxun extends JDialogTextField name=new TextField(20);TextField sex=new TextField(20);TextField kahao=new TextField(20);TextField phone=new TextField(20);public Chaxun(JFrame m,String s)super(m,s); setBounds(350,150,400,400); setVisible(true); setModal(false); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setResizable(false); setLayout(null); JLabel label1=new JLabel(客戶個(gè)人信息查詢與修改); JLabel label2=new JLabel(姓 名:); JLabel label3=new JLabel(性 別:); JLabel label4=new JLabel(卡 號(hào):); JLabel label5=new JLabel(手機(jī)號(hào):); label1.setFont(new Font(Serif,Font.BOLD,20); label2.setFont(new Font(Serif,Font.BOLD,13); label3.setFont(new Font(Serif,Font.BOLD,13); label4.setFont(new Font(Serif,Font.BOLD,13); label5.setFont(new Font(Serif,Font.BOLD,13); kahao.setEditable(false); /卡號(hào)不可修改JButton button1=new JButton(確定);JButton button2=new JButton(取消);BHandler h=new BHandler();button1.addActionListener(h);button2.addActionListener(h);JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel(); p1.setBounds(0,0,400,70);p1.add(label1);p2.setBounds(0,70,400,50);p2.add(label2);p2.add(name);p3.setBounds(0,120,400,50);p3.add(label3);p3.add(sex);p4.setBounds(0,170,400,50);p4.add(label4);p4.add(kahao);p5.setBounds(0,220,400,50);p5.add(label5);p5.add(phone);p6.setBounds(0,270,400,70);p6.add(button1);p6.add(button2);add(p1);add(p2);add(p3);add(p4);add(p5); add(p6); try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+Integer.parseInt(a.Kahao.getText()+); if(rs.next() name.setText(rs.getString(Username); sex.setText(rs.getString(Usersex); kahao.setText(rs.getString(UserID); phone.setText(rs.getString(Userphone); rs.close(); stmt.close(); conn.close(); catch(Exception sqle) System.err.println(sqle); JOptionPane.showMessageDialog(Zhuye.z,系統(tǒng)故障,請稍后在試!); setVisible(true); public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) int x;if(event.getActionCommand()=確定)x=Denlu.chagai(name.getText(),sex.getText(),phone.getText();System.out.println(x);if(x=1) JOptionPane.showMessageDialog(Zhuye.z,修改成功!);dispose();else JOptionPane.showMessageDialog(Zhuye.z,修改出錯(cuò)!);dispose();else if(event.getActionCommand()=取消)dispose();類:Cunkuan.javapackage zhuce;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Cunkuan extends JDialog TextField jine=new TextField(10);public Cunkuan(JFrame m,String s) super(m,s);setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);setBounds(400,250,400,200);setVisible(true);setResizable(false); setLayout(null); JLabel label1=new JLabel(請輸入存款的金額);label1.setFont(new Font(Serif,Font.BOLD,20);JLabel label2=new JLabel(金額:);label2.setFont(new Font(Serif,Font.BOLD,13);JButton button1=new JButton(確認(rèn));BHandler h=new BHandler();button1.addActionListener(h);JPanel p1=new JPanel(); JPanel p2=new JPanel(); p1.setBounds(0,0,200,70); p1.add(label1);p2.setBounds(25,70,400,50); p2.add(label2);p2.add(jine);p2.add(button1);add(p1);add(p2);setVisible(true);public class BHandler implements ActionListener public void actionPerformed (ActionEvent event) if(!(jine.getText().equals()int i=0;i=Denlu.cunkuan(Integer.parseInt(a.Kahao.getText(),Integer.parseInt(jine.getText();if(i=1)JOptionPane.showMessageDialog(Zhuye.z,成功存款+jine.getText()+元!);dispose();elseJOptionPane.showMessageDialog(Zhuye.z,系統(tǒng)故障,請稍后在試!);elseJOptionPane.showMessageDialog(Zhuye.z,請輸入存款金額!);類:Denlu.javapackage zhuce;import java.sql.*;public class Denlu public Denlu()public static int shanchu(String id)long a=chaxun(); if(a=0)try Class.forName(com.mysql.jdbc.Driver); Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); String sql=delete from tablename where UserID=+Integer.parseInt(id)+; stmt.executeUpdate(sql); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 3; elsereturn 2;public static int zhucezh(String name,String sex,String kahao,String mima,String phone)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); String sql=insert into tablename values(?,?,?,?,?,?); PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql); ps.setString(1,kahao); ps.setString(2,name); ps.setString(3,mima); ps.setString(4,phone); ps.setString(5,sex); ps.setInt(6,0); ps.executeUpdate(); ps.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 3; public static int chagai(String name,String sex,String phone)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+Integer.parseInt(a.Kahao.getText()+); if(rs.next() stmt.executeUpdate(Update tablename set Usersex=+sex+,Username=+name+,Userphone=+phone+ where UserID=+Integer.parseInt(a.Kahao.getText()+); rs.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 3; return 2;public static int gaimi(String y,String x)long p; p=checkUser(a.Kahao.getText(),y);if(p=1)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+Integer.parseInt(a.Kahao.getText()+); if(rs.next() stmt.executeUpdate(Update tablename set UserPW=+x+ where UserID=+Integer.parseInt(a.Kahao.getText()+); rs.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 3; return 2;public static long chaxun()long j;try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+Integer.parseInt(a.Kahao.getText()+); if(rs.next() j=rs.getInt(Useryue); rs.close(); stmt.close(); conn.close(); return j; catch(Exception sqle) System.err.println(sqle); return -2; return -2;public static int qukuan(long k,long j)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+k+); if(rs.next() j=rs.getInt(Useryue)-j; if(j0) return 2; stmt.executeUpdate(Update tablename set Useryue=+j+ where UserID=+k+); rs.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 3; return 0; public static int cunkuan(long k,long j)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+k+); if(rs.next() j=rs.getInt(Useryue)+j; stmt.executeUpdate(Update tablename set Useryue=+j+ where UserID=+k+); rs.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 2; return 0;public static int zhuanzhang(long k,long j)long i = 0;long p = 0;i=Denlu.cunkuan(k, 0);if(i=1)p=Denlu.qukuan(Integer.parseInt(a.Kahao.getText(), j);if(p=1)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(select * from tablename where UserID=+k+); if(rs.next() j=rs.getInt(Useryue)+j; stmt.executeUpdate(Update tablename set Useryue=+j+ where UserID=+k+); rs.close(); stmt.close(); conn.close(); return 1; catch(Exception sqle) System.err.println(sqle); return 4; return 2;return 3;public static int checkUser(String k,String m)try /1.注冊驅(qū)動(dòng) String driverClassName = com.mysql.jdbc.Driver; Class.forName(com.mysql.jdbc.Driver); /2.連接數(shù)據(jù)庫 Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/ren,root,); String temp_ID=k; String temp_pass=m; String sql_user=select userID,userPW from tablename where UserID=? and UserPW=?; PreparedStatement pst=null; pst=conn.prepareStatement(sql_user); pst.setString (1,temp_ID); /為綁定變量賦值 pst.setString (2,temp_pass); ResultSet rst=pst.executeQuery(); if(rst.next() rst.close(); pst.close(); conn.close(); return 1; else return 0; catch(Exception sqle) System.err.println(sqle); return 0; 類:Qukuan.javapackage zhuce;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Qukuan extends JD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床試驗(yàn)結(jié)果分析原則考核試卷
- 農(nóng)機(jī)租賃市場定位與租賃服務(wù)網(wǎng)絡(luò)布局分析考核試卷
- 講座教育的評(píng)價(jià)體系考核試卷
- 交通規(guī)劃與災(zāi)害恢復(fù)重建規(guī)劃協(xié)調(diào)考核試卷
- 產(chǎn)科病房護(hù)士工作總結(jié)10篇
- 會(huì)計(jì)專業(yè)考試初級(jí)會(huì)計(jì)實(shí)務(wù)試卷與參考答案(2025年)
- 湖南省名校聯(lián)考聯(lián)合體2024-2025學(xué)年高一下學(xué)期第二次聯(lián)考物理試卷(A)(含解析)
- 歌曲活動(dòng)策劃方案
- 植樹節(jié)汽車養(yǎng)護(hù)活動(dòng)方案
- 民政服務(wù)活動(dòng)方案
- 預(yù)制梁首件施工方案
- 問題解決型護(hù)理品管圈QCC成果匯報(bào)之提高痰標(biāo)本采集合格率
- 電網(wǎng)公司項(xiàng)目管理標(biāo)準(zhǔn)手冊
- 四渡赤水課件(共25張PPT)
- 《石油化工企業(yè)儲(chǔ)運(yùn)罐區(qū)罐頂油氣連通安全技術(shù)要求》
- (高清正版)JJF(浙)1080—2012明渠流量計(jì)在線校準(zhǔn)規(guī)范(電子版)
- 《希臘神話與西方文化》教學(xué)大綱
- 生活飲用水衛(wèi)生標(biāo)準(zhǔn)GB5749-2006
- 過渡金屬能級(jí)圖數(shù)據(jù)庫2
- GB-T-12137-2015-氣瓶氣密性試驗(yàn)方法
- 戰(zhàn)鍋策火鍋店項(xiàng)目策劃書
評(píng)論
0/150
提交評(píng)論