2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  計算機信息管理專業(yè)課程設計報告</p><p>  《企業(yè)工資管理系統(tǒng)設計與實現(xiàn)》</p><p>  專業(yè):計算機信息管理專業(yè)</p><p>  年級:09春計算機信息管理 </p><p><b>  姓名: </b></p><p><b>  學號:<

2、;/b></p><p><b>  指導老師:</b></p><p><b>  二〇一一年十月</b></p><p><b>  目 錄</b></p><p>  一、概述 ……………………………………………………2</p><p>

3、  1.1 數(shù)據(jù)庫管理系統(tǒng)簡介 ……………………………………………3</p><p>  1.2開發(fā)工具簡介 ………………………………………………………3 </p><p>  二、企業(yè)工資管理系統(tǒng)設計分析 ……………………………42.1 應用需求分析 ……………………………………………………42.2 系統(tǒng)功能模塊劃分 ………………………………………………52.3 系統(tǒng)數(shù)據(jù)庫設計 …

4、……………………………………………5</p><p>  三、企業(yè)工資管理系統(tǒng)應用程序設計 …………………………93.1 “登錄”模塊詳細設計……………………………………………93.2 “主窗體”模塊詳細設計…………………………………………93.3 各項子模塊詳細設計……………………………………………103.4 各項子模塊編寫要點………………………………………………24四、總結(jié) …………………………

5、…………………………………36 參考書目 ………………………………………………………………36</p><p>  附錄:源程序………………………………………………………38</p><p><b>  一、概述</b></p><p>  企業(yè)的工資管理是公司管理的一個重要內(nèi)容。隨著企業(yè)人員數(shù)量增加,企業(yè)的工資管理工作也變得越來越復雜。工資

6、管理既涉及到企業(yè)勞動人事的管理,同時也是企業(yè)財務管理的重要組成部分。工資管理需要和人事管理相聯(lián)系,同時連接工時考勤和醫(yī)療保險等等,來生成企業(yè)每個職工的基本工資、津貼、醫(yī)療保險、保險費、實際發(fā)放工資等。資金是企業(yè)生存的主要元素,資金的流動影響到企業(yè)的整體運作,企業(yè)員工的工資是企業(yè)資金管理的一個重要的組成部分。早期的工資統(tǒng)計和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費財務人員大量的時間且不易保存,往往由于個人的因素抄寫不慎或計算疏忽,出現(xiàn)工

7、資發(fā)放錯誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強的時間限制?;谝陨显?,企業(yè)工資管理系統(tǒng)使用電腦安全保存、快速計算、全面統(tǒng)計,實現(xiàn)工資管理的系統(tǒng)化、規(guī)范化、自動化。企業(yè)工資管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),前臺程序開發(fā)工具采用微軟的VB6,后臺數(shù)據(jù)庫采用Access數(shù)據(jù)庫。VB6是一種面向?qū)ο蟮拈_發(fā)工具,具有組件豐富、語言簡單、功能強大的優(yōu)點。 Access數(shù)據(jù)庫具有與VB6無縫連接、操作簡單、易于使用的優(yōu)點。運行結(jié)果證明

8、,本企業(yè)工資管理系</p><p>  1.1數(shù)據(jù)庫管理系統(tǒng)</p><p>  數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)

9、系型、面向?qū)ο笮偷?。MS Access 2000就是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。</p><p>  關(guān)系模型主要是用二維表格結(jié)構(gòu)表達實體集,用外鍵表示實體間聯(lián)系。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當于前面提到的記錄類型,每個關(guān)系實際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細節(jié)。SQL語言是關(guān)系型數(shù)據(jù)庫的標

10、準化語言,已得到了廣泛的應用。</p><p>  1.2、 開發(fā)工具介紹</p><p>  微軟公司的Visual Basic 6.0是Windows應用程序開發(fā)工具,是目前最為廣泛的、易學易用的面向?qū)ο蟮拈_發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設計界面和實現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程序的運行效率和可靠性。因

11、此,本系統(tǒng)使用MS Visual Basic 6.0開發(fā)。</p><p>  企業(yè)工資管理系統(tǒng)設計分析</p><p>  2.1 應用需求分析</p><p>  需求分析的過程可以說是一個對具體問題的反復理解和抽象的過程。理解就是對現(xiàn)實問題的理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的表面,提取問題的本質(zhì),建立問題的邏輯模型,以便于以后階段的系統(tǒng)的設

12、計實現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期中的一個重要階段,其根本任務是確定用戶對軟件系統(tǒng)的需求。所謂需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點也需要有一種清楚的認識。功能性需求是指需要計算機系統(tǒng)解決的問題,也就是對數(shù)據(jù)的處理要求,這是一類最主要的需求。非功能性需求是指實際使用環(huán)境所要求的需求,往往是一些限制要求,例如:

13、性能要求,可靠性要求,安全保密要求等。</p><p>  軟件需求包含三個層次—業(yè)務需求、用戶需求和功能需求,還包括非功能需求。業(yè)務需求:反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。用戶需求:描述了用戶使用產(chǎn)品必須要完成的任務和具備的功能,這在使用實例文檔或方案腳本說明中予以說明。功能需求:定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,從而滿足其業(yè)務需求。

