• 沒有找到結果。

應用程式設計報告-員工資料管理系統

N/A
N/A
Protected

Academic year: 2021

Share "應用程式設計報告-員工資料管理系統"

Copied!
28
0
0

加載中.... (立即查看全文)

全文

(1)

報告題名:

應用程式設計報告-員工資料管理系統

作者:張照緯

系級:工業二甲

學號:D9771230

開課老師:陳亭志

課程名稱:應用程式設計

開課系所:工業工程與系統管理學系

開課學年:98 學年度 第一學期

(2)

中文摘要

使用 Microsoft 的 Visual Basic 來寫出員工資料管理系統程式,並加

以使用 Access 資料庫使 Visual Basic 進行員工資料的瀏覽、修改、新

增和刪除,使得員工資料管理系統程式能符合現實面的需求。

關鍵字:

(3)

目 次

1.方案總管---1

2.Form1:修改員工資料---2

3.Form2:瀏覽員工資料---5

4.Form3:主選單---7

5.Form4:統計分析---9

6.Form5:新增員工資料---15

7.Form6:首頁─登入畫面---19

8.Form7:刪除員工資料---22

9.心得---24

參考文獻---25

(4)

1.方案總管

Database3:Access 資料庫,存放員工資料

Form1:修改員工資料,可做資料的更正

Form2:瀏覽員工資料,觀看全部員工的資料

Form3:主選單,可連結其它的表單

Form4:統計分析,分析員工的部門、性別跟城市

Form5:新增員工資料,可增加新資料

Form6:首頁─登入畫面,輸入帳號密碼登入進主選單

Form7:刪除員工資料,可刪除資料

(5)

2. Form1:修改員工資料

執行畫面:

(6)

修改中

(7)

程式碼:

PublicClass Form1

PrivateSub DatabasicBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles DatabasicBindingNavigatorSaveItem.Click Me.Validate()

Me.DatabasicBindingSource.EndEdit()

Me.DatabasicTableAdapter.Update(Me._Database3DataSet.Databasic) '更新資料庫

Me.TableAdapterManager.UpdateAll(Me.Database3DataSet) EndSub

PrivateSub Form1_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form3.Show() '關掉form1時叫出form3

EndSub

PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: 這行程式碼會將資料載入 'Database3DataSet.Databasic' 資料表。您可以視需要進行移動或 移除。

Me.DatabasicTableAdapter.Fill(Me.Database3DataSet.Databasic) EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Me.Close() '關掉此視窗

Form3.Show() '叫出form3

EndSub EndClass

(8)

3. Form2:瀏覽員工資料

執行畫面:

程式碼:

PublicClass Form2

PrivateSub DatabasicBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Me.Validate() Me.DatabasicBindingSource.EndEdit() Me.DatabasicTableAdapter.Update(Me._Database3DataSet.Databasic) '更新資料庫 Me.TableAdapterManager.UpdateAll(Me.Database3DataSet) EndSub

PrivateSub Form2_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form3.Show() '關掉form2時叫出form3

(9)

PrivateSub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 這行程式碼會將資料載入 'Database3DataSet.Databasic' 資料表。您可以視需要進行移動或 移除。 Me.DatabasicTableAdapter.Fill(Me.Database3DataSet.Databasic) EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Me.Close() '關掉此視窗

Form3.Show() '叫出form3

EndSub EndClass

(10)

4. Form3:主選單

執行畫面:

程式碼:

PublicClass Form3

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Form2.Show() '叫出form2

Me.Hide() '隱藏此視窗

EndSub

PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button2.Click

(11)

Me.Hide() '隱藏此視窗

EndSub

PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button3.Click

Form1.Show() '叫出form1

Me.Hide() '隱藏此視窗

EndSub

PrivateSub Form3_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed End'關掉form3時結束程式

EndSub

PrivateSub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button6.Click

End'結束程式

EndSub

PrivateSub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button5.Click

Form4.Show() '叫出form4

Me.Hide() '隱藏此視窗

EndSub

PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button4.Click

Form7.Show() '叫出form7

Me.Hide() '隱藏此視窗

EndSub EndClas

(12)

5. Form4:統計分析

(13)

依性別分析

(14)

依城市分析

程式碼:

PublicClass Form4

