基于VC的工資管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于VC的工資管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于VC的工資管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于VC的工資管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于VC的工資管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于 VC+的工資管理系統(tǒng)的設(shè)計與實現(xiàn) 摘摘 要要 隨著計算機技術(shù)的飛速發(fā)展,計算機在企業(yè)管理中應(yīng)用越來越普及。利用計 算機實現(xiàn)企業(yè)人事工資的管理勢在必行。本系統(tǒng)是結(jié)合公司實際的財務(wù)制度,經(jīng) 過實際的需求分析,采用功能強大的 Visual C+ 6.0 做為開發(fā)工具而開發(fā)出來的單 機版工資管理系統(tǒng)。 工資管理系統(tǒng)是針對企業(yè)的工資管理業(yè)務(wù)進行計算機處理而開發(fā)的應(yīng)用軟件。 整個系統(tǒng)從符合操作簡便、界面友好、靈活、實用、安全的要求出發(fā),完成人事、 工資管理的全過程,企業(yè)的工資管理是公司管理的一個重要內(nèi)容。該系統(tǒng)由基本 信息管理、工資管理、工資查詢、系統(tǒng)管理、幫助等子模塊組成,功能基本涵蓋 普通企業(yè)的

2、工資管理業(yè)務(wù)范圍。企業(yè)應(yīng)用本系統(tǒng)后,可以有效的提高工資管理水 平。本文從需求分析、可行性分析、總體設(shè)計、數(shù)據(jù)庫設(shè)計、功能模塊編程實現(xiàn) 等方面闡述了本系統(tǒng)的設(shè)計過程。為便于說明,文中繪制了程序結(jié)構(gòu)框圖、部分 界面圖和數(shù)據(jù)表。最后附有主要的源程序代碼清單。 關(guān)鍵詞關(guān)鍵詞 :數(shù)據(jù)庫 Visual C+ 6.0 工資管理 The design approach and implementation of the wages management system based on vc+ Abstract With the development of the computer technology an

3、d computers are universally used in business enterprise manage more and more, so it is imperative 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 mi

4、ghty in function as the tool to develop the management of enterprise personnel wages system that is the single machine version. Salary Management System is specially designed for the application of device managing of enterprise. The whole system must match the request which are operation simple, the

5、 interface amity, vivid, practical and safe and complete the management of personal and wages process. The Management of Enterprise 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

6、 functions can meet the demands of most of the business. If the enterprise uses this system, the management of salary can rapidly be improved. In this paper, a description is given on the design process of this system from demands analyzing, feasibility analysis, frame design, database design, progr

7、amming module. Program structure diagram, some map interfaces and data sheets are presented for the purpose of description. In addition, program source code is listed in the end of the article. Keywords: Database; Visual C+ 6.0; Salary management 目目 錄錄 1 引言.1 2 系統(tǒng)需求分析.2 3 可行性分析.3 4 總體設(shè)計.4 4.1 系統(tǒng)功能結(jié)構(gòu)

8、 .4 4.2 設(shè)計目標(biāo) .4 5 系統(tǒng)設(shè)計.5 5.1 使用的相關(guān)技術(shù)介紹 .5 5.2 數(shù)據(jù)庫設(shè)計 .5 5.2.1 數(shù)據(jù)庫概要說明.5 5.2.2 部分?jǐn)?shù)據(jù)表的結(jié)構(gòu).6 5.2.3 部分 E-R 模型的設(shè)計 .7 6 主要功能模塊設(shè)計.9 6.1 建立工程框架 .9 6.2 主窗口設(shè)計 .11 6.2.1 菜單資源設(shè)計.11 6.2.2 客戶區(qū)設(shè)計.12 6.3 登錄模塊設(shè)計 .13 6.3.1 實現(xiàn)目標(biāo).13 6.3.2 設(shè)計步驟.13 6.3.3 代碼分析.14 6.4 員工錄入模塊設(shè)計 .15 6.4.1 實現(xiàn)目標(biāo).15 6.4.2 設(shè)計步驟.16 6.4.3 代碼分析.16 6.

9、5 員工工資添加模塊設(shè)計 .19 6.5.1 實現(xiàn)目標(biāo).19 6.5.2 設(shè)計步驟.19 6.5.3 代碼分析.20 6.6 用戶管理模塊設(shè)計 .25 6.6.1 實現(xiàn)目標(biāo).25 6.6.2 設(shè)計步驟.25 6.6.3 代碼分析.26 6.7 總體查詢模塊設(shè)計 .29 6.7.1 實現(xiàn)目標(biāo).29 6.7.2 設(shè)計步驟.29 6.7.3 代碼分析.33 7 結(jié)論.39 謝辭.40 參考文獻.41 附錄.42 外文翻譯.68 1 引言 隨著我國國民經(jīng)濟建設(shè)的蓬勃發(fā)展和具有中國特色的社會主義市場經(jīng)濟體制 的迅速完善,各個行業(yè)都在積極使用現(xiàn)代化的管理工具,不斷改善企業(yè)的服務(wù)質(zhì) 量,提高工作效率。無論是