14、</p><p>  2.2 系統(tǒng)功能模塊劃分</p><p>  開發(fā)這個系統(tǒng)的目的就是幫助企業(yè)的財務主管部門提高工作效率,實現(xiàn)企業(yè)工資信息管理的系統(tǒng)化、規(guī)范化和自動化。能夠和認識管理系統(tǒng)、考勤管理系統(tǒng)相結(jié)合,真正實現(xiàn)企業(yè)高效、科學、現(xiàn)代化的員工管理。系統(tǒng)最終實現(xiàn)的主要功能如下。</p><p>  ·企業(yè)工資信息設置部分:包括設置員工的基本工資和其他項

15、目的金額,如獎金等。并且負責設置員工工資的計算公式。</p><p>  ·企業(yè)工資信息管理部分:包括統(tǒng)計出勤、計算工資、查詢工資和導出工資表。</p><p>  ·系統(tǒng)部分:包括添加用戶和修改密碼。</p><p>  2.3系統(tǒng)數(shù)據(jù)庫設計</p><p>  數(shù)據(jù)庫是信息管理系統(tǒng)的后臺,存儲著所有的信息,在信息管理系

16、統(tǒng)中有著很重要的地位。數(shù)據(jù)庫設計的好與壞,直接影響到這個系統(tǒng)的運行效率。良好的數(shù)據(jù)庫設計,可以提高數(shù)據(jù)信息的存儲效率,確保數(shù)據(jù)信息的完整性和一致性。</p><p>  針對企業(yè)工資信息管理系統(tǒng)的需求,通過對員工工資計算過程的內(nèi)容分析,為本系統(tǒng)設計如下的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):</p><p>  ·基本工資信息:包括員工編號和基本工資(元/小時)。</p><p&

17、gt;  ·其他項目信息:包括員工編號、獎金、津貼、福利、扣發(fā)等。</p><p>  ·計算公式信息:包括加班費的百分比、出差工資、曠工、遲到早退扣發(fā)等。</p><p>  ·出勤統(tǒng)計信息:包括員工編號、姓名、統(tǒng)計日期、出勤天數(shù)、遲到早退次數(shù)、加班天數(shù)、加班天數(shù)等。</p><p>  ·工資統(tǒng)計信息:包括員工編號、姓名、

18、統(tǒng)計日期、基本工資、獎金、津貼、福利,加班費、出差費、扣發(fā)、總額等。</p><p>  啟動Access 2000,創(chuàng)建新的數(shù)據(jù)庫,命名為Salary.mdb和Person.mdb,保存在要存放這個系統(tǒng)所有工程文件的文件夾中。在使用的時,要把應用程序和這兩個數(shù)據(jù)庫保存在同一個文件夾中。</p><p>  員工出勤統(tǒng)計信息表:</p><p>  員工工資計算公式

19、信息表:</p><p><b>  員工其他項目設置:</b></p><p>  員工工資統(tǒng)計信息表:</p><p><b>  員工信息表:</b></p><p><b>  用戶信息表:</b></p><p>  三、企業(yè)工資管理系統(tǒng)應用程

20、序設計</p><p>  3.1 “登錄模塊”詳細設計</p><p>  登錄模塊的詳細設計主要是用戶登錄的一個界面,判斷登錄的用戶是管理員還是普通用戶,進入后將面對的是主界面,從而進行相關(guān)的操作。</p><p>  登錄的界面主要由用戶名和密碼的信息,還有一些標題設置,確定和取消的按鈕組成。通過標題可以知道此系統(tǒng)的大概內(nèi)容,由此,登錄界面的設計完成。 <

21、;/p><p>  3.2 “主窗體”模塊詳細設計</p><p>  在這個項目中,選擇使用多文檔界面。使用這個窗體的好處是可以使程序更加有條理。對于一個多任務的應用程序,使用多文檔窗體還可以減少占用的系統(tǒng)資源。</p><p>  主窗體設計的界面是用菜單編輯器做的,主要由系統(tǒng)、工資信息設置、工資信息管理和關(guān)于這四個大模塊組成。主窗體是進行相關(guān)操作的主界面。在這幾個

22、里,管理員有所有的權(quán)利進行各種操作。</p><p>  3.3各項子模塊詳細設計</p><p>  選擇“系統(tǒng)”—>“添加用戶”菜單,在添加用戶的窗體里,輸入新的用戶名稱和密碼后,單擊“確定”按鈕,系統(tǒng)將會添加新的用戶。</p><p>  sql = "insert into userinfo (userid,userpwd) values(&

23、#39;" & username</p><p>  sql = sql & "','" & password & "')"</p><p>  Call transactsql(sql, "salary")</p><p>  MsgBox

24、 "添加成功", vbOKOnly + vbExclamation, "</p><p><b>  添加結(jié)果"</b></p><p>  username.Text = ""</p><p>  password.Text = ""</p><

