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

下載本文檔

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

文檔簡介

1、<p>  計算機(jī)信息管理專業(yè)課程設(shè)計報告</p><p>  《企業(yè)工資管理系統(tǒng)設(shè)計與實(shí)現(xiàn)》</p><p>  專業(yè):計算機(jī)信息管理專業(yè)</p><p>  年級:09春計算機(jī)信息管理 </p><p><b>  目 錄</b></p><p>  一、概述 ………………………

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

3、………………………………………………52.3 系統(tǒng)數(shù)據(jù)庫設(shè)計 ………………………………………………5</p><p>  三、企業(yè)工資管理系統(tǒng)應(yīng)用程序設(shè)計 …………………………93.1 “登錄”模塊詳細(xì)設(shè)計……………………………………………93.2 “主窗體”模塊詳細(xì)設(shè)計…………………………………………93.3 各項(xiàng)子模塊詳細(xì)設(shè)計……………………………………………103.4 各項(xiàng)子模塊編寫要點(diǎn)………

4、………………………………………24四、總結(jié) ……………………………………………………………36 參考書目 ………………………………………………………………36</p><p>  附錄:源程序………………………………………………………38</p><p><b>  一、概述</b></p><p>  企業(yè)的工資管理是公司管理的一個重要內(nèi)

5、容。隨著企業(yè)人員數(shù)量增加,企業(yè)的工資管理工作也變得越來越復(fù)雜。工資管理既涉及到企業(yè)勞動人事的管理,同時也是企業(yè)財務(wù)管理的重要組成部分。工資管理需要和人事管理相聯(lián)系,同時連接工時考勤和醫(yī)療保險等等,來生成企業(yè)每個職工的基本工資、津貼、醫(yī)療保險、保險費(fèi)、實(shí)際發(fā)放工資等。資金是企業(yè)生存的主要元素,資金的流動影響到企業(yè)的整體運(yùn)作,企業(yè)員工的工資是企業(yè)資金管理的一個重要的組成部分。早期的工資統(tǒng)計和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費(fèi)財務(wù)人員

6、大量的時間且不易保存,往往由于個人的因素抄寫不慎或計算疏忽,出現(xiàn)工資發(fā)放錯誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強(qiáng)的時間限制?;谝陨显颍髽I(yè)工資管理系統(tǒng)使用電腦安全保存、快速計算、全面統(tǒng)計,實(shí)現(xiàn)工資管理的系統(tǒng)化、規(guī)范化、自動化。企業(yè)工資管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),前臺程序開發(fā)工具采用微軟的VB6,后臺數(shù)據(jù)庫采用Access數(shù)據(jù)庫。VB6是一種面向?qū)ο蟮拈_發(fā)工具,具有組件豐富、語言簡單、功能強(qiáng)大的優(yōu)點(diǎn)。 Access