10、行政職能,還是生產(chǎn)運作的管理要求的不斷提高,在 很大程度上使企業(yè)不得不改變傳統(tǒng)的經(jīng)營管理方式以適應(yīng)快速發(fā)展的社會主義市 場經(jīng)濟體制,改變企業(yè)管理方式和方法已經(jīng)成為企業(yè)發(fā)展的先決條件,建立一個 科學(xué)高效的信息管理系統(tǒng)是解決這一問題的好方法。 運用現(xiàn)代化技術(shù)對企業(yè)內(nèi)部的財務(wù)進行管理,是提高企業(yè)工作效率的有效手 段。工資管理作為企業(yè)內(nèi)部財務(wù)管理的一個重要方面,逐步被企業(yè)管理者所重視。 通過計算機管理系統(tǒng)對員工工資進行全面的統(tǒng)計與管理,全面解決了工資管理過 程中所遇到的各種問題,并且克服了傳統(tǒng)管理方式中的易出錯等問題。工資管理 系統(tǒng)成為企業(yè)現(xiàn)代化管理中的首選管理工具。 2 系統(tǒng)需求分析 員工工資管理系

11、統(tǒng)是保證企業(yè)對員工工資的管理可以有秩序的進行的管理 軟件。員工工資管理系統(tǒng)是用于企業(yè)對員工工資進行的集中分發(fā)管理,開發(fā)的 總體任務(wù)是實現(xiàn)工資管理的系統(tǒng)化、規(guī)范化和自動化,從而達(dá)到提高工資管理 效率的目的1。 工資管理系統(tǒng)主要根據(jù)公司的要求進行設(shè)計,并了解了公司工資的工作流 程,該系統(tǒng)是由基本信息管理、工資查詢、工資管理、系統(tǒng)管理和幫助等幾個 功能模塊組成,規(guī)劃系統(tǒng)功能模塊如下: (1)基本信息管理模塊 基本信息管理模塊主要包括員工錄入、員工刪除兩個部分。 (2)工資查詢模塊 工資查詢模塊主要包括基本工資查詢、浮動工資查詢、加班/休假查詢、 總體查詢四個部分。 (3)工資管理模塊 工資管理模塊主

12、要包括工資發(fā)放管理、基本工資管理、浮動工資管理三個 部分。 (4)系統(tǒng)管理模塊 系統(tǒng)管理模塊主要包括用戶管理、修改密碼、退出系統(tǒng)三個部分。 (5)幫助模塊 幫助模塊主要包括關(guān)于一個部分。 3 可行性分析 傳統(tǒng)的工資管理方法,都是通過人工統(tǒng)計和計算的管理方式進行的。這樣的 管理方法不但費時費力,也容易產(chǎn)生計算上的錯誤和疏漏;計算機技術(shù)的全面普 及,打破了財務(wù)管理的傳統(tǒng)管理方法,提高了管理效率的同時,克服了傳統(tǒng)管理 方法中易產(chǎn)生的問題,使管理員能夠有序的、全面的對每一位職工進行管理,嚴(yán) 格按照工資條款及發(fā)放制度計算并發(fā)放員工工資。 企業(yè)工資管理系統(tǒng)可以完成日常工資的管理,如查詢、修改、增加、刪除以

13、 及存儲等操作,迅速準(zhǔn)確地完成各種工資數(shù)據(jù)的統(tǒng)計和匯總工作,快速打印出工 資報表等,大大提高了企業(yè)工資管理效率2。 4 總體設(shè)計 系統(tǒng)總體設(shè)計是把需求轉(zhuǎn)化為軟件系統(tǒng)的最重要的環(huán)節(jié)。系統(tǒng)總體設(shè)計的優(yōu) 劣在根本上決定了軟件系統(tǒng)的質(zhì)量3。 4.1 系統(tǒng)功能結(jié)構(gòu) 工資系統(tǒng)的功能結(jié)構(gòu)如圖 1 所示。 工資管理系統(tǒng) 基本信息管理工資管理工資查詢系統(tǒng)管理幫助 員工錄入 員工刪除 基本工資管理 浮動工資管理 浮動工資查詢 加班休假查詢 總體查詢 用戶管理 修改密碼 退出系統(tǒng) 關(guān)于 基本工資查詢 工資發(fā)放管理 圖 1 系統(tǒng)功能圖 4.2 設(shè)計目標(biāo) 本系統(tǒng)是根據(jù)中小企業(yè)的實際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)對客戶的