25、;p>  confirmpwd.Text = ""</p><p>  username.SetFocus </p><p>  選擇“系統(tǒng)”—>“修改密碼”菜單,在修改密碼的窗體里,輸入舊密碼和2次輸入新密碼后,單擊“確定”按鈕,系統(tǒng)將會更改當前用戶的密碼。</p><p>  userpassword = newpwd</

26、p><p>  sql = "update userinfo set userpwd='" & newpwd & "'where userid='" & strusername & "'"</p><p>  Call transactsql(sql, "sal

27、ary")</p><p>  MsgBox "密碼已經(jīng)修改", vbOKOnly + vbExclamation, "修改結(jié)果"</p><p>  選擇“工資信息設置”—>“基本工資設置”菜單設置員工的基本工資,可以根據(jù)員工的編號,或者根據(jù)員工職務設置基本工資,設置的基本工資為每個小時的工資。</p><p&g

28、t;  Set rs = getrs(sql, "salary")</p><p>  If rs.EOF = False Then</p><p>  sql = "delete from salarysetting where stuffid='" & Me.comstuffid.Text & "'&qu

29、ot;</p><p>  Call transactsql(sql, "salary")</p><p><b>  End If</b></p><p><b>  rs.Close</b></p><p>  id = Me.comstuffid.Text</p>

30、;<p>  Call addrecord</p><p>  MsgBox "已經(jīng)設置基本工資", vbOKOnly + vbExclamation, "添加結(jié)果"</p><p><b>  Call init</b></p><p>  sql = "select * fro

31、m salarysetting"</p><p>  Call frmresult.basictopic</p><p>  Call frmresult.showbasic(sql)</p><p>  frmresult.Show</p><p>  frmresult.ZOrder 0</p><p>

32、  Me.ZOrder 0</p><p>  選擇“工資信息設置”—>“其他項目設置”菜單,在其他項目設置的窗體中,設置員工當月的獎金、津貼、福利等項目。</p><p>  sql = "select * from salaryother"</p><p>  If ichangeflag = 1 Then</p><

33、;p><b>  Call add</b></p><p>  MsgBox "已經(jīng)添加記錄", vbOKOnly + vbExclamation, "提示"</p><p>  Call frmresult.othertopic</p><p>  Call frmresult.showother

34、(sql)</p><p>  frmresult.Show</p><p><b>  Unload Me</b></p><p><b>  Else</b></p><p>  If Me.optionbonus.Value = True Then</p><p>&l

35、t;b>  itype = 1</b></p><p>  ElseIf Me.optionallowance.Value = True Then</p><p><b>  itype = 2</b></p><p>  ElseIf Me.optionwelfare.Value = True Then</p>

36、<p><b>  itype = 3</b></p><p>  ElseIf Me.optionabatement.Value = True Then</p><p><b>  itype = 4</b></p><p>  ElseIf Me.optionothers.Value = True Then

37、</p><p><b>  itype = 5</b></p><p>  resumdate = recordtime</p><p>  sql = "delete from salaryother where stuffid='" & Me.comid.Text</p><p>

38、;  sql = sql & "' and YearMonth=#" & recordtime & "# and "</p><p>  sql = sql & "Type=" & itype</p><p>  Call transactsql(sql, "Salary&

39、quot;)</p><p><b>  Call add</b></p><p>  Call frmsumsalary.resumsalary(resumdate)</p><p>  sql = "select * from salaryother"</p><p>  Call frmresu

40、lt.othertopic</p><p>  Call frmresult.showother(sql)</p><p>  frmresult.Show</p><p><b>  Unload Me</b></p><p><b>  End If</b></p><p&g

41、t;  選擇“工資信息設置”—>“工資計算公式設置”菜單,在這個計算公式窗體中設置員工實際發(fā)放工資的計算公式。</p><p>  If Me.textovertimecom = "" And IsNumeric(Me.textovertimecom) = True Then</p><p>  MsgBox "請輸入正常加班工資百分比", v

42、bOKOnly + vbExclamation, "提示"</p><p>  Me.textovertimecom = ""</p><p>  Me.textovertimecom.SetFocus</p><p>  ElseIf Me.textovertimespe = "" And IsNumer

43、ic(Me.textovertimespe) = False Then</p><p>  MsgBox "請輸入特殊加班工資百分比", vbOKOnly + vbExclamation, "提示"</p><p>  Me.textovertimespe = ""</p><p>  Me.textove

44、rtimespe.SetFocus</p><p>  ElseIf Me.texterrand = "" And IsNumeric(Me.texterrand) = False Then</p><p>  MsgBox "請輸入出差工資", vbOKOnly + vbExclamation, "提示"</p>

45、<p>  Me.texterrand = ""</p><p>  Me.texterrand.SetFocus</p><p>  ElseIf Me.textabsent = "" And IsNumeric(Me.textabsent) = False Then</p><p>  MsgBox "

46、請輸入曠工扣發(fā)工資", vbOKOnly + vbExclamation, "提示"</p><p>  Me.textabsent = ""</p><p>  Me.textabsent.SetFocus</p><p>  ElseIf Me.textle = "" And IsNumeri

47、c(Me.textle) = False Then</p><p>  MsgBox "請輸入遲到早退扣發(fā)工資", vbOKOnly + vbExclamation, "提示"</p><p>  Me.textle = ""</p><p>  Me.textle.SetFocus</p>

48、<p><b>  Else</b></p><p>  Call setvalue</p><p><b>  Call init</b></p><p><b>  End If</b></p><p>  選擇“工資信息管理”—>“出勤統(tǒng)計”菜單,在統(tǒng)計出

49、勤記錄窗體中選擇需要統(tǒng)計記錄的月份。</p><p>  firstday = Year(Date) & "-" & Me.commonth.Text & "-1"</p><p>  days = DateDiff("d", Year(Date) & "-" & Me.

50、commonth.Text & "-1", _</p><p>  Year(Date) & "-" & Me.commonth.Text + 1 & "-1")</p><p>  lastday = Year(Date) & "-" & Me.commonth

51、.Text & "-" & days</p><p>  sql = "select * from attendancestatistics where recordmonth between #"</p><p>  sql = sql & firstday & "# and #" & l

52、astday & "#"</p><p>  Set rsrecord = getrs(sql, "salary")</p><p>  If rsrecord.EOF = False Then</p><p>  MsgBox "已經(jīng)統(tǒng)計", vbOKOnly + vbExclamation, &

53、quot;提示"</p><p>  frmaresult.Show</p><p>  frmaresult.ZOrder 0</p><p>  rsrecord.Close</p><p><b>  Unload Me</b></p><p><b>  Exit Su

54、b</b></p><p><b>  End If</b></p><p>  sql = "select * from attendanceinfo where adate between #"</p><p>  sql = sql & firstday & "# and #&qu

55、ot; & lastday & "#"</p><p>  Set rsrecord = getrs(sql, "person")</p><p>  If rsrecord.EOF = False Then</p><p>  sql = "select sid,sname from stuffin

56、fo order by sid"</p><p>  Set rsperson = getrs(sql, "person")</p><p>  選擇月份后單擊“確定”按鈕,如果系統(tǒng)已經(jīng)統(tǒng)計過該月份的記錄,那么會出現(xiàn)如下圖所示的統(tǒng)計結(jié)果信息列表。如果系統(tǒng)沒有統(tǒng)計過,那么系統(tǒng)就會開始統(tǒng)計記錄,然后顯示如圖所示的統(tǒng)計結(jié)果信息列表。</p><p

57、>  If strusername <> "admin" Then</p><p>  sql = "select sid from stuffinfo where sname='" & strusername & "'"</p><p>  Set rs = getrs(sql,

58、 "salary")</p><p>  sd = rs(0)</p><p>  sql = "select * from attendancestatistics where stuffid='" & sd & "'"</p><p>  Me.Adodc1.Connec

59、tionString ="provider=microsoft.jet.oledb.4.0;Datasource="& App.Path & "\salary.mdb"</p><p>  Me.Adodc1.RecordSource = sql</p><p>  Me.Adodc1.Refresh</p><p

60、>  Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset</p><p>  Me.DataGrid1.Refresh</p><p><b>  Else</b></p><p>  sql = "select * from attendancestatistics"&

61、lt;/p><p>  Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="& App.Path & "\salary.mdb"</p><p>  Me.Adodc1.RecordSource = sql</p><p>

62、;  Me.Adodc1.Refresh</p><p>  Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset</p><p>  Me.DataGrid1.Refresh</p><p><b>  End If</b></p><p>  選擇“工資信息管理”—>

63、;“計算實發(fā)工資”菜單,在這個窗體中選擇需要統(tǒng)計的月份。選擇統(tǒng)計月份后,單擊“開始統(tǒng)計”按鈕,系統(tǒng)如果已經(jīng)統(tǒng)計了該月份的工資,系統(tǒng)會顯示工資信息列表窗體。如果系統(tǒng)還沒有統(tǒng)計工資,那么系統(tǒng)開始統(tǒng)計工資,然后在信息結(jié)果列表窗體中顯示統(tǒng)計結(jié)果。</p><p>  If Me.commonth.Text = 4 Then</p><p>  firstday = Year(Date) &

64、 "-" & Me.commonth.Text & "-1"</p><p>  days = DateDiff("d", Year(Date) & "-" & Me.commonth.Text & "-1", _</p><p>  Year(Dat

65、e) & "-" & Me.commonth.Text + 1 & "-1")</p><p>  lastday = Year(Date) & "-" & Me.commonth.Text & "-" & days</p><p>  Call sums

66、alary(firstday, lastday)</p><p>  sql = "select * from salarystatistics"</p><p>  frmresult.SSTab1.Caption = "員工工資統(tǒng)計列表"</p><p>  Call frmresult.listtopic</p&g

67、t;<p>  Call frmresult.showdata(sql)</p><p>  frmresult.Caption = "統(tǒng)計結(jié)果列表"</p><p>  frmresult.ZOrder 0</p><p><b>  Unload Me</b></p><p><

68、;b>  Else</b></p><p>  MsgBox "這個月的工資未統(tǒng)計", vbOKOnly + vbExclamation, "提示"</p><p><b>  End If</b></p><p>  選擇“工資信息管理”—>“查詢工資”菜單,系統(tǒng)顯示如圖的查詢信

69、息窗體,系統(tǒng)默認的是查詢出數(shù)據(jù)庫中所有的記錄(當管理員進入的時候),當從“員工編號”下拉列表中選擇一個員工編號后,單擊“查詢單人”按鈕,就會查詢出符合這個員工編號的記錄;如果需要返回查詢所有信息,單擊“查詢所有”按鈕,系統(tǒng)就會返回所有員工的信息。在“員工工資統(tǒng)計列表”中單擊鼠標右鍵,會彈出下圖的菜單,在“員工其他項目列表”中單擊鼠標右鍵也會出現(xiàn)下圖的菜單。</p><p>  如果要選擇“刪除基本工資設置”,出現(xiàn)

70、如下的提示:</p><p>  具體的操作這里就不詳細介紹。</p><p>  選擇“工資信息管理”—>“導出工資表”菜單,會出現(xiàn)下圖的“導出記錄”窗體中選擇需要導出工資的月份。選擇月份和保存位置后,單擊“導出”按鈕,系統(tǒng)會開始導出數(shù)據(jù)。</p><p>  單擊“確定”按鈕打開導出的文件,單擊“取消”按鈕回到系統(tǒng)。</p><p>

71、;<b>  導出的工資記錄</b></p><p>  3.4 各項子模塊編寫要點</p><p>  在登錄的這個窗體里,我做的特點是:只要在數(shù)據(jù)庫里有用戶信息的,都可以登錄,然后顯示相關(guān)自己的信息,而管理員顯示所有的信息。當輸入的用戶名或密碼不正確的時候,會出現(xiàn)如下的對話框:</p><p><b>  或者</b>

72、;</p><p>  在主窗體的設計中,我在系統(tǒng)的下拉菜單里包括有添加用戶、修改密碼和退出系統(tǒng)。在這個模塊里普通用戶只有修改自己的密碼的權(quán)利。在添加用戶的窗體里:添加3個標簽、3個文本框和2個命令按鈕,然后設置它們相關(guān)的屬性。在修改密碼的窗體里:添加了3個標簽,用來顯示信息;3個文本框用來輸入用戶名稱和用戶密碼;2個按鈕用來確定和取消操作,然后設置它們的屬性。</p><p>  在工資

73、信息設置的下拉菜單里包括有基本工資信息設置、其他項目信息設置和計算公式設置。在這個模塊里,普通用戶沒有任何權(quán)利進行相關(guān)的操作。在基本工資窗體里:添加了2個選項按鈕、2個下拉列表、2個標簽、1個文本框和2個按鈕,然后設置它們的屬性。在其他項目設置的窗體里:使用了一個DTPicker控件獲得添加記錄的時間,要使用這個控件需要添加部件類庫,選擇“工程—>部件”命令,選擇Microsoft Windows Common Controls-

74、2 6.0(sp4)項,然后設置相關(guān)的屬性。</p><p>  在工資信息管理的下拉菜單里包括有統(tǒng)計出勤信息、計算實發(fā)工資、查詢工資和導出工資表。在這個模塊里,普通用戶有統(tǒng)計出勤信息和查詢工資的權(quán)利,但是都顯示的是自己的信息。在出勤統(tǒng)計窗體里:添加一個下拉列表、一個標簽和2個命令按鈕,然后設置相關(guān)的屬性。在出勤結(jié)果信息列表的窗體里:使用了Adodc控件和DataGrid控件,控件的Visible屬性一定要設置為

75、False。在計算實發(fā)工資窗體里添加的控件和統(tǒng)計出勤記錄窗體的控件相同。在工資統(tǒng)計列表窗體里:使用了SSTab控件,在每一個標簽上添加一個MSFlexGrid控件,然后設置它們的屬性。在導出工資表的窗體中使用了CommondDialog控件,要使用這個控件需要在“控件”窗體中,選擇Microsoft Common Dialog Control6.0(sp3)項,同時因為數(shù)據(jù)表格是導出到Excel,所以需要添加引用。選擇“工程—>引

76、用”菜單,在“引用”窗體中選擇Microsoft Excel 9.0 Object Library項,這樣才能夠成功導入到Excel。</p><p>  在這個窗體里,我做的特點是:權(quán)利分工明確。當管理員進入的時候他有所有的權(quán)利,單擊哪個模塊就會彈出相對應的窗體。而普通用戶則不能,我把它進行了權(quán)限設置,會彈出權(quán)限的對話框。</p><p>  在添加用戶的窗體里,如果輸入的用戶密碼和確認

77、密碼不一致,將出現(xiàn)一個警告對話框:</p><p>  然后輸入與用戶密碼相同的密碼,我這里的密碼都是以*的形式表達,是不可見的。添加的用戶將保存在數(shù)據(jù)庫的userinfo里。單擊“取消”按鈕就卸載此窗體,添加用戶的過程到此完成。</p><p>  在修改密碼的窗體里,我要注重講解一下:當輸入的舊密碼與登錄時的密碼不一致將出現(xiàn)提示對話框(如圖一),當輸入的“確認新密碼”和“輸入新密碼”的

78、密碼不一致時也將出現(xiàn)警告對話框(如圖二)。我在做這個窗體時遇到了一個問題:就是輸入的新密碼確認后,當你再一次的進入修改密碼窗體輸入舊密碼時,如果輸入的是剛剛修改過的密碼,就會出現(xiàn)錯誤。經(jīng)過一段時間的思考,我發(fā)現(xiàn)原因是修改過的密碼沒有覆蓋登錄時的密碼,所以會出現(xiàn)問題。我覺得這是一個很大的問題,在別的書上可能沒注意到這一點,所以我要注重的講一下,這是我做這個窗體時的最大體會。</p><p><b>  圖

79、一</b></p><p><b>  圖二</b></p><p>  在建立基本工資窗體時,這個窗體會在兩個地方使用到,一個就是添加,另一個就是修改,在窗體載入時系統(tǒng)應自動判斷狀態(tài)。選擇員工編號或選擇職務,然后填寫工資金額,單擊“確定”按鈕,系統(tǒng)就會按照選擇的方式,設置員工的基本工資。在做基本工資這個窗體時,我的想法是:當你在修改基本工資的信息,首先都

80、要從數(shù)據(jù)庫中調(diào)出相關(guān)的信息,然后把它刪除掉,再從數(shù)據(jù)庫中的員工信息表中調(diào)出所要的信息,然后再一次的添加所要設置的信息。當你沒輸入員工編號的時候,會出現(xiàn)下圖的對話框;</p><p>  當沒輸入員工的職務時會出現(xiàn)錯誤的信息。</p><p>  在建立其他項目設置的窗體時,也在兩個地方使用,即添加和修改,在載入時也需要判斷狀態(tài)。選擇員工編號,再選擇需要添加的項目和進額,單擊“確定”按鈕,即

81、可添加其他項目。在其他項目設置這個窗體里,我用了一個Frame控件和幾個optionButton控件,目的在于:在添加其他項目時,只能有一個設置是有效的,而且還可以添加其他的項目,還有備注等等,這些都便于記錄。這里還有一個DTPicker控件是用來記錄添加其他項目的時間,我覺得這個控件非常好。還有就是每次添加成功后,系統(tǒng)需要初始化,更新一下。在設置完這個窗體后將會彈出查詢工資的窗體。</p><p>  在建立工

82、資計算公式的窗體時,輸入內(nèi)容后,單擊“確定”按鈕,設置計算公式中使用的數(shù)字。在計算公式設置的窗體里,單擊“恢復默認值”按鈕系統(tǒng)將會恢復公式中的默認值。這里的恢復默認值功能采用的方法比較簡單,就是在一個函數(shù)中設置了固定的默認值。如果需要使用可變的默認值,可以在數(shù)據(jù)庫中設置一項默認值字段,這樣可以方便的更改默認值。當輸入的格式與設定的格式不一致的時候,會彈出相關(guān)的對話框。</p><p>  建立出勤統(tǒng)計窗體,選擇月

83、份后,單擊“確定”按鈕,開始統(tǒng)計出勤記錄。在統(tǒng)計出勤信息的窗體里,這要和出勤記錄的數(shù)據(jù)庫相連,如果輸入的月份沒有統(tǒng)計將如下的對話框:</p><p>  如果輸入的月份有統(tǒng)計記錄則彈出如下的對話框:</p><p>  然后彈出出勤結(jié)果的窗體,顯示數(shù)據(jù)庫中統(tǒng)計信息相關(guān)的記錄。</p><p><b>  管理員能看到的界面</b></p&

84、gt;<p>  這是用戶登錄所顯示的用戶信息</p><p>  建立計算實發(fā)工資的窗體,這個窗體的建立和統(tǒng)計出勤記錄的窗體比較相似,選擇月份后,單擊“開始統(tǒng)計”按鈕,即可統(tǒng)計員工工資。在計算實發(fā)工資的窗體里,如果輸入的月份的工資沒統(tǒng)計會彈出如下的對話框:</p><p>  否則會出現(xiàn)如下的對話框:</p><p>  單擊“確定”后,就會出現(xiàn)工資

85、信息列表,這時你將看見所有關(guān)于你想要的信息。</p><p>  建立工資查詢的窗體,在選擇員工編號后,單擊“查詢單人”按鈕,返回選擇員工的相關(guān)信息。單擊“查詢?nèi)俊卑粹o,系統(tǒng)返回全部員工的信息。在建立工資查詢(即工資統(tǒng)計結(jié)果列表)的窗體時,我覺得這是一個最難的窗體。不僅是因為它的設置,還有就是它的代碼和數(shù)據(jù)庫相連的操作。在這個窗體中使用了SSTab控件,在每一個標簽上添加一個MSFlexGrid控件。當你是管理

