久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ATM系統實現報告(VB)

時間:2019-05-14 09:12:26下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《ATM系統實現報告(VB)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ATM系統實現報告(VB)》。

第一篇:ATM系統實現報告(VB)

面向對象方法設計與實現報告

—ATM機系統

軟件0802班

高曉亮

200807040203

一、概要

根據ATM的需求分析,該系統設計為2個子系統:用戶系統、銀行工作人員系統。其中用戶系統主要使用戶在ATM上完成一些基本操作,例如:存款、取款、轉賬、查詢余額、修改賬戶密碼等銀行工作人員系統主要用來管理用戶賬戶、ATM機、事務。其具體功能和界面及代碼將在下文敘述。

說明:該系統主要代碼是用vb編寫,數據庫使用的是單機數據庫access。

二、用戶系統

A:主要界面介紹: 一)、待機界面:

1、功能:系統歡迎界面,點擊模擬按鈕開始模擬ATM機工作。

2、說明:由于沒有找到合適的廣告圖片,所以待機默認先用藍色背景代替。

3、界面文字動畫代碼如下:If Label5(0).Left > Me.ScaleWidth Then

Label5(0).Left = Me.Left100 End If

Label5(1).Move Label5(1).Left + 120

4、界面截圖如下:

二)、登陸界面:

1、功能:a、密碼框設置只能輸入6位

B、密碼輸入3次錯誤,將凍結該賬戶

C、銀行卡號不存在、凍結或密碼錯誤,均不能進入系統

2、說明:因為各銀行卡號位數不太一樣,銀行卡號位數并未設置。

3、登陸確認按鈕代碼如下: Private Sub Command27_Click()If Not Text7.Text = “" And Not Text8.Text = ”“ Then Dim sql As String sql = ”select * from 賬戶 where 銀行卡號='“ & Trim(Text7.Text)& ”'“

Adodc1.RecordSource = sql

Adodc1.Refresh

If Adodc1.Recordset(”狀態“)= ”凍結“ Then '判斷該賬戶狀態

MsgBox ”該賬戶已凍結!“

Text7.Text = ”“

Text8.Text = ”“

Else

sql = ”select * from 賬戶 where 銀行卡號='“ & Trim(Text7.Text)& ”' and 密碼=“ & Trim(Text8.Text)& ”“

Adodc1.RecordSource = sql

Adodc1.Refresh

If Adodc1.Recordset.EOF Then

MsgBox ”密碼錯誤!“, 48, ”錯誤提示“

Text8.Text = ”“

count1 = count1 + 1

If count1 >= 3 Then '三次輸入錯誤凍結該賬戶

Adodc1.Refresh

sql = ”select * from 賬戶 where 銀行卡號='“ & Trim(Text7.Text)& ”'“

Adodc1.RecordSource = sql

Adodc1.Refresh

Adodc1.Recordset(”狀態“)= ”凍結“

Adodc1.Recordset.Update

MsgBox(”三次輸入錯誤,該賬戶已被凍結“)

End If

Else

Label10.Visible = False

Label11.Visible = False

Text7.Visible = False

Text8.Visible = False

Command27.Visible = False Command28.Visible = False Command14.Visible = True Command15.Visible = True Command16.Visible = True Command17.Visible = True Command18.Visible = True Command19.Visible = True Command24.Visible = True Ynum = Text7.Text Adodc2.Refresh ’添加事務 Adodc2.Recordset.AddNew

Adodc2.Recordset(”銀行卡號“)= Ynum

Adodc2.Recordset(”事務類型“)= ”用戶登錄“

Adodc2.Recordset(”時間“)= Now()

Adodc2.Recordset(”事務描述“)= ”用戶完成登陸“

Adodc2.Recordset.Update

Adodc2.Refresh Text7.Text = ”“ Text8.Text = ”“ End If End If Else MsgBox(”信息不全!請確認“)End If End Sub

4、界面截圖如下:

三)、系統主界面

1、功能:ATM的主要功能陳列,供用戶選擇,其中包括存款、取款、轉賬、查詢余額、修改密碼、取卡、返回。當賬戶登錄時,將在事務表中記錄登錄時間。

2、說明:由于所有按鈕均只是用來調出對應的功能的界面,并沒有實際功能,所以在此省略其按鈕代碼。

3、界面截圖如下:

四)、存款界面

1、功能:a、只允許用戶輸入100的整數值

b、當文本框為空時報錯

c、實現用戶的存款功能

d、每存入一筆款,都將在事務表中記錄該操作

2、存款代碼如下:If Not Text12.Text = ”“ Then If Val(Text12.Text)Mod 100 = 0 Then Adodc1.Refresh Adodc1.Recordset(”余額“)= Adodc1.Recordset(”余額“)+ Val(Text12.Text)Adodc1.Recordset.Update Adodc1.Refresh Label15.Caption = ”存款成功“ ye = ye + Text12.Text Adodc2.Refresh Adodc2.Recordset.AddNew

Adodc2.Recordset(”銀行卡號“)= Ynum

Adodc2.Recordset(”事務類型“)= ”存款“

Adodc2.Recordset(”時間“)= Now()

Adodc2.Recordset(”事務描述“)= ”用戶存入“ & Text12.Text & ”元“

Adodc2.Recordset.Update

Adodc2.Refresh Text12.Text = ”“ Command33.Enabled = True Command32.Enabled = False Else MsgBox ”請輸入100的整數“ End If Else Label15.Caption = ”無款可存“ End If End Sub

3、界面截圖如下:

四)、取款界面

1、功能:a、用戶按相對應數值的按鈕進行取款

b、每個賬戶每天取款數不能超過2500

c、賬戶余額不足時,報錯

d、用戶每取走一筆款額,都將在事務表中記錄取走金額和時間

2、說明:由于不同數值按鈕的代碼很相似,所以這里僅給出100按鈕的代碼

3、存款代碼如下:Private Sub Command20_Click()Adodc1.Refresh If Adodc1.Recordset(”余額“)>= 100 Then Adodc1.Refresh Adodc1.Recordset(”余額“)= Adodc1.Recordset(”余額“)100 Adodc2.Refresh Adodc2.Recordset.AddNew

Adodc2.Recordset(”銀行卡號“)= Ynum

Adodc2.Recordset(”事務類型“)= ”取款“

Adodc2.Recordset(”時間“)= Now()

Adodc2.Recordset(”事務描述“)= ”用戶取走100元“

Adodc2.Recordset.Update

Adodc2.Refresh Else Label15.Caption = ”余額不足,取款失敗“ End If End Sub

4、取款界面截圖如下:

五)、查詢余額界面

1、功能:實現用戶查詢對應賬戶的余額

2、查詢余額代碼如下:Private Sub Command17_Click()Command14.Visible = False Command15.Visible = False Command16.Visible = False Command17.Visible = False Command18.Visible = False Command19.Visible = False Label6.Visible = False Label7.Visible = False sql = ”select 余額 from 賬戶

where 銀行卡號= '“ & Ynum & ”'“ Adodc1.RecordSource = sql Adodc1.Refresh Label8.Caption = Adodc1.Recordset.Fields(”余額“)Adodc2.Refresh Adodc2.Recordset.AddNew

Adodc2.Recordset(”銀行卡號“)= Ynum

Adodc2.Recordset(”事務類型“)= ”查詢余額“

Adodc2.Recordset(”時間“)= Now()

Adodc2.Recordset(”事務描述“)= ”查詢余額“

Adodc2.Recordset.Update

Adodc2.Refresh Label9.Visible = True Label8.Visible = True End Sub

3、查詢余額界面截圖如下:

六)、轉賬界面

1、功能:a、實現用戶轉賬

b、需2次確認賬戶信息,若信息輸入不全,賬戶余額不足,2次輸入不一樣,均不可完成轉賬

c、用戶每轉一筆賬,均將在事務表中記錄轉賬金額和時間

2、轉賬代碼如下:Private Sub Command30_Click()If Not Text11.Text = ”“ And Not Text10.Text = ”“ And Not Text9.Text = ”“ Then If Text10.Text = Text9.Text Then Adodc1.Refresh If Adodc1.Recordset(”余額“)>= Val(Text11.Text)Then Adodc1.Refresh Adodc1.Recordset(”余額“)= Adodc1.Recordset(”余額“)Me.picLOAD.Width)/ 2 'Me.picLOAD.Top = Me.ScaleHeight / 2Me.picLOAD.Width)/ 2 'Me.picLOAD.Top = Me.ScaleHeight / 2Me.picLOAD.Width)/ 2 'Me.picLOAD.Top = Me.ScaleHeight / 2-Me.picLOAD.Height Me.picLOAD.Visible = True 'DoEvents '釋放控制權

Me.ListView1.ListItems.Clear Dim addLIST As ListItem Dim ss As String Dim sql As String ss = App.Path + ”datadata.mdb“ Adodc1.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=gxl;Persist Security Info=False;Data Source=“ & ss Adodc1.CommandType = adCmdText sql = ”select * from ATM“ Adodc1.RecordSource = sql Adodc1.Refresh '連接數據庫

Do While Not Adodc1.Recordset.EOF Set addLIST = ListView1.ListItems.Add(, , Adodc1.Recordset!ATM機編號, , i)addLIST.SubItems(1)= IIf(IsNull(Adodc1.Recordset.Fields(”狀態“).Value), Adodc1.Recordset.Fields(”狀態“).Value)addLIST.SubItems(2)= IIf(IsNull(Adodc1.Recordset.Fields(”余額“).Value), Adodc1.Recordset.Fields(”余額“).Value)Adodc1.Recordset.MoveNext Loop Me.picLOAD.Visible = False End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Index

Case Is = 2 '

ZhZCfrm.Show 1

Case Is = 3

' ZHZXfrm.Show 1

Case Is = 4

Call addLIST End Select End Sub

3、界面截圖:

”“, ”“,六)、單位信息界面

1、功能:顯示單位信息

2、代碼: Private Sub cmdBC_Click()'修改銀行信息 Dim s As String If Not Text1(0).Text = ”“ And Not Text1(1).Text = ”“ And Not Text1(2).Text = ”“ And Not Text1(3).Text = ”“ And Not Text1(4).Text = ”“ Then

s = ”update 銀行信息 set 銀行名稱='“ & Text1(0).Text & ”',銀行地址='“ & Text1(1).Text & ”',郵政編號='“ & Text1(2).Text & ”',負責人='“ & Text1(3).Text & ”', 聯系電話='“ & Text1(4).Text & ”'“

Adodc1.RecordSource = s

MsgBox(”修改成功“)

Adodc1.Recordset.Update

Else

MsgBox ”修改信息不全,請檢查!“

End If End Sub

Private Sub Form_Load()Dim ss As String Dim sql As String ss = App.Path + ”datadata.mdb“ Adodc1.ConnectionString = ”Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=gxl;Persist Security Info=False;Data Source=“ & ss Adodc1.CommandType = adCmdText sql = ”select * from 銀行信息“ Adodc1.RecordSource = sql Adodc1.Refresh '連接數據庫 End Sub

3、界面截圖:

七)、下面給出數據備份還原的代碼 Private Sub a14_Click()On Error GoTo ERR_line newname = App.Path & ”datadata.mdb“ datapath = App.Path & ”backup“ & Date & ” 備份卡.bak“ FileCopy newname, datapath MsgBox ”數據已備份到

“ & datapath, 64, ”提示“ Exit Sub ERR_line: MsgBox ”不能完成數據備份!“, 48, ”運行錯誤“ End Sub

Private Sub a15_Click()On Error GoTo ERR_line

Me.CommonDialog1.ShowOpen

snewname = Me.CommonDialog1.FileName

sdatapath = App.Path & ”datadata.mdb“

If snewname <> ”“ Then

If MsgBox(”還原后將覆蓋原有數據,確定還原嗎?“, vbInformation + vbYesNo, ”提示“)= vbYes Then

FileCopy snewname, sdatapath

MsgBox ”數據已經成功還原!請重新登陸 “, 48, ”提示“

Unload Me

Formload.Show

Else

Exit Sub End If

End If Exit Sub

ERR_line: MsgBox ”不能完成數據還原,請進入系統后未做任何操作時進行!“, 48, ”運行錯誤" End Sub

四、數據庫

本系統使用的是access數據庫。數據庫密碼為gxl。本系統共有5張表,分別為:ATM,事務,系統用戶表,銀行信息,賬戶。

下面給出數據庫的相關截圖。

1、表圖:

2、ATM的設計視圖

3、事務的設計視圖

4、系統用戶表的設計視圖

5、銀行信息的設計視圖

6、賬戶的設計視圖

第二篇:VB人事管理系統[模版]

I 圖書管理系統一、課程設計的目的與要求.......................................2

二、題目分析...................................................3

三、設計思路...................................................3

四、調試過程...................................................5 4.1、設計工程框架..........................................5 4.1.1、設計登錄窗體....................................5 4.1.2、圖書基本信息管理模塊設計........................7 4.2、設計圖書信息編輯窗體..................................8 4.3、圖書信息管理窗體......................................9 4.4、圖書借閱管理模塊設計.................................11 4.4.1、設計借閱證件類型編輯窗體.......................11 4.4.2、設計借閱證件類型管理窗體.......................13 4.4.3、設計借閱證件編輯窗體...........................14 4.4.4、設計借閱證件管理窗體...........................14 4.4.5、設計圖書借閱記錄查看窗體.......................16 4.4.6、設計圖書借閱信息編輯窗體.......................17 4.4.7、設計圖書歸還信息管理窗體.......................17 4.4.8、設計圖書借閱管理窗體...........................18 4.4.9、設計用戶信息編輯窗體...........................19

五、運行結果.................................................21

六、課程設計總結..............................................21

七、參考文獻..................................................2I 圖書管理系統

摘要

隨著人類社會的發展,人類對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據了一定的位置。繪本圖書與其他普通圖畫書的區別在于繪本圖書通常有獨立的繪畫著者,圖畫有個人風格,畫面即情即景,可單幅成畫,容易提高兒童讀書的積極性。如何科學地管理繪本館不但關系到讀者求知的方便程度,也關系到繪本館的發展,因此,開發一套完善的繪本圖書館管理系統就成不可少了,圖書管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。

經過分析,使用 Microsoft公司的Visual Basic6.0為開發工具,利用其提供的各種面向對象的可視化開發平臺作為開發工具,采用面向對象技術,圖形化的應用開發環境,尤其是它有一個功能極其強大的集成環境提供級開發人員,使得開發人員可通過菜單、界面、圖形瀏覽工具、對話框以及嵌入的各種生成器來輕松地完成各種復雜的操作。開發過程中不斷修正和改進,直到形成用戶滿意的可行系統。