PrivateSub Form4_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form3.Show() '關掉此視窗時叫出form3

EndSub

PrivateSub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: 這行程式碼會將資料載入 'Database3DataSet.Databasic' 資料表。您可以視需要進行移動或 移除。

Me.DatabasicTableAdapter.Fill(Me.Database3DataSet.Databasic) EndSub

PrivateSub 回主選單ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles 回主選單ToolStripMenuItem.Click Me.Close() '關掉此視窗

(15)

Form3.Show() '關掉此視窗時叫出form3

EndSub

PrivateSub 依城市ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles 依城市ToolStripMenuItem.Click Dim i, j AsInteger Dim 城市() = {"台南市", "台北市", "雲林縣", "台中市", "新竹縣"} '把城市"文字"放進"城市()"陣列 裡 Dim 城市人數(5) AsInteger For i = 0 ToMe.Database3DataSet.Databasic.Rows.Count - 1 For j = 0 To 4

If InStr(1, Me.Database3DataSet.Databasic.Rows(i)(9), 城市(j)) > 0 Then'從資料庫中找尋" 城市" 城市人數(j) += 1 '統計各城市的人數 EndIf Next Next Dim g1 As Graphics g1 = Me.CreateGraphics

Dim b1() As Brush = {Brushes.Red, Brushes.Orange, Brushes.Yellow, Brushes.YellowGreen, Brushes.Green} '定義陣列並設定各元素長條圖的顏色

g1.Clear(Me.BackColor) '清除表單

For j = 0 To 4

g1.FillRectangle(b1(j), 160, 60 + 50 * j, 城市人數(j) * 20, 20) '印出各城市的人數長條圖

g1.DrawString(城市(j), New Font("標楷體", 12), Brushes.Black, 100, 60 + 50 * j) '印出城市()陣列 的元素

Next

g1.Dispose() '釋放繪圖資源

EndSub

(16)

For i = 0 ToMe.Database3DataSet.Databasic.Rows.Count - 1 IfMe.Database3DataSet.Databasic.Rows(i)(3) = "男"Then 男生人數 += 1 Else 女生人數 += 1 EndIf'進行資料庫中男女生人數的統計 Next 男生度數 = 360 * 男生人數 / (男生人數 + 女生人數) 女生度數 = 360 - 男生度數 '把人數轉換成度數,以用於畫圓餅圖 Dim g1 As Graphics g1 = Me.CreateGraphics g1.Clear(Me.BackColor) '清除表單 g1.FillPie(Brushes.Blue, 160, 100, 100, 100, 0, 男生度數) g1.FillPie(Brushes.Red, 160, 100, 100, 100, 男生度數, 女生度數) '畫出男女性比例圓餅圖 g1.FillRectangle(Brushes.Blue, 100, 120, 30, 10) g1.FillRectangle(Brushes.Red, 100, 150, 30, 10) '標示男女性各是什麼顏色的圖示

g1.DrawString("男生", New Font("標楷體", 12), Brushes.Black, 50, 120)

g1.DrawString("女生", New Font("標楷體", 12), Brushes.Black, 50, 150) '為圖示標名哪一個顏色是男 性或女性

g1.Dispose() '釋放繪圖資源

EndSub

PrivateSub 女ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles 女ToolStripMenuItem.Click Dim i, j AsInteger Dim 部門() = {"IE", "PC", "QC"} '定義陣列 Dim 部門人數(3) AsInteger For i = 0 ToMe.Database3DataSet.Databasic.Rows.Count - 1 For j = 0 To 2

If InStr(1, Me.Database3DataSet.Databasic.Rows(i)(4), 部門(j)) > 0 Then

部門人數(j) += 1 '進行各部門人數的統計

EndIf

(17)

Next

Dim g1 As Graphics g1 = Me.CreateGraphics

Dim b1() As Brush = {Brushes.Red, Brushes.Orange, Brushes.Yellow, Brushes.YellowGreen, Brushes.Green, Brushes.Blue} '定義陣列並設定各元素長條圖的顏色

g1.Clear(Me.BackColor) '清除表單

For j = 0 To 2

g1.FillRectangle(b1(j), 150, 80 + 50 * j, 部門人數(j) * 20, 20) '印出各部門的人數長條圖