86、員登錄的時候,他的權(quán)限是所有,當你是用戶登錄的時候,窗體只顯示登錄用戶本人的相關(guān)信息。他沒有任何權(quán)限,只能看到自己的信息,這是我做這個窗體的特色。</p><p><b>  窗體的部分代碼為:</b></p><p>  If strusername = "admin" Then ’管理員的權(quán)限</p><p>  sq

87、l = "select stuffid from salarysetting"</p><p>  Set rs = getrs(sql, "salary")</p><p>  If rs.EOF = False Then</p><p>  While Not rs.EOF</p><p>  Me

88、.comid.AddItem rs(0)</p><p>  rs.MoveNext</p><p><b>  Wend</b></p><p><b>  rs.Close</b></p><p><b>  End If</b></p><p> 

89、 Me.comid.ListIndex = 0</p><p>  Select Case Me.SSTab1.Tab</p><p><b>  Case 0</b></p><p>  sql = "select * from salarysetting"</p><p>  Call basic

90、topic</p><p>  Call showbasic(sql)</p><p><b>  Case 1</b></p><p>  sql = "select * from salaryother"</p><p>  Call othertopic</p><p>

91、  Call showother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * from salarystatistics order by id desc"</p><p>  Call listtopic</p><p>  Cal

92、l showdata(sql)</p><p>  End Select</p><p>  Else ’ 用戶的權(quán)限</p><p>  sql = "select sid from stuffinfo where sname='" &a