7、數(shù)據(jù)庫具有與VB6無縫連接、操作簡單、易于使用的優(yōu)點(diǎn)。運(yùn)行結(jié)果證明,本企業(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進(jìn)行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計算機(jī)系統(tǒng)上

8、的具體實(shí)現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。MS Access 2000就是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。</p><p>  關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,每個關(guān)系實(shí)際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡單用戶易懂,編

9、程時并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。SQL語言是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。</p><p>  1.2、 開發(fā)工具介紹</p><p>  微軟公司的Visual Basic 6.0是Windows應(yīng)用程序開發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設(shè)計界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也

10、簡化了界面設(shè)計過程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。因此,本系統(tǒng)使用MS Visual Basic 6.0開發(fā)。</p><p>  企業(yè)工資管理系統(tǒng)設(shè)計分析</p><p>  2.1 應(yīng)用需求分析</p><p>  需求分析的過程可以說是一個對具體問題的反復(fù)理解和抽象的過程。理解就是對現(xiàn)實(shí)問題的理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的

11、表面,提取問題的本質(zhì),建立問題的邏輯模型,以便于以后階段的系統(tǒng)的設(shè)計實(shí)現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期中的一個重要階段,其根本任務(wù)是確定用戶對軟件系統(tǒng)的需求。所謂需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達(dá)到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點(diǎn)也需要有一種清楚的認(rèn)識。功能性需求是指需要計算機(jī)系統(tǒng)解決的問題,也就是對數(shù)據(jù)的處理要求,這是一類最主要的需求。非

12、功能性需求是指實(shí)際使用環(huán)境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求等。</p><p>  軟件需求包含三個層次—業(yè)務(wù)需求、用戶需求和功能需求,還包括非功能需求。業(yè)務(wù)需求:反映了組織機(jī)構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們在項(xiàng)目視圖與范圍文檔中予以說明。用戶需求:描述了用戶使用產(chǎn)品必須要完成的任務(wù)和具備的功能,這在使用實(shí)例文檔或方案腳本說明中予以說明。功能需求:定義了開發(fā)人員

13、必須實(shí)現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足其業(yè)務(wù)需求。</p><p>  2.2 系統(tǒng)功能模塊劃分</p><p>  開發(fā)這個系統(tǒng)的目的就是幫助企業(yè)的財務(wù)主管部門提高工作效率,實(shí)現(xiàn)企業(yè)工資信息管理的系統(tǒng)化、規(guī)范化和自動化。能夠和認(rèn)識管理系統(tǒng)、考勤管理系統(tǒng)相結(jié)合,真正實(shí)現(xiàn)企業(yè)高效、科學(xué)、現(xiàn)代化的員工管理。系統(tǒng)最終實(shí)現(xiàn)的主要功能如下。</p><p> 

14、 ·企業(yè)工資信息設(shè)置部分:包括設(shè)置員工的基本工資和其他項(xiàng)目的金額,如獎金等。并且負(fù)責(zé)設(shè)置員工工資的計算公式。</p><p>  ·企業(yè)工資信息管理部分:包括統(tǒng)計出勤、計算工資、查詢工資和導(dǎo)出工資表。</p><p>  ·系統(tǒng)部分:包括添加用戶和修改密碼。</p><p>  2.3系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p&g

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

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

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

18、表:</p><p>  員工工資計算公式信息表:</p><p><b>  員工其他項(xiàng)目設(shè)置:</b></p><p>  員工工資統(tǒng)計信息表:</p><p><b>  員工信息表:</b></p><p><b>  用戶信息表:</b><

19、;/p><p>  三、企業(yè)工資管理系統(tǒng)應(yīng)用程序設(shè)計</p><p>  3.1 “登錄模塊”詳細(xì)設(shè)計</p><p>  登錄模塊的詳細(xì)設(shè)計主要是用戶登錄的一個界面,判斷登錄的用戶是管理員還是普通用戶,進(jìn)入后將面對的是主界面,從而進(jìn)行相關(guān)的操作。</p><p>  登錄的界面主要由用戶名和密碼的信息,還有一些標(biāo)題設(shè)置,確定和取消的按鈕組成。通

20、過標(biāo)題可以知道此系統(tǒng)的大概內(nèi)容,由此,登錄界面的設(shè)計完成。 </p><p>  3.2 “主窗體”模塊詳細(xì)設(shè)計</p><p>  在這個項(xiàng)目中,選擇使用多文檔界面。使用這個窗體的好處是可以使程序更加有條理。對于一個多任務(wù)的應(yīng)用程序,使用多文檔窗體還可以減少占用的系統(tǒng)資源。</p><p>  主窗體設(shè)計的界面是用菜單編輯器做的,主要由系統(tǒng)、工資信息設(shè)置、工資信息

21、管理和關(guān)于這四個大模塊組成。主窗體是進(jìn)行相關(guān)操作的主界面。在這幾個里,管理員有所有的權(quán)利進(jìn)行各種操作。</p><p>  3.3各項(xiàng)子模塊詳細(xì)設(shè)計</p><p>  選擇“系統(tǒng)”—>“添加用戶”菜單,在添加用戶的窗體里,輸入新的用戶名稱和密碼后,單擊“確定”按鈕,系統(tǒng)將會添加新的用戶。</p><p>  sql = "insert into u

22、serinfo (userid,userpwd) values('" & username</p><p>  sql = sql & "','" & password & "')"</p><p>  Call transactsql(sql, "salary&qu

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

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

25、p>  userpassword = newpwd</p><p>  sql = "update userinfo set userpwd='" & newpwd & "'where userid='" & strusername & "'"</p><p>

26、  Call transactsql(sql, "salary")</p><p>  MsgBox "密碼已經(jīng)修改", vbOKOnly + vbExclamation, "修改結(jié)果"</p><p>  選擇“工資信息設(shè)置”—>“基本工資設(shè)置”菜單設(shè)置員工的基本工資,可以根據(jù)員工的編號,或者根據(jù)員工職務(wù)設(shè)置基本工資,設(shè)置

27、的基本工資為每個小時的工資。</p><p>  Set rs = getrs(sql, "salary")</p><p>  If rs.EOF = False Then</p><p>  sql = "delete from salarysetting where stuffid='" & Me.com

28、stuffid.Text & "'"</p><p>  Call transactsql(sql, "salary")</p><p><b>  End If</b></p><p><b>  rs.Close</b></p><p> 

29、 id = Me.comstuffid.Text</p><p>  Call addrecord</p><p>  MsgBox "已經(jīng)設(shè)置基本工資", vbOKOnly + vbExclamation, "添加結(jié)果"</p><p><b>  Call init</b></p>&l

30、t;p>  sql = "select * from salarysetting"</p><p>  Call frmresult.basictopic</p><p>  Call frmresult.showbasic(sql)</p><p>  frmresult.Show</p><p>  frmres

31、ult.ZOrder 0</p><p>  Me.ZOrder 0</p><p>  選擇“工資信息設(shè)置”—>“其他項(xiàng)目設(shè)置”菜單,在其他項(xiàng)目設(shè)置的窗體中,設(shè)置員工當(dāng)月的獎金、津貼、福利等項(xiàng)目。</p><p>  sql = "select * from salaryother"</p><p>  If ic

32、hangeflag = 1 Then</p><p><b>  Call add</b></p><p>  MsgBox "已經(jīng)添加記錄", vbOKOnly + vbExclamation, "提示"</p><p>  Call frmresult.othertopic</p>&l

33、t;p>  Call frmresult.showother(sql)</p><p>  frmresult.Show</p><p><b>  Unload Me</b></p><p><b>  Else</b></p><p>  If Me.optionbonus.Value =

34、 True Then</p><p><b>  itype = 1</b></p><p>  ElseIf Me.optionallowance.Value = True Then</p><p><b>  itype = 2</b></p><p>  ElseIf Me.optionwel

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

36、Me.optionothers.Value = True Then</p><p><b>  itype = 5</b></p><p>  resumdate = recordtime</p><p>  sql = "delete from salaryother where stuffid='" &

37、Me.comid.Text</p><p>  sql = sql & "' and YearMonth=#" & recordtime & "# and "</p><p>  sql = sql & "Type=" & itype</p><p>  Ca

38、ll transactsql(sql, "Salary")</p><p><b>  Call add</b></p><p>  Call frmsumsalary.resumsalary(resumdate)</p><p>  sql = "select * from salaryother"&l

39、t;/p><p>  Call frmresult.othertopic</p><p>  Call frmresult.showother(sql)</p><p>  frmresult.Show</p><p><b>  Unload Me</b></p><p><b>  En

40、d If</b></p><p>  選擇“工資信息設(shè)置”—>“工資計算公式設(shè)置”菜單,在這個計算公式窗體中設(shè)置員工實(shí)際發(fā)放工資的計算公式。</p><p>  If Me.textovertimecom = "" And IsNumeric(Me.textovertimecom) = True Then</p><p>  M

41、sgBox "請輸入正常加班工資百分比", vbOKOnly + vbExclamation, "提示"</p><p>  Me.textovertimecom = ""</p><p>  Me.textovertimecom.SetFocus</p><p>  ElseIf Me.textovert

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

43、</p><p>  Me.textovertimespe.SetFocus</p><p>  ElseIf Me.texterrand = "" And IsNumeric(Me.texterrand) = False Then</p><p>  MsgBox "請輸入出差工資", vbOKOnly + vbExclam

44、ation, "提示"</p><p>  Me.texterrand = ""</p><p>  Me.texterrand.SetFocus</p><p>  ElseIf Me.textabsent = "" And IsNumeric(Me.textabsent) = False Then<

45、;/p><p>  MsgBox "請輸入曠工扣發(fā)工資", vbOKOnly + vbExclamation, "提示"</p><p>  Me.textabsent = ""</p><p>  Me.textabsent.SetFocus</p><p>  ElseIf Me.t

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

47、;  Me.textle.SetFocus</p><p><b>  Else</b></p><p>  Call setvalue</p><p><b>  Call init</b></p><p><b>  End If</b></p><p&

48、gt;  選擇“工資信息管理”—>“出勤統(tǒng)計”菜單,在統(tǒng)計出勤記錄窗體中選擇需要統(tǒng)計記錄的月份。</p><p>  firstday = Year(Date) & "-" & Me.commonth.Text & "-1"</p><p>  days = DateDiff("d", Year(Da

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

50、; "-" & Me.commonth.Text & "-" & days</p><p>  sql = "select * from attendancestatistics where recordmonth between #"</p><p>  sql = sql & firstday

51、& "# and #" & lastday & "#"</p><p>  Set rsrecord = getrs(sql, "salary")</p><p>  If rsrecord.EOF = False Then</p><p>  MsgBox "已經(jīng)統(tǒng)計&q

52、uot;, vbOKOnly + vbExclamation, "提示"</p><p>  frmaresult.Show</p><p>  frmaresult.ZOrder 0</p><p>  rsrecord.Close</p><p><b>  Unload Me</b></p

53、><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  sql = "select * from attendanceinfo where adate between #"</p><p>  sql = sql &

54、; firstday & "# and #" & lastday & "#"</p><p>  Set rsrecord = getrs(sql, "person")</p><p>  If rsrecord.EOF = False Then</p><p>  sql = &q

55、uot;select sid,sname from stuffinfo 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)計記錄,然后

56、顯示如圖所示的統(tǒng)計結(jié)果信息列表。</p><p>  If strusername <> "admin" Then</p><p>  sql = "select sid from stuffinfo where sname='" & strusername & "'"</p>

57、;<p>  Set rs = getrs(sql, "salary")</p><p>  sd = rs(0)</p><p>  sql = "select * from attendancestatistics where stuffid='" & sd & "'"</p

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

59、e.Adodc1.Refresh</p><p>  Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset</p><p>  Me.DataGrid1.Refresh</p><p><b>  Else</b></p><p>  sql = "select *

60、 from attendancestatistics"</p><p>  Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="& App.Path & "\salary.mdb"</p><p>  Me.Adodc1.Recor

61、dSource = sql</p><p>  Me.Adodc1.Refresh</p><p>  Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset</p><p>  Me.DataGrid1.Refresh</p><p><b>  End If</b><

62、/p><p>  選擇“工資信息管理”—>“計算實(shí)發(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

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

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

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

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

67、lt;/b></p><p><b>  Else</b></p><p>  MsgBox "這個月的工資未統(tǒng)計", vbOKOnly + vbExclamation, "提示"</p><p><b>  End If</b></p><p>  選

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

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

70、單擊“取消”按鈕回到系統(tǒng)。</p><p><b>  導(dǎo)出的工資記錄</b></p><p>  3.4 各項(xiàng)子模塊編寫要點(diǎn)</p><p>  在登錄的這個窗體里,我做的特點(diǎn)是:只要在數(shù)據(jù)庫里有用戶信息的,都可以登錄,然后顯示相關(guān)自己的信息,而管理員顯示所有的信息。當(dāng)輸入的用戶名或密碼不正確的時候,會出現(xiàn)如下的對話框:</p>

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

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

73、icrosoft Windows Common Controls-2 6.0(sp4)項(xiàng),然后設(shè)置相關(guān)的屬性。</p><p>  在工資信息管理的下拉菜單里包括有統(tǒng)計出勤信息、計算實(shí)發(fā)工資、查詢工資和導(dǎo)出工資表。在這個模塊里,普通用戶有統(tǒng)計出勤信息和查詢工資的權(quán)利,但是都顯示的是自己的信息。在出勤統(tǒng)計窗體里:添加一個下拉列表、一個標(biāo)簽和2個命令按鈕,然后設(shè)置相關(guān)的屬性。在出勤結(jié)果信息列表的窗體里:使用了Adod

74、c控件和DataGrid控件,控件的Visible屬性一定要設(shè)置為False。在計算實(shí)發(fā)工資窗體里添加的控件和統(tǒng)計出勤記錄窗體的控件相同。在工資統(tǒng)計列表窗體里:使用了SSTab控件,在每一個標(biāo)簽上添加一個MSFlexGrid控件,然后設(shè)置它們的屬性。在導(dǎo)出工資表的窗體中使用了CommondDialog控件,要使用這個控件需要在“控件”窗體中,選擇Microsoft Common Dialog Control6.0(sp3)項(xiàng),同時因?yàn)閿?shù)

75、據(jù)表格是導(dǎo)出到Excel,所以需要添加引用。選擇“工程—>引用”菜單,在“引用”窗體中選擇Microsoft Excel 9.0 Object Library項(xiàng),這樣才能夠成功導(dǎo)入到Excel。</p><p>  在這個窗體里,我做的特點(diǎn)是:權(quán)利分工明確。當(dāng)管理員進(jìn)入的時候他有所有的權(quán)利,單擊哪個模塊就會彈出相對應(yīng)的窗體。而普通用戶則不能,我把它進(jìn)行了權(quán)限設(shè)置,會彈出權(quán)限的對話框。</p>

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

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

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

79、做基本工資這個窗體時,我的想法是:當(dāng)你在修改基本工資的信息,首先都要從數(shù)據(jù)庫中調(diào)出相關(guān)的信息,然后把它刪除掉,再從數(shù)據(jù)庫中的員工信息表中調(diào)出所要的信息,然后再一次的添加所要設(shè)置的信息。當(dāng)你沒輸入員工編號的時候,會出現(xiàn)下圖的對話框;</p><p>  當(dāng)沒輸入員工的職務(wù)時會出現(xiàn)錯誤的信息。</p><p>  在建立其他項(xiàng)目設(shè)置的窗體時,也在兩個地方使用,即添加和修改,在載入時也需要判斷狀

80、態(tài)。選擇員工編號,再選擇需要添加的項(xiàng)目和進(jìn)額,單擊“確定”按鈕,即可添加其他項(xiàng)目。在其他項(xiàng)目設(shè)置這個窗體里,我用了一個Frame控件和幾個optionButton控件,目的在于:在添加其他項(xiàng)目時,只能有一個設(shè)置是有效的,而且還可以添加其他的項(xiàng)目,還有備注等等,這些都便于記錄。這里還有一個DTPicker控件是用來記錄添加其他項(xiàng)目的時間,我覺得這個控件非常好。還有就是每次添加成功后,系統(tǒng)需要初始化,更新一下。在設(shè)置完這個窗體后將會彈出查詢

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

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

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

84、/p><p>  單擊“確定”后,就會出現(xiàn)工資信息列表,這時你將看見所有關(guān)于你想要的信息。</p><p>  建立工資查詢的窗體,在選擇員工編號后,單擊“查詢單人”按鈕,返回選擇員工的相關(guān)信息。單擊“查詢?nèi)俊卑粹o,系統(tǒng)返回全部員工的信息。在建立工資查詢(即工資統(tǒng)計結(jié)果列表)的窗體時,我覺得這是一個最難的窗體。不僅是因?yàn)樗脑O(shè)置,還有就是它的代碼和數(shù)據(jù)庫相連的操作。在這個窗體中使用了SSTa

