數據庫課程設計(VB編程)工資管理系統_第1頁
數據庫課程設計(VB編程)工資管理系統_第2頁
數據庫課程設計(VB編程)工資管理系統_第3頁
數據庫課程設計(VB編程)工資管理系統_第4頁
數據庫課程設計(VB編程)工資管理系統_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫課程設計報告企業員工工資管理系統摘 要企業的工資管理是公司管理的一個重要內容。工資管理既涉及到企業勞動人事的管理,同時也是企業財務管理的重要組成部分。工資管理需要和人事管理相聯系,同時連接工時考勤和醫療保險等等,來生成企業每個職工的基本工資、津貼、醫療保險、保險費、實際發放工資等。資金是企業生存的主要元素,資金的流動影響到企業的整體運作,企業員工的工資是企業資金管理的一個重要的組成部分。但考慮到學生的開發時間,本次設計主要闡述員工工資管理系統主要是以企業員工工資情況為對象而開發的。涉及系統比較小,有利于學生單獨編寫。其系統的設計主要包括數據庫的設計、維護和應用界面的設計與后臺數據庫的連接

2、。經分析采用Microsoft 公司開發的Visual Basic 6.0為開發工具,Microsoft SQL sever 2000 為后臺數據庫。Visual Basic (簡稱VB是由Microsoft公司推出的在Windows操作平臺下最迅速、最簡捷的應用開發工具之一。它引入了面向對象的程序設計思想和“控件”的概念,使得大量已經編好的Visual Basic 程序可以直接拿來使用。同時VB具有簡單、易學的特點,是大多數初學者最理想的編程語言,也是專業人員得心應手的開發工具。它在一個公共環境里集成了許多不同的功能,例如,設計、編輯、編譯和調試。目前市場上數據庫的主流廠商及產品有IBM D

3、B2、Microsoft SQL SERVER 2000、ORACLE 9i、Sybase。Microsoft SQL Server 2000是在SQL Server 7.0的基礎上對性能、可靠性、質量以及易用性進行了擴展。SQL Server 2000中包含許多新特性,這些特性使其成為針對電子商務、數據倉庫和在線商務解決方案的卓越的數據庫平臺。其增強的特性包括對豐富的擴展標記語言(XML)的支持、綜合分析服務以及便捷的數據庫管理。Microsoft SQL Server 2000簡化了管理、優化工作,并且增強了迅速、成功的部署在線商務應用程序所需的可靠性和伸縮性。關鍵詞:工資管理系統、設計、

4、開發工具目錄摘 要 1目錄 2第一章 緒論 31.1 問題的提出 31.2 系統設計功能 3第二章 數據庫系統設計 52.1 數據庫分析設計 52.2 數據各個表之間的關系 6第三章 各個關系間的數據結構 73.1 系統設計目標 73.2 系統概要分析 7第四章 企業工資管理系統應用設計 94.1 企業工資管理系統設計 94.2 子模塊的設計 10第五章 各個模塊部門代碼 155.1登陸界面 155.2 各個子模塊代碼設置 16第六章 各模塊設計要點 236.1 登錄模塊設計 236.3用戶管理設計 236.3 信息管理設計 236.4 查詢工資設計 24第七章 結束語 25致謝 26參考文獻

5、 27第1章 緒論1.1 問題的提出隨著企業人員數量增加,企業的工資管理工作也變得越來越復雜。早期的工資統計和發放都是使用人工方式處理紙質材料,不僅花費財務人員大量的時間且不易保存,往往由于個人的因素抄寫不慎或計算疏忽,出現工資發放錯誤的現象。早期工資管理多采取紙質材料和具有較強的時間限制。隨著我國國民經濟建設的蓬勃發展和具有中國特色的社會主義市場經濟體制的迅速完善,各個行業都在積極使用現代化的手段,不斷改善服務質量,提高工作效率,這些都在很大程度上給企業提出越來越嚴峻的挑戰,對企業體系無論是在行政職能、企業管理水平以及優質服務上都提出更高的要求。建設一個科學高效的信息管理系統是解決這一問題的

6、必由之路。企業內部財務管理是該企業運用現代化技術創造更多更高的經濟效益的主要因素之一。工資管理作為企業內部的一種財務管理也是如此,由于企業職工人數較多,每一位職工的具體實際情況也不盡相同,各項工資條款的發放,如果沒有一個完整的管理系統對企業和員工的工作都帶來許多的不便。基于以上原因,企業工資管理系統使用電腦安全保存、快速計算、全面統計,實現工資管理的系統化、規范化、自動化。工資管理系統是企、事業單位常見的計算機信息管理系統。它的主要任務是對各種工資信息進行日常的信息管理,如工資信息的輸入、查詢、修改、增加、刪除,迅速準確地完成各種工資信息的統計計算和匯總,快速打印出報表。在建立與實現工資管理系

7、統時,進行了功能劃分,能夠由數據庫管理系統完成的功能應盡可能由數據庫管理系統守成,充分發揮數據庫管理系統高效、完全、可靠、便捷的性能,減少編程人員的工作量。工資管理系統是數據庫管理系統的一個比較典型的應用,前臺使用的是微軟的VB6.0,后臺數據庫采用Microsoft SQL Sever數據庫。運行結果證明,本企業員工工資管理系統極大提高了工作效率,節省了人力和物力,自重滿足企業員工工資管理的需要。1.2 系統設計功能企業工資管理系統的主要任務是用計算機對各種工資信息進行日常的管理,如查詢、修改、添加、刪除以及存儲等,迅速準確地完成各種工資信息的統計計算和匯總工作,針對系統服務對象的具體要求,

8、設計了企業工資管理系統。企業工資管理系統主要有以下幾大功能:(1 對單位人員的變動進行處理。一個單位的職工不會是一成不變的,總是在不斷的變化:有調出、有調入、也有職工在本單位內部調動。因此,設計系統是應考慮到這些情況。(2 對職工的工資進行計算、修改。可以對職工的工資檔案進行個別、部分和批量修改,同時,能對各職工的工資進行計算,即計算基本工資、崗位工資、水電費及實發金額等。(3 查詢統計功能。要求即可以單項查詢,比如查看某個職工的工資情況等;也可以多項查詢,比如某個部門所有的員工的工資信息。(4)對用戶管理功能。一個系統的應用有管理員和普通用戶,他們對系統的權限受到限制。第二章 數據庫系統設計

9、2.1 數據庫分析設計需求分析的過程可以說是一個對具體問題的反復理解和抽象的過程。理解就是對現實問題的理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的表面,提取問題的本質,建立問題的邏輯模型,以便于以后階段的系統的設計實現。需求分析階段是軟件產品生存命期中的一個重要階段,其根本任務是確定用戶對軟件系統的需求。所謂需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達到什么性能。此次課程設計的使用者是企業的員工,主要是針對系統的管理員。其進行的操作就是對公司員工、部門等一些方面改動的改善。由此對員工需求分析如下。用戶的需求就是對員工工資和使用用戶的添加、刪除

10、、修改和查詢。這就要求各種信息中存在實體完整性、參照完整性和用戶自定義完整性。搜集了各項要求,故數據項要求設計如下:表2.1員工信息表鍵名稱數據類型大小空默認值主鍵員工編號char8不可以姓名char8不可以性別char2可以“男”出生年月datetime8可以外鍵所屬部門char4可以文化程度char4可以職稱char12可以表2.2 部門信息鍵名稱數據類型大小空默認值主鍵部門編號char4不可以部門名稱char20可以部門負責人char8可以部門人數int4可以表2.3 基本工資鍵名稱數據類型大小空默認值主鍵工資級別char2可以工資金額numeric5(8,2不可以表2.4崗位工資鍵名稱

11、數據類型大小空默認值主鍵工資級別char2可以工資金額numeric5(8,2不可以表2.5工資信息鍵名稱數據類型大小空默認值主鍵、外鍵員工編號char8不可以外鍵部門編號char4可以基本工資numeric5(8,2可以崗位工資numeric5(8,2可以水電費numeric5(8,2可以實發工資numeric5(8,2可以2.2 數據各個表之間的關系在設計過程中,從用戶的角度考慮來處理各個表之間的約束關系,把概念模式轉化成邏輯模式最終形成E-R圖。員工信息表(員工編號、姓名、性別、出生年月、所屬部門、文化程度、職稱部門信息表(部門編號、部門名稱、部門負責人、部門人數基本工資表(工資級別、工

12、資金額崗位工資表(工資級別、工資金額工資信息表(員工編號、部門編號、基本工資、崗位工資、水電費、實發工資各個模塊之間的關系,如圖2.1所示。圖2.1 各表之間的聯系第三章 各個關系間的數據結構3.1 系統設計目標開發這個系統的目的就是幫助企業的財務主管部門提高工作效率,實現企業工資信息管理的系統化、規范化和自動化。實現企業高效、科學、現代化的員工管理。系統最終實現的主要功能如下。·企業工資信息設置部分:包括設置員工的基本工資和其他項目的金額,如水電費。·企業信息管理部分:包括員工信息、部門信息和發放工資(工資信息)。·企業員工查詢部分:包括按員工查詢和按部門查詢。

13、·系統部分:包括添加用戶、修改用戶信息。3.2 系統概要分析用戶在使用一個系統時,必須先登錄操作界面,在操作完成后然后再退出,其操作如圖3.1所示。注銷圖3.1 系統流程圖說明:操作員進入管理系統的身份不同,所獲得的權限也不同,普通用戶只可以查詢自己的工資情況,而且部門對自己的所有信息進行更改。圖3.2 用戶操作模塊說明:管理員可以對所有模塊進行操作,普通用戶只可以進行查詢員工工資的權限。說明:在各個子模塊操作時用戶同時在實現更改的時候在對話框上的網格看到后臺數據庫最新的動態。各個模塊簡介:登錄模塊:主要完成用戶的登錄信息核對并進入主界面。用戶管理模塊:主要完成對用戶信息的添加、修改

14、和刪除功能。信息設置模塊:主要對企業內部員工和部門的管理。工資查詢模塊:主要完成對員工工資的查詢。第四章 企業工資管理系統應用設計4.1 企業工資管理系統設計“登錄模塊”的設計主要是針對用戶登錄界面的設計,判斷用戶是管理員還是普通用戶,從而進入主界面。登陸界面主要由用戶名和密碼的信息,還有標題的設置,登錄和取消按鈕的設置。用戶只有選擇用戶名后填入相應的密碼后點擊“登錄”才能進入主界面,點擊“取消”會退出系統。由此,登陸界面設計如圖4.1所示圖4.1 登陸界面設計界面若用戶對此有操作上的錯誤,我設計的特點是都有提示的對話框(幾乎每個窗體都設置了如下操作,除了特殊的提示外,為節省打印紙張,相同的提

15、示在以后的篇幅中不再一一寫出),如圖4.2所示 4.2 操作錯誤提示若用戶三次輸入密碼錯誤,系統會認為惡意進入,系統自動關閉。如圖4.3所示圖4.3 強制關閉圖主界面的設計是由菜單編輯器生成,主要由系統設置、設置、信息維護、工資查詢五個模塊組成。其作用是使程序更加有條有理,有利于管理。其中普通用戶只可部分操作,管理員可以對所有模塊進行操作。主界面設計如圖4.4所示:圖4.4 主界面設計圖4.2 子模塊的設計為了防止用戶在輸入密碼時按錯鍵或者一時忘記密碼,我在設計的時候運用了“確認密碼”的文本框,其屬性與密碼項相同。可以用來矯正用戶一時的粗心大意目的,完善了系統的完整性。圖4.5 用戶添加圖4.

16、6 用戶修改關于用戶管理的子菜單,只有管理員有權限進入設置。圖4.7 基本工資設置 圖4.8 確定刪除對話框 圖4.9 部門管理設置用戶可以在工資信息中輸入員工的工資信息,由于添加和修改的操作同時在一個窗體中進行,員工編號不知道要添加的哪一個,所以員工編號的下拉按鈕不是“只讀”屬性,用戶在輸入員工編號時應輸入一個存在的員工,不然則彈出如圖4.11所示的提示框。 圖4.10工資信息設置 圖4.11 員工不存在提示管理員可以查看所有人的工資情況,但是普通用戶只可以查看自己的工資情況,別人的工資情況不允許查看。圖4.12 按員工查詢第五章 各個模塊部門代碼5.1登陸界面Static try_time

17、s As Integer Dim sql As StringDim rst As ADODB.RecordsetIf Trim(cmo_user.Text = "" ThenMsgBox "請選擇用戶名", vbOKOnly + vbInformation, "提示"cmo_user.SetFocusElseIf Trim(txt_key.Text = "" ThenMsgBox "請輸入密碼", vbOKOnly + vbExclamation, "提示"txt_key.S

18、etFocusElsesql = "select * from 用戶表 where 用戶名='" & Trim(cmo_user.Text & "'"Set rst = ExecuteSQL(sql, ""If Trim(rst.Fields(1 = Trim(txt_key.Text Thentempuser = Trim(cmo_user.Textpower = Trim(rst.Fields(2username = Trim(cmo_user.Textrst.Closefrm_main.ShowU

19、nload MeIf power <> "管理員" Thenfrm_main.defend = FalseEnd IfElseMsgBox "密碼不正確,請重新輸入", vbOKOnly + vbExclamation, "警告"txt_key.SetFocustxt_key.Text = ""try_times = try_times + 1If try_times = 3 ThenMsgBox "您已三次嘗試進入本系統失敗,系統將自動關閉", vbOKOnly + vbExcla

20、mation, "結束"Unload MeEnd IfEnd IfEnd IfEnd IfEnd SubPrivate Sub Form_Load(Dim i As IntegerDim sql As StringDim rst As ADODB.Recordsetsql = "select 用戶名 from 用戶表 "Set rst = ExecuteSQL(sql, ""For i = 1 To rst.RecordCountcmo_user.AddItem (rst.Fields(0rst.MoveNextNext irst.C

21、loseEnd Sub5.2 各個子模塊代碼設置Private Sub cmd_add_Click(Dim rst As ADODB.RecordsetDim sql As StringDim i As IntegerIf Trim(txt_adduser.Text = "" Or Trim(txt_addkey.Text = "" Or Trim(cmo_addpower = "" ThenMsgBox "請將用戶信息填寫完整!", vbOKOnly + vbExclamation, "警告"

22、txt_adduser.SetFocustxt_adduser.Text = ""txt_addkey.Text = ""txt_rekey.Text = ""cmo_addpower.ClearCall Form_LoadElsesql = "select 用戶名 from 用戶表"Set rst = ExecuteSQL(sql, ""If Trim(txt_adduser.Text = Trim(rst.Fields(0 ThenMsgBox "您輸入的用戶已經存在,請重新輸入!

23、", vbOKOnly + vbExclamation, "警告"rst.Closetxt_adduser.SetFocustxt_adduser.Text = ""txt_addkey.Text = ""cmo_addpower.ClearCall Form_Loadtxt_rekey.Text = ""ElseIf Trim(txt_addkey.Text <> Trim(txt_rekey.Text ThenMsgBox "兩次輸入的密碼不相同,請重新輸入!", vb

24、OKOnly + vbExclamation, "警告"txt_addkey.SetFocustxt_addkey.Text = ""txt_rekey.Text = ""Elsesql = "insert into 用戶表 values(" & "'" & Trim(txt_adduser.Text & "'," _& "'" & Trim(txt_addkey.Text & &qu

25、ot;'," _& "'" & Trim(cmo_addpower & "'" & ""Set rst = ExecuteSQL(sql, ""MsgBox "添加成功", vbOKOnly + vbExclamation, "添加結果"txt_adduser.SetFocustxt_adduser.Text = ""txt_addkey.Text = ""txt_rek

26、ey.Text = ""cmo_addpower.ClearCall Form_LoadEnd IfEnd IfEnd IfEnd SubPrivate Sub cmd_cancel_Click(Unload MeEnd SubPrivate Sub Form_Load(With cmo_addpower.AddItem "管理員".AddItem "普通用戶"End WithEnd Sub以基本工資中的修改和刪除為例,崗位工資與基本工資雷同,不再贅述。Private Sub cmd_alter_Click(If Trim(cmo_s

27、cale.Text = "" Or Trim(txt_money.Text = "" ThenMsgBox "請填寫需要修改的信息!", vbOKOnly + vbExclamation, "警告"cmo_scale.SetFocuscmo_scale.Text = ""txt_money.Text = ""Elsesql = "select 工資級別 from 基本工資 where 工資級別='" & Trim(cmo_scale.Tex

28、t & "'"Set rst = ExecuteSQL(sql, ""If rst.RecordCount = 0 ThenMsgBox "您輸入的級別不存在,請重新輸入!", vbOKOnly + vbExclamation, "警告"cmo_scale.SetFocuscmo_scale.Text = ""txt_money.Text = ""Elsesql = "update 基本工資 set 工資金額='" & Tr

29、im(txt_money.Text & "' where 工資級別='" & Trim(cmo_scale.Text & "'"Set rst = ExecuteSQL(sql, ""MsgBox "修改成功!", vbOKOnly + vbInformation, "操作結果"cmo_scale.SetFocuscmo_scale.Text = ""txt_money.Text = ""Call Form_

30、LoadEnd IfEnd IfEnd SubPrivate Sub cmd_cancel_Click(If rst.RecordCount <> 0 ThenIf MsgBox("真的要刪除該工資級別嗎?", vbYesNo + vbQuestion, "警告" = vbYes Thenrst.DeleteMsgBox "刪除成功!", vbInformation, "提示"cmo_scale.SetFocusCall Form_LoadElsecmo_scale.SetFocusEnd If End

31、 IfEnd sub以員工修改為例,部門修改雷同。Private Sub cmd_add_Click(If Trim(cmo_number.Text = "" ThenMsgBox "請填寫員工編號!"cmo_number.SetFocusElseSet rst = ExecuteSQL("select * from 員工信息 where 員工編號='" & Trim(cmo_number.Text & "'", ""If rst.RecordCount <

32、> 0 ThenMsgBox "該員工已經存在,請重新輸入員工編號!", vbOKOnly + vbInformation, "提示"cmo_number.SetFocusElseIf Trim(txt_name.Text = "" ThenMsgBox "員工姓名不允許為空!"txt_name.SetFocusElseIf Trim(cmo_sex.Text = "" ThenMsgBox "性別不允許為空!"cmo_sex.SetFocusElseIf Trim(c

33、mo_dept.Text = "" ThenMsgBox "員工部門不允許為空!"cmo_dept.SetFocusElseIf Trim(cmo_education.Text = "" ThenMsgBox "員工文化程度不允許為空!"cmo_education.SetFocusElseIf Trim(txt_title.Text = "" ThenMsgBox "職稱不允許為空!"txt_title.SetFocusElsesql = "insert into

34、員工信息 values (" & "'" & Trim(cmo_number.Text & "'," _& "'" & Trim(txt_name.Text & "'," _& "'" & Trim(cmo_sex.Text & "'," _& "'" & Trim(DTPbirthday.Value &

35、amp; "'," _& "'" & Trim(cmo_dept.Text & "'," _& "'" & Trim(cmo_education.Text & "'," _& "'" & Trim(txt_title.Text & "'"Set rst = ExecuteSQL(sql, ""cmo_numbe

36、r.SetFocuscmo_number.Cleartxt_name.Text = ""cmo_sex.Text = "男"cmo_dept.Clearcmo_education.ClearDTPbirthday.Refreshtxt_title.Text = ""Call Form_LoadMsgBox "操作成功!", vbOKOnly + vbInformation, "操作結果"End IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd SubPrivat

37、e Sub Form_Load(sql = "select 員工編號 from 員工信息 "Set rst = ExecuteSQL(sql, ""For i = 1 To rst.RecordCountcmo_number.AddItem (rst.Fields(0rst.MoveNextNext isql = "select 部門編號 from 部門信息 "Set rst = ExecuteSQL(sql, ""For i = 1 To rst.RecordCountcmo_dept.AddItem (rst.

38、Fields(0rst.MoveNextNext iWith cmo_education.AddItem "高中以下".AddItem "高中".AddItem "中專".AddItem "大專".AddItem "本科".AddItem "研碩".AddItem "博士".AddItem "博士后"End Withsql = "select * from 員工信息 "Set rst = ExecuteSQL(sql

39、, ""Set DataGrid1.DataSource = rstEnd SubPrivate Sub cmd_single_Click(Dim sql As StringDim rst As ADODB.RecordsetIf Trim(cmo_number.Text = "" ThenMsgBox "請選擇員工編號!", vbOKOnly + vbExclamation, "警告"cmo_number.SetFocusElseIf Trim(cmo_number.Text <> username

40、And power <> "管理員" ThenMsgBox "你不能查看其他員工的工資信息!", vbOKOnly + vbExclamation, "警告"Elsesql = "select * from 工資信息 where 員工編號='" & Trim(cmo_number.Text & "'"Set rst = ExecuteSQL(sql, ""Set DataGrid1.DataSource = rstEnd IfEnd

41、 IfEnd SubPrivate Sub Form_Load(Dim sql As StringDim rst As ADODB.Recordsetsql = "select 員工編號 from 工資信息"Set rst = ExecuteSQL(sql, ""For i = 1 To rst.RecordCountcmo_number.AddItem (rst.Fields(0rst.MoveNextNext iEnd Sub第6章 各模塊設計要點6.1 登錄模塊設計登錄模塊是所有用戶進入工資管理系統的唯一途徑,除了確定用戶類型以外,還要注意用戶登錄

42、的密碼是否與后臺數據庫的一致,如果不一致則會彈出圖4.2所示的提示信息。用戶在登錄模塊出現的所有情況我都予以考慮了。在用戶登錄時根據判斷用戶的權限,在模塊中有“If power <> "管理員”的代碼,此項決定了主界面的操作模塊。在調試所有登錄情況都成功后,我想到了一種惡意登錄此系統的情況,因此我設置了“try_times”來限制用戶的強制登錄如圖4.3所示。6.3用戶管理設計在添加用戶模塊中,我仿造了一般填寫信息時的方法設計了“確認密碼”操作,如果在操作錯誤時候會彈出如圖6.1所示的提示信息,點擊確定后,鼠標自動停在密碼文本框中,用戶不需要再次輸入用戶名,在此說明一下,在我做的系統中幾乎所有的錯誤轉移都有如上的提示和獲得焦點的操作。刪除用戶模塊中,在用戶點擊了確定按鈕以后,會有如圖4.8所示的對話框,為用戶刪除考慮了情況。圖6.1 “確認密碼”錯誤6.3 信息管理設計這個部門主要由部門信息和員工信息組成,發放工資是對員工工資的管理,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論