93、mp; strusername & "'"</p><p>  Set rs = getrs(sql, "salary")</p><p>  While Not rs.EOF</p><p>  Me.comid.AddItem rs(0)</p><p>  rs.MoveNext&

94、lt;/p><p><b>  Wend</b></p><p>  rs.MoveFirst</p><p>  sd = rs(0)</p><p><b>  rs.Close</b></p><p>  Me.comid.ListIndex = 0</p>

95、<p>  Select Case Me.SSTab1.Tab</p><p><b>  Case 0</b></p><p>  sql = "select * from salarysetting where stuffid='" & sd & "'"</p><

96、;p>  Call basictopic</p><p>  Call showbasic(sql)</p><p><b>  Case 1</b></p><p>  sql = "select * from salaryother where stuffid='" & sd & "

97、;'"</p><p>  Call othertopic</p><p>  Call showother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * from salarystatistics where stuffid=

98、'" & sd & "'"</p><p>  Call listtopic</p><p>  Call showdata(sql)</p><p>  End Select</p><p><b>  End If</b></p><p

99、><b>  End Sub</b></p><p>  這是用戶登錄所顯示的用戶信息</p><p>  建立導出工資表窗體的時候,這是工資管理的最重要的一步。這個窗體中使用了CommondDialog控件,通過設置Flags屬性,使CommondDialog控件的對話框中顯示一個幫助按鈕,但是,程序員必須在這個位置提供相關(guān)的幫助主題。對于所有的公共對話框,當