本文介紹了在Visual Basic6.0環境下采用“自上而下地總體規劃,自下而上地應用開發”的策略開發本系統的詳細過程,提出實現繪本圖書館信息管理、資源共享的基本目標,從而推動邁向數字化繪本圖書館的步伐,并闡述系統結構設計和功能設計,從繪本圖書的入庫登記到查詢瀏覽,形成了一個整體自動化管理模式,從軟件工程的角度進行了科學而嚴謹的闡述。圖書管理系統

圖書管理基本業務活動包括:對一本書的采編入庫、清除庫存、借閱和歸還等等。試設計一個圖書管理系統,將上述業務活動借助于VB數據庫管理系統完成。

關鍵字:圖書管理系統;SQL Server數據庫;Visual Basic開發語言;管理信息系統。

一、課程設計的目的與要求

掌握VB的數據庫編程技巧,及利用Access創建數據庫的方法,利用VB的數據庫控件與數據源建立連接,完成一個較為簡單的數據庫管理系統的設計。每種書的登記內容至少包括書號、書名、著者、現存量和總庫存量等五項,對書目的相關信息均采用數據庫存儲。

系統應實現的操作及其功能定義如下:

1)采編入庫:新購入一種書,經分類和確定書號之后登記到圖書賬目中去。如果這種書 在帳中已有,則只將總庫存量增加。2)清除庫存:某種書已無保留價值,將它從圖書賬目中注銷。3)借閱:如果一種書的現存量大于零,則借出一本,登記借閱者的圖書證號和歸還期 限。

4)歸還:注銷對借閱者的登記,改變該書的現存量。5)顯示:顯示書庫信息。圖書管理系統

二、題目分析

圖書管理系統需要的功能分析如下:

管理系統具有多個管理員,管理員可以使用不同的用戶名和密碼進入管理系統,并可以修改自己的密碼;

(一)進入系統后可以重新登錄該系統;

(二)在系統中可以對數據庫進行簡單的操作;

(三)最基本的功能還應具有可以編輯圖書——錄入、刪除圖書資料。圖書分類信息的添加、修改、刪除和查詢。此功能為圖書的分類管理提供依據。

(四)圖書基本信息的添加、修改、刪除和查詢。

(五)借閱證件分類信息的添加、修改、刪除和查詢。不同類型的借閱證件可以借閱的最大數量、最大天數和續借天數不同。

(六)圖書借閱證件的添加、修改、刪除、掛失和查詢。

(七)圖書借閱管理,包括圖書借閱、圖書歸還、圖書續借、圖書掛失和圖書催還等。

三、設計思路

系統運作流程,該系統涉及到用戶以及管理員,在兩者之間進行一系列的操作。管理員對圖書進行錄入、刪除等操作,和用戶之間的交流則是進行借閱圖書操作。運作流程圖如圖1所示: 3 圖書管理系統

圖1 運作流程圖

圖2所示,具體的操作流程: 圖書管理系統

圖2 具體的操作流程

四、調試過程 4.1、設計工程框架 4.1.1、設計登錄窗體

登錄窗體名稱為FrmLogin,它的界面布局如圖3所示: 圖書管理系統

圖3 界面布局

主窗體啟動時,首先打開登陸對話框。主窗體代碼如下: Private sub Form_load()Frmlogin.show1 End sub 如選的是退出系統菜單項時,觸發mn_exit_click 事件,代碼如下:

Private sub mn_exit_click()Dbapi_disconnect End End sub 通過身份認證時,則進入系統主界面如圖4所示: 圖書管理系統

圖4 進入系統主界面

4.1.2、圖書基本信息管理模塊設計

圖書基本信息管理模塊可以實現以下功能: A、添加圖書基本信息。B、修改圖書基本信息。C、刪除圖書基本信息。D、查看圖書基本信息。圖書管理系統

4.2、設計圖書信息編輯窗體

圖書信息編輯窗體的名稱為FrmBookEdit,窗體的布局如圖5所示:

圖5 窗體的布局

代碼如下:

Private sub Cmd _OK_Click()With MyBookinfo BookNo=MakeStr(txtBookNo)‘圖書編號 BookName=MakeStr(txtBookName)‘圖書名稱 Publisher=MakeStr(txtpulisher)

‘出版社 圖書管理系統

Author=MakeStr(txtAuthor)‘作者 Location=MakeStr(txtLocation)‘存放位置 Price=Val(txtPrice)‘價格 Total=Val(txtTotal)‘數量 Typeld=nBookTypeld ‘圖書分類 Descripition=MakeStr(txtDescripition)IfModify=False Then Insert Cmd_Ok.Enabled=False Else Call.UpDate(OnNo)End If End With Unload Me End Sub 4.3、圖書信息管理窗體

如圖6所示: 圖書系統管理界面 圖書管理系統

圖6 圖書系統管理界面

Private Sub TreeView1_Click()Focuskey=TreeView1_SelectdItem.Key CurBookTypeName=TreeView1.SelectdItem.Text CurBookTypeId=Val(Right(TreeView1.SelectdItem.Key,Len(TreeView1.SelectdItem.Key)-1))IfFocusKey=”a0” Then nTypeId=-1 Exit Sub End if bHaveSon=CurBookType.HaveSon(CurBookType.TypeId)10 圖書管理系統

If bHaveSon=False Then TreeView1.SelectedItem.ExpandedImage=4 TreeView1.SelectedItem.Image=4 TreeView1.SelectedItem.SelectImage=5 nType=CurBookType.TypeId CurBookType.GetInfo(CurBookType.TypeId)GridRefresh End sub

4.4、圖書借閱管理模塊設計

圖書借閱管理模塊可以實現以下功能: a.借閱證件類型管理。b.借閱證件管理 c.圖書借閱管理

4.4.1、設計借閱證件類型編輯窗體

借閱證件類型編輯窗體的名稱為FrmCardTypeEdit,如圖7所示: 圖書管理系統

圖7 閱證件類型編輯窗體

代碼:

Private Sub Cmd_Ok_Click()With MyCardType TypeName=MakeStr(txtTypeName)MaxCount=Val(txtMaxCount)MaxDays=Val(txtMaxDays)AddDays=Val(txtAddDays)If Modify=False Then Insert End Call.Upate(tId)End if End with Unload Me End sub 圖書管理系統

4.4.2、設計借閱證件類型管理窗體

借閱證件類型管理窗體的名稱為FrmCardType,窗體布局如圖8所示:

圖8 借閱證件類型管理窗體

代碼:

Private Sub GridRefresh()Adodc1.ConnectionString=conn ‘設置數據源

Adodc1.RecordSource=”SELECT ID AS編號,TypeNameAS 類型名稱,MaxCount AS最大借閱數量,”+”MaxDays AS 最多借閱天數,AddDays As 續借天數 FROM CardType ORDER BY Id” Adodc1.Refresh‘設置列寬度 End sub 13 圖書管理系統

4.4.3、設計借閱證件編輯窗體

借閱證件類型編輯窗體的名稱為FrmCardsEdit,如圖9所示:

圖9 借閱證件類型編輯窗體

4.4.4、設計借閱證件管理窗體

設計借閱證件管理窗體的名稱為FrmCardS,如圖10所示: 圖書管理系統

圖10 設計借閱證件管理窗體

代碼:

Private Sub GridRefresh()Adodc1.ConnectionString=com If ComboCardStatus.ListIndex=0 Then SchCnd=”” Else SchCnd=

AND

c.Status=

”+Trim(ComboCardStatus.Text)+”” End if Adodc1.RecordSource=”SELECT c.CardNo AS借書證號,c.Name AS 姓名,t.TypeName AS 類型,”+”c.Status AS 狀態,t.MaxCount AS可借數量,t.MaxDays AS 借閱天數,c.WorkPlace AS工作單位,”+”c.IdCard AS 有效證件號碼,c.CreateDate AS 發證日期” 圖書管理系統

+”FROM Cards c,CardType t WHERE c.TypeId=t.Id”+SchCnd +”ORDER BY CardNo” Adodc1.Refresh ‘設置列寬度

If ComboCardStatus.ListIndex= 1 Then Cmd_Add.Enabled=Ture End if End sub

4.4.5、設計圖書借閱記錄查看窗體

用于查看指定借閱證件記錄,窗體名為FrmRecord,窗體布局如圖11所示:

圖11 查看指定借閱證件記錄 圖書管理系統

4.4.6、設計圖書借閱信息編輯窗體

設計圖書借閱信息編輯窗體的名稱為FrmBorrowEdit,此窗體的工作過程比較復雜,它的布局如圖12所示:

圖12 圖書借閱信息編輯窗體

4.4.7、設計圖書歸還信息管理窗體

設計圖書歸還信息管理窗體的名稱為FrmReturnEdit, 窗體布局如圖13所示: 圖書管理系統

圖13 設計圖書歸還信息管理窗體

4.4.8、設計圖書借閱管理窗體

設計圖書借閱管理窗體的名稱為FrmBorrow, 窗體布局如圖14所示:

圖14 設計圖書借閱管理窗體 圖書管理系統

如圖15所示:

圖15 設計圖書借閱管理窗體

4.4.9、設計用戶信息編輯窗體

用戶信息編輯窗體可以用來添加和修改用戶信息,窗體名稱為FrmUserEdit,窗體布局如圖16所示:

圖16 用戶信息編輯窗體

代碼: 圖書管理系統

Private sub Cmd_Ok_Click()With MyUser If

Modfiy=False

Or OriUser<>Trim(txtUserName)Then If.In_DB(MakeStr(txtUserName))=True Then MsgBox”用戶名已經存在,請重新輸入” txtUserName.SetFocus txtUserName.SelStart=0 txtUserName.SelLenght=Len(txtUserName)Exit sub End if.UserName=MakeStr(txtUserName).Pwd=MakeStr(txtPass)If Modify=False Then.Insert Else.Update(OriUser)If

OriUser=CurUserName Trim(txtUserName)<>OriUser Then CurUser.UserName=Trim(txtUserName)CurUser.GetInfo(CurUserName)

End if End if End With

And

圖書管理系統

Unload Me End Sub

五、運行結果

如圖17所示:

圖17 運行結果

六、課程設計總結

通過本次課程設計,我們不僅加深了平時的學習并且了解到更多關于Visual Basic和SQL Server的使用,并且利用所學知識將各個對象的使用結合起來制作了一個完整的系統。這個圖書館系統可以使操作員進行一般的查詢圖書和會員信息、借閱和歸還圖書、整理圖書包括錄入和注銷圖書以及修改管理員密碼以保護 21 圖書管理系統

自己使用該系統的權利的功能。在結束了課程設計之后讓我們對Visual Basic 的各個控件有了更好地掌握之外,也讓我們了解了一個圖書管理系統的基本模式,學習之余擴寬了知識面。雖然在平時的學習中通過老師的講授已經基本掌握了Visual Basic的用法,但知識分散不牢固。通過本次設計,我們可以靈活的將VB中的基本控件結合起來,制作了這個完整的系統,并能準確地使用所學的編程語言來制作該系統。可以說完成課程設計之后讓我們受益匪淺,同時也鍛煉了我們的獨立思考能力。相信通過本次實驗,我們可以更好的使用VB來制作一些其他系統,能進一步學習和使用VB.當然,由于這是我們第一次進行制作,水平和經驗限制了系統的功能。一些圖書管理應有的功能暫時無法實現,需要更加完善。相信在這次實驗之后我們可以對圖書管理系統有進一步的學習和研究,以得到更好的發展。

七、參考文獻

《Visual Basic程序設計》 譚浩強,清華大學出版社 《VB語言程序設計》 林卓然,電子工業出版社

《Visual Basic 6.0程序設計》 劉新民,清華大學出版社 《Visual Basic 程序設計教程》 羅朝盛,人民郵電出版社 《Visual Basic 6.0高級編程》 [美]Julia,清華大學出版社 《Visual Basic程序設計教程習題及習題解答》劉瑞新,機械工業出版杜

《全國計算機等級考試二級教程-Visual Basic語言程序設計》劉炳文,高等教育出版社 圖書管理系統

附錄(源程序代碼)

權限設置的主要代碼: Option Explicit Public constr As String '數據庫連接信息 Public privilege As Integer '用戶權限 Public rst As ADODB.Recordset '數據庫內的記錄 Public rst1 As ADODB.Recordset Public rst2 As ADODB.Recordset Public con As ADODB.Connection Public tablename As String Type userdata '用戶信息,包括用戶名,密碼和對應的權限 user_id As String pwd As String right As Integer End Type Public Sub connect_db()constr = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + App.Path + “dataComputerBookmanage.mdb” + “;Persist Security Info=False” '數據庫引擎+路徑

Set con = New ADODB.Connection '新建一個數據庫連接

con.CursorLocation = adUseClient '用于客戶端(ADOR)Recordset對象,游標

庫屬性必須為adUseClient 圖書管理系統

con.ConnectionString = constr '連接信息 con.Open End Sub Function open_connection(table_name As String)Dim sqlstr As String Dim str As String Set con = New ADODB.Connection Set rst = New ADODB.Recordset con.CursorLocation = adUseClient sqlstr = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + App.Path + “dataComputerBookmanage.mdb” + “;Persist Security Info=False” con.Open sqlstr str = “select * from ” & table_name & “" '執行SQL查詢 rst.Open str, con, adOpenDynamic, adLockOptimistic rst.Requery End Function Public Sub check_privage(rightlevel As Integer)Dim right As Integer right = rightlevel Select Case right Case 1: '普通用戶,只能查詢圖書信息和借閱信息 Form1.xpcmdbutton1.Enabled = False Form1.xpcmdbutton2.Enabled = False Form1.xpcmdbutton3.Enabled = False 圖書管理系統

Form1.xpcmdbutton4.Enabled = False Form1.xpcmdbutton5.Enabled = True Form1.xpcmdbutton6.Enabled = True Form1.xpcmdbutton7.Enabled = False Form1.xpcmdbutton8.Enabled = False Form1.xpcmdbutton10.Enabled = False Form1.Show Unload frmLogin Case 2: '2級管理員,還可以借書和還書 Form1.xpcmdbutton1.Enabled = True Form1.xpcmdbutton2.Enabled = True Form1.xpcmdbutton3.Enabled = False Form1.xpcmdbutton4.Enabled = False Form1.xpcmdbutton5.Enabled = True Form1.xpcmdbutton6.Enabled = True Form1.xpcmdbutton7.Enabled = True Form1.xpcmdbutton8.Enabled = False Form1.xpcmdbutton10.Enabled = False Form1.Show Unload frmLogin Case 3: '3級管理員,可以錄入圖書 Form1.xpcmdbutton1.Enabled = True Form1.xpcmdbutton2.Enabled = True Form1.xpcmdbutton3.Enabled = True Form1.xpcmdbutton4.Enabled = False 圖書管理系統