g1.DrawString(部門(j), New Font("標楷體", 12), Brushes.Black, 100, 80 + 50 * j) '印出部門()陣列 的元素 Next g1.Dispose() '釋放繪圖資源 EndSub EndClass

(18)

6. Form5:新增員工資料

執行畫面:

(19)

確認新增資料

程式碼:

PublicClass Form5

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click Dim 編號, 姓名, 性別, 部門, 職位 AsString'做定義 Dim 生日, 加入時間 AsDate'做定義 Dim 身份證字號, 地址, 電話 AsString'做定義 編號 = TextBox1.Text 姓名 = TextBox2.Text If RadioButton1.Checked Then 性別 = "男" Else 性別 = "女"'把"男"或"女"指定給"性別" EndIf

(20)

地址 = TextBox5.Text 電話 = TextBox6.Text '把各欄位指定到定義的文字裡 Me._Database3DataSet.Databasic.AddDatabasicRow(編號, 姓名, 性別, 部門, 職位, 生日, 加入時 間, 身份證字號, 地址, 電話) Me.DatabasicTableAdapter.Update(Me._Database3DataSet.Databasic) '更新資料庫 Me._Database3DataSet.Databasic.Reset() MsgBox("資料已新增! 請確認員工資料,謝謝", , "系統訊息") '資料新增後 出現請確認的訊息欄 Call D9771230之清空() '呼叫子程式 EndSub

PrivateSub Form5_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form3.Show() '關掉此視窗時叫出form3

EndSub

PrivateSub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: 這行程式碼會將資料載入 '_1130DataSet.Databasic' 資料表。您可以視需要進行移動或移 除。

Me.DatabasicTableAdapter.Fill(Me._Database3DataSet.Databasic) EndSub

PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button2.Click

Call D9771230之清空() '呼叫子程式

EndSub

PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button3.Click Me.Close() '關掉此視窗 Form3.Show() '叫出form3 EndSub Sub D9771230之清空() '子程式 TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" RadioButton1.Checked = True RadioButton2.Checked = False

(21)

ComboBox1.Text = "(請選擇)" DateTimePicker1.Value = Today DateTimePicker2.Value = Today TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = ""'對填寫新增員工的爛位全部清空 EndSub EndClass

(22)

.

7. Form6:首頁─登入畫面

(23)

登入失敗

程式碼:

PublicClass Form6

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim 帳號, 密碼 AsString

帳號 = TextBox1.Text '把TextBox2.Text1的內容指定到"帳號"裡

密碼 = TextBox2.Text '把TextBox2.Text2的內容指定到"密碼"裡

If 帳號 = "張照緯"And 密碼 = "D9771230"Then'對帳號密碼是否正確進行判定

MsgBox("歡迎再次使用本系統", MsgBoxStyle.Information, "系統訊息") 'Msgbox為出現圖示

Form3.Show() '叫出Form3

Timer1.Enabled = False'結束Timer1

Me.Hide() '隱藏此視窗 Else MsgBox("你並非合法的使用者!請重新輸入。", MsgBoxStyle.Exclamation, "系統訊息") '帳號密 碼錯誤時,Msgbox出現圖示 Call D9771230之清空() '呼叫子程式 EndIf

(24)

Button2.Click

Call D9771230之清空() '呼叫子程式

EndSub

PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Timer1.Tick

Label5.Text = TimeValue(Now) '在Label5顯示現在時間

EndSub

Sub D9771230之清空() '子程式

TextBox1.Text = ""

TextBox2.Text = ""'清空TextBox1和TextBox2.Text的內容

EndSub

PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button3.Click

End'結束程式

EndSub

PrivateSub Form6_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed End'結束程式

EndSub EndClass

(25)

8. Form7:刪除員工資料

執行畫面:

(26)

程式碼:

PublicClass Form7

PrivateSub DatabasicBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles DatabasicBindingNavigatorSaveItem.Click Me.Validate()

Me.DatabasicBindingSource.EndEdit()

Me.DatabasicTableAdapter.Update(Me._Database3DataSet.Databasic) '更新資料庫

Me.TableAdapterManager.UpdateAll(Me.Database3DataSet) EndSub

PrivateSub Form7_FormClosed(ByVal sender AsObject, ByVal e As

System.Windows.Forms.FormClosedEventArgs) HandlesMe.FormClosed Form3.Show() '叫出form3