100、CancelError屬性為true,而且用戶單擊了對話框的“取消”按鈕時將生成一個錯誤??梢栽陲@示對話框的同時捕獲此錯誤以檢驗是否按下了“取消”按鈕。這個控件可以顯示“打開”和“另存為”對話框,可以在打開對話框之前用Filter屬性指定在“文件類型”列表框中顯示的文件過濾器列表。這個窗體還引用了Microsoft Excel 9.0 Object Library,目的是為了把建立的工資表導入到Excel表格中。這個窗體的制作是非常復雜

101、的,尤其是從VB導入到表格中。建立導出工資表的窗體,當單擊“保存為”文本框右邊的按鈕,會提示用戶選擇保存路徑,然后單擊“導出”,會導到你所要保存的文件夾里。</p><p>  這樣就可以在你保存的路徑里看到導出的Excel表格了。</p><p><b>  總 結(jié)</b></p><p>  企業(yè)工資管理系統(tǒng)是一個典型的信息管理系統(tǒng),其主要

102、通過軟件工程方面的選擇課題、需求分析、總體設計、選用工具、程序模塊、系統(tǒng)測試等幾個步驟來實現(xiàn)。開發(fā)本系統(tǒng)的過程中,首先要對企業(yè)工資管理進行系統(tǒng)調(diào)研,熟悉企業(yè)財務、人事、工資發(fā)放管理的流程、步驟;其次在系統(tǒng)需求分析過程中,要透過現(xiàn)象看本質(zhì),敏銳觀察到企業(yè)工資管理中存在的各種問題,并在總體設計把握好對問題的分析、理解,進而解決問題;選用開發(fā)工具要選用自己最熟悉、應用較多的開發(fā)工具,本系統(tǒng)開發(fā)選用MS Visual Basic 6.0,其具有

