版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于VC++的工資管理系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 隨著計算機技術(shù)的飛速發(fā)展,計算機在企業(yè)管理中應用越來越普及。利用計算機實現(xiàn)企業(yè)人事工資的管理勢在必行。本系統(tǒng)是結(jié)合公司實際的財務(wù)制度,經(jīng)過實際的需求分析,采用功能強大的Visual C++ 6.0做為開發(fā)工具而開發(fā)出來的單機版工資管理系統(tǒng)。&
2、lt;/p><p> 工資管理系統(tǒng)是針對企業(yè)的工資管理業(yè)務(wù)進行計算機處理而開發(fā)的應用軟件。整個系統(tǒng)從符合操作簡便、界面友好、靈活、實用、安全的要求出發(fā),完成人事、工資管理的全過程,企業(yè)的工資管理是公司管理的一個重要內(nèi)容。該系統(tǒng)由基本信息管理、工資管理、工資查詢、系統(tǒng)管理、幫助等子模塊組成,功能基本涵蓋普通企業(yè)的工資管理業(yè)務(wù)范圍。企業(yè)應用本系統(tǒng)后,可以有效的提高工資管理水平。本文從需求分析、可行性分析、總體設(shè)計、數(shù)據(jù)
3、庫設(shè)計、功能模塊編程實現(xiàn)等方面闡述了本系統(tǒng)的設(shè)計過程。為便于說明,文中繪制了程序結(jié)構(gòu)框圖、部分界面圖和數(shù)據(jù)表。最后附有主要的源程序代碼清單。</p><p> 關(guān)鍵詞 :數(shù)據(jù)庫 Visual C++ 6.0 工資管理</p><p> The design approach and implementation of the wages management system ba
4、sed on vc++</p><p> Abstract </p><p> With the development of the computer technology and computers are universally used in business enterprise manage more and more, so it is imperati
5、ve to implement The Management of Enterprise Personnel Wages using computers. Actual company finance is combinative in this system. I have already made demand analysis and adopted Visual C++ 6.0 which is mighty in functi
6、on as the tool to develop the management of enterprise personnel wages system that is the single machine version.</p><p> Salary Management System is specially designed for the application of device managin
7、g of enterprise. The whole system must match the request which are operation simple, the interface amity, vivid, practical and safe and complete the management of personal and wages process. The Management of Enterprise
8、Personnel Wage is an important content in company manage. The system is consisted with six subsystems. They are system maintenance, querying, forming and listing. These functions can meet the dema</p><p> K
9、eywords: Database; Visual C++ 6.0; Salary management</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2 系統(tǒng)需求分析2</p><p><b> 3 可行性分
10、析3</b></p><p><b> 4 總體設(shè)計4</b></p><p> 4.1 系統(tǒng)功能結(jié)構(gòu)4</p><p> 4.2 設(shè)計目標4</p><p><b> 5 系統(tǒng)設(shè)計5</b></p><p> 5.1 使用的相關(guān)技術(shù)介紹5&
11、lt;/p><p> 5.2 數(shù)據(jù)庫設(shè)計5</p><p> 5.2.1 數(shù)據(jù)庫概要說明5</p><p> 5.2.2 部分數(shù)據(jù)表的結(jié)構(gòu)6</p><p> 5.2.3 部分E-R模型的設(shè)計7</p><p> 6 主要功能模塊設(shè)計9</p><p> 6.1 建立工程框架
12、9</p><p> 6.2 主窗口設(shè)計11</p><p> 6.2.1 菜單資源設(shè)計11</p><p> 6.2.2 客戶區(qū)設(shè)計12</p><p> 6.3 登錄模塊設(shè)計13</p><p> 6.3.1 實現(xiàn)目標13</p><p> 6.3.2 設(shè)計步驟13&
13、lt;/p><p> 6.3.3 代碼分析14</p><p> 6.4 員工錄入模塊設(shè)計15</p><p> 6.4.1 實現(xiàn)目標15</p><p> 6.4.2 設(shè)計步驟16</p><p> 6.4.3 代碼分析16</p><p> 6.5 員工工資添加模塊設(shè)計1
14、9</p><p> 6.5.1 實現(xiàn)目標19</p><p> 6.5.2 設(shè)計步驟19</p><p> 6.5.3 代碼分析20</p><p> 6.6 用戶管理模塊設(shè)計25</p><p> 6.6.1 實現(xiàn)目標25</p><p> 6.6.2 設(shè)計步驟25&
15、lt;/p><p> 6.6.3 代碼分析26</p><p> 6.7 總體查詢模塊設(shè)計29</p><p> 6.7.1 實現(xiàn)目標29</p><p> 6.7.2 設(shè)計步驟29</p><p> 6.7.3 代碼分析33</p><p><b> 7 結(jié)論39
16、</b></p><p><b> 謝辭40</b></p><p><b> 參考文獻41</b></p><p><b> 附錄42</b></p><p><b> 外文翻譯68</b></p><p&
17、gt;<b> 1 引言</b></p><p> 隨著我國國民經(jīng)濟建設(shè)的蓬勃發(fā)展和具有中國特色的社會主義市場經(jīng)濟體制的迅速完善,各個行業(yè)都在積極使用現(xiàn)代化的管理工具,不斷改善企業(yè)的服務(wù)質(zhì)量,提高工作效率。無論是行政職能,還是生產(chǎn)運作的管理要求的不斷提高,在很大程度上使企業(yè)不得不改變傳統(tǒng)的經(jīng)營管理方式以適應快速發(fā)展的社會主義市場經(jīng)濟體制,改變企業(yè)管理方式和方法已經(jīng)成為企業(yè)發(fā)展的先決條件,
18、建立一個科學高效的信息管理系統(tǒng)是解決這一問題的好方法。</p><p> 運用現(xiàn)代化技術(shù)對企業(yè)內(nèi)部的財務(wù)進行管理,是提高企業(yè)工作效率的有效手段。工資管理作為企業(yè)內(nèi)部財務(wù)管理的一個重要方面,逐步被企業(yè)管理者所重視。通過計算機管理系統(tǒng)對員工工資進行全面的統(tǒng)計與管理,全面解決了工資管理過程中所遇到的各種問題,并且克服了傳統(tǒng)管理方式中的易出錯等問題。工資管理系統(tǒng)成為企業(yè)現(xiàn)代化管理中的首選管理工具。</p>
19、<p><b> 2 系統(tǒng)需求分析</b></p><p> 員工工資管理系統(tǒng)是保證企業(yè)對員工工資的管理可以有秩序的進行的管理軟件。員工工資管理系統(tǒng)是用于企業(yè)對員工工資進行的集中分發(fā)管理,開發(fā)的總體任務(wù)是實現(xiàn)工資管理的系統(tǒng)化、規(guī)范化和自動化,從而達到提高工資管理效率的目的[1]。</p><p> 工資管理系統(tǒng)主要根據(jù)公司的要求進行設(shè)計,并了解了公司
20、工資的工作流程,該系統(tǒng)是由基本信息管理、工資查詢、工資管理、系統(tǒng)管理和幫助等幾個功能模塊組成,規(guī)劃系統(tǒng)功能模塊如下:</p><p> (1)基本信息管理模塊</p><p> 基本信息管理模塊主要包括員工錄入、員工刪除兩個部分。</p><p><b> (2)工資查詢模塊</b></p><p> 工資查詢模
21、塊主要包括基本工資查詢、浮動工資查詢、加班/休假查詢、總體查詢四個部分。</p><p><b> (3)工資管理模塊</b></p><p> 工資管理模塊主要包括工資發(fā)放管理、基本工資管理、浮動工資管理三個部分。</p><p><b> (4)系統(tǒng)管理模塊</b></p><p> 系
22、統(tǒng)管理模塊主要包括用戶管理、修改密碼、退出系統(tǒng)三個部分。</p><p><b> (5)幫助模塊</b></p><p> 幫助模塊主要包括關(guān)于一個部分。</p><p><b> 3 可行性分析</b></p><p> 傳統(tǒng)的工資管理方法,都是通過人工統(tǒng)計和計算的管理方式進行的。這樣的
23、管理方法不但費時費力,也容易產(chǎn)生計算上的錯誤和疏漏;計算機技術(shù)的全面普及,打破了財務(wù)管理的傳統(tǒng)管理方法,提高了管理效率的同時,克服了傳統(tǒng)管理方法中易產(chǎn)生的問題,使管理員能夠有序的、全面的對每一位職工進行管理,嚴格按照工資條款及發(fā)放制度計算并發(fā)放員工工資。</p><p> 企業(yè)工資管理系統(tǒng)可以完成日常工資的管理,如查詢、修改、增加、刪除以及存儲等操作,迅速準確地完成各種工資數(shù)據(jù)的統(tǒng)計和匯總工作,快速打印出工資報
24、表等,大大提高了企業(yè)工資管理效率[2]。</p><p><b> 4 總體設(shè)計</b></p><p> 系統(tǒng)總體設(shè)計是把需求轉(zhuǎn)化為軟件系統(tǒng)的最重要的環(huán)節(jié)。系統(tǒng)總體設(shè)計的優(yōu)劣在根本上決定了軟件系統(tǒng)的質(zhì)量[3]。</p><p> 4.1 系統(tǒng)功能結(jié)構(gòu)</p><p> 工資系統(tǒng)的功能結(jié)構(gòu)如圖1所示。</p
25、><p><b> 圖1 系統(tǒng)功能圖</b></p><p><b> 4.2 設(shè)計目標</b></p><p> 本系統(tǒng)是根據(jù)中小企業(yè)的實際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)對客戶的自動化管理,通過本系統(tǒng)可以達到以下目標:</p><p> (1)系統(tǒng)運行穩(wěn)定,安全可靠。</p>
26、<p> (2)界面設(shè)計美觀,人機交互界面友好。</p><p> (3)信息查詢靈活、方便、快捷、準確,數(shù)據(jù)存儲安全可靠。</p><p> (4)采用多種方式查詢數(shù)據(jù)。</p><p> (5)操作員可以隨時修改自己的口令。</p><p> (6)對用戶輸入的數(shù)據(jù),系統(tǒng)進行嚴格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。<
27、;/p><p><b> 5 系統(tǒng)設(shè)計</b></p><p> 5.1 使用的相關(guān)技術(shù)介紹</p><p> Visual C++是Microsoft Visual Studio開發(fā)組件中最為強大的編程工具。一方面,它是當今最為流行的系統(tǒng)開發(fā)語言,另一方面,它能夠和Microsoft的操作系統(tǒng)無縫結(jié)合,開發(fā)出高性能的Windows應用程序[
28、3]。在數(shù)據(jù)庫領(lǐng)域,Visual C++的表現(xiàn)也異常搶眼,它提供了多種數(shù)據(jù)庫開發(fā)技術(shù),支持幾乎所有的數(shù)據(jù)庫系統(tǒng),如SQL Server,DB2,Sybase,F(xiàn)oxPro,Access等;而且還提供了良好的開發(fā)環(huán)境和豐富的文檔支持??傊?,利用Visual C++可以開發(fā)出功能強大、性能優(yōu)良和界面友好的數(shù)據(jù)庫應用程序,這也正是許多公司長期以來采用Visual C++開發(fā)數(shù)據(jù)庫系統(tǒng)的重要原因[3]。Visual C++提供了可視化的編程環(huán)境
29、,不僅可以編寫面向用戶的應用程序,而且還適用于編寫直接對系統(tǒng)或設(shè)備操作的底層程序[4]。</p><p> SQL Server 2000在SQL Server 7.0版的基礎(chǔ)上擴展了數(shù)據(jù)庫管理系統(tǒng)的性能、可靠性、質(zhì)量和易用性。由于增加了這幾種新的功能,因此它成為大規(guī)模聯(lián)機事務(wù)處理(OLTP)、數(shù)據(jù)倉庫和電子商務(wù)應用程序的優(yōu)秀數(shù)據(jù)庫平臺[5]。SQL Server 2000是基于SQL客戶/服務(wù)器(C/S)模式
30、的數(shù)據(jù)庫系統(tǒng),其圖形化界面使數(shù)據(jù)庫管理更加簡潔、靈活,同時又具有豐富的編程接口,為用戶從事程序開發(fā)提供了更多的方便。使用SQL Server 2000可以獲得非凡的可伸縮性和可靠性。通過向上伸縮和向外擴展的能力,SQL Server滿足了苛刻的電子商務(wù)和企業(yè)應用程序要求。</p><p> ADO是ActiveX Data Object(ActiveX數(shù)據(jù)對象)的縮寫,是目前最流行的客戶端數(shù)據(jù)庫技術(shù)。ADO是建
31、立在OLE DB底層技術(shù)之上的高級編程接口[6]。</p><p><b> 5.2 數(shù)據(jù)庫設(shè)計</b></p><p> 5.2.1 數(shù)據(jù)庫概要說明</p><p> 在使用數(shù)據(jù)庫之前,先創(chuàng)建數(shù)據(jù)庫[7]。數(shù)據(jù)表是包含數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)庫對象,表定義為列的集合[8]。數(shù)據(jù)庫GZFFXT中包括員工基礎(chǔ)信息表、員工基本工資表、員工浮動工
32、資表、員工加班/休假表、工資發(fā)放明細表、用戶表6個數(shù)據(jù)表。</p><p> 圖2所示的即為本系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表??梢郧逦胤从硵?shù)據(jù)庫信息。</p><p> 圖2 數(shù)據(jù)庫概要說明</p><p> 5.2.2 部分數(shù)據(jù)表的結(jié)構(gòu)</p><p> 表1 Ygjcxxb(員工基礎(chǔ)信息表)&
33、lt;/p><p> 表2 Ygjbgzb(員工基本工資表)</p><p> 表3 Ygfdgzxmb(員工浮動工資表)</p><p> 表4 Ygjbsjb(員工加班休假表)</p><p> 5.2.3 部分E-R模型的設(shè)計</p><p> 圖3 系統(tǒng)部分實體—屬性圖</p>&l
34、t;p> 圖4 系統(tǒng)部分實體—屬性圖</p><p> 圖5 系統(tǒng)部分實體—屬性圖</p><p> 圖6 系統(tǒng)部分實體—屬性圖</p><p> 圖7 系統(tǒng)部分實體—屬性圖</p><p> 6 主要功能模塊設(shè)計</p><p> 6.1 建立工程框架</p><p>
35、; 直接利用MFC AppWizard應用程序向?qū)?chuàng)建一個基于對話框的應用程序[9],對話框是Windows應用程序中的一種常用資源,其主要功能是輸出信息和接收用戶的輸入數(shù)據(jù)[10]。</p><p> 在Visual C++中建立工資管理系統(tǒng)的基本框架,步驟如下:</p><p> 單擊菜單“File-->New”命令,打開“New”對話框,單擊“Projects”選項卡,選
36、擇“MFC AppWizard(exe)”,輸入工程名,并設(shè)置路徑,如圖8所示。</p><p> 圖8 “New”對話框</p><p> 單擊“OK”按鈕,“MFC AppWizard-Step1”對話框已經(jīng)打開,如圖9所示,選項“Dialog based”,接著單擊“Next”按鈕。</p><p> 圖9 “MFC AppWizard-Step 1
37、”對話框</p><p> 在彈出的“MFC AppWizard-Step 2 of 4”對話框中,輸入對話框標題,如圖10所示。</p><p> 圖10 “MFC AppWizard-Step 2 of 4”對話框</p><p> 在接下來的對話框中保持默認的選項。設(shè)置好的屬性如圖11所示,單擊“OK”按鈕后,就完成了新建工程。</p>
38、<p> 圖11 設(shè)計好的工程屬性</p><p><b> 6.2 主窗口設(shè)計</b></p><p> 6.2.1 菜單資源設(shè)計</p><p> 在程序設(shè)計中,我們所要做的很大一部分工作是對程序的輸入進行響應,而我們最常用的選擇方式就是用菜單進行選擇。在Visual C++ 6.0中,菜單功能的實現(xiàn)(比如增減菜單和菜單
39、項,定義菜單的ID,菜單的布局以及菜單的初始化,提示信息等)都是通過資源文件和相關(guān)函數(shù)來實現(xiàn)的[11]。</p><p> 主窗口菜單設(shè)置的主要步驟如下:</p><p> (1) 單擊“ResourceView”選項卡,右鍵單擊“GZGLXT Resources”選項,選擇“Insert”菜單項,打開“Insert Resource”窗口,如圖12所示。</p><
40、;p> 圖12 “Insert Resource”窗口</p><p> (2) 選擇“Menu”文件夾,單擊“New”按鈕,在GZGLXT Resources目錄下新增一個Menu目錄項,菜單ID為IDR_MENU1。雙擊此菜單,對此菜單項的屬性進行設(shè)計。</p><p> 6.2.2 客戶區(qū)設(shè)計</p><p> (1) 打開對話框IDD_GZG
41、LXT_DIALOG屬性窗口,在對話框中添加1個Picture控件,用來存放圖片。在Menu組合框中選擇IDR_MENU1。如圖13所示。</p><p> 圖13 系統(tǒng)主界面</p><p> (2) 打開ClassWizard窗口,為菜單項ID_EXIT添加代碼。程序調(diào)用OnOK()函數(shù)關(guān)閉對話框,退出系統(tǒng)。</p><p> void CGZGLXTD
42、lg::OnExit() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p><b> OnOK();</b></p><p><b> }</b></p
43、><p> 6.3 登錄模塊設(shè)計</p><p> 6.3.1 實現(xiàn)目標</p><p> 登錄模塊功能是完成用戶登錄本系統(tǒng)的操作[2],用戶登錄對話框的設(shè)計如圖14所示。</p><p> 圖14 登錄對話框</p><p> 6.3.2 設(shè)計步驟</p><p> (1) 向項目中
44、添加一個新Dialog資源,資源ID為IDD_LOGIN。在IDD_LOGIN對話框資源中單擊鼠標右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇General選項卡,更改其“Caption”文本框內(nèi)容為“登錄框”。</p><p> (2) 從Controls面板上向Dialog資源中添加2個Sta
45、tic、1個Picture、2個Edit,更改資源的屬性,并為資源設(shè)置相對應的變量,如表5所示。</p><p><b> 表5 資源設(shè)置</b></p><p> 6.3.3 代碼分析</p><p> (1) 引用的外部變量。</p><p> extern CCzyxxb ffxxb;</p>
46、<p> (2) 響應“登錄”按鈕的代碼。</p><p> void CLogin::OnOK() </p><p><b> {</b></p><p> // TODO: Add extra validation here</p><p> //將對話框中編輯框的數(shù)據(jù)讀取到成員變量中<
47、/p><p> UpdateData(true);</p><p> if(m_name=="")</p><p><b> {</b></p><p> MessageBox("請輸入用戶名");</p><p><b> return;&
48、lt;/b></p><p><b> }</b></p><p> //如果讀取數(shù)據(jù)和用戶輸入不同,則返回</p><p> if(ffxxb.HaveCzy(m_name,m_pwd)!=1)</p><p><b> {</b></p><p> Mes
49、sageBox("用戶名或密碼錯誤!");</p><p><b> return;</b></p><p><b> }</b></p><p> ffxxb.SetCzyName(m_name);</p><p><b> jb="1";
50、</b></p><p> //判斷當前用戶級別</p><p> if(ffxxb.HaveCzyjb(m_name,m_pwd,jb)==1)</p><p><b> {</b></p><p> ffxxb.SetCzyjb(jb);</p><p><b>
51、 }</b></p><p> CDialog::OnOK();</p><p><b> }</b></p><p> 下面在主對話框中添加代碼,使對話框在啟動時首先打開登錄對話框。在主窗口選擇OnInitDialog函數(shù),該函數(shù)將打開登錄對話框,如果用戶不是通過單擊“登錄”按鈕關(guān)閉對話框,則調(diào)用OnOK函數(shù)關(guān)閉主對話框,
52、具體代碼如下:</p><p> BOOL CWordGLXTDlg::OnInitDialog()</p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p><b> ......</b></p><p&g
53、t; // TODO: Add extra initialization here</p><p> CLogin gin;</p><p> if(gin.DoModal()!=IDOK)</p><p><b> OnOK();</b></p><p><b> ......</b>&
54、lt;/p><p> return TRUE; // return TRUE unless you set the focus to a control</p><p><b> }</b></p><p> 6.4 員工錄入模塊設(shè)計</p><p> 6.4.1 實現(xiàn)目標</p><p>
55、; 添加員工信息,員工錄入對話框的設(shè)計如圖15所示。</p><p> 圖15 員工錄入對話框</p><p> 6.4.2 設(shè)計步驟</p><p> (1) 向項目中添加一個新Dialog資源,資源ID為IDD_YGTJK。在IDD_YGTJK對話框資源中單擊鼠標右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog Proper
56、ties”對話框。在“Dialog Properties”對話框中選擇General選項卡,更改其“Caption”文本框內(nèi)容為“員工錄入”。</p><p> (2) 從Controls面板上向Dialog資源中添加4個Static、2個Combo、2個Edit,更改資源的屬性,并為資源設(shè)置相對應的變量,如表6所示。</p><p><b> 表6 資源設(shè)置</b&
57、gt;</p><p> 6.4.3 代碼分析</p><p> (1) 打開ClassWizard窗口,添加在OnInitDialog成員函數(shù),向OnInitDialog添加代碼如下。</p><p> BOOL CYgjctjdlg::OnInitDialog() </p><p><b> {</b><
58、;/p><p> CDialog::OnInitDialog();</p><p> // TODO: Add extra initialization here</p><p> SetIcon(m_hIcon, TRUE);</p><p> m_sex.AddString("男");</p><
59、;p> m_sex.AddString("女");</p><p> m_whcd.InsertString(0,"專科");</p><p> m_whcd.InsertString(1,"本科");</p><p> m_whcd.InsertString(2,"研究生"
60、;);</p><p> return TRUE; // return TRUE unless you set the focus to a control</p><p> // EXCEPTION: OCX Property Pages should return FALSE</p><p><b> }</b></p>
61、<p> (2) 當用戶單擊“添加“按鈕時,實現(xiàn)添加員工功能,其響應代碼如下</p><p> void CYgjctjdlg::OnOK() </p><p><b> {</b></p><p> // TODO: Add extra validation here</p><p> CYgj
62、cxxb xxb;</p><p> UpdateData(true);</p><p> if(m_id=="")</p><p><b> {</b></p><p> MessageBox("編號不能為空");</p><p><b>
63、; return;</b></p><p><b> }</b></p><p> if(m_name=="")</p><p><b> {</b></p><p> MessageBox("姓名不能為空");</p>&
64、lt;p><b> return;</b></p><p><b> }</b></p><p> if(xxb.HaveId(m_id)==1)</p><p><b> {</b></p><p> MessageBox("員工編號已存在"
65、;);</p><p><b> return;</b></p><p><b> }</b></p><p> xxb.SetYGid(m_id);</p><p> xxb.SetYGxm(m_name);</p><p> CString sex,whcd;&
66、lt;/p><p> m_sex.GetWindowText(sex);</p><p> if(sex=="")</p><p><b> {</b></p><p> MessageBox("性別不能為空");</p><p><b>
67、return;</b></p><p><b> }</b></p><p> //從組合框中讀取文本</p><p> m_sex.GetLBText(m_sex.GetCurSel(),strsex);</p><p> xxb.SetSex(strsex);</p><p&g
68、t; m_whcd.GetWindowText(whcd);</p><p> if(whcd=="")</p><p><b> {</b></p><p> MessageBox("文化程度不能為空");</p><p><b> return;</b
69、></p><p><b> }</b></p><p> m_whcd.GetLBText(m_whcd.GetCurSel(),strwhcd);</p><p> xxb.SetWHcd(strwhcd);</p><p> xxb.sql_insert();</p><p>
70、 //向浮動工資表添加編號、姓名</p><p> CYgfdgzxmb xmb;</p><p> xmb.SetYGid(m_id);</p><p> xmb.SetYGxm(m_name);</p><p> xmb.sql_insert();</p><p> //向基本工資表添加編號、姓名<
71、;/p><p> CYgjbgzb gzb;</p><p> gzb.SetYGid(m_id);</p><p> gzb.SetYGxm(m_name);</p><p> gzb.sql_insert();</p><p> //向加班休假表添加編號、姓名</p><p> CY
72、gjbsjb sjb;</p><p> sjb.SetYGid(m_id);</p><p> sjb.SetYGxm(m_name);</p><p> sjb.sql_insert();</p><p> CDialog::OnOK();</p><p><b> }</b><
73、;/p><p> 避免漏輸現(xiàn)象:對于一個軟件來說,在保證一定功能的基礎(chǔ)上,給使用者留出的出錯機會越少,那么開發(fā)出來的軟件越成功。本系統(tǒng)在用戶漏輸某個重要字段時,系統(tǒng)會彈出提示對話框警告,這個功能主要是在保存時判斷文本框的值是否為空,如果不為空,就繼續(xù)向下執(zhí)行;如果為空,彈出錯誤提示[12]。</p><p> 6.5 員工工資添加模塊設(shè)計</p><p> 6.5
74、.1 實現(xiàn)目標</p><p> 添加員工實際發(fā)放的工資情況,員工工資添加對話框設(shè)計如圖16所示。</p><p> 圖16 員工工資添加對話框</p><p> 6.5.2 設(shè)計步驟</p><p> (1) 向項目中添加一個新Dialog資源,資源ID為IDD_YGGONGZITJ。在IDD_YGGONGZITJ對話框資源中單擊
75、鼠標右鍵,執(zhí)行彈出快捷菜單的 “Properties”菜單命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇General選項卡,更改其“Caption”文本框內(nèi)容為“員工工資添加”。</p><p> (2) 從Controls面板上向Dialog資源中添加19個Static、17個Edit、2個Button控件,更改資源的屬性,并為資源設(shè)置相對應的變
76、量,如表7所示。</p><p><b> 表7 資源設(shè)置</b></p><p> 6.5.3 代碼分析</p><p> (1) 雙擊“IDC_EDIT9”控件,自動生成OnChangeEdit9函數(shù),實現(xiàn)用戶添加加班天數(shù)時,加班工資自動計算并顯示,具體代碼如下:</p><p> void CYggztj
77、dlg::OnChangeEdit9() </p><p><b> {</b></p><p> // TODO: If this is a RICHEDIT control, the control will not</p><p> // send this notification unless you override the
78、CDialog::OnInitDialog()</p><p> // function and call CRichEditCtrl().SetEventMask()</p><p> // with the ENM_CHANGE flag ORed into the mask.</p><p> UpdateData(true);</p>&
79、lt;p> CString str;</p><p> str.Format("%d",m_jiabts*40);</p><p> m_jiabgz.SetWindowText(str);</p><p> UpdateData(false);</p><p> // TODO: Add your con
80、trol notification handler code here</p><p><b> }</b></p><p> (2) 雙擊“上月余額”按鈕,系統(tǒng)自動添加消息響應函數(shù)OnBUTTONsyye,具體代碼如下。</p><p> void CYggztjdlg::OnBUTTONsyye() </p><p
81、><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(true);</p><p> if(m_id=="")</p><p><b>
82、 {</b></p><p> MessageBox("請先填寫員工編號");</p><p><b> return;</b></p><p><b> }</b></p><p> ADOConn m_AdoConn;</p><p&
83、gt; m_AdoConn.OnInitADOConn();</p><p> t = CTime::GetCurrentTime();</p><p><b> int m,y;</b></p><p> CString str;</p><p> m=t.GetMonth()-1;</p>&
84、lt;p> y=t.GetYear();</p><p><b> if(m==0)</b></p><p><b> {</b></p><p><b> m=12;</b></p><p><b> y=y-1;</b></p&g
85、t;<p><b> }</b></p><p> CGzffmxb mxb;</p><p> if(mxb.Havesyye(m_id,y,m)==1)</p><p><b> {</b></p><p> CString sql;</p><p&g
86、t; sql.Format("select * from gzffmxb where ygid='%s' and year(sjian)='%i' and month(sjian)='%i'",m_id,y,m);</p><p> m_AdoConn.GetRecordSet((_bstr_t)sql);</p><p&
87、gt; str=(char*)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("Yu_E");</p><p> m_syye.SetWindowText(str);</p><p><b> }</b></p><p><b> else</b>&
88、lt;/p><p><b> {</b></p><p> m_syye.SetWindowText("0");</p><p><b> }</b></p><p> UpdateData(false);</p><p> m_AdoConn.Ex
89、itConnect();</p><p><b> }</b></p><p> 在頭文件中添加下列代碼。</p><p><b> CTime t;</b></p><p> (3) 雙擊“應發(fā)工資”按鈕,系統(tǒng)自動添加消息響應函數(shù)OnBUTTONyfgz,具體代碼如下:</p>
90、<p> void CYggztjdlg::OnBUTTONyfgz() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(true);</p>&
91、lt;p> CString syye;</p><p> m_syye.GetWindowText(syye);</p><p> if(syye=="")</p><p><b> {</b></p><p> MessageBox("請先添加上月余額");<
92、;/p><p><b> return;</b></p><p><b> }</b></p><p><b> int yfgz;</b></p><p> yfgz=atoi(syye)+m_jbgz+m_glgz+m_zwgz+m_shbz+m_zfbz-m_ylbx
93、j;</p><p> yfgz+=(-m_bxf+m_jiabts*40-m_sjts*40-m_grsds);</p><p> CString str;</p><p> str.Format("%d",yfgz);</p><p> m_yfgz.SetWindowText(str);</p>
94、<p><b> }</b></p><p> (4) 為“添加”按鈕添加代碼,實現(xiàn)添加員工工資功能,代碼如下:</p><p> void CYggztjdlg::OnOK() </p><p><b> {</b></p><p> // TODO: Add extra v
95、alidation here</p><p> UpdateData(true);</p><p> CYgjcxxb xxb;</p><p> CString yfgz;</p><p> m_yfgz.GetWindowText(yfgz);</p><p> if(m_id==""
96、)</p><p><b> {</b></p><p> MessageBox("編號不能為空");</p><p><b> return;</b></p><p><b> }</b></p><p> if(xxb.
97、HaveId(m_id)!=1)</p><p><b> {</b></p><p> MessageBox("員工編號不存在");</p><p><b> return;</b></p><p><b> }</b></p>&l
98、t;p> if(m_name=="")</p><p><b> {</b></p><p> MessageBox("姓名不能為空");</p><p><b> return;</b></p><p><b> }</b&g
99、t;</p><p> if(xxb.Havename(m_id,m_name)!=1)</p><p><b> {</b></p><p> MessageBox("員工不存在");</p><p><b> return;</b></p><p&
100、gt;<b> }</b></p><p> if(yfgz=="")</p><p><b> {</b></p><p> MessageBox("應發(fā)工資不能為空");</p><p><b> return;</b>&l
101、t;/p><p><b> }</b></p><p> CGzffmxb mxb;</p><p> mxb.SetYGid(m_id);</p><p> mxb.SetYGxm(m_name);</p><p> mxb.SetGLgz(m_glgz);</p><
102、p> mxb.SetJBgz(m_jbgz);</p><p> mxb.SetYLbxj(m_ylbxj);</p><p> mxb.SetZWgz(m_zwgz);</p><p> mxb.SetBXf(m_bxf);</p><p> mxb.SetGRsds(m_grsds);</p><p&g
103、t; mxb.SetSHbz(m_shbz);</p><p> mxb.SetZFbz(m_zfbz);</p><p> mxb.SetJiaBts(m_jiabts);</p><p> int jiabgz;</p><p> jiabgz=m_jiabts*40;</p><p> mxb.Set
104、JiaBgz(jiabgz);</p><p> mxb.SetSjts(m_sjts);</p><p><b> int sjkk;</b></p><p> sjkk=m_sjts*40;</p><p> mxb.SetSJkk(sjkk);</p><p> mxb.SetYF
105、je(atoi(yfgz));</p><p> mxb.SetSFje(m_sfgz);</p><p> mxb.sql_insert();</p><p> CYgjbsjb sjb;</p><p> sjb.SetJiaBts(m_jiabts);</p><p> sjb.SetJiaBgz(ji
106、abgz);</p><p> sjb.SetSjts(m_sjts);</p><p> sjb.SetSJkk(sjkk);</p><p> sjb.sql_update(m_id);</p><p> CDialog::OnOK();</p><p><b> }</b><
107、/p><p> 6.6 用戶管理模塊設(shè)計</p><p> 6.6.1 實現(xiàn)目標</p><p> 實現(xiàn)新建、刪除用戶功能,用戶管理對話框設(shè)計如圖17所示。</p><p> 圖17 用戶管理對話框</p><p> 6.6.2 設(shè)計步驟</p><p> (1) 向項目中添加一個新D
108、ialog資源,資源ID為IDD_XINJYH。在IDD_XINJYH對話框資源中單擊鼠標右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇General選項卡,更改其“Caption”文本框內(nèi)容為“用戶管理”。</p><p> (2) 從Controls面板上向Dialog資源中添加4個Static
109、、1個Combo、3個Edit、1個Button控件,更改資源的屬性,并為資源設(shè)置相對應的變量,如表8所示。</p><p><b> 表8 資源設(shè)置</b></p><p> 6.6.3 代碼分析</p><p> (1) 添加OnInitDialog()函數(shù),初始化Combo控件,具體代碼如下:</p><p&g
110、t; BOOL CXinjyhdlg::OnInitDialog() </p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> // TODO: Add extra initialization here</p><p> SetIcon(m_
111、hIcon, TRUE);</p><p> m_jb.AddString("系統(tǒng)管理員");</p><p> m_jb.AddString("普通管理員");</p><p> return TRUE; // return TRUE unless you set the focus to a control<
112、/p><p> // EXCEPTION: OCX Property Pages should return FALSE</p><p><b> }</b></p><p> (2) 為“添加”按鈕添加消息響應函數(shù),代碼如下:</p><p> void CXinjyhdlg::OnOK() </p>
113、<p><b> {</b></p><p> // TODO: Add extra validation here</p><p> UpdateData(true);</p><p> if(m_name=="")</p><p><b> {</b>&
114、lt;/p><p> MessageBox("請輸入用戶名");</p><p><b> return;</b></p><p><b> }</b></p><p> CString jb;</p><p> m_jb.GetWindowText
115、(jb);</p><p> if(jb=="")</p><p><b> {</b></p><p> MessageBox("級別不能為空");</p><p><b> return;</b></p><p><b
116、> }</b></p><p> if(m_pwd=="")</p><p><b> {</b></p><p> MessageBox("請輸入密碼");</p><p><b> return;</b></p>
117、<p><b> }</b></p><p> if(m_pwd1=="")</p><p><b> {</b></p><p> MessageBox("請確認密碼");</p><p><b> return;</b&
118、gt;</p><p><b> }</b></p><p> if(m_pwd!=m_pwd1)</p><p><b> {</b></p><p> MessageBox("兩次密碼不同");</p><p><b> retur
119、n;</b></p><p><b> }</b></p><p> CCzyxxb xxb;</p><p> if(xxb.Havename(m_name)==1)</p><p><b> {</b></p><p> MessageBox(&qu
120、ot;用戶以存在,請重新輸入");</p><p><b> return;</b></p><p><b> }</b></p><p> xxb.SetCzyName(m_name);</p><p> xxb.SetPwd(m_pwd);</p><p&g
121、t; m_jb.GetLBText(m_jb.GetCurSel(),strjb);</p><p> if(strjb=="系統(tǒng)管理員")</p><p> strjb="1";</p><p><b> else</b></p><p> strjb="0&
122、quot;;</p><p> xxb.SetCzyjb(strjb);</p><p> xxb.sql_insert();</p><p> CDialog::OnOK();</p><p><b> }</b></p><p> (3) 為“刪除”按鈕添加消息響應函數(shù),代碼如下:&
123、lt;/p><p> void CXinjyhdlg::OnButton1() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(true);</p&
124、gt;<p> if(MessageBox("是否刪除當前記錄","請確認",MB_YESNO)==IDYES)</p><p><b> {</b></p><p> CCzyxxb xxb;</p><p> xxb.sql_delete(m_name);</p>
125、<p><b> }</b></p><p><b> }</b></p><p> (4) 當用戶單擊主界面菜單中的“用戶管理”菜單項時,將執(zhí)行OnMenuyhgl函數(shù),具體代碼如下:</p><p> void CGZGLXTDlg::OnMenuyhgl() </p><p>
126、;<b> {</b></p><p> // TODO: Add your command handler code here</p><p> if(ffxxb.GetCzyjb()=="1")</p><p><b> {</b></p><p> CXinjyh
127、dlg dlg;</p><p> dlg.DoModal();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> MessageBox("沒有權(quán)
128、限");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 6.7 總體查詢模塊設(shè)計</p><p> 6.7.1 實現(xiàn)目標</p&g
129、t;<p> 便于用戶查詢員工的工資,公司發(fā)放工資總額??傮w查詢對話框設(shè)計如圖18所示。</p><p> 圖18 “總體查詢”對話框</p><p> 6.7.2 設(shè)計步驟</p><p> (1) 向項目中添加一個新Dialog資源,資源ID為IDD_ZTCX。在IDD_ZTCX對話框資源中單擊鼠標右鍵,執(zhí)行彈出快捷菜單的“Propert
130、ies”菜單命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇General選項卡,更改其“Caption”文本框內(nèi)容為“總體查詢”。</p><p> (2) 從Controls面板上向Dialog資源中添加1個Static、1個DataCombo、2個Check Box控件、1個ADO Data控件、1個DataGrid、1個Date Time、1個
131、Button控件,更改資源的屬性,并為資源設(shè)置相對應的變量,如表9所示。</p><p><b> 表9 資源設(shè)置</b></p><p> (3) ADO Data控件具體設(shè)置如下。</p><p> ?、儆益I單擊該控件,從彈出的菜單中單擊“Properties”項,彈出“ADO Data控件屬性”對話框。</p><
132、;p> ?、谠凇癎eneral”選項卡取消“Visible”復選框的選擇,因為一般使用ADO Data控件的對話框控件不可見。</p><p> ?、蹎螕簟巴ㄓ谩边x項卡,選擇“使用連接字符串”選項,然后單擊“生成”按鈕,如圖19所示。</p><p> 圖19 設(shè)置數(shù)據(jù)源</p><p> ?、芙又鴱棾觥皵?shù)據(jù)連接屬性”對話框,在“提供者”頁中選擇“Micr
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- vc++課程設(shè)計--工資管理
- vc++課程設(shè)計--工資管理
- 基于vc++的點歌管理系統(tǒng)的設(shè)計和實現(xiàn)畢業(yè)設(shè)計(論文)
- VC++課程設(shè)計--工資管理.doc
- 基于jsp的工資管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計開題報告—基于vc++的餐飲管理系統(tǒng)的設(shè)計與實現(xiàn)
- 工資管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)論文——工資管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文工資管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文工資管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文工資管理系統(tǒng)的設(shè)計與實現(xiàn)
- 工資管理系統(tǒng)設(shè)計與實現(xiàn)──工資管理、工資組、工資單【畢業(yè)論文設(shè)計】
- 畢業(yè)論文——工資管理系統(tǒng)的設(shè)計與實現(xiàn)
- 醫(yī)院人事工資管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 工資管理系統(tǒng)畢業(yè)設(shè)計---vfp工資管理系統(tǒng)
- 基于web的工資管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 人事工資管理系統(tǒng)畢業(yè)設(shè)計論文
- 工資管理畢業(yè)設(shè)計論文
- 基于web的工資管理系統(tǒng)的設(shè)計與實現(xiàn) 畢業(yè)論文
- 人事工資管理系統(tǒng)畢業(yè)設(shè)計論文
評論
0/150
提交評論