14、自 動化管理,通過本系統(tǒng)可以達(dá)到以下目標(biāo): (1)系統(tǒng)運行穩(wěn)定,安全可靠。 (2)界面設(shè)計美觀,人機交互界面友好。 (3)信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安全可靠。 (4)采用多種方式查詢數(shù)據(jù)。 (5)操作員可以隨時修改自己的口令。 (6)對用戶輸入的數(shù)據(jù),系統(tǒng)進行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。 5 系統(tǒng)設(shè)計 5.1 使用的相關(guān)技術(shù)介紹 Visual C+是 Microsoft Visual Studio 開發(fā)組件中最為強大的編程工具。一方面, 它是當(dāng)今最為流行的系統(tǒng)開發(fā)語言,另一方面,它能夠和 Microsoft 的操作系統(tǒng)無 縫結(jié)合,開發(fā)出高性能的 Windows 應(yīng)用程序

15、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ù)庫應(yīng)用程序,這也正是許多公司長期以來采用 Visual C+開發(fā)數(shù)據(jù)庫 系統(tǒng)的重要原因3。Visual C+提供了可視化的編程環(huán)境,不僅可以編寫面向用戶 的應(yīng)用程序,而且還適用于編寫直接對系統(tǒng)或設(shè)備操作的底層程序4。 SQL Server 2000 在 SQL Server 7.0 版的

16、基礎(chǔ)上擴展了數(shù)據(jù)庫管理系統(tǒng)的性能、 可靠性、質(zhì)量和易用性。由于增加了這幾種新的功能,因此它成為大規(guī)模聯(lián)機事 務(wù)處理(OLTP) 、數(shù)據(jù)倉庫和電子商務(wù)應(yīng)用程序的優(yōu)秀數(shù)據(jù)庫平臺5。SQL Server 2000 是基于 SQL 客戶/服務(wù)器(C/S)模式的數(shù)據(jù)庫系統(tǒng),其圖形化界面使數(shù)據(jù)庫 管理更加簡潔、靈活,同時又具有豐富的編程接口,為用戶從事程序開發(fā)提供了 更多的方便。使用 SQL Server 2000 可以獲得非凡的可伸縮性和可靠性。通過向上 伸縮和向外擴展的能力,SQL Server 滿足了苛刻的電子商務(wù)和企業(yè)應(yīng)用程序要求。 ADO 是 ActiveX Data Object(Active

17、X 數(shù)據(jù)對象)的縮寫,是目前最流行的客 戶端數(shù)據(jù)庫技術(shù)。ADO 是建立在 OLE DB 底層技術(shù)之上的高級編程接口6。 5.2 數(shù)據(jù)庫設(shè)計 5.2.1 數(shù)據(jù)庫概要說明 在使用數(shù)據(jù)庫之前,先創(chuàng)建數(shù)據(jù)庫7。數(shù)據(jù)表是包含數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù) 據(jù)庫對象,表定義為列的集合8。數(shù)據(jù)庫 GZFFXT 中包括員工基礎(chǔ)信息表、員工 基本工資表、員工浮動工資表、員工加班/休假表、工資發(fā)放明細(xì)表、用戶表 6 個 數(shù)據(jù)表。 圖 2 所示的即為本系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系 統(tǒng)所有數(shù)據(jù)表??梢郧逦胤从硵?shù)據(jù)庫信息。 圖 2 數(shù)據(jù)庫概要說明 5.2.2 部分?jǐn)?shù)據(jù)表的結(jié)構(gòu) 表 1 Ygjcxxb(員工

18、基礎(chǔ)信息表) 字段名數(shù)據(jù)類型長度描述 YGid YGxm Sex Whcd varchar varchar char varchar 30 30 2 20 員工編號 員工姓名 性別 文化程度 表 2 Ygjbgzb(員工基本工資表) 字段名數(shù)據(jù)類型長度描述 YGid YGxm JBgz ZWgz GLgz YLbxj varchar varchar money money money money 30 30 8 8 8 8 員工編號 員工姓名 基本工資 職務(wù)工資 工齡工資 養(yǎng)老保險金 表 3 Ygfdgzxmb(員工浮動工資表) 字段名數(shù)據(jù)類型長度描述 YGid YGxm GRsds ZFbz

19、 BXf SHbz varchar varchar money money money money 30 30 8 8 8 8 員工編號 員工姓名 個人所得稅 住房補助 保險費 生活補助 表 4 Ygjbsjb(員工加班休假表) 字段名數(shù)據(jù)類型長度描述 YGid YGxm Jiabts Jiabgz SJts varchar varchar int money int 30 30 4 8 4 員工編號 員工姓名 加班天數(shù) 加班工資 休假天數(shù) Sjkkmoney8 休假扣款 5.2.3 部分 E-R 模型的設(shè)計 員工基礎(chǔ)信息 性別文化程度 員工編號員工姓名 圖 3 系統(tǒng)部分實體屬性圖 員工基本工