103、語言簡單、功能強大、組件眾多的優(yōu)點。程序模塊的編制中,重點把握系統(tǒng)內(nèi)部完整性、功能性、實用性、便捷性,使其能夠協(xié)調(diào)統(tǒng)一、運行無誤。運行結(jié)果證明,本企業(yè)工資管理系統(tǒng)極大提高了工作效率,節(jié)省了人力和物力,最終滿足企業(yè)財務管理、員工工資發(fā)放的需要,同時也成為現(xiàn)代化企業(yè)管理的標志</p><p><b>  參考文獻:</b></p><p>  [1] Visual Bas

104、ic 6.0 程序設計教程(高等教育出版社) 龔沛曾 陸慰民 楊志強 編著</p><p>  [2] MSDN - Microstft Developers'NetWork Microstft 1998Microstft 編著</p><p>  [3]Visual Basic 企業(yè)辦公系統(tǒng)開發(fā)實例導航(人民郵電出版社) </p><p>  劉萌

105、 周學明 郭安源 編著</p><p>  [4]Visual Basic 程序設計教程(北方交通大學出版社)李振亭 編著 </p><p>  [5]Visual Basic 用戶編程手冊(人民郵電出版社) 林永 張樂強 編著</p><p>  [6]數(shù)據(jù)庫系統(tǒng)概論(高等教育出版社) 薩師煊 王珊 編著</p><p>  