EndSub

PrivateSub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: 這行程式碼會將資料載入 'Database3DataSet.Databasic' 資料表。您可以視需要進行移動或 移除。

Me.DatabasicTableAdapter.Fill(Me.Database3DataSet.Databasic) EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click Me.DatabasicTableAdapter.Update(Me._Database3DataSet.Databasic) '更新資料庫 Form3.Show() '叫出form3 Me.Hide() '隱藏此視窗 EndSub EndClass

(27)

心得

在學期一開始,覺得 Visual Basic 還滿簡單的,因為他的介面較一年級下學期

的 C++的介面更人性化,而且因為一年級下學期學過 C++,所以在邏輯方面就比

較有概念了,寫出的東西原理都一樣,只是所用的字不一樣而已,腦中已經知道

怎麼寫,只要改用 Visual Basic 的寫法就能寫出了。

Visual Basic 的介面有許多中文解釋,而且他本身的工具箱設計,具有 Button、

Textbox 和 Label 等,可以個別地輸入程式碼,這樣就比較不容易亂掉了,加上

只要程式一有錯誤,程式碼就會出現底線,跟 C++相比更能及時地進行更正,所

以在學 Visual Basic 時,還算是輕鬆的。不過期中考後,開始教資料管理系統,

變得困難許多了,多了許多以前沒遇過的程式碼,像是在統計要畫長條圖時,就

要用到 CreateGraphics 和 Brushes,難應該是難在之前在學 C++時並沒有些類似

的東西,可以說真的是「新的東西」了,還有在用到 Access 資料庫時也遇到很

多困難,修改資料時不能修改或是修改了資料可是資料庫卻沒有同步更新。

最近剛好也在做工作研究的期末報告,是利用 C++寫亂數抽出的程式,當初在

想要用 Visual Basic 還是 C++,後來選擇了 C++,原因是因為我覺得 C++比較單

純,只要把程式碼寫好,跑出程式就好了,但實際做了才知道,就是因為單純,

電腦紙會很單純的照程式碼跑,所以有時候程式跑不出要的結果,卻怎麼找都找

不出程式碼哪裡出錯了,不斷 debug 後發現,是因為有時候你這樣寫,在邏輯上

有一點問題,電腦跑出來的結果不一樣;而 Visual Basic 雖然要用一些 Button 和

Textbox 等什麼的,可是那也是它的優點,不但比較清楚,而且畫面看起來比 C++

但掉的畫面舒服多了。

我覺得程式語言是很有趣的東西,打一些程式碼,電腦就會跑出你要的結

果,有時候要處理複雜的資料,就要用寫出的程式讓電腦去處理,所以程式語言

真的是一種很方便的東西,不是只有資工系才需要學程式語言,程式語言在很多

領域都會用到,在現代中程式語言已經是不可或缺的了,大到 Microsoft 出的軟

體,小到大學二年級生的一個學科的一個作業。在應用程式設計這門課裡,我學

得很開心,因為很有趣也受益良多,希望以後還能學習到其它的程式語言。

(28)

參考文獻

王國榮(2007),新觀念的 Visual Basic.NET 教本,旗標,台北,初版。

陳澤雄等(2002),VISUAL BASIC 程式設計入門與應用,碁峰資訊,台北,

再版

參考文獻

相關文件

本校目前已完工啟用的建築物為行政、理工、教學、宿舍、設

高中課程會多元化;讓學生有第二次機會而設計的其他教育 課程(例如毅進計劃及在中學試行的類似計劃),會因應新學

依照工作圖或樣品選用適當材料、刀具、夾具及工具,熟悉 CNC 車床操作,設計 CNC

項次 資格 應檢具證明文件. 設有社會工作或幼兒保育相 關學院、系、所、學位

而使影像設計工具在操作時呈現非預設的結果。為此操作者可以利用重設 Photoshop 軟體

營建工程系 不限系科 工業工程與管理系 不限系科 應用化學系 不限系科 環境工程與管理系 不限系科 工業設計系 不限系科. 景觀及都市設計系

Private Sub Form_Click() MsgBox Combo1.ListCount MsgBox Combo1.ListIndex..

Visual Basic提供了許多控制項介面來處理由鍵盤輸入