Form1.xpcmdbutton5.Enabled = True Form1.xpcmdbutton6.Enabled = True Form1.xpcmdbutton7.Enabled = True Form1.xpcmdbutton8.Enabled = False Form1.xpcmdbutton10.Enabled = False Form1.Show Unload frmLogin Case 4: '系統管理員 Form1.xpcmdbutton1.Enabled = True Form1.xpcmdbutton2.Enabled = True Form1.xpcmdbutton3.Enabled = True Form1.xpcmdbutton4.Enabled = True Form1.xpcmdbutton5.Enabled = True Form1.xpcmdbutton6.Enabled = True Form1.xpcmdbutton7.Enabled = True Form1.xpcmdbutton8.Enabled = True Form1.xpcmdbutton10.Enabled = True Form1.Show Unload frmLogin End Select End Sub 登陸后權限的分配主要代碼如下:

If LCase(Trim(rst![登錄名]))= LCase(Trim(Text1.Text))Then If Trim(rst![密碼])= Trim(Text2.Text)Then 圖書管理系統

privilege = rst![權限] Call check_privage(privilege)'權限分配讀者管理主要代碼:

Private Sub Command1_Click()'添加記錄 Dim sql As String Dim param As ADODB.Parameter Dim cmd As ADODB.Command Set cmd = New ADODB.Command Set param = New ADODB.Parameter sql = ”select * from reader where [讀者編號]= ? “ If Command1.Caption = ”添加記錄“ Then Command1.Caption = ”確 定“ Command2.Enabled = False Command3.Enabled = False Command4.Enabled = False rst.AddNew Else If Text1.Text = ”“ Then frmMsg.Show frmMsg.notice.Visible = True frmMsg.Text1.Text = ”讀者編號不能為空!“ Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True Command1.Caption = ”添加記錄“ 圖書管理系統

Exit Sub End If With param.Direction = adParamInput.Type = adBSTR.Size = 8.Value = Text1.Text End With cmd.Parameters.Append param cmd.CommandText = sql cmd.CommandType = adCmdText Set cmd.ActiveConnection = con Set rst1 = cmd.Execute '檢測讀者編號是否存在防止主鍵沖突 If rst1.RecordCount > 0 Then frmMsg.Show frmMsg.notice.Visible = True frmMsg.Text1.Text = ”此讀者編號已經存在!“ rst.Cancel Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True Command1.Caption = ”添加記錄“ Exit Sub End If 圖書管理系統

rst.Update frmMsg.Show frmMsg.notice.Visible = True frmMsg.Text1.Text = ”添加成功!“ Command2.Enabled = True Command3.Enabled = True Command4.Enabled = True Command1.Caption = ”添加記錄“ End If End Sub Private Sub Command2_Click()'刪除紀錄 Dim ans As String ans = Msgbox(”確定要刪除此記錄嗎?“, vbYesNo, ”提示“)If ans = vbYes Then rst.Delete rst.Requery Else Exit Sub End If End Sub Private Sub Command3_Click()'上一記錄 If rst.BOF Then frmMsg.Show frmMsg.info.Visible = True frmMsg.Text1.Text = ”已經到達記錄頂端!“ 圖書管理系統

Exit Sub Else rst.MovePrevious End If End Sub

Private Sub Command4_Click()'下一記錄 If rst.EOF Then frmMsg.Show frmMsg.info.Visible = True frmMsg.Text1.Text = ”已經到達記錄底端!“ Exit Sub Else rst.MoveNext End If End Sub Private Sub Command5_Click()Unload Me End Sub Private Sub Form_Load()Dim sql1 As String Set rst = New ADODB.Recordset sql1 = ”select * from reader“ '打開數據庫并對窗體控件賦值 Call connect_db rst.Open sql1, con, adOpenDynamic, adLockOptimistic

圖書管理系統

Set Text1.DataSource = rst Set Text2.DataSource = rst Set Text3.DataSource = rst Set Text4.DataSource = rst Set Text5.DataSource = rst Set Text6.DataSource = rst Set Text7.DataSource = rst Set Text8.DataSource = rst Text1.DataField = ”讀者編號“ Text2.DataField = ”讀者姓名“ Text3.DataField = ”性別“ Text4.DataField = ”電話號碼“ Text5.DataField = ”家庭地址“ Text6.DataField = ”讀者類別“ Text7.DataField = ”工作單位“ Text8.DataField = ”登記日期" End Sub Private Sub xptopbuttons1_Click()Unload Me End Sub Private Sub xptopbuttons2_Click()Me.WindowState = 1 End Sub Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

圖書管理系統

End Sub

第三篇:uml建模報告ATM自動柜員機系統

UML建模報告

(2010 / 2011 學年 第 2學期)

題 目:

基于UML的ATM自動

柜員機系統

業:

成員:

師:

基于UML的ATM自動柜員機系統建模報告

一、需求分析

(1)功能需求:

1.登陸:客戶通過輸入正確的登陸密碼即可登陸ATM。

2.取款:允許客戶取出自己賬戶中的現金。3.客戶存款:允許客戶把現金存入自己賬戶。4客戶查詢余額:允許客戶查詢自己的賬戶余額。

5客戶轉賬:允許客戶將自己賬戶中的金額轉移至另一賬戶。6客戶更改密碼:允許客戶修改自己的登錄密碼。

(2)系統操作要求:

1.要求用戶每次取款數額為50的整數倍;

2.要求用戶一次取款數額不得大于1000元; 3.要求用戶一天取款數額不得超過5000元; 4.要求用戶每次取款數額不得大于賬戶余額; 5.要求用戶設置的登錄密碼為6位。

(3)系統性能要求:

1.要求反應時間不得大于10秒鐘; 2. 系統設計目標:

ATM自動取款機可以提供24小時不間斷服務,操作簡單,可以很方便為用戶提供取款、轉賬/匯款、查詢賬戶余額等服務。

(4)實現手段:

使用ASP.NET進行界面設計,建立一個數據庫保存客戶的賬戶信息,使用C#語言功能函數并對數據庫中的賬戶信息進行操作。

二、總體設計

本系統總共分為登陸、查詢、存款、取款、轉賬、修改密碼等6個功能模塊。

1.登錄模塊:登陸模塊使用字符匹配算法,要求用戶在輸入賬號之后輸入登陸密碼,只有輸入正確的密碼才能登陸自己的賬戶。否則提示密碼錯誤。

2.查詢模塊:用戶輸入正確的密碼后就可登陸自己的賬戶并接受服務。查詢功能允許用戶查得自己賬戶上的余額信息。

3.存款模塊:允許客戶向自己的賬戶中存入現金。

4.取款模塊:允許客戶從賬戶中取走現金,要求取出的金額不能大于所剩余款,否則提示余額不足。

5.轉賬模塊:允許客戶將自己賬戶中的金額轉移至另一賬戶。要求所轉的金額不能多于所剩余款,否則提示余額不足。

6.修改密碼模塊:允許用戶修改自己的登陸密碼,密碼仍然是6位數的,修改之后,下次登陸就應該用新密碼。

三、詳細設計 用例圖:

類圖:

客戶取錢的協作圖:

其他功能的協作圖與此類似。

賬目類的狀態圖:

ATM系統的部署圖:

四、測試報告 我們在客戶數據庫中建立四個賬戶,如下:

其中四個屬性分別是客戶名、賬號、密碼、賬戶余額。打開網頁,進入初始頁面:

若選擇取回磁卡,顯示如下:

1.登錄功能測試

我們選擇繼續以進行測試,單擊測試進入如下頁面:

若輸入不存在的賬號,則出現提示:

現在我們輸入正確的賬號,這里以08060112為例:

單擊確認,系統將提示客戶輸入密碼,正確的密碼是“123456”,我們輸入“333333”以進行測試,系統提示密碼錯誤:

我們輸入正確的密碼“123456”,單擊確認,則進入交易界面:

2.查詢功能測試

單擊查詢,顯示如下

與數據庫表中的number值比較可得,結果正確。3.取款功能測試

選擇返回,回到主菜單,單擊取款,系統提示客戶輸入取款金額:

我們輸入300單擊確認,顯示如下

單擊確定回到主菜單,單擊查詢,顯示如下:

余額為700,說明取款成功,取款功能順利實現。4.轉賬功能測試

單擊返回,回到主菜單,單擊轉賬,系統提示用戶輸入轉入賬號,我們以轉入08060119為例:

單擊確認,系統提示轉賬金額,我們輸入300:

單擊確認,提示轉賬成功:

單擊確定回到主菜單,這時我們單擊查詢08060112的余額:

結果正確,我們再通過數據庫查詢08060119的余額,打開表格,右擊,執行,顯示如下:

結果也正確,說明轉賬功能也已順利實現。5.存款功能測試

單擊返回回到主菜單,單擊“存款”,我們通過輸入數值來模擬放入現金:

單擊確認,系統提示操作成功:

單擊“確定”回到主菜單,單擊查詢,顯示如下:

結果正確。

6.修改密碼功能測試

單擊返回回到主菜單,單擊“修改密碼”,系統提示如下:

我們將密碼修改為“555555”,輸入“555555”后,提示操作成功:

單擊確定就回到主菜單。這時我們取回磁卡重新登錄以測試密碼是否已經修改。依舊輸入卡號08060112,單擊確認,輸入舊密碼“123456”,提示密碼錯誤:

單擊確定,重新輸入新密碼“555555”,單擊確認,則可順利登錄到主菜單

可見,密碼已經修改成功,另一方面,我們查看數據庫中的數據,右擊,執行,顯示如下:

可以看到賬戶08060112的password屬性已經變為“555555”,因此,修改密碼功能也能順利實現。至此,ATM系統的六大功能都已通過測試并正確無誤。

五、總結

通過這次UML建模的學習,我們學會了很多知識。之前我對UML建模一無所知,但現在我已學會了一些UML建模的基本知識,并學會了建立一些簡單的模型。

雖然只有短短的幾個禮拜,但收獲卻是很大的。首先是分析問題的能力,剛拿到這個題,總覺得無從下手,不知道題目到底要我們做什么,心里只是干著急,不知道該干嘛。經過一周的迷茫,我們開始靜下心來,分析題目,找參考書,嘗試性地進行編程。到第三周,我們終于做出了一個成果并且編譯沒有錯誤。之后就是嘗試運行,運行的過程中出現很多問題。比如轉賬,修改密碼等,但經過我們細心的測試、排查,還是找到了錯誤的原因并進行了糾正。因此,我們的查錯改錯的能力也得到了提高。最重要的是,我們通過這次實習學會了互相合作,俗話說“三個臭皮匠頂個諸葛亮”,也許我們單獨做很難完成這個程序。但是只要我們團結一致就沒有克服不了的困難。這次實習在我們的大學生活乃至整個人生中都有著非常重要的意義,是一筆不小的財富,難忘的經歷。我們會以此為基礎走好人生的每一步。

以上是我們對UML建模的學習的一點總結,同時也是為自己的未來整理好思路,為以后的學習做好準備。UML建模,教會了我很多,而我要做的,就是在以后的學習與生活中更加努力的學習來迎接它帶來的知識與挑戰。

第四篇:JAVA課程設計報告ATM存取款系統

目 錄

1課程設計題目描述和基本設計要求...............................................................2 系統需求分析..................................................................................................2.1 功能需求分析 ······················································································

2.2 其他需求分析 ······················································································

3系統設計...........................................................................................................3.1 總體設計 ······························································································

3.2 ATM柜員機界面設計 ·········································································

3.3 各功能模塊設計 ··················································································

3.3.1 登陸頁面模塊設計 ································································

3.3.2 選擇服務模塊設計 ································································

3.3.3 取款模塊設計 ·······································································

3.3.4 退卡模塊設計 ······································································· 3.4 異常處理情況說明 ·································································· 系統實現與測試..............................................................................................5總程序...............................................................................................................6 課程設計總結..................................................................................................6.1 遇到的問題及解決辦法 ······································································

6.2 心得體會 ······························································································

ATM柜員機 課程設計題目描述和基本設計要求

ATM柜員機主要是由各個Windows窗口組成,它是由登錄頁面、選擇服務、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機的要求。系統需求分析 2.1 功能需求分析

主要功能如下所述:

要求使用圖形用戶界面。當輸入給定的卡號和密碼(初始卡號為000000和密碼為123456)時,系統能登錄ATM柜員機系統,用戶可以按照以下規則進行:

? 查詢余額:初始余額為50000元

? ATM取款:每次取款金額為100的倍數,總額不超過5000元,支取金額不允許透支。

? ATM存款:不能出現負存款。

? 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。

2.2 其他需求分析

(1)性能描述

實時性好、靈活性強、易于不同年齡階段的人操作。(2)設計約束

開發工具:JCrator ProV3.5.0 運行環境:Windows 2000以上 能實現用戶所定義的各項需求。(3)界面要求

以Windows窗口形式顯示,標題欄為ATM柜員機名稱,右上角有最小化按鈕、最大化按鈕、關閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。系統設計 3.1 總體設計

我所設計的ATM柜員機主要是由登錄頁面模塊還由選擇服務模塊組成,其中選擇服務模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結構圖如下所示:

圖1

ATM功能結構示意圖

3.2 ATM柜員機界面設計

一個系統界面的好壞直接影響到用戶的操作,界面設計要求樣式美觀、簡單明了、方便易操作。界面主要分為窗體、菜單、按鈕和文本輸入框幾個部分,分別執行相應的操作。

(1)窗體的設計

窗體整個框架使用Frame類構造,Frame有自己的外邊框和自己的標題,創建Frame時可以指定其窗口標題,我創建的窗口標題是各個不同功能的模塊的名字,比如說查詢余額,還有取款等。相應源代碼為:WindowBox(String s,Account act){super(“ATM柜員機”);}、Selection(String s,Account act){ } super(s);向Frame窗口中添加組件使用add()。例如:button1 = new Button(“存款”);

p1.add(button1);this.add(p1);每個Frame在其右上角都有三個控制圖標,分別代表將窗口最小化、窗口最大化和關閉的操作,其中最小化和最大化操作Frame可自動完成,而關閉窗口操作實現需要書寫有關的代碼,在我的程序中我采用的是對WINDOWS_CLOSING事件做出響應,調用dispose()方法關閉窗口。Frame也可以引發WindowsEvent類代表的窗口事件。相應源代碼為:

addWindowListener(new WindowAdapter()//窗口偵聽器,以從此窗口接收窗口事件 {public void windowClosing(WindowEvent e)//處理窗口關閉事件

{ System.exit(0);} });}(2)窗體的主要結構的設計

我所設計的窗口的主要結構的特點就是每個窗口都對應著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務等,所以它們都是由各種按鈕和文本框,標簽組成的,而聯系各個窗體成為一個整體的就是各個按鈕的監聽事件。所以整個設計就趨向簡單化了。

為了定義各個按鈕所對應的命令和操作,首先需要將各個按鈕注冊給實現了動作事件的監聽接口ActionListener的監聽者,然后為監聽者定義actionPerformed(ActionEvent e)方法,在這個方法中調用e.getSource()或e.getActionCommand()來判斷用戶點擊的菜單子項,并完成這個菜單子項定義的操作。

3.3 各功能模塊設計 3.3.1 登陸頁面模塊設計

與ATM柜員機打交道比較多的,也是大家對安全比較關心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續服務。

我定義了文本框累的對象tf1,tf2。抓藥是用于輸入單行的文本;文本區調用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關掉窗口。

3.3.2 選擇服務模塊設計

在選擇服務模塊中,有各種ATM的服務功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應的界面。每一個按鈕都有監聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創建一個事件對象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數e,監視器就會知道所發生的事件,對此事件進行處理。

3.3.3 取款模塊設計

在取款模塊中,和其他的界面也是同樣的結構。也是有一個文本框和一個按鈕還有標簽組成的。用戶在文本框中輸入他想取的數額,但是必須是100的倍數,而且每一次最多只能取5000塊。當然了取款的時候也不能超過卡里的余額,再就是卡里的余額不可以為負,否則就會彈出報錯的窗口。3.3.4 退卡模塊設計

在退卡模塊設計中,這個方法就更加的簡單了,它只是用了if(e.getSource()==button4){//退出

} System.exit(0);dispose();這個方法就可以實現了,這里就不再多說了。

3.4 異常處理情況說明

(1)打開、保存文件時的異常處理 需要處理的異常:IOException(2)數據庫訪問時的異常處理 需要處理的異常:SQLException(3)加載類時的異常處理

需要處理的異常:ClassNotFindException,當應用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。

(4)加載URL時的異常

需要處理的異常:MalformedURLException,拋出這一異常指示出現了錯誤的 URL?;蛘咴谝幏蹲址姓也坏饺魏魏戏▍f議,或者無法分析字符串。系統實現與測試

(1)編譯運行程序后,將會看到如下的界面,如圖2所示。如果輸入的密碼或卡號不正確的話就會報右下圖的錯誤。

圖2 主界面—登陸頁面

(2)選擇服務界面效果

當輸入的密碼和卡號正確,單擊確定后就會進入到選擇服務的界面,如圖3所示。然后就可以選擇所需要的服務了。

圖3 選擇服務界面

(3)取款界面,如圖4所示。

圖4 取款界面

(4)查詢余額界面,如圖7所示。

圖7 查詢余額界面

圖8 存款界面

圖9 轉賬界面

經過測試,所有的功能基本上都實現了,而且運行正常。.總程序

package ZDC;//主菜單

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(“

”+“銀行存取款系統”);label2=new JLabel(“

”+“歡迎你成為本行用戶,你可以選擇中文或英文方式”);

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()==“英文”){String inputValue = JOptionPane.showInputDialog(“Please input a value”);}

} } public class menu{

public static void main(String []args){

new Client(“用戶取款系統”);

}} package ZDC;

// 輸入密碼界面

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 Panel01 extends JPanel{

JLabel label1,label2,label3,label4;JPasswordField textA;JTextField textC;

static JTextField textB;char t[]=new char[4];

Panel01(){

setLayout(new GridLayout(4,4));

for(int i=0;i<4;i++){t[i]=(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;i<5;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;i<7;i++){add(new

JLabel());}add(button1);add(new JLabel());

add(button2);for(int i=0;i<6;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);

JLabel());add(new

panel2.button1.addActionListener(this);

panel2.button2.addActionListener(this);

this.setVisible(true);this.pack();

}

public void actionPerformed(ActionEvent e){

char[] passwords=panel1.textA.getPassword();String password=new String(”000000“);

//設置賬號123456789的初始密碼為112626,每輸入一次都有提示,在連續輸入三次不正確后系統自動退出。

”);}

if(e.getActionCommand().equals(“確定”))

if(panel1.textC.getText().equals(panel1.label3.getText())){

heshi();

}

else{JOptionPane.showMessageDialog(frame,“你輸入的驗證碼有誤,請重新輸入。

else if(e.getActionCommand()==”取消“){this.setVisible(false);new Client08(”“);}

}

public void heshi(){

if(panel1.textA.getText().equals(”“)||panel1.textB.getText().equals(”“)){JOptionPane.showMessageDialog(frame,”

請輸入賬號、密碼!“);return;} try{ Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);Connection con=DriverManager.getConnection(”jdbc:odbc:hello“,”“,”“);//連接數據庫 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(”用戶取款系統“);

}else{ if(i!=2){i++;j=3-i;

JOptionPane.showMessageDialog(frame,”密碼有誤!你還有“+j+”次機會,請你再仔細想想.“);

panel1.textA.setText(”“);}

else {JOptionPane.showMessageDialog(frame,”對不起,你輸入的密碼次數達三次,下次再見?!?;System.exit(0);}

}

con.close();frame.repaint();

}

else{JOptionPane.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 Inputpassword{

public static void main(String []args){

new Client00(”用戶取款系統“);

}} package ZDC;//選擇界面

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 Panel03 extends JPanel{

”);

for(int i=0;i<7;i++){add(new

JLabel());}add(button1);add(new

JLabel());add(new

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(“存款JLabel());

add(button2);for(int

i=0;i<8;i++){add(new

JLabel());}add(button3);add(new JLabel());add(new JLabel());add(button5);

for(int i=0;i<17;i++){add(new JLabel());}add(button4);for(int i=0;i<7;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(”請選擇取款金額“);

}

else if(e.getActionCommand()==”查詢“){

this.setVisible(false);

new Client06(”查詢服務“);

}

else if(e.getActionCommand()==”存款“){

this.setVisible(false);

new Client05(”請選擇存款金額“);

}

else if(e.getActionCommand()==”轉賬“){

this.setVisible(false);

new Client04(”用戶轉賬服務“);

}

else if(e.getActionCommand()==”退出“){ this.setVisible(false);new Client08(”“);}

} } class Selectfunction{

public static void main(String []args){

new Client01(”用戶取款系統“);

new Client01(”用戶存款系統“);

} } package ZDC;//查詢功能

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 ZDC.Panel01;

import java.awt.event.*;class Panel06 extends JPanel{

JLabel label1,label2;JTextField textA;JFrame frame;

Panel06(){

setLayout(new GridLayout(4,4));label1=new JLabel(”你的余額為:“);

textA=new JTextField(6);

for(int i=0;i<5;i++){add(new JLabel());}

add(label1);add(textA);for(int i=0;i<9;i++){add(new JLabel());}

} } class Panel07 extends JPanel{

JButton button1,button2;

Panel07(){

setLayout(new GridLayout(3,6));

button1=new JButton(”繼續“);button2=new JButton(”查詢“);

for(int i=0;i<7;i++){add(new

JLabel());}add(button2);add(new JLabel());

add(button1);for(int i=0;i<7;i++){add(new JLabel());}

} } class Client03 extends JFrame implements ActionListener{

Panel06 panel1;Panel07 panel2;

Client03(String s){

super(s);

Container con=this.getContentPane();

con.setLayout(new GridLayout(2,1));

panel1=new Panel06();panel2=new Panel07();

con.add(panel1);con.add(panel2);

panel2.button1.addActionListener(this);

panel2.button2.addActionListener(this);

this.setVisible(true);this.pack();

}

JLabel());add(new

public void actionPerformed(ActionEvent e){

if(e.getActionCommand().equals(”繼續“)){

this.setVisible(false);

new Client01(”選擇服務種類“);

}

else if(e.getActionCommand()==”查詢“)showcjine();

}

public void showcjine(){

//String

url

=

”jdbc:odbc:driver={Microsoft

Access

Driver(*.mdb)};DBQ=bankSystem.mdb“;//程序直接使用當前類目錄下的數據庫文件

try{

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);

Connection con=DriverManager.getConnection(”jdbc:odbc:hello“,”“,”“);//連接數據庫 Statement sql=con.createStatement();String ql=Panel01.textB.getText();Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);ResultSet rs=sql.executeQuery(”select cjine from card where cno=“+ql+”“);

if(rs.next()){

String ucjine=rs.getString(1);

panel1.textA.setText(ucjine);

}

else{JOptionPane.showMessageDialog(null,”

該用戶不存在“,”警告!“, JOptionPane.YES_NO_OPTION);}

con.close();

}catch(Exception ex){ ex.printStackTrace();

}

}

} class Searchfunction{

public static void main(String []args){

new Client03(”用戶查詢服務“);

}} package ZDC;

//查詢信息

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 Panel11 extends JPanel{

JButton button1,button2;

Panel11(){

setLayout(new GridLayout(10,5));

button1=new JButton(”查詢余額“);

button2=new JButton(”查本卡信息“);

for(int i=0;i<=16;i++)add(new JLabel());

add(button1);

for(int i=0;i<=13;i++)add(new JLabel());

add(button2);

for(int i=0;i<=16;i++)add(new JLabel());} }

class Client06 extends JFrame implements ActionListener{

Panel11 panel11;JFrame frame;

Client06(String s){

super(s);

Container con=this.getContentPane();

panel11=new Panel11();

con.add(panel11);

panel11.button1.addActionListener(this);

panel11.button2.addActionListener(this);

this.setVisible(true);this.pack();}

public void actionPerformed(ActionEvent e){

if(e.getActionCommand()==”查詢余額“){

this.setVisible(false);

new Client03(”用戶查詢服務“);

}

else if(e.getActionCommand()==”查本卡信息“){ this.setVisible(false);

new Client07(”本卡信息“);

} } } class Searchinformation{

public static void main(String []args){

new Client06(”查詢服務“);

} } package ZDC;//轉賬功能

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 ZDC.Panel01;

import java.awt.event.*;class Panel08 extends JPanel{

JLabel label1,label2;JTextField textA,textB;

Panel08(){

setLayout(new GridLayout(4,4));

label1=new JLabel(”輸入預轉賬號:“);label2=new JLabel(”輸入預轉金額:“);

textA=new JTextField(6);textB=new JTextField(6);

for(int i=0;i<5;i++){add(new JLabel());}

add(label1);add(textA);for(int i=0;i<6;i++){add(new JLabel());}

add(label2);add(textB);add(new JLabel());

} } class Panel09 extends JPanel{

JButton button1,button2;

Panel09(){

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 Client04 extends JFrame implements ActionListener{

Panel08 panel1;Panel09 panel2;JFrame frame;

Client04(String s){

super(s);

Container con=this.getContentPane();

con.setLayout(new GridLayout(2,1));

panel1=new Panel08();panel2=new Panel09();

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().equals(”確定“)){ zhuanzhang();//程序根據輸入賬號調用數據庫,修改對應金額數。

this.setVisible(false);

new Client01(”用戶取款系統“);

}

else if(e.getActionCommand()==”取消“){

this.setVisible(false);

new Client01(”用戶取款系統“);}

}

public void zhuanzhang(){

if(panel1.textA.getText().equals(”“)||panel1.textB.getText().equals(”“)){JOptionPane.showMessageDialog(frame,”

請輸入欲轉賬號、金額!“);return;} //String url = ”jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=bankSystem.mdb“;//程序直接使用當前類目錄下的數據庫文件

try{

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);

Connection con=DriverManager.getConnection(”jdbc:odbc:hello“,”“,”“);//連接數據庫 Statement sql=con.createStatement();String cno=panel1.textA.getText();String ql=Panel01.textB.getText();

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);

ResultSet ss=sql.executeQuery(”select cno from card where cno=“+cno+”“);String yjine=panel1.textB.getText();

int shjin=Integer.parseInt(yjine);

if(ss.next()){

ResultSet rs=sql.executeQuery(”select cjine from card where cno=“+ql+”“);if(rs.next()){ String queryjine=rs.getString(1);

int qyjine=Integer.parseInt(queryjine);

if(shjin

String newjine=String.valueOf(newcjine);String newjine2=String.valueOf(newcjine2);

sql.executeUpdate(”update card set cjine='“+newjine+”'where cno=“+ql+”“);

sql.executeUpdate(”update card set cjine='“+newjine2+”'where cno=“+cno+”“);JOptionPane.showMessageDialog(frame,”

操作已成功,謝謝使用!“);this.setVisible(false);new Client01(”用戶取款系統“);

}

else{JOptionPane.showMessageDialog(null,”

請重新輸入金額!“,”警告!“, JOptionPane.YES_NO_OPTION);

panel1.textB.setText(”“);return;

}

con.close();frame.repaint();

}

con.close();frame.repaint();

}

else{JOptionPane.showMessageDialog(null,”

警告!“, JOptionPane.YES_NO_OPTION);panel1.textA.setText(”“);}

}catch(Exception ex){ ex.printStackTrace();

}

} } class Transferfunction{

public static void main(String []args){

new Client04(”用戶轉賬服務“);}} package ZDC;//用戶取款

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 ZDC.Panel01;