85、b控件,在每一個標(biāo)簽上添加一個MSFlexGrid控件。當(dāng)你是管理員登錄的時候,他的權(quán)限是所有,當(dāng)你是用戶登錄的時候,窗體只顯示登錄用戶本人的相關(guān)信息。他沒有任何權(quán)限,只能看到自己的信息,這是我做這個窗體的特色。</p><p><b>  窗體的部分代碼為:</b></p><p>  If strusername = "admin" Then

86、 ’管理員的權(quán)限</p><p>  sql = "select stuffid from salarysetting"</p><p>  Set rs = getrs(sql, "salary")</p><p>  If rs.EOF = False Then</p><p>  While No

87、t rs.EOF</p><p>  Me.comid.AddItem rs(0)</p><p>  rs.MoveNext</p><p><b>  Wend</b></p><p><b>  rs.Close</b></p><p><b>  End I

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

89、</p><p>  Call basictopic</p><p>  Call showbasic(sql)</p><p><b>  Case 1</b></p><p>  sql = "select * from salaryother"</p><p>  Cal

90、l othertopic</p><p>  Call showother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * from salarystatistics order by id desc"</p><p>  Call li

91、sttopic</p><p>  Call showdata(sql)</p><p>  End Select</p><p>  Else ’ 用戶的權(quán)限</p><p>  sql = "select sid from stu