20、資信息 基本工資職務(wù)工資 員工編號員工姓名 工齡工資養(yǎng)老保險金 圖 4 系統(tǒng)部分實體屬性圖 員工浮動工資信息 保險費生活補助 員工編號員工姓名 個人所得稅住房補助 圖 5 系統(tǒng)部分實體屬性圖 員工加班休假信息 休假天數(shù)休假扣款 員工編號員工姓名 加班天數(shù)加班工資 圖 6 系統(tǒng)部分實體屬性圖 圖 7 系統(tǒng)部分實體屬性圖 6 主要功能模塊設(shè)計 6.1 建立工程框架 直接利用 MFC AppWizard 應(yīng)用程序向?qū)?chuàng)建一個基于對話框的應(yīng)用程序9, 對話框是 Windows 應(yīng)用程序中的一種常用資源,其主要功能是輸出信息和接收用 戶的輸入數(shù)據(jù)10。 在 Visual C+中建立工資管理系統(tǒng)的基本框架

21、,步驟如下: 單擊菜單“File-New”命令,打開“New”對話框,單擊“Projects”選項卡, 選擇“MFC AppWizard(exe)” ,輸入工程名,并設(shè)置路徑,如圖 8 所示。 用戶信息 級別密碼用戶名 圖 8 “New”對話框 單擊“OK”按鈕, “MFC AppWizard-Step1”對話框已經(jīng)打開,如圖 9 所示, 選項“Dialog based” ,接著單擊“Next”按鈕。 圖 9 “MFC AppWizard-Step 1”對話框 在彈出的“MFC AppWizard-Step 2 of 4”對話框中,輸入對話框標(biāo)題,如圖 10 所示。 圖 10 “MFC App

22、Wizard-Step 2 of 4”對話框 在接下來的對話框中保持默認(rèn)的選項。設(shè)置好的屬性如圖 11 所示,單擊 “OK”按鈕后,就完成了新建工程。 圖 11 設(shè)計好的工程屬性 6.2 主窗口設(shè)計 6.2.1 菜單資源設(shè)計 在程序設(shè)計中,我們所要做的很大一部分工作是對程序的輸入進行響應(yīng),而 我們最常用的選擇方式就是用菜單進行選擇。在 Visual C+ 6.0 中,菜單功能的實 現(xiàn)(比如增減菜單和菜單項,定義菜單的 ID,菜單的布局以及菜單的初始化,提 示信息等)都是通過資源文件和相關(guān)函數(shù)來實現(xiàn)的11。 主窗口菜單設(shè)置的主要步驟如下: (1) 單擊“ResourceView”選項卡,右鍵單擊

23、“GZGLXT Resources”選項,選 擇“Insert”菜單項,打開“Insert Resource”窗口,如圖 12 所示。 圖 12 “Insert Resource”窗口 (2) 選擇“Menu”文件夾,單擊“New”按鈕,在 GZGLXT Resources 目錄下新 增一個 Menu 目錄項,菜單 ID 為 IDR_MENU1。雙擊此菜單,對此菜單項的屬性進行 設(shè)計。 6.2.2 客戶區(qū)設(shè)計 (1) 打開對話框 IDD_GZGLXT_DIALOG 屬性窗口,在對話框中添加 1 個 Picture 控件,用來存放圖片。在 Menu 組合框中選擇 IDR_MENU1。如圖 13

24、所示。 圖 13 系統(tǒng)主界面 (2) 打開 ClassWizard 窗口,為菜單項 ID_EXIT 添加代碼。程序調(diào)用 OnOK() 函數(shù)關(guān)閉對話框,退出系統(tǒng)。 void CGZGLXTDlg:OnExit() / TODO: Add your command handler code here OnOK(); 6.3 登錄模塊設(shè)計 6.3.1 實現(xiàn)目標(biāo) 登錄模塊功能是完成用戶登錄本系統(tǒng)的操作2,用戶登錄對話框的設(shè)計如圖 14 所示。 圖 14 登錄對話框 6.3.2 設(shè)計步驟 (1) 向項目中添加一個新 Dialog 資源,資源 ID 為 IDD_LOGIN。在 IDD_LOGIN 對話框資

25、源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單 命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇 General 選項卡,更改其“Caption”文本框內(nèi)容為“登錄框” 。 (2) 從 Controls 面板上向 Dialog 資源中添加 2 個 Static、1 個 Picture、2 個 Edit,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 5 所示。 表 5 資源設(shè)置 IDPropertiesType Member IDC_EDIT1 IDC_ EDIT2 IDOK IDCANCEL IDC_STATIC