import java.awt.event.*;class Panel04 extends JPanel{

JButton button1,button2,button3,button4;

Panel04(){

setLayout(new GridLayout(4,6));

button1=new JButton(”100“);button2=new JButton(”200“);

button3=new JButton(”300“);button4=new JButton(”500“);

for(int i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());

add(button2);for(int i=0;i<8;i++){add(new JLabel());}add(button3);add(new JLabel());

add(new JLabel());add(button4);add(new JLabel());

} } class Panel05 extends JPanel{

JButton button1,button2,button3,button4;

Panel05(){

setLayout(new GridLayout(4,6));

button1=new JButton(”800“);button2=new JButton(”1000“);

for(int i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());

add(button2);for(int i=0;i<13;i++){add(new JLabel());}

} } class Client02 extends JFrame implements ActionListener{

Panel04 panel1;Panel05 panel2;JFrame frame;

Client02(String s){

super(s);

Container con=this.getContentPane();

con.setLayout(new GridLayout(2,1));

panel1=new Panel04();panel2=new Panel05();

con.add(panel1);con.add(panel2);

panel1.button1.addActionListener(this);panel1.button2.addActionListener(this);

panel1.button3.addActionListener(this);panel1.button4.addActionListener(this);

panel2.button1.addActionListener(this);panel2.button2.addActionListener(this);

this.setVisible(true);this.pack();

}

public void actionPerformed(ActionEvent e){

if(e.getActionCommand()==”100“){

this.setVisible(false);

qukuan();//程序根據輸入金額和輸入卡號,修改數據庫。

new Client01(”用戶取款系統“);

}

else if(e.getActionCommand()==”200“){

else if(e.getActionCommand()==”300“){

this.setVisible(false);

qukuan();

new Client01(”用戶取款系統“);}

this.setVisible(false);

qukuan();

new Client01(”用戶取款系統“);}

else if(e.getActionCommand()==”500“){

this.setVisible(false);

qukuan();

new Client01(”用戶取款系統“);}

else if(e.getActionCommand()==”800“){

this.setVisible(false);

qukuan();

new Client01(”用戶取款系統“);}

else if(e.getActionCommand()==”1000“){

}

public void qukuan(){

try{

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);Connection con=DriverManager.getConnection(”jdbc:odbc:hello“,”“,”“);//連接數據庫 Statement sql=con.createStatement();String ql=Panel01.textB.getText();

this.setVisible(false);

qukuan();

new Client01(”用戶取款系統“);}

ResultSet rs=sql.executeQuery(”select cjine from card where cno=“+ql+”“);if(rs.next()){ String mm=rs.getString(1);int nn= Integer.parseInt(mm);

String qerycjine=panel1.button1.getActionCommand();

int queryjine=Integer.parseInt(qerycjine);if(queryjine

if(updateMima==1){ JOptionPane.showMessageDialog(frame,”

操作已成功,謝謝使用!“);}

this.setVisible(false);

new Client01(”用戶取款系統“);

}

else{JOptionPane.showMessageDialog(null,”

你的卡余額已不足,請注意!“,”警告!“, JOptionPane.YES_NO_OPTION);

}

con.close();

frame.repaint();

}

}catch(SQLException g){ System.out.println(”E Code“+g.getErrorCode());System.out.println(”E M“+g.getMessage());

} catch(Exception e){ e.printStackTrace();

}

} } class Withdraw{

public static void main(String []args){

new Client02(”請選擇取款金額“);

} } this.setVisible(false);new Client01(”用戶取款系統“);package ZDC;

//存款功能

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 ZDC.Panel01;

import java.awt.event.*;class Panel10 extends JPanel{

JButton button1,button2,button3,button4;

Panel10(){

setLayout(new GridLayout(4,6));

button1=new JButton(”100“);button2=new JButton(”200“);

button3=new JButton(”300“);button4=new JButton(”500“);

for(int i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());

add(button2);for(int i=0;i<8;i++){add(new JLabel());}add(button3);add(new JLabel());

add(new JLabel());add(button4);add(new JLabel());

} } class Panel14 extends JPanel{

JButton button1,button2,button3,button4;

Panel14(){

setLayout(new GridLayout(4,6));

button1=new JButton(”800“);button2=new JButton(”1000“);

for(int i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());

add(button2);for(int i=0;i<13;i++){add(new JLabel());}

} }

class Client05 extends JFrame implements ActionListener{

Panel04 panel1;Panel05 panel2;JFrame frame;

Client05(String s){

super(s);

Container con=this.getContentPane();

con.setLayout(new GridLayout(2,1));

panel1=new Panel04();panel2=new Panel05();

con.add(panel1);con.add(panel2);

panel1.button1.addActionListener(this);panel1.button2.addActionListener(this);

panel1.button3.addActionListener(this);panel1.button4.addActionListener(this);

panel2.button1.addActionListener(this);panel2.button2.addActionListener(this);

this.setVisible(true);this.pack();

}

public void actionPerformed(ActionEvent e){

if(e.getActionCommand()==”100“){

this.setVisible(false);

cunkuan();//程序根據輸入金額和輸入卡號,修改數據庫。

new Client01(”用戶存款系統“);

}

else if(e.getActionCommand()==”200“){this.setVisible(false);new Client01(”用戶存款系統“);}

//這里當點擊取款金額200時,程序返回上層操作界面。

}

public void cunkuan(){

try{

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);Connection con=DriverManager.getConnection(”jdbc:odbc:hello“,”“,”“);//連接數據庫 Statement sql=con.createStatement();String ql=Panel01.textB.getText();ResultSet rs=sql.executeQuery(”select cjine from card where cno=“+ql+”“);

if(rs.next()){ String mm=rs.getString(1);int nn= Integer.parseInt(mm);

String qerycjine=panel1.button1.getActionCommand();

int queryjine=Integer.parseInt(qerycjine);int newjine=nn+queryjine;String newjin=String.valueOf(newjine);int updateMima=sql.executeUpdate(”update card set cjine='“+newjin+”'where cno=“+ql+”“);

if(updateMima==1){ JOptionPane.showMessageDialog(frame,”

操作已成功,謝謝使用!“);}

this.setVisible(false);

new Client01(”用戶存款系統“);

}

else{JOptionPane.showMessageDialog(null,”

請注意!“,”警告!“, JOptionPane.YES_NO_OPTION);

this.setVisible(false);new Client01(”用戶取款系統“);}

con.close();

frame.repaint();

}catch(SQLException g){ System.out.println(”E Code“+g.getErrorCode());System.out.println(”E M“+g.getMessage());

} catch(Exception e){ e.printStackTrace();

}

} }

class Depositfunction{

public static void main(String []args){

new Client05(”請選擇存款金額“);

} } package ZDC;//顯示用戶信息

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 ZDC.Panel01;

import java.awt.event.*;

class Panel12 extends JPanel{

JLabel label1,label2,label3,label4;

JButton button1,button2;JTextField text1,text2,text3,text4;

Panel12(){

setLayout(new GridLayout(9,6));

label1=new JLabel(”顯示用戶名:“);label2=new JLabel(”顯示性別:“);

label3=new JLabel(”顯示身份證:“);label4=new JLabel(”顯示卡號:“);

button1=new JButton(”查詢“);text1=new JTextField(”“);text2=new JTextField(”“);

button2=new JButton(”取消“);text3=new JTextField(”“);text4=new JTextField(”“);

for(int i=0;i<8;i++)add(new JLabel());add(label1);add(text1);

for(int i=0;i<4;i++)add(new JLabel());add(label2);add(text2);

for(int i=0;i<4;i++)add(new JLabel());add(label3);add(text3);

for(int i=0;i<4;i++)add(new JLabel());add(label4);add(text4);

for(int i=0;i<15;i++)add(new JLabel());add(button1);

add(new JLabel());add(new JLabel());add(button2);

for(int i=0;i<7;i++)add(new JLabel());} } class Client07 extends JFrame implements ActionListener{

Panel12 panel12;JFrame frame;

Client07(String s){

super(s);

Container con=this.getContentPane();

panel12=new Panel12();

con.add(panel12);

panel12.button1.addActionListener(this);

panel12.button2.addActionListener(this);

this.setVisible(true);this.pack();}

public void actionPerformed(ActionEvent e){

if(e.getActionCommand()==”查詢“)showCard();

else if(e.getActionCommand()==”取消“){

this.setVisible(false);

new Client01(”用戶取款系統“);

}

}

public void showCard(){

String url = ”jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=bankSystem.mdb“;//程序直接使用當前類目錄下的數據庫文件

try{

Connection con=DriverManager.getConnection(url);Statement sql=con.createStatement();String ql=Panel01.textB.getText();Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver“);ResultSet rs=sql.executeQuery(”select * from user where ucno=“+ql+”“);

if(rs.next()){

String uname=rs.getString(1);

String usex=rs.getString(2);

String uid=rs.getString(3);

String ucno=rs.getString(4);

panel12.text1.setText(uname);

panel12.text2.setText(usex);

panel12.text3.setText(uid);

panel12.text4.setText(ucno);}

else{JOptionPane.showMessageDialog(null,”

該用戶不存在“,”警告!“, JOptionPane.YES_NO_OPTION);}

con.close();

} catch(Exception ex){ ex.printStackTrace();

}

} } class Dislayuserinformation{

public static void main(String []args){

new Client07(”本卡信息“);

} } package ZDC;//退出功能

class Client08{ static Athread threadA;

Client08(String s){

threadA=new Athread();

threadA.start();

} } class Athread extends Thread{ static int j=1;public void run(){ for(;j<2;){ new Client08(”提示退出對話框“);try{sleep(30000);j++;} catch(InterruptedException e){} } System.exit(0);} } public class Exit{

public static void main(String []args){

new Client08(”“);

} }

package ZDC;//退卡

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 Panel13 extends JPanel{

JLabel label;

Panel13(){

label=new JLabel(”

此卡!

“);

setLayout(new

GridLayout(10,1));add(new JLabel());

add(label);for(int i=0;i<6;i++)add(new JLabel());}

} class Client09 extends JFrame{

Panel13 panel13;

Client09(String s){

super(s);

Container con=this.getContentPane();

panel13=new Panel13();

con.add(panel13);

this.setVisible(true);this.pack();} }

class bankSystem09{

謝謝使用,請在30秒內退出

JLabel());add(new

JLabel());add(new

public void main(String []args){

new Client08(”提示退出對話框");

} } 6課程設計總結

6.1 遇到的問題及解決辦法

在此次課程設計中,我遇到了一些問題,如:對于面向對象的方法了解不夠透徹,運用到實際的軟件開發中存在著困難;對于Java語言,只學習到了一些最基本的知識,這導致編寫程序時經常出現一些語法錯誤,而且要在短時間內用Java語言來設計一個具體的系統是一個較大的挑戰。對于以上的問題,自己有清楚的認識,解決辦法是需要大量閱讀相關的書籍,對于書上以及網站上下載的資料中的Java實例必須有清楚的理解。對于實際動手能力與系統開發的流程的適應,必須多進行實際的練習與操作,才能有大的進步。

6.2 心得體會

在這次的課程設計中,我主要運用了Java語言的界面設計、異常處理、、Awt控件、Swing控件,輸入輸出流等,綜合運用了Java語言。我深刻感受到了面向對象語言中類庫的強大功能,掌握了運用Java中的類實現某些基本功能,并學會了自己查詢使用類的方法,為以后的面向對象語言的自學奠定了基礎。在以后的學習當中,我會更加努力的學習好專業知識,并將所學的知識用于實踐當中去,以便牢固掌握知識。

第五篇:基于VB技術的倉庫管理系統的設計與實現

摘要

庫存管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強.數據安全性好的庫。而對于后者則要求應用程序功能完備,易操作易使用等特點。

經過分析如此情況,我決定使用微軟公司的Visual Basic 6為開發工具,利用其提供的各種面向對象的開發工具,尤其是ADO,是能方便而簡潔操縱數據庫的智能化對象,短期內就可以開發出用戶滿意的可行系統。

主題詞:倉庫管理;數據庫;VB6;ADO

第 i 頁

目錄

摘要.................................................................................................................i ABSTRACT..........................................................................錯誤!未定義書簽。第一章

緒論......................................................................................................1

1.1 選題背景...........................................................................................................1 1.2 設計目標...........................................................................................................1 第二章

相關理論基礎.......................................................................................2

2.1 Visual Basic 6.....................................................................................................2

2.1.1 Visual Basic 6的功能特點.....................................................................2 2.1.2 Visual Basic 6中的基本概念.................................................................3 2.2 Access2000數據庫............................................................................................4

2.2.1 Access的總體結構.................................................................................4 2.2.2 VB6和Access的連接...........................................................................5

第三章

需求分析...............................................................................................6

3.1 需求分析...........................................................................................................6

3.1.1 系統數據流程圖....................................................................................7 3.1.2 功能需求及設計思想............................................................................7

第四章

系統設計.............................................................................................11

4.1 系統功能設計.................................................................................................11

4.1.1 系統功能模塊圖..................................................................................11 4.1.2 系統各模塊說明..................................................................................11 4.2 數據庫設計.....................................................................................................12

4.2.1 創建數據庫..........................................................................................12 4.2.2 數據表結構..........................................................................................12 4.2.3 數據庫中各表的關系..........................................................................16

第五章

倉庫管理原型系統實現.......................................................................16

5.1 數據庫實現.....................................................................................................16

5.1.1 連接數據庫..........................................................................................17 5.1.2 建立數據表..........................................................................................18 5.2倉庫管理系統主要界面及使用說明..............................................................18

5.2.1 系統登錄界面......................................................................................19 5.2.2 系統主界面..........................................................................................19 5.2.3 系統管理模塊......................................................................................20

第 ii 頁 5.2.4 倉庫管理模塊......................................................................................22 5.2.5 物料管理模塊......................................................................................25 5.2.6 報表查詢模塊......................................................................................29 5.4 系統測試.........................................................................................................31

5.4.1 菜單測試..............................................................................................32 5.4.2各功能模塊測試...................................................................................32 5.4.3 數據跟蹤測試......................................................................................32

第六章

小結與展望.........................................................................................33

6.1 成績及不足.....................................................................................................33

6.1.1 成績......................................................................................................33 6.1.2 不足......................................................................................................33 6.2 展望.................................................................................................................34 致

謝..............................................................................................................36 參考文獻...........................................................................................................37

第 iii 頁

第一章

緒論

1.1 選題背景

隨著計算機技術的發展,計算機管理已越來越多地運用到了各個領域。在現代企業的各個環節已離不開計算機了。各種各樣的管理軟件也應運而生。

企業的庫存物資管理往往是很復雜、很繁瑣的。由于所掌握的物料種類眾多,訂貨、管理、發放的渠道各有差異,各個企業之間的管理體制不盡相同,各類統計報表繁多,因此倉庫管理必須編制一套倉庫管理信息系統,實現計算機化操作,而且必須根據企業的具體情況制定相應的方案。

一般倉庫管理系統,總是根據所掌握的物資類別,相應分成幾個部門來進行物料的計劃,訂貨,核銷托收,驗收入庫,根據企業各個部門的需求來發送物資設備,并隨時按期進行庫存盤點,作臺帳,根據企業管理的需要按月、季度、進行統計分析,產生相應報表。根據我公司的實際情況分析,一般的倉庫管理系統并不能滿足公司的需求,而且每套系統的成本也過高。因此有必要開發一套特定的倉庫管理系統來提高公司的工作效率,減少因人為因素而導致的物料損失。通過對這些情況的仔細調查,我開發了下面的倉庫管理系統。

1.2 設計目標

倉庫管理系統可主要實現下列目標: ? 操作簡單方便、界面簡潔美觀。? 能完成倉庫的各種日常操作。

? 能很好的預防各自人為因素產生的錯誤操作

? 能夠為用戶提供多種條件的查詢操作,為物料管理提供準確及時的數據 ? 可實現盤點報表及盤點后的物料調整 ? 具有很好的安全性,以保證數據的正確性 ? 可追溯數據的歷史信息,為系統完善提供依據

第 1 頁

第二章

相關理論基礎

本系統主要采用VB6 + Access2000相結合的技術來進行開發,用戶界面的設計是用VB6來進行的,后臺數據庫使用Access2000。與數據庫的連接則使用ADO的相關功能來完成的。

在系統需涉及的一些相關技術概述如下。

2.1 Visual Basic 6 Visual意為“可視化的”,指的是一種開發圖形用戶界面的方法,所以Visual Basic是基于Basic的可視化的程序設計語言。在Visual Basic中,一方面繼承了Basic所具有的程序設計語言簡單易用的特點,另一方面在其編程系統中采用了面向對象、事件驅動的編程機制,用一種巧妙的方法把Windows的編程復雜性封裝起來,提供了一種所見即所得的可視化程序設計方法。VB6是指Visual Basic 6.0的版本。

2.1.1 Visual Basic 6的功能特點

A)具有面向對象的可視化設計工具:在VB中,應用面向對象的程序設計方法(OOP),把程序和數據封裝起來視為一個對象,每個對象都是可視的。程序員在設計時只需用現有工具根據界面設計要求,直接在屏幕上“畫”出窗口、菜單、按鈕、滾動條等不同類型的對象,并為每個對象設置屬性。程序員的編程工作僅限于編寫相關對象要完成的功能程序,因而程序設計的效率可大大提高。