92、ffinfo where sname='" & strusername & "'"</p><p>  Set rs = getrs(sql, "salary")</p><p>  While Not rs.EOF</p><p>  Me.comid.AddItem rs(0)&l

93、t;/p><p>  rs.MoveNext</p><p><b>  Wend</b></p><p>  rs.MoveFirst</p><p>  sd = rs(0)</p><p><b>  rs.Close</b></p><p>  M

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

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

96、='" & sd & "'"</p><p>  Call othertopic</p><p>  Call showother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * fro

97、m salarystatistics where stuffid='" & sd & "'"</p><p>  Call listtopic</p><p>  Call showdata(sql)</p><p>  End Select</p><p><b>  

98、End If</b></p><p><b>  End Sub</b></p><p>  這是用戶登錄所顯示的用戶信息</p><p>  建立導(dǎo)出工資表窗體的時候,這是工資管理的最重要的一步。這個窗體中使用了CommondDialog控件,通過設(shè)置Flags屬性,使CommondDialog控件的對話框中顯示一個幫助按鈕,但是

99、,程序員必須在這個位置提供相關(guān)的幫助主題。對于所有的公共對話框,當(dāng)CancelError屬性為true,而且用戶單擊了對話框的“取消”按鈕時將生成一個錯誤??梢栽陲@示對話框的同時捕獲此錯誤以檢驗(yàn)是否按下了“取消”按鈕。這個控件可以顯示“打開”和“另存為”對話框,可以在打開對話框之前用Filter屬性指定在“文件類型”列表框中顯示的文件過濾器列表。這個窗體還引用了Microsoft Excel 9.0 Object Library,目的是