26、默認(rèn) PassWord TRUE Caption 登錄 Caption 退出 Type Bitmap CString Cstring m_name m_pwd 6.3.3 代碼分析 (1) 引用的外部變量。 extern CCzyxxb ffxxb; (2) 響應(yīng)“登錄”按鈕的代碼。 void CLogin:OnOK() / TODO: Add extra validation here /將對話框中編輯框的數(shù)據(jù)讀取到成員變量中 UpdateData(true); if(m_name=) MessageBox(請輸入用戶名); return; /如果讀取數(shù)據(jù)和用戶輸入不同,則返回 if(ffx

27、xb.HaveCzy(m_name,m_pwd)!=1) MessageBox(用戶名或密碼錯誤!); return; ffxxb.SetCzyName(m_name); jb=1; /判斷當(dāng)前用戶級別 if(ffxxb.HaveCzyjb(m_name,m_pwd,jb)=1) ffxxb.SetCzyjb(jb); CDialog:OnOK(); 下面在主對話框中添加代碼,使對話框在啟動時首先打開登錄對話框。在主窗 口選擇 OnInitDialog 函數(shù),該函數(shù)將打開登錄對話框,如果用戶不是通過單擊 “登錄”按鈕關(guān)閉對話框,則調(diào)用 OnOK 函數(shù)關(guān)閉主對話框,具體代碼如下: BOOL CW

28、ordGLXTDlg:OnInitDialog() CDialog:OnInitDialog(); . / TODO: Add extra initialization here CLogin gin; if(gin.DoModal()!=IDOK) OnOK(); . return TRUE; / return TRUE unless you set the focus to a control 6.4 員工錄入模塊設(shè)計 6.4.1 實現(xiàn)目標(biāo) 添加員工信息,員工錄入對話框的設(shè)計如圖 15 所示。 圖 15 員工錄入對話框 6.4.2 設(shè)計步驟 (1) 向項目中添加一個新 Dialog 資源,

29、資源 ID 為 IDD_YGTJK。在 IDD_YGTJK 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單 命令,打開“Dialog Properties”對話框。在“Dialog Properties”對話框中選擇 General 選項卡,更改其“Caption”文本框內(nèi)容為“員工錄入” 。 (2) 從 Controls 面板上向 Dialog 資源中添加 4 個 Static、2 個 Combo、2 個 Edit,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 6 所示。 表 6 資源設(shè)置 IDPropertiesType Member IDC_EDIT1 IDC

30、_ EDIT2 IDC_COMBO1 IDC_COMBO2 IDOK IDCANCEL 默認(rèn) 默認(rèn) Caption 添加 Caption 退出 CString CString CComboBox CComboBox m_id m_name m_sex M_whcd 6.4.3 代碼分析 (1) 打開 ClassWizard 窗口,添加在 OnInitDialog 成員函數(shù),向 OnInitDialog 添 加代碼如下。 BOOL CYgjctjdlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization

31、here SetIcon(m_hIcon, TRUE); m_sex.AddString(男); m_sex.AddString(女); m_whcd.InsertString(0,???; m_whcd.InsertString(1,本科); m_whcd.InsertString(2,研究生); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE (2) 當(dāng)用戶單擊“添加“按鈕時,實現(xiàn)添加員工功能,其響應(yīng)代碼如

32、下 void CYgjctjdlg:OnOK() / TODO: Add extra validation here CYgjcxxb xxb; UpdateData(true); if(m_id=) MessageBox(編號不能為空); return; if(m_name=) MessageBox(姓名不能為空); return; if(xxb.HaveId(m_id)=1) MessageBox(員工編號已存在); return; xxb.SetYGid(m_id); xxb.SetYGxm(m_name); CString sex,whcd; m_sex.GetWindowText(s

33、ex); if(sex=) MessageBox(性別不能為空); return; /從組合框中讀取文本 m_sex.GetLBText(m_sex.GetCurSel(),strsex); xxb.SetSex(strsex); m_whcd.GetWindowText(whcd); if(whcd=) MessageBox(文化程度不能為空); return; m_whcd.GetLBText(m_whcd.GetCurSel(),strwhcd); xxb.SetWHcd(strwhcd); xxb.sql_insert(); /向浮動工資表添加編號、姓名 CYgfdgzxmb xmb;

34、 xmb.SetYGid(m_id); xmb.SetYGxm(m_name); xmb.sql_insert(); /向基本工資表添加編號、姓名 CYgjbgzb gzb; gzb.SetYGid(m_id); gzb.SetYGxm(m_name); gzb.sql_insert(); /向加班休假表添加編號、姓名 CYgjbsjb sjb; sjb.SetYGid(m_id); sjb.SetYGxm(m_name); sjb.sql_insert(); CDialog:OnOK(); 避免漏輸現(xiàn)象:對于一個軟件來說,在保證一定功能的基礎(chǔ)上,給使用者留 出的出錯機會越少,那么開發(fā)出來的軟

35、件越成功。本系統(tǒng)在用戶漏輸某個重要字 段時,系統(tǒng)會彈出提示對話框警告,這個功能主要是在保存時判斷文本框的值是 否為空,如果不為空,就繼續(xù)向下執(zhí)行;如果為空,彈出錯誤提示12。 6.5 員工工資添加模塊設(shè)計 6.5.1 實現(xiàn)目標(biāo) 添加員工實際發(fā)放的工資情況,員工工資添加對話框設(shè)計如圖 16 所示。 圖 16 員工工資添加對話框 6.5.2 設(shè)計步驟 (1) 向項目中添加一個新 Dialog 資源,資源 ID 為 IDD_YGGONGZITJ。在 IDD_YGGONGZITJ 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的 “Properties”菜單命令,打開“Dialog Properties”

36、對話框。在“Dialog Properties”對話框中選擇 General 選項卡,更改其“Caption”文本框內(nèi)容為“員工 工資添加” 。 (2) 從 Controls 面板上向 Dialog 資源中添加 19 個 Static、17 個 Edit、2 個 Button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 7 所示。 表 7 資源設(shè)置 IDPropertiesType Member IDC_EDIT1 IDC_EDIT2 IDC_EDIT3 IDC_EDIT4 IDC_EDIT5 IDC_EDIT6 IDC_EDIT7 IDC_EDIT8 IDC_EDIT9 IDC_E

37、DIT10 IDC_EDIT11 IDC_EDIT12 IDC_EDIT13 IDC_EDIT14 IDC_EDIT15 IDC_EDIT16 IDC_EDIT17 IDOK IDCANCEL IDC_BUTTONsyye IDC_BUTTONyfgz 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) 默認(rèn) Read-only TRUE 默認(rèn) Read-only TRUE 默認(rèn) 默認(rèn) 默認(rèn) Read-only TRUE Read-only TRUE Caption 添加 Caption 退出 Caption 上月余額 Caption 應(yīng)發(fā)工資 CString CString int int in