B)事件驅動的編程機制:事件驅動是非常適合圖形用戶界面的編程方式。在圖形用戶界面的應用程序中,是由用戶的動作即事件掌握著程序運行的流向,每個事件都能驅動一段程序的運行。程序員只要編寫響應用戶動作的代碼,而各個動作之間不一定有聯系。

C)提供了易學易用的應用程序集成開發環境:在VB集成開發環境中,用戶可設計界面、編寫代碼、調試程序,直至把應用程序編譯成可執行文件在Windows中運行,使用戶在友好的開發環境中工作。

D)結構化的程序設計語言:VB6具有豐富的數據類型和結構化程序結構,作為一種程序設計語言,它還有如下一些特點:強大的數值和字符串處理功能;豐富的圖形指令,可方便地繪制各種圖形;提供靜態和動態數組,有利于簡化內存的管理;過程可遞歸調用,使程序更為簡練;支持隨機文件和順序文件的訪問;提供了一個可供應用程序調用的包含多種類型的圖標庫;具有完善的運行出錯處

第 2 頁 理。

E)支持多種數據庫系統的訪問:利用數據控件可訪問的數據庫系統有:Microsoft Access、SQL server、DBASE、Microsoft FoxPro和Oracle等,也可以訪問Microsoft Excel、Lotus1-2-3等多種電子表格。

F)支持動態數據交換(DDE)、動態鏈接庫(DLL)和對象的鏈接與嵌入(OLE)技術。

G)完備的HELP聯機幫助功能:與Windows環境下的軟件一樣,在VB中,利用幫助菜單和F1功能鍵,用戶可以隨時方便地得到所需要的幫助信息。VB幫助窗口中顯示了有關的示例代碼,通過復制、粘貼操作可獲取大量的示例代碼,為用戶的學習和使用提供了極大的方便。

VB程序設計的概念就是面向對象的概念,對象就是數據(DATA)和代碼(CODE)互相結合的綜合體。Windows上面的每一個圖標,包括窗口本身都是對象,如果沒有任何事情發生,對象處于停頓狀態。當存在外來事件時,程序段執行,它的執行是由外來事件決定的。因此是“事件”驅動的。

編寫VB程序較為簡單,首先將各個對象放在空白窗體上,然后將程序代碼分別添加給對象或圖標,將它們組合起來就可以隨意運行了。

在VB中,窗體實際上是一個對象,VB的窗體含有許多內嵌特性,這使得用戶界面部分的建立像是從一個目錄中挑選一個個合適的控件,而不是從零開始一步一步地建立控件。這種開發者能親眼看到的程序設計過程就是“可視化程序設計”(Visual Programming)。

2.1.2 Visual Basic 6中的基本概念

對象:面向對象編程(OOP)的提法大家一定也很耳熟,雖然Visual Basic并不是完全的面向對象編程,但也利用了對象編程技術。對象簡單地說就是大家經常看到的各種窗口、按鈕、文本框甚至打印機等。

屬性:如同電視有黑白、彩色之分一樣,作為對象的Windows中的窗口也是有大有小,文本框的位置不可能完全一樣,菜單要顯示出不同的功能,這些都是由對象的屬性決定的。不同對象的屬性可能不同。屬性一般決定了對象的位置、大小、顯示等情況。

方法:就是對象能夠做的事,如打印機對象就有打?。≒rint)方法、窗口對象支持隱藏(Hide)方法、很多對象支持移動(Move)方法等。

事件:就是對象對用戶各種操作的反映情況。如用戶用鼠標按一下按鈕,就會觸發按鈕的“按”(Click)事件。

第 3 頁 控件:控件就是Visual Basic提供的編程用的模塊,與對象有直接的聯系,如同積木的木塊,使用這樣的控件,就可以像拼圖或堆積木一樣“搭”、“拼”你的程序界面。Visual Basic中使用控件,簡化了Windows中的窗口、按鈕等對象的編程設計。每個控件都有各自的屬性、事件及方法。只需修改這些特征你就可以隨心所欲地編程了。最重要的是,你可以利用成千上萬的各種擴充的控件來快速構造幾乎能滿足你任何要求的程序。例如,如果你不滿意Windows簡陋的媒體播放器,你就可以使用VB的多媒體控件在1小時以內設計一個完全自己風格的能夠播放CD、VCD的多媒體播放器,而功能完全與之相當。

2.2 Access2000數據庫

作為Microsoft的office套件產品之一,Access已經成為世界上最流行的桌面數據庫系統。Access與許多優秀的關系數據庫一樣,可以讓你很容易地連接相關的信息而且還對其他的數據庫系統有所補充。它能操作其它來源的資料,包括許多流行的PC數據庫程序(如dBase,Paradox,Microsoft FoxPro)和服務器、小型機及大型機上的許多SQL數據庫。Access還完全支持Microsoft的OLE技術。

Access還提供windows操作系統的高級應用程序開發系統。Access與其它數據庫開發系統之間相當顯著的區別就是:您不用寫一行代碼,就可以在很短的時間里開發出一個功能強大而且相當專業的數據庫應用程序,并且這一愉快的過程是完全可視的!如果您能給它加上簡短的VBA代碼,那么您的程序決不比專業程序員潛心開發的程序差。

2.2.1 Access的總體結構

Access將所有有名字的東西都成為對象(object),在Access 2000中,最重要的對象有表,查詢,窗體,報表,宏和模塊。

表:用戶定義的存儲資料的對象。每一個表都包含有關某個主體的信息。表包括存儲不同種類資料的字段(列),而記錄(行)則收集特定主體實例的所有信息。

查詢:為來自一個或多個表的資料提供定制視圖的對象。在Access中,可以利用圖形化的實例查詢機制(QBE)或通過SQL語句來建立查詢。你可以在查詢中選擇、更新、插入或刪除資料,也可以用查詢來建立新表。

窗體:窗體是主要的人機接口。大量的操作(幾乎所有)都要通過窗體完成。窗體通過運行宏(macro)或Visual Basic for Applications(VBA)過程,來響應大

第 4 頁 量的事件。Access 2000為我們提供了強大的(同時也是相當方便的向導)來建立標準的Windows窗體。

報表:為格式化、計算、打印選定資料而設計的對象。它是衡量一個優秀的數據庫的重要標準(有時甚至是唯一的標準)。

宏:為了響應已定義的事件,需要讓Access去執行一個或多個操作,而宏就是對這些操作的結構化的定義對象。它可以讓你像堆積木一樣建立一個功能強大的程序,而無須寫大量的代碼。

模塊:包括用VBA編碼的定制過程的一個對象。模塊提供了獨立的動作流以捕獲錯誤,而宏做不到。模塊能直接響應窗體或報表事件,也可以從應用程序的任何地方被調用。

2.2.2 VB6和Access的連接

在進行系統開發時,一個很重要的步驟就是建立數據庫的連接,即訪問數據庫。VB6提供了多種方式訪問數據庫,其中以ODBC與ADO應用最多。早期還有RDO,DAO等。

2.2.2.1 ODBC連接數據庫

ODBC(Open Database Connectivity,開放數據庫連接)是微軟開放服務結構中有關數據庫的一個組成部分。它建立了一組規范,并提供了一組應用程序調用接口。用這樣一組接口建立的應用程序,對數據庫的操作不依賴于任何數據庫管理系統,不直接與任何DBMS打交道,由此可實現應用程序對不同DBMS的共享。數據庫操作的“數據源”對應用程序是透明的,所有的數據庫操作由對應DBMS的ODBC驅動程序(ODBC Driver)完成。有了ODBC驅動程序,數據源就變得十分廣泛,它可以是本機的某種數據庫格式的文件(如本機DOS目錄下的Access文件*.mdb),也可以是遠程數據庫文件(如Microsoft SQL Server);它可以是目前已知的某種DBMS格式,也可以是一種全新的數據庫格式。

在ODBC方式中,不管底層網絡環境如何,也無論采用何種DBMS,用戶在程序中都使用同一套標準代碼,源程序可以不因底層的變化而重新編建或修改,從而減輕了開發維護的工作量,縮短了開發周期。但ODBC訪問數據庫的速度較慢,而且需為每個客戶端配置ODBC數據源。

2.2.2.2 ADO連接數據庫

微軟公司的ADO(ActiveX Data Objects)是一個用于存取數據源的COM組件。它提供了編程語言和統一數據訪問方式OLE DB的一個中間層。允許開發

第 5 頁 人員編寫訪問數據的代碼而不用關心數據庫是如何實現的,而只用關心到數據庫的連接。訪問數據庫的時候,關于SQL的知識不是必要的,但是特定數據庫支持的SQL命令仍可以通過ADO中的命令對象來執行。

ADO包含一些頂層的對象:

連接,代表到數據庫的連接

記錄集,代表數據庫記錄的一個集合命令,代表一個SQL命令

記錄,代表數據的一個集合流,代表數據的順序集合

錯誤,代表數據庫訪問中產生的意外

字段,代表一個數據庫字段

參數,代表一個SQL參數

屬性,保存對象的信息

ADO向VB程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以及較低的內存占用。同傳統的數據對象層次(DAO和RDO)不同,ADO可以獨立創建。因此你可以只創建一個“Connection”對象,但是可以有多個,獨立的“Recordset”對象來使用它。ADO針對客戶/服務器以及WEB應用程序作了優化。

ADO 是基于OLE DB的訪問接口,它是面向對象的OLE DB技術,繼承了OLE DB的優點。屬于數據庫訪問的高層接口。開發人員在使用ADO時,其實就是在使用OLE DB,不過OLE DB更加接近底層。ADO向我們提供了一個熟悉的,高層的對OLE DB的Automation封裝接口。

VB應用程序Microsoft.Jet.OLEDBAccess2000數據庫 圖2.1 VB應用程序與數據庫的連接

第三章

需求分析

3.1 需求分析

第 6 頁 軟件需求分析是軟件開發周期的第一個階段,也是關系到軟件開始成敗的關鍵步驟。準確、完整和規范化的軟件需求是軟件開發成功的關鍵。

3.1.1 系統數據流程圖

在研究了用戶提供的原始資料及要求后,畫出了系統的數據流程圖如下所示。

增料操作產品管理物料管理訂單管理供應商管理倉位管理退料操作查詢倉庫收料倉庫發料生產計劃盤點報表 圖3-1 數據流程圖

3.1.2 功能需求及設計思想 3.1.2.1 總體架構思想

本倉庫管理系統是利用Client/Server結構,即客戶機/服務器模式。這種CS模式適用于局域網、安全性可以得到可靠的保證。它為數據提供了更安全的存取模式。響應速度快。程序開發具有很強的針對性,因此,操作界面漂亮,形式多樣,可以充分滿足客戶自身的個性化要求。

第 7 頁

VB應用程序Access2000數據庫 圖3-2 C/S結構示意圖

3.1.2.2 物料管理模塊

首先我們為每一個物料制定出唯一的一個代碼,在整個物料管理過程中都將以這個代碼來管理物料。設計代碼如下:1 Y Y Y – X X X X;其中1代表是物料。YYY代表序列號,XXXX由系統自動給出。每增加一個物料時,系統都會給出此物料的代碼。

對于物料數量上的控制采用最大最小數量法。如果當前數量小于最小數量,則需出訂單去采購,如果大于最大數量則不允許再出訂單。自動訂單是根據這個原則產生的。

物料根據其價值分為A,B,C三類,可以為每一種類型的物料制定不同的控制方法。

A類物品:高值──價值占庫存總值70-80%的相對少數物品。通常為物品的15-20%。

B類物品:中值──總值占庫存總值的15-20%。物品數居中,通常占物品的30-40%。

C類物品:低值──庫存總值幾乎可以忽略不計,只占5-10%。是物品的大多數,通常占60-70%。

3.1.2.3 供應商管理模塊

供應商管理模塊記錄公司所有供應商的情況,以保證每個供應商都是經過認證的。并且為每個供應商編制一個統一的代碼。以代碼來代表供應商,可以減少數據庫中的數據量。

供應商管理模塊還包括公司的物料在供應商處的代碼。就像我們去買東西,我們不但要知道去哪里買,還要知道買什么。供應商代碼只提供我們去哪里買,第 8 頁 而物料在供應商的代碼則是解決了要買什么的問題。

系統為了統一管理,加強控制。將這兩個信息結合在一起給出一個綜合代碼。例如我們去人民商場買一件衣服給出一個綜合代碼為4000-0001,而去長發商場去買同一件衣服則給出的綜合代碼為4000-0002,這樣處理有利于更好的分清每個物料及供應商之間的關系。為生產線提供更多的更全的數據。

3.1.2.4 產品管理模塊

物料是指公司從供應商處買來的,是半成品。產品是公司生產的。同樣,我們也需為公司的每一個產品編制一個代碼。方便管理。另一方面,還需建立產品與物料之間的聯系。即產品組成表。表示某個產品是由哪些物料組成的。在制作生產計劃時,只需給出生產的產品代碼,而無需給出每一個物料的代碼。

3.1.2.5 訂單管理模塊