100、為了把建立的工資表導(dǎo)入到Excel表格中。這個窗體的制作是非常復(fù)雜的,尤其是從VB導(dǎo)入到表格中。建立導(dǎo)出工資表的窗體,當(dāng)單擊“保存為”文本框右邊的按鈕,會提示用戶選擇保存路徑,然后單擊“導(dǎo)出”,會導(dǎo)到你所要保存的文件夾里。</p><p>  這樣就可以在你保存的路徑里看到導(dǎo)出的Excel表格了。</p><p><b>  總 結(jié)</b></p>&l

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

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

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

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

105、師煊 王珊 編著</p><p>  [7]現(xiàn)代軟件工程(北京希望電子出版社) 孫涌 編著</p><p>  [8]Visual Basic數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航(人民郵電出版社)</p><p>  [9]VB控件應(yīng)用編程實(shí)例教程(北京希望電子出版社) 張學(xué)忠 王福成 編著</p><p>  [10]Offic

106、e 2000中文版(清華大學(xué)出版社) 東方人華 編著[11]VB數(shù)據(jù)庫程序設(shè)計高手(科學(xué)出版社) 溫賢發(fā) 編著</p><p>  [12]軟件需求(電子工業(yè)出版社) Soren Lauesen 編著 劉曉暉 譯</p><p>  [13]VB6.0中文版教程(電子工作出版社) 新智工作室 </p&g