38、t int int int int CEdit int CEdit int int int CEdit CEdit m_id m_name m_jbgz m_zwgz m_glgz m_zfbz m_shbz m_bxf m_jiabts m_jiabgz m_sjts m_sjgz m_ylbxj m_grsds m_sfgz m_yfgz m_syye 6.5.3 代碼分析 (1) 雙擊“IDC_EDIT9”控件,自動生成 OnChangeEdit9 函數(shù),實現(xiàn)用戶添加 加班天數(shù)時,加班工資自動計算并顯示,具體代碼如下: void CYggztjdlg:OnChangeEdit9() /

39、TODO: If this is a RICHEDIT control, the control will not / send this notification unless you override the CDialog:OnInitDialog() / function and call CRichEditCtrl().SetEventMask() / with the ENM_CHANGE flag ORed into the mask. UpdateData(true); CString str; str.Format(%d,m_jiabts*40); m_jiabgz.SetW

40、indowText(str); UpdateData(false); / TODO: Add your control notification handler code here (2) 雙擊“上月余額”按鈕,系統(tǒng)自動添加消息響應(yīng)函數(shù) OnBUTTONsyye,具 體代碼如下。 void CYggztjdlg:OnBUTTONsyye() / TODO: Add your control notification handler code here UpdateData(true); if(m_id=) MessageBox(請先填寫員工編號); return; ADOConn m_AdoC

41、onn; m_AdoConn.OnInitADOConn(); t = CTime:GetCurrentTime(); int m,y; CString str; m=t.GetMonth()-1; y=t.GetYear(); if(m=0) m=12; y=y-1; CGzffmxb mxb; if(mxb.Havesyye(m_id,y,m)=1) CString sql; sql.Format(select * from gzffmxb where ygid=%s and year(sjian)=%i and month(sjian)=%i,m_id,y,m); m_AdoConn.G

42、etRecordSet(_bstr_t)sql); str=(char*)(_bstr_t)m_AdoConn.m_pRecordset-GetCollect(Yu_E); m_syye.SetWindowText(str); else m_syye.SetWindowText(0); UpdateData(false); m_AdoConn.ExitConnect(); 在頭文件中添加下列代碼。 CTime t; (3) 雙擊“應(yīng)發(fā)工資”按鈕,系統(tǒng)自動添加消息響應(yīng)函數(shù) OnBUTTONyfgz,具 體代碼如下: void CYggztjdlg:OnBUTTONyfgz() / TODO: A

43、dd your control notification handler code here UpdateData(true); CString syye; m_syye.GetWindowText(syye); if(syye=) MessageBox(請先添加上月余額); return; int yfgz; yfgz=atoi(syye)+m_jbgz+m_glgz+m_zwgz+m_shbz+m_zfbz-m_ylbxj; yfgz+=(-m_bxf+m_jiabts*40-m_sjts*40-m_grsds); CString str; str.Format(%d,yfgz); m_y

44、fgz.SetWindowText(str); (4) 為“添加”按鈕添加代碼,實現(xiàn)添加員工工資功能,代碼如下: void CYggztjdlg:OnOK() / TODO: Add extra validation here UpdateData(true); CYgjcxxb xxb; CString yfgz; m_yfgz.GetWindowText(yfgz); if(m_id=) MessageBox(編號不能為空); return; if(xxb.HaveId(m_id)!=1) MessageBox(員工編號不存在); return; if(m_name=) MessageBo