訂單管理主要任務是產生訂單。產生定單的方法有兩種,一種是自動定單。一種是手工下單。自動定單是系統根據當前的物料狀況及物料控制方法來對每一個物料進行分析,如果符合下單條件則自動產生一個訂單,經確認后就為有效訂單。在確認過程中,可以對訂單進行各種操作。手工下單就是人為地去采購某一種物料,并且把這個訂單記錄到系統中去。自動訂單可以一次下多個定單,手工下單只能一個一個產生訂單。

訂單是倉庫進行收料操作的基礎。

3.1.2.6 倉庫收料

倉庫根據系統發出的訂單進行收料。

3.1.2.7 生產計劃管理模塊

此模塊主要是管理生產計劃。根據產品及生產數量,日期等不同將生產分為一批一批,利用生產計劃號,即工單號來區分。每次計劃產生前,系統會根據產品組成表提供的信息來檢驗當前的物料狀況,如果物料不能滿足此次生產,則不能成功產生生產計劃。

倉庫的發料也是根據生產計劃來進行的。每個生產計劃都會自動產生一個發料清單。

3.1.2.8 倉位管理模塊

第 9 頁 倉位管理記錄了倉庫每個倉位存放的物料。

3.1.2.9 倉庫發料

倉庫根據生產計劃給出的工單號來進行發料。發料時,即可以一次性發多個料,即按工單發料;也可以按物料一個一個來發??勺杂蛇x擇。也可以兩種方法結合在一起來發料。

3.1.2.10 生產增料和退料

生產增料代表了生產損耗。為了核算每批產品的生產成本,因此增料操作需按生產計劃號來進行。即每個生產增料都需確定到每個計劃號,因此增料是以生產計劃號為基礎的。

生產退料是生產線將好的物料退回給倉庫。

3.1.2.11 盤點管理

倉庫每月,每季及每年都要進行盤點。盤點時需提供盤點報表及盤點調整。

3.1.2.12 報表與查詢

需提供根據各種條件來得到查詢結果。條件即可以是單個條件也可以組合條件。查詢結果分為三個部分,一部分是基本信息,另一部分是訂單信息,以及生產計劃信息。

3.1.2.13 操作日志

記錄系統內主要的數據的操作,以便日后查詢所需。

第 10 頁

第四章

系統設計

在進行了需求分析、確定了設計思想之后,就要進行系統的功能設計和數據庫的設計。

4.1 系統功能設計

4.1.1 系統功能模塊圖

在仔細分析了公司的物料數據圖后,決定將整個系統分為四大模塊,每個模塊又有若干個子模塊。整個系統功能模塊如下圖所示:

倉庫管理系統系統管理模塊倉庫管理模塊物料管理模塊報表查詢模塊重登錄修改密碼用戶管理退出入庫操作出庫操作退料操作增料操作倉位管理盤點損益物料管理產品管理供應商管理生產計劃訂單管理查詢出庫操作盤點報表圖4-1 系統功能模塊圖

4.1.2 系統各模塊說明 4.1.2.1 系統管理模塊

在此功能模塊,用戶可以進行用戶間的切換,修改密碼,及退出。對于管理員和超級用戶還可以進行用戶管理。

4.1.2.2 倉庫管理模塊

倉庫管理模塊可完成倉庫的主要日常操作。包括收料,發料,增料,退料。同時還有倉庫的倉位管理及盤點調整。

第 11 頁 4.1.2.3 物料管理模塊

物料管理模塊可完成附加功能,利用這些功能可很好的防止由于人為因素造成的數據錯誤。具體有物料管理,產品管理,供應商管理,訂單管理和生產計劃管理。

4.1.2.4 報表查詢模塊

在此功能模塊,用戶可以進行各種條件的查詢。實時了解整個公司的物料狀況。為決策提供依據。具體有查詢,操作日志及盤點報表。

4.2 數據庫設計

大多數應用系統都需要后臺數據庫地支持。在Windows操作系統中,Access和SQL Server是最常見地網絡后臺數據庫。本系統是采用Access數據庫存儲數據。

4.2.1 創建數據庫

本系統采用了Access作為數據庫管理系統。先啟動Access2000程序,然后創建名為“WMS”的數據庫。并為此數據庫設置密碼。

4.2.2 數據表結構

本倉庫管理系統的數據庫共包括12張數據表。4.2.2.1 用戶信息表

用戶信息表(Users)用來保存用戶(管理員,用戶)的信息,該表的結構如表4-1所示。

表4-1 Users(用戶信息)表的結構

Users 表結構序號12345字段user_nameuser_pwduser_leveluser_dateremark描述用戶名用戶密碼用戶權限用戶建立日期備注類型和長度主鍵TextTextTextText是否否否可空否否否否是默認值沒有沒有沒有沒有沒有Date/Time否

4.2.2.2 物料代碼表

物料代碼表(Materials)用來存放企業所需用的所有的物料。該表的結構如表

第 12 頁 4-2所示。

表4-2 Materials(物料代碼)表的結構

Materials表結構序號123456字段PartNumberDescriptionPartTypeDateAddByRemark描述物料代碼物料描述物料類型物料建立日期物料建立者備注類型和長度主鍵TextTextTextTextText是否否否否可空否否否否否是默認值沒有沒有沒有沒有沒有沒有Date/Time否

4.2.2.3 產品代碼表

產品代碼表(Productions)用來保存公司生產的所有產品的信息,該表的結構如表4-3所示。

表4-3 Productions(產品代碼)表的結構

Productions表結構序號12345字段ProductionPNProductionDescDateAddByRemark描述產品代碼產品描述產品建立日期產品建立者備注類型和長度主鍵TextTextTextText是否否否可空否否否否是默認值沒有沒有沒有沒有沒有Date/Time否

4.2.2.4 產品組成表

產品組成表(BoMs)用來記錄公司生產的產品是由哪些物料組成的。為倉庫發料提供依據。該表的結構如表4-4所示。

表4-4 BoMs(產品組成)表的結構

BoMs表結構序號1234字段ProductionPNMaterialPNMaterialQTYRemark描述產品代碼物料代碼物料數量備注類型和長度主鍵TextTextTextText否否否否可空否否否是默認值沒有沒有沒有沒有

4.2.2.5 供應商代碼表

供應商代碼表(Suppliers)用來保存公司供應商的信息。該表的結構如表4-5所示。

表4-5 Suppliers(供應商代碼)表的結構

第 13 頁 Suppliers表結構序號1234567字段SupplierNumberSupplierNameSupplierAddressSupplierTelDateAddByremark描述供應商代碼供應商名稱供應商地址供應商電話供應商建立日期供應商建立者備注類型和長度主鍵TextTextTextTextTextText是否否否否否可空否否否否否否是默認值沒有沒有沒有沒有沒有沒有沒有Date/Time否 4.2.2.6 物料供應商聯系表

物料供應商聯系表(AVLs)用來保存物料在供應商處的有關信息。也是系統產生訂單時的必要信息。該表的結構如表4-6所示。

表4-6 AVLs(物料供應商聯系)表的結構

AVLs表結構序號12345678字段AVLNumberPartNumberSupplierNumberSupplierPNPriceDateAddByRemark描述物料供應商綜合代碼物料代碼供應商代碼供應商物料代碼單價加入系統日期加入系統者備注類型和長度主鍵TextTextTextTextCurrencyTextText是否否否否否否可空否否否否否否否是默認值沒有沒有沒有沒有沒有沒有沒有沒有Date/Time否 4.2.2.7 訂單管理表

訂單管理表(POs)用來保存公司給供應商買料的訂單,也是倉庫收料的依據。該表的結構如表4-7所示。

表4-7 POs(訂單管理)表的結構

POs表結構序號12345678字段PONumberPartNumberQtyAVLNumberCloseDateCloseByStatusRemark描述訂單號碼物料代碼數量供應商的綜合信息收料人收料日期訂單狀態備注類型和長度主鍵TextTextTextTextTextTextText是否否否否否否可空否否否否否否否是默認值沒有沒有沒有沒有沒有沒有沒有沒有Date/Time否

4.2.2.8 生產計劃產品管理表

生產計劃產品管理表(PP_Produciton)用來保存生產計劃的有關信息。該表的結構如表4-8所示。

表4-8 PP_Produciton(生產計劃產品管理表)表的結構

第 14 頁 PP_Produciton表結構序號12345678字段PlanNumProducitonDateProductionNumQTYStatusAddDateAddByRemark描述生產計劃號計劃生產日期生產的產品代碼生產的產品數量此生產計劃的狀態生產計劃制定日期生產計劃制定者備注類型和長度主鍵TextTextNumberTextTextText是否否否否否Date/Time否可空否否否否否否否是默認值沒有沒有沒有沒有沒有沒有沒有沒有Date/Time否

4.2.2.9生產計劃物料管理表

生產計劃物料管理表(PP_Material)用來保存生產計劃中的每一顆物料的使用狀況。此表是由生產計劃產品管理表和產品組成表通過計算而得到的。該表的結構如表4-9所示。

表4-9 PP_Material(生產計劃物料管理)表的結構

PP_Material表結構序號1234567字段PartNumPlanNumQtyOutByOutDateStatusRemark描述物料代碼生產計劃號數量發料人發料日期此次計劃的物料狀態備注類型和長度主鍵TextTextNumberTextTextText否否否否否否可空否否否否否否是默認值沒有沒有沒有沒有沒有沒有沒有Date/Time否

4.2.2.10 物料現狀表

物料現狀表(NowMaterials)用來保存當前的物料狀況,同時為訂單的產生及生產計劃的制定提供物料依據。該表的結構如表4-10所示。

表4-10 NowMaterials(物料現狀)表的結構

NowMaterials表結構序號12348字段PartNumberCurrentQtyMinQtyMaxQtyRemark描述物料代碼當前數量最小數量最大數量備注類型和長度主鍵TextNumberNumberNumberText是否否否否可空否否否否是默認值沒有沒有沒有沒有沒有

4.2.2.11 倉庫倉位管理表

倉庫倉位管理表(Locations)用來管理倉庫的各個倉位信息。該表的結構如表4-11所示。

表4-11 Locations(倉庫倉位管理)表的結構

第 15 頁 Locations表結構序號1234字段LocationTypeLocationNumPartNumRemark描述倉位類型倉位編號物料代碼備注類型和長度主鍵TextTextTextText否是否否可空否否否是默認值沒有沒有沒有沒有

4.2.2.12 操作日志表

操作日志表(DailyDate)用來保存用戶的所有操作信息。以便以后發現問題時查詢所需。該表的結構如表4-12所示。

表4-12 DailyDate(操作日志)表的結構

DailyData表結構序號1234字段OP_DateOP_ActionOP_ByRemark描述操作日期操作內容操作者備注類型和長度主鍵Date/Time否TextTextText否否否可空否否否是默認值沒有沒有沒有沒有

4.2.3 數據庫中各表的關系

數據庫中各表之間的關系如圖4-2所示。

圖4-2 數據庫中各表的關系

第五章

倉庫管理原型系統實現

5.1 數據庫實現

第 16 頁 5.1.1 連接數據庫

在進行系統開發前,一個很重要的步驟就是建立數據庫的連接,即訪問數據庫。VB6提供了多種方式訪問數據庫,其中以ODBC與ADO應用最多。具體ODBC及ADO詳見相關理論部分。本系統采用ADO方式訪問數據庫。ADO數據庫連接主要分兩步進行:一是引用ADO,二是使用ADO連接數據庫。

1.引用ADO 在VB6菜單“工程”“引用”-從中選擇 Microsoft ActiveX Data objects 2.8 library和 Microsoft ActiveX Data objects recordset 2.8兩個組件,這是在連接數據庫前所必做的工作。

圖5-1 引用ADO

第 17 頁

圖5-2 選擇ADO控件

2.使用ADO連接數據庫

本系統采用的是無源的數據庫連接方法,因為整個系統都會使用到這個數據庫,所以將數據庫的連接定義為全局變量。

Public Cn As New ADODB.Connection ‘定義數據源 Dim db_path As String ‘用于存放數據庫的路徑 Dim db_cn As String ‘連接數據源字符串

db_path = App.Path & “DataWMS.mdb” ‘指定數據庫文件

db_cn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & db_path & “;Jet OLEDB:database password=123321;” ‘數據庫連接字符串

Cn.Open db_cn ‘打開數據源

5.1.2 建立數據表

本系統采用了Access作為數據庫管理系統。先啟動Access2000程序,然后創建名為“WMS”的數據庫。并為此數據庫設置密碼。在數據庫中建立各表。表名稱及表結構詳見系統設計中數據表的設計。

5.2倉庫管理系統主要界面及使用說明

第 18 頁 本系統按用戶類別及使用功能可以分為管理員登錄、普通用戶登錄及超級用戶登錄三種。不同類型的用戶具有不同的權限。所有用戶的主操作界面相同,區別在于個別功能的使用權限。

5.2.1 系統登錄界面

設計思路與要點:用戶運行程序后,輸入用戶名與密碼,程序根據用戶名到后臺數據庫查詢用戶名和密碼是否正確,如果正確,則根據用戶名給出用戶所屬的級別,并根據級別給出相應的權限。如沒有通過驗證,則給出沒有通過驗證的原因。

系統登錄界面如圖5-3所示。

圖5-3 倉庫管理系統登錄界面

如果用戶名或密碼錯誤,系統會分別提示,防止非法用戶進入系統操作。

圖5-4 倉庫管理系統密碼錯誤界面

5.2.2 系統主界面

設計思路與要點:用戶登錄通過后,進入系統的主界面。主界面的菜單如果

第 19 頁 是灰色顯示,則表明此用戶沒有權限操作此功能。在主界面的狀態欄會顯示當前用戶名和用戶權限。

界面如圖5-5所示。

圖5-5 倉庫管理系統主界面

5.2.3 系統管理模塊

系統管理模塊主是功能是進行本系統的一些常用管理工作,共有四個子模塊:重新登錄,修改密碼,用戶管理,退出。

5.2.3.1 重新登錄功能

進入系統后,可選擇重新登錄在不現用戶之間進行切換。界面如圖5-6所示。

圖5-6 系統重登錄界面

5.2.3.2 修改密碼功能

設計思路和要點:用戶如需修改自己的登錄密碼,需輸入舊密碼與新密碼,程序在數據庫中修改用戶的密碼。

第 20 頁 界面如圖5-7所示。

圖5-7 修改密碼界面

5.2.3.3 用戶管理功能

設計思路和要點:用戶管理是對使用此系統的所有用戶進行管理。分為增加,刪除以及修改用戶信息。此功能只有管理員和超級用戶才能使用。普通用戶不能執行此操作。

界面如圖5-8所示。

圖5-8 用戶管理界面

5.2.3.4 退出功能

退出即退出本系統。選擇系統管理下的退出即可。如圖5-9所示。

第 21 頁