106、[7]現(xiàn)代軟件工程(北京希望電子出版社) 孫涌 編著</p><p>  [8]Visual Basic數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航(人民郵電出版社)</p><p>  [9]VB控件應用編程實例教程(北京希望電子出版社) 張學忠 王福成 編著</p><p>  [10]Office 2000中文版(清華大學出版社) 東方人華 編著[1

107、1]VB數(shù)據(jù)庫程序設計高手(科學出版社) 溫賢發(fā) 編著</p><p>  [12]軟件需求(電子工業(yè)出版社) Soren Lauesen 編著 劉曉暉 譯</p><p>  [13]VB6.0中文版教程(電子工作出版社) 新智工作室 </p><p><b>  附錄:源程序清單&

108、lt;/b></p><p><b>  添加用戶</b></p><p>  sql = "insert into userinfo (userid,userpwd) values('" & username</p><p>  sql = sql & "','&qu

109、ot; & password & "')"</p><p>  Call transactsql(sql, "salary")</p><p>  MsgBox "添加成功", vbOKOnly + vbExclamation, </p><p><b>  "添

110、加結(jié)果"</b></p><p>  username.Text = ""</p><p>  password.Text = ""</p><p>  confirmpwd.Text = ""</p><p>  username.SetFocus</p

111、><p><b>  修改密碼</b></p><p>  userpassword = newpwd</p><p>  sql = "update userinfo set userpwd='" & newpwd & "'where userid='" &

112、strusername & "'"</p><p>  Call transactsql(sql, "salary")</p><p>  MsgBox "密碼已經(jīng)修改", vbOKOnly + vbExclamation, "</p><p><b>  管理員權(quán)限設置

113、</b></p><p>  If strusername = "admin" Then ’管理員的權(quán)限</p><p>  sql = "select stuffid from salarysetting"</p><p>  Set rs = getrs(sql, "salary")<

114、;/p><p>  If rs.EOF = False Then</p><p>  While Not rs.EOF</p><p>  Me.comid.AddItem rs(0)</p><p>  rs.MoveNext</p><p><b>  Wend</b></p>&l

115、t;p><b>  rs.Close</b></p><p><b>  End If</b></p><p>  Me.comid.ListIndex = 0</p><p>  Select Case Me.SSTab1.Tab</p><p><b>  Case 0</

116、b></p><p>  sql = "select * from salarysetting"</p><p>  Call basictopic</p><p>  Call showbasic(sql)</p><p><b>  Case 1</b></p><p&g

117、t;  sql = "select * from salaryother"</p><p>  Call othertopic</p><p>  Call showother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * f

118、rom salarystatistics order by id desc"</p><p>  Call listtopic</p><p>  Call showdata(sql)</p><p>  End Select</p><p>  Else

119、 ’ 用戶的權(quán)限</p><p>  sql = "select sid from stuffinfo where sname='" & strusername & "'"</p><p>  Set rs = getrs(sql, "salary")</p>&

120、lt;p>  While Not rs.EOF</p><p>  Me.comid.AddItem rs(0)</p><p>  rs.MoveNext</p><p><b>  Wend</b></p><p>  rs.MoveFirst</p><p>  sd = rs(0)&

121、lt;/p><p><b>  rs.Close</b></p><p>  Me.comid.ListIndex = 0</p><p>  Select Case Me.SSTab1.Tab</p><p><b>  Case 0</b></p><p>  sql = &

122、quot;select * from salarysetting where stuffid='" & sd & "'"</p><p>  Call basictopic</p><p>  Call showbasic(sql)</p><p><b>  Case 1</b>&

123、lt;/p><p>  sql = "select * from salaryother where stuffid='" & sd & "'"</p><p>  Call othertopic</p><p>  Call showother(sql)</p><p>&

124、lt;b>  Case 2</b></p><p>  sql = "select * from salarystatistics where stuffid='" & sd & "'"</p><p>  Call listtopic</p><p>  Call showd

溫馨提示

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

評論

0/150

提交評論