45、x(姓名不能為空); return; if(xxb.Havename(m_id,m_name)!=1) MessageBox(員工不存在); return; if(yfgz=) MessageBox(應(yīng)發(fā)工資不能為空); return; CGzffmxb mxb; mxb.SetYGid(m_id); mxb.SetYGxm(m_name); mxb.SetGLgz(m_glgz); mxb.SetJBgz(m_jbgz); mxb.SetYLbxj(m_ylbxj); mxb.SetZWgz(m_zwgz); mxb.SetBXf(m_bxf); mxb.SetGRsds(m_grsds);

46、 mxb.SetSHbz(m_shbz); mxb.SetZFbz(m_zfbz); mxb.SetJiaBts(m_jiabts); int jiabgz; jiabgz=m_jiabts*40; mxb.SetJiaBgz(jiabgz); mxb.SetSjts(m_sjts); int sjkk; sjkk=m_sjts*40; mxb.SetSJkk(sjkk); mxb.SetYFje(atoi(yfgz); mxb.SetSFje(m_sfgz); mxb.sql_insert(); CYgjbsjb sjb; sjb.SetJiaBts(m_jiabts); sjb.SetJi

47、aBgz(jiabgz); sjb.SetSjts(m_sjts); sjb.SetSJkk(sjkk); sjb.sql_update(m_id); CDialog:OnOK(); 6.6 用戶管理模塊設(shè)計 6.6.1 實現(xiàn)目標(biāo) 實現(xiàn)新建、刪除用戶功能,用戶管理對話框設(shè)計如圖 17 所示。 圖 17 用戶管理對話框 6.6.2 設(shè)計步驟 (1) 向項目中添加一個新 Dialog 資源,資源 ID 為 IDD_XINJYH。在 IDD_XINJYH 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜 單命令,打開“Dialog Properties”對話框。在“Dialog

48、 Properties”對話框中選擇 General 選項卡,更改其“Caption”文本框內(nèi)容為“用戶管理” 。 (2) 從 Controls 面板上向 Dialog 資源中添加 4 個 Static、1 個 Combo、3 個 Edit、1 個 Button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 8 所 示。 表 8 資源設(shè)置 IDPropertiesType Member IDC_EDIT1 IDC_EDIT2 IDC_EDIT3 IDC_COMBO1 IDOK IDC_BUTTON1 IDCANCEL 默認(rèn) Password true Password true 默認(rèn)

49、Caption 添加 Caption 刪除 Caption 退出 CString CString CString CComboBox m_name m_pwd m_pwd1 m_jb 6.6.3 代碼分析 (1) 添加 OnInitDialog()函數(shù),初始化 Combo 控件,具體代碼如下: BOOL CXinjyhdlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here SetIcon(m_hIcon, TRUE); m_jb.AddString(系統(tǒng)管理員); m_jb.AddStri

50、ng(普通管理員); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE (2) 為“添加”按鈕添加消息響應(yīng)函數(shù),代碼如下: void CXinjyhdlg:OnOK() / TODO: Add extra validation here UpdateData(true); if(m_name=) MessageBox(請輸入用戶名); return; CString jb; m_jb.GetWindowText(

51、jb); if(jb=) MessageBox(級別不能為空); return; if(m_pwd=) MessageBox(請輸入密碼); return; if(m_pwd1=) MessageBox(請確認(rèn)密碼); return; if(m_pwd!=m_pwd1) MessageBox(兩次密碼不同); return; CCzyxxb xxb; if(xxb.Havename(m_name)=1) MessageBox(用戶以存在,請重新輸入); return; xxb.SetCzyName(m_name); xxb.SetPwd(m_pwd); m_jb.GetLBText(m_jb.

52、GetCurSel(),strjb); if(strjb=系統(tǒng)管理員) strjb=1; else strjb=0; xxb.SetCzyjb(strjb); xxb.sql_insert(); CDialog:OnOK(); (3) 為“刪除”按鈕添加消息響應(yīng)函數(shù),代碼如下: void CXinjyhdlg:OnButton1() / TODO: Add your control notification handler code here UpdateData(true); if(MessageBox(是否刪除當(dāng)前記錄,請確認(rèn),MB_YESNO)=IDYES) CCzyxxb xxb; x

53、xb.sql_delete(m_name); (4) 當(dāng)用戶單擊主界面菜單中的“用戶管理”菜單項時,將執(zhí)行 OnMenuyhgl 函數(shù),具體代碼如下: void CGZGLXTDlg:OnMenuyhgl() / TODO: Add your command handler code here if(ffxxb.GetCzyjb()=1) CXinjyhdlg dlg; dlg.DoModal(); else MessageBox(沒有權(quán)限); return; 6.7 總體查詢模塊設(shè)計 6.7.1 實現(xiàn)目標(biāo) 便于用戶查詢員工的工資,公司發(fā)放工資總額??傮w查詢對話框設(shè)計如圖 18 所示。 圖 1

54、8 “總體查詢”對話框 6.7.2 設(shè)計步驟 (1) 向項目中添加一個新 Dialog 資源,資源 ID 為 IDD_ZTCX。在 IDD_ZTCX 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“Properties”菜單命令,打開 “Dialog Properties”對話框。在“Dialog Properties”對話框中選擇 General 選項卡, 更改其“Caption”文本框內(nèi)容為“總體查詢” 。 (2) 從 Controls 面板上向 Dialog 資源中添加 1 個 Static、1 個 DataCombo、2 個 Check Box 控件、1 個 ADO Data 控件、1

55、個 DataGrid、1 個 Date Time、1 個 Button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 9 所示。 表 9 資源設(shè)置 IDPropertiesType Member IDC_CHECK1 IDC_CHECK2 IDC_DATACOMBO1 IDC_ADODC1 IDC_DATETIMEOICKER1 IDC_DATAGRID1 IDC_CHAXUN IDOK IDCANCEL 默認(rèn) 默認(rèn) 默認(rèn) Caption 選擇 默認(rèn) Caption 查詢 Caption 查詢 Caption 工資總額 Caption 退出 BOOL BOOL CDataCombo C

56、Adodc CDateTimeCtrl CDataGrid m_check1 m_check2 m_dc m_ad m_time m_da (3) ADO Data 控件具體設(shè)置如下。 右鍵單擊該控件,從彈出的菜單中單擊“Properties”項,彈出“ADO Data 控 件屬性”對話框。 在“General”選項卡取消“Visible”復(fù)選框的選擇,因為一般使用 ADO Data 控件的對話框控件不可見。 單擊“通用”選項卡,選擇“使用連接字符串”選項,然后單擊“生成”按鈕,如 圖 19 所示。 圖 19 設(shè)置數(shù)據(jù)源 接著彈出“數(shù)據(jù)連接屬性”對話框,在“提供者”頁中選擇“Microsoft

57、 OLE DB Provider for SQL Server”選項,如圖 20 所示。 單擊“下一步”按鈕,在“連接”選項卡上設(shè)置對 SQL Server 的連接屬性, 包括選擇服務(wù)器,選擇數(shù)據(jù)庫,具體如圖 21 所示。 圖 20 “數(shù)據(jù)連接屬性”對話框 圖 21 “連接”選項卡 單擊“確定”按鈕,完成對“數(shù)據(jù)連接屬性”的設(shè)置。 在“ADO Data 控件屬性”對話框中單擊 “記錄源”選項卡,在“命令類 型” 欄中選擇“1-adCmdText” ,然后在“命令文本(SQL)”中輸入“SELECT YGid AS 員工編號,YGxm AS 員工姓名,JBgz AS 基本工資,GLgz AS 工

58、齡工 資,ZWgz AS 職務(wù)工資,YLbxj AS 養(yǎng)老保險金,GRsds AS 個人所得稅,SHbz AS 生活補助,ZFbz AS 住房補助,BXf AS 保險費,JiaBts AS 加班天數(shù),JiaBgz AS 加班工資,SJts AS 事假天數(shù),SJkk AS 事假扣款,YFje AS 應(yīng)發(fā)金額,SFje AS 實發(fā)金額,Yu_E AS 余額,SJian AS 時間 FROM Gzffmxb” ,如圖 22 所示。 圖 22 “記錄源”選項卡 (4) DataGrid 控件具體設(shè)置如下。 右鍵單擊 DataGrid 控件,從彈出的菜單中單擊“properties”選項,然后彈出 “D

59、ataGrid 控件屬性”對話框。選擇“ALL” 選項卡。將“AllowUpdate”屬性設(shè) 置為“False” ,將“DataSource”屬性設(shè)置為“IDC ADODC1” ,如圖 23 所示。 圖 23 DataGrid 控件“All”選項卡 (5) DataCombo 控件具體設(shè)置如下。 右鍵單擊 DataCombo 控件,從彈出的菜單中單擊“properties”選項,然后彈 出 “DataCombo 控件屬性”對話框。選擇“ALL” 選項卡。將“DataField”屬 性設(shè)置為“員工編號” ,將“DataSource”屬性設(shè)置為“IDC ADODC1” ,如圖 24 所示。 圖 2

60、4 DataCombo 控件“All”選項卡 6.7.3 代碼分析 (1) 當(dāng)啟動對話框時,將執(zhí)行 OnInitDialog 函數(shù),設(shè)置 DataGrid 控件的列長。 具體代碼如下: BOOL CZongtcxdlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here SetIcon(m_hIcon, TRUE); /設(shè)置復(fù)選框初始化顯示 m_check1=TRUE; m_check2=TRUE; UpdateData(false); /設(shè)置 DataGrid 控件各列顯示的長度 _vari

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論