圖5-9 退出系統菜單

5.2.4 倉庫管理模塊

倉庫管理模塊是本系統的核心模塊。根據倉庫的日常操作共分有六個子模塊,分別是:入庫操作,出庫操作,退料操作,增料操作,倉位管理和盤點損益。已基本包括了倉庫管理的主要功能。

5.2.4.1 入庫操作

設計思路和要點:入庫操作即倉庫的收料,系統規定收料只能根據訂單來進行。沒有訂單就不能完成收料。每個訂單都對應一個入庫操作。這樣可以大大減少因人為因素產生的錯誤。規范化倉庫收料操作。選擇訂單號碼后,相關的訂單信息已會顯示出來。訂單號碼是由訂單管理模塊產生。倉庫人員沒有權限產生訂單。

界面如圖5-10所示。

圖5-10 入庫操作界面

5.2.4.2 出庫操作

設計思想和要點:出庫操作即倉庫的發料,本系統規定倉庫的發料需根據生產計劃來進行。沒有生產計劃則不能發料。生產計劃的產生由專門模塊實現。生

第 22 頁 產計劃用工單來區分。每個工單的發料可有兩種方式,一種是按工單發料,即一次性將一個工單的全部所需物料全部發至生產線。另一種是按物料,即根據生產狀況,一個一個將物料發至生產線。選擇選擇發料類型,按工單或按物料。按工單的話,則選擇工單號即生產計劃號,系統自動將此工單的所有料發至生產線。

界面如圖5-11和圖5-12所示。

圖5-11 出庫操作按工單界面

圖5-12 出庫操作按物料界面

5.2.4.3 退料操作

設計思路和要點:退料操作是針對生產線由于各種原因產生的生產中多領的物料退回倉庫。退料時需選擇所退物料的料號及數量。程序會根據這些信息在數據庫中作出相應的調整。

第 23 頁 界面如圖5-13所示。

圖5-13 退料操作界面

5.2.4.4 增料操作

設計思路和要點:增料操作即由于生產損耗而需要增料。為了核算成本,增料需根據生產計劃號來進行增料操作,這樣就可以清楚列出每次生產的損耗。

界面如圖5-14所示。

圖5-14 增料操作界面

5.2.4.5 倉位管理

設計思路與要點:倉位管理是對倉庫的各個倉位進行分配與管理??梢栽黾有碌膫}位和修改倉位存放的物料。

界面如圖5-15所示。

第 24 頁

圖5-15 倉位管理界面

5.2.4.6 盤點損益

設計思路和要點:每次盤點后,需根據盤點結果進行某些物料的調整。調整分為收益和虧損。

界面如圖5-16所示。

圖5-16 盤點損益界面

5.2.5 物料管理模塊

此模塊的主要功能是對倉庫和生產及倉庫和物料的一些接口數據的管理。在現代企業中,每個系統之間都有一定的聯系。倉庫系統也不例外,為了更好的管理倉庫,得到更全的數據,減少因為人為因素而發生的錯誤,倉庫與其他系統也

第 25 頁 有一定的數據聯系。此模塊共有五個子模塊:物料管理,產品管理,供應商管理,生產計劃和訂單管理。

5.2.5.1 物料管理

設計思路和要點:物料管理模塊是管理企業的所有的物料,系統為每個物料給出一個代碼。在企業內部以這個代碼來進行收料,發料等操作。物料代碼是整個企業物料管理的基礎。因此物料代碼的管理是非常重要的。綜合公司的具體情況,決定物料代碼由程序根據一定的規則自動產生。物料采用最大最小數量來控制。

界面如圖5-17所示。

圖5-17 物料管理界面

5.2.5.2 產品管理

設計思路和要點:產品管理模塊主是對公司的所有產品進行編碼及記錄產品的組成情況。相應地分兩部分,一個是產品代碼管理,另一個是產品組成物料清單管理。產品代碼是由程序根據一定的規則產生。而產品組成物料清單則是由物料管理中的物料組成的。產品與物料最大的不同點在于產品是由公司生產出來的,而物料是由公司直接買來的。

界面如圖5-18和圖5-19所示。

第 26 頁

圖5-18 產品管理界面

圖5-19 產品物料組成清單界面

5.2.5.3 供應商管理

設計思路和要點:供應商管理也分兩部分,一個是供應商代碼管理,另一個是供應商物料代碼管理。供應商代碼管理是為了方便對供應商進行調整。供應商

第 27 頁 加上供應商的物料代碼組成了一個綜合信息。我們為每個綜合信息進行編號,方便管理。

界面如圖5-20和圖5-21所示。

圖5-20 供應商代碼管理界面

圖5-21 供應商物料代碼管理界面

5.2.5.4 生產計劃管理

設計思路和要點:生產計劃管理需根據當前的物料狀況來進行。每次生產計劃以編號來劃分。編號由系統產生。計劃產生時系統會檢查物料狀況。如物料狀況不允許則不能成功產生生產計劃。

第 28 頁 界面如圖5-22所示。

圖5-22 生產計劃管理界面

5.2.5.5 訂單管理

設計思路和要點:訂單可以系統自動產生,也可以手工產生。自動產生時,根據物料的管理辦法,產生訂單可以是多個也可以是一個。而手工定單的產生只能是一個。定單產生后需進行確認才能生效。

界面如圖5-23所示。

圖5-23 訂單管理界面

5.2.6 報表查詢模塊

此模塊的主要功能是查詢及報表。5.2.6.1 查詢

第 29 頁 設計思路和要點:根據各種查詢條件查詢物料信息。物料信息包含三部分,一為基本信息,二為訂單信息,三為生產計劃信息。適合所有使用者。

界面如圖5-24所示。

圖5-24 查詢界面

5.2.6.2 查詢日常操作

設計思路與要點:對系統的每一次操作能應及時地記錄下來,以便日后查詢。因此在數據庫中單獨創建一張表,用于記錄系統的日常操作,即倉庫的各種日常操作。通過此功能,可能追溯系統數據的整個變化過程。使整個系統的運行都在控制之內。

界面如圖5-25所示。

第 30 頁

圖5-25 操作日志界面

5.2.6.3 盤點報表

設計思路和要點:盤點報表可以根據盤點的需要,按物料編碼或按倉位生成。盤點報表將列出當前時刻,倉庫中所有物料的數量及存放地點,以便盤點時參考。同時此報表還可以輸出成各種格式,以方便用戶使用。

界面如圖5-26所示。

圖5-26 盤點報表界面

5.4 系統測試

第 31 頁 一般情況下,我們千辛萬苦開發出的程序總會存在一些問題,這就需要進行測試。對于此系統的測試從以下幾方面進行入手。

5.4.1 菜單測試

檢查每個菜單是否有效。5.4.2各功能模塊測試

設計一些數據,利用各個模塊提供功能進行測試。并檢查程序的防呆性,即程序是否能夠有效地防止一些明顯有錯誤數據進入系統。

5.4.3 數據跟蹤測試

打開后臺數據庫,檢查各項數據是否與輸入的一致。及各個表及表中數據是否一致。

第 32 頁

第六章

小結與展望

整個倉庫管理考試系統主要包括上面所寫的模塊及功能,基本上已經能夠覆蓋了倉庫日常管理中的主要操作。內容也較為詳盡。由于時間、所學以及精力的關系,該系統還處于原型設計階段,許多預想的模塊還沒有能夠及時添加進去。就是寫進系統的也有部分模塊還可以更加好的進行完善。

6.1 成績及不足

本倉庫管理系統的設計和分析到目前為止還只是一個初始階段,在這段時間的設計過程中,從中得到了一些成績,也有一些不足。

6.1.1 成績

? 能夠比較好的進行需求分析,可行性分析以及系統設計,來獨立開發一個較為小型的MIS系統;

? 完成了倉庫管理中日常使用最多的最主要的功能。? 具有很好的防呆功能。

? 對數據的處理也有一定的聯系,可減少人為因素帶來的影響。? 較少的鍵盤輸入,大多數功能可只用鼠標來完成操作。? 模塊化編程,為以后的改進提供了方便。

6.1.2 不足

? 系統只提供了鍵盤和鼠標的輸入,沒有提供條碼掃描的輸入。? 系統沒有提供打印輸出的功能,如果需要打印還需借助其他的軟件。? 系統只是提供了一個簡單的功能,與現代化的公司倉庫定理還有不小的差距。

? 系統的一些模塊的功能是理論化的,在實際中還有許多更復雜的情況并沒有考慮進去。在以后實際作用過程中很有很多地方需改進。

第 33 頁

6.2 展望

對于一個公司的倉庫管理來說,該系統還只是一個雛形,沒有完成的事情還很多。有了現有的系統原型,還要與用戶溝通,將他們實際操作中的一些問題考慮進去,逐步改進上面談到的一些不足點,完善整個系統。另外還需參照公司的其他系統,開發出與其他系統的接口。

第 34 頁

通過緊張忙碌的三個多月的畢業設計,我的個人能力得到了很大的提高。獲益匪淺,專業知識上也上了一個新臺階,對整個軟件設計開發的流程也有了更深刻的理解。

在我以前的工作中,總是先考慮編碼,然后再考慮其他的問題,導致在工作過程中經常需調整用戶需求和進度上的安排不盡如人意,經常需加班來趕進度。而在這次畢業設計中,我按照軟件工程的要求進行,先進行編碼前的前期工作,并按照老師為我們制定的進度進行,順利地完成了制定的任務。在整個工作過程中,感覺沒有像以前那樣匆忙,整個過程也很輕松。通過這次畢業設計,將使我的工作習慣有一個很大的改進。這些提高是終身受益的。

總之,通過這次畢業設計是使我各方面的知識得以融匯貫通,為我將來的工作開了一個好頭。我認為這種改變是質的飛躍。

由于時間倉促,以及本人水平有限,只對該系統做了簡單的開發,設計中還存在一些不足之處,尚有待完善。最后,希望大家多多批評指導, 敬請老師批評指正。

第 35 頁

在本次畢業設計中,我從指導趙老師身上學到了很多東西。特別是對系統化的軟件工作對我影響最大,使我得到不少的提高這對于我以后的工作和學習都有一種巨大的幫助。在此表示衷心的感謝!

同時,感謝三年來對我關心幫助的所有任課老師和同學,特別是趙睿老師和我們的班主任老師在三年的學習給我的幫助。以及要感謝我們班的其他同學,雖然我是一個人做畢業設計的,但在我遇到問題時,我們是一起討論解決的。

總之一句話,感謝所有關心和幫助我的人。

第 36 頁

參考文獻

參考文獻表

[1] 史濟民,軟件工程——原理、方法與應用,機械工業出版社,2002 [2] [美]Gary Cornell,VB6從入門到精通,北京希望電子出版社,1999 [3] 陳恩義,SQL Server 2000開發指南,清華大學出版社,2002 [4] 趙松濤,Visual Basic + SQL Server 2000 系統開發實錄,2007 [5] 盧湘鴻,Access 數據庫與程序設計,電子工業出版社,2006 [6] 戴建耘,Access 2003數據庫教程,電子工業出版社,2007

第 37 頁

下載ATM系統實現報告(VB)word格式文檔
下載ATM系統實現報告(VB).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    VB圖書管理系統

    圖書管理系統的設計與實現 目錄 一、序言····························································......

    學生檔案管理系統(vb)

    萊 蕪 職 業 技 術 學 院 畢業設計(論文) 所 在 系:計算機系 姓 名: 韓坤 論文題目:學生檔案管理系統 專 業:軟件應用技術 班 級:07級軟件一班 指導老師:宋文敏 二零一零 年 四月 月......

    VB學生信息管理系統

    學生信息管理系統 前 言 學生籍管理系統是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生學生信息管理系統應該能夠為用戶提供充足......

    基于VB實現復雜報表設計(合集)

    陜西理工學院畢業設計 基于VB實現復雜報表設計 (陜西理工學院 物理系 電子信息科學與技術07級2班,陜西 漢中 723000) [摘要] 本文介紹了報表設計的幾種方法和以往報表設計......

    UML(ATM系統)動態建模

    實驗3 動態建模 一、 實驗目的與要求 1 掌握分析ATM系統用例中用例的流程,分析對象之間的交互關系 2 掌握用UML設計參與對象之間的交互,用狀態圖、時序圖、協作圖和活動圖來描......

    ATM管理系統設計說明書

    ATM機管理系統 設計說明書 班級:軟件0802 姓名:楊凱 學號:200807040221 ATM機管理系統 1編寫目的 ATM機管理系統是銀行業務流程過程中十分重要且必備的環節之一,在銀行業務......

    uml 描述ATM自動取款機系統

    ATM自動取款機系統 ATM自動取款機(automatic teller machine)是銀行在銀行營業大廳、超市、商業機構、機場、車站、碼頭和鬧市區設置的一種小型機器,利用一張信用卡大小的膠卡......

    實驗一 ATM系統建模

    實驗一ATM系統建模 1.1實驗目的 1、掌握軟件體系結構建模的概念及4+1視圖模型 2、熟悉Rational Rose 2003或 Microsoft Office Visio的使用方法 3、掌握利用UML進行軟件體系......

主站蜘蛛池模板: 国精一二二产品无人区免费应用| 国产免费午夜福利不卡片在线| 又大又硬又爽免费视频| 亚洲综合在线一区二区三区| 国产午夜福利亚洲第一| а天堂中文在线官网在线| 国产亚洲精品久久久久久| 国产在线无码精品无码| 天天综合网在线观看视频| 日本护士╳╳╳hd少妇| 一本色道久久综合无码人妻| 亚洲av无码成人精品区狼人影院| 精品国产成人高清在线观看| 国偷自产一区二区免费视频| 国产性色αv视频免费| 两个人的www免费视频| 4hu四虎永久免费地址ww416| 亚洲国产成人精品无码区在线播放| 国产一二三四区中| 丰满白嫩大屁股ass| 久久久久国产一区二区| 国产成人av无码片在线观看| 国产av无码专区亚洲aⅴ| 国产伦精品一区二区三区| 亚洲综合色区另类小说| 精品久久人妻av中文字幕| 玩两个丰满老熟女| 国产十八禁在线观看免费| 入侵人妻反抗中文字幕| 九九视频在线观看视频6| 国产高清在线精品一区app| 国产乱子伦农村叉叉叉| 强奷漂亮少妇高潮在线观看| 曰韩无码av一区二区免费| 狠狠躁夜夜躁人人爽天天古典| 亚洲色精品aⅴ一区区三区| 亚洲人成在线播放无码| 国产97在线 | 中文| 欧美午夜精品久久久久免费视| 99在线精品视频在线观看| 午夜福利理论片在线观看|