107、t;<p><b>  附錄:源程序清單</b></p><p><b>  添加用戶</b></p><p>  sql = "insert into userinfo (userid,userpwd) values('" & username</p><p>  sql

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

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

110、lt;p>  username.SetFocus</p><p><b>  修改密碼</b></p><p>  userpassword = newpwd</p><p>  sql = "update userinfo set userpwd='" & newpwd & "

111、9;where userid='" & strusername & "'"</p><p>  Call transactsql(sql, "salary")</p><p>  MsgBox "密碼已經(jīng)修改", vbOKOnly + vbExclamation, "</p

112、><p><b>  管理員權(quán)限設(shè)置</b></p><p>  If strusername = "admin" Then ’管理員的權(quán)限</p><p>  sql = "select stuffid from salarysetting"</p><p>  Set rs =

113、getrs(sql, "salary")</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&

114、gt;  Wend</b></p><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>

115、<p><b>  Case 0</b></p><p>  sql = "select * from salarysetting"</p><p>  Call basictopic</p><p>  Call showbasic(sql)</p><p><b>  Ca

116、se 1</b></p><p>  sql = "select * from salaryother"</p><p>  Call othertopic</p><p>  Call showother(sql)</p><p><b>  Case 2</b></p>

117、<p>  sql = "select * from salarystatistics order by id desc"</p><p>  Call listtopic</p><p>  Call showdata(sql)</p><p>  End Select</p><p>  Else

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

119、 "salary")</p><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&

120、lt;/p><p>  sd = rs(0)</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&

121、gt;</p><p>  sql = "select * from salarysetting where stuffid='" & sd & "'"</p><p>  Call basictopic</p><p>  Call showbasic(sql)</p><

122、p><b>  Case 1</b></p><p>  sql = "select * from salaryother where stuffid='" & sd & "'"</p><p>  Call othertopic</p><p>  Call sho

123、wother(sql)</p><p><b>  Case 2</b></p><p>  sql = "select * from salarystatistics where stuffid='" & sd & "'"</p><p>  Call listtopic

溫馨提示

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

評論

0/150

提交評論