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

下載本文檔

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

文檔簡介

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

2、工資管理業(yè)務(wù)范圍。企業(yè)應(yīng)用本系統(tǒng)后,可以有效的提高工資管理水 平。本文從需求分析、可行性分析、總體設(shè)計、數(shù)據(jù)庫設(shè)計、功能模塊編程實(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 實(shí)現(xiàn)目標(biāo).13 6.3.2 設(shè)計步驟.13 6.3.3 代碼分析.14 6.4 員工錄入模塊設(shè)計 .15 6.4.1 實(shí)現(xiàn)目標(biāo).15 6.4.2 設(shè)計步驟.16 6.4.3 代碼分析.16 6.

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

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

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

12、資查詢、加班/休假查詢、 總體查詢四個部分。 (3)工資管理模塊 工資管理模塊主要包括工資發(fā)放管理、基本工資管理、浮動工資管理三個 部分。 (4)系統(tǒng)管理模塊 系統(tǒng)管理模塊主要包括用戶管理、修改密碼、退出系統(tǒng)三個部分。 (5)幫助模塊 幫助模塊主要包括關(guān)于一個部分。 版權(quán)所有:版權(quán)所有:dgghate 3 3 可行性分析 傳統(tǒng)的工資管理方法,都是通過人工統(tǒng)計和計算的管理方式進(jìn)行的。這樣的 管理方法不但費(fèi)時費(fèi)力,也容易產(chǎn)生計算上的錯誤和疏漏;計算機(jī)技術(shù)的全面普 及,打破了財務(wù)管理的傳統(tǒng)管理方法,提高了管理效率的同時,克服了傳統(tǒng)管理 方法中易產(chǎn)生的問題,使管理員能夠有序的、全面的對每一位職工進(jìn)行管

13、理,嚴(yán) 格按照工資條款及發(fā)放制度計算并發(fā)放員工工資。 企業(yè)工資管理系統(tǒng)可以完成日常工資的管理,如查詢、修改、增加、刪除以 及存儲等操作,迅速準(zhǔn)確地完成各種工資數(shù)據(jù)的統(tǒng)計和匯總工作,快速打印出工 資報表等,大大提高了企業(yè)工資管理效率2。 版權(quán)所有:版權(quán)所有:dgghate 4 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)管理幫助 員工錄入 員工刪除 基本工資管理 浮動工資管理 浮動工資查詢 加班休假查詢 總體查詢 用戶管

14、理 修改密碼 退出系統(tǒng) 關(guān)于 基本工資查詢 工資發(fā)放管理 圖 1 系統(tǒng)功能圖 4.2 設(shè)計目標(biāo) 本系統(tǒng)是根據(jù)中小企業(yè)的實(shí)際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)對客戶的自 動化管理,通過本系統(tǒng)可以達(dá)到以下目標(biāo): (1)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。 (2)界面設(shè)計美觀,人機(jī)交互界面友好。 (3)信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安全可靠。 (4)采用多種方式查詢數(shù)據(jù)。 (5)操作員可以隨時修改自己的口令。 (6)對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的錯誤。 5 系統(tǒng)設(shè)計 5.1 使用的相關(guān)技術(shù)介紹 visual c+是 microsoft visual studio 開發(fā)組件中最為

15、強(qiáng)大的編程工具。一方面, 版權(quán)所有:版權(quán)所有:dgghate 5 它是當(dāng)今最為流行的系統(tǒng)開發(fā)語言,另一方面,它能夠和 microsoft 的操作系統(tǒng)無 縫結(jié)合,開發(fā)出高性能的 windows 應(yīng)用程序3。在數(shù)據(jù)庫領(lǐng)域,visual c+的表現(xiàn) 也異常搶眼,它提供了多種數(shù)據(jù)庫開發(fā)技術(shù),支持幾乎所有的數(shù)據(jù)庫系統(tǒng),如 sql server,db2,sybase,foxpro,access 等;而且還提供了良好的開發(fā)環(huán)境和 豐富的文檔支持??傊?,利用 visual c+可以開發(fā)出功能強(qiáng)大、性能優(yōu)良和界面 友好的數(shù)據(jù)庫應(yīng)用程序,這也正是許多公司長期以來采用 visual c+開發(fā)數(shù)據(jù)庫 系統(tǒng)的重要原因3

16、。visual c+提供了可視化的編程環(huán)境,不僅可以編寫面向用戶 的應(yīng)用程序,而且還適用于編寫直接對系統(tǒng)或設(shè)備操作的底層程序4。 sql server 2000 在 sql server 7.0 版的基礎(chǔ)上擴(kuò)展了數(shù)據(jù)庫管理系統(tǒng)的性能、 可靠性、質(zhì)量和易用性。由于增加了這幾種新的功能,因此它成為大規(guī)模聯(lián)機(jī)事 務(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 2

17、000 可以獲得非凡的可伸縮性和可靠性。通過向上 伸縮和向外擴(kuò)展的能力,sql server 滿足了苛刻的電子商務(wù)和企業(yè)應(yīng)用程序要求。 ado 是 activex data object(activex 數(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ù)表

18、。 圖 2 所示的即為本系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系 統(tǒng)所有數(shù)據(jù)表??梢郧逦胤从硵?shù)據(jù)庫信息。 圖 2 數(shù)據(jù)庫概要說明 版權(quán)所有:版權(quán)所有:dgghate 6 5.2.2 部分?jǐn)?shù)據(jù)表的結(jié)構(gòu) 表 1 ygjcxxb(員工基礎(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 mone

19、y money money money 30 30 8 8 8 8 員工編號 員工姓名 基本工資 職務(wù)工資 工齡工資 養(yǎng)老保險金 表 3 ygfdgzxmb(員工浮動工資表) 字段名數(shù)據(jù)類型長度描述 ygid ygxm grsds zfbz bxf shbz varchar varchar money money money money 30 30 8 8 8 8 員工編號 員工姓名 個人所得稅 住房補(bǔ)助 保險費(fèi) 生活補(bǔ)助 表 4 ygjbsjb(員工加班休假表) 字段名數(shù)據(jù)類型長度描述 ygid ygxm jiabts jiabgz sjts varchar varchar int mone

20、y int 30 30 4 8 4 員工編號 員工姓名 加班天數(shù) 加班工資 休假天數(shù) 版權(quán)所有:版權(quán)所有:dgghate 7 sjkkmoney8 休假扣款 5.2.3 部分 e-r 模型的設(shè)計 員工基礎(chǔ)信息 性別文化程度 員工編號員工姓名 圖 3 系統(tǒng)部分實(shí)體屬性圖 員工基本工資信息 基本工資職務(wù)工資 員工編號員工姓名 工齡工資養(yǎng)老保險金 圖 4 系統(tǒng)部分實(shí)體屬性圖 員工浮動工資信息 保險費(fèi)生活補(bǔ)助 員工編號員工姓名 個人所得稅住房補(bǔ)助 版權(quán)所有:版權(quán)所有:dgghate 8 圖 5 系統(tǒng)部分實(shí)體屬性圖 員工加班休假信息 休假天數(shù)休假扣款 員工編號員工姓名 加班天數(shù)加班工資 圖 6 系統(tǒng)部分

21、實(shí)體屬性圖 圖 7 系統(tǒng)部分實(shí)體屬性圖 6 主要功能模塊設(shè)計 6.1 建立工程框架 直接利用 mfc appwizard 應(yīng)用程序向?qū)?chuàng)建一個基于對話框的應(yīng)用程序9, 對話框是 windows 應(yīng)用程序中的一種常用資源,其主要功能是輸出信息和接收用 戶的輸入數(shù)據(jù)10。 在 visual c+中建立工資管理系統(tǒng)的基本框架,步驟如下: 單擊菜單“file-new”命令,打開“new”對話框,單擊“projects”選項(xiàng)卡, 選擇“mfc appwizard(exe)” ,輸入工程名,并設(shè)置路徑,如圖 8 所示。 用戶信息 級別密碼用戶名 版權(quán)所有:版權(quán)所有:dgghate 9 圖 8 “new”對

22、話框 單擊“ok”按鈕, “mfc appwizard-step1”對話框已經(jīng)打開,如圖 9 所示, 選項(xiàng)“dialog based” ,接著單擊“next”按鈕。 圖 9 “mfc appwizard-step 1”對話框 在彈出的“mfc appwizard-step 2 of 4”對話框中,輸入對話框標(biāo)題,如圖 10 版權(quán)所有:版權(quán)所有:dgghate 10 所示。 圖 10 “mfc appwizard-step 2 of 4”對話框 在接下來的對話框中保持默認(rèn)的選項(xiàng)。設(shè)置好的屬性如圖 11 所示,單擊 “ok”按鈕后,就完成了新建工程。 版權(quán)所有:版權(quán)所有:dgghate 11 圖

23、11 設(shè)計好的工程屬性 6.2 主窗口設(shè)計 6.2.1 菜單資源設(shè)計 在程序設(shè)計中,我們所要做的很大一部分工作是對程序的輸入進(jìn)行響應(yīng),而 我們最常用的選擇方式就是用菜單進(jìn)行選擇。在 visual c+ 6.0 中,菜單功能的實(shí) 現(xiàn)(比如增減菜單和菜單項(xiàng),定義菜單的 id,菜單的布局以及菜單的初始化,提 示信息等)都是通過資源文件和相關(guān)函數(shù)來實(shí)現(xiàn)的11。 主窗口菜單設(shè)置的主要步驟如下: (1) 單擊“resourceview”選項(xiàng)卡,右鍵單擊“gzglxt resources”選項(xiàng),選 擇“insert”菜單項(xiàng),打開“insert resource”窗口,如圖 12 所示。 版權(quán)所有:版權(quán)所有:

24、dgghate 12 圖 12 “insert resource”窗口 (2) 選擇“menu”文件夾,單擊“new”按鈕,在 gzglxt resources 目錄下新 增一個 menu 目錄項(xiàng),菜單 id 為 idr_menu1。雙擊此菜單,對此菜單項(xiàng)的屬性進(jìn)行 設(shè)計。 6.2.2 客戶區(qū)設(shè)計 (1) 打開對話框 idd_gzglxt_dialog 屬性窗口,在對話框中添加 1 個 picture 控件,用來存放圖片。在 menu 組合框中選擇 idr_menu1。如圖 13 所示。 版權(quán)所有:版權(quán)所有:dgghate 13 圖 13 系統(tǒng)主界面 (2) 打開 classwizard 窗口

25、,為菜單項(xiàng) 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 實(shí)現(xiàn)目標(biāo) 登錄模塊功能是完成用戶登錄本系統(tǒng)的操作2,用戶登錄對話框的設(shè)計如圖 14 所示。 圖 14 登錄對話框 6.3.2 設(shè)計步驟 (1) 向項(xiàng)目中添加一個新 dialog 資源,資源 id 為 idd_login。在 idd_login 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜單 命令,

26、打開“dialog properties”對話框。在“dialog properties”對話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“登錄框” 。 版權(quán)所有:版權(quán)所有:dgghate 14 (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 默認(rèn) password tru

27、e 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(ffxxb.haveczy(m_na

28、me,m_pwd)!=1) messagebox(用戶名或密碼錯誤!); return; ffxxb.setczyname(m_name); jb=1; /判斷當(dāng)前用戶級別 if(ffxxb.haveczyjb(m_name,m_pwd,jb)=1) 版權(quán)所有:版權(quán)所有:dgghate 15 ffxxb.setczyjb(jb); cdialog:onok(); 下面在主對話框中添加代碼,使對話框在啟動時首先打開登錄對話框。在主窗 口選擇 oninitdialog 函數(shù),該函數(shù)將打開登錄對話框,如果用戶不是通過單擊 “登錄”按鈕關(guān)閉對話框,則調(diào)用 onok 函數(shù)關(guān)閉主對話框,具體代碼如下: b

29、ool cwordglxtdlg: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 實(shí)現(xiàn)目標(biāo) 添加員工信息,員工錄入對話框的設(shè)計如圖 15 所示。 版權(quán)所有:版權(quán)所有:dgghate 16 圖 15 員工錄入對話框 6.4.2 設(shè)計

30、步驟 (1) 向項(xiàng)目中添加一個新 dialog 資源,資源 id 為 idd_ygtjk。在 idd_ygtjk 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜單 命令,打開“dialog properties”對話框。在“dialog properties”對話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“員工錄入” 。 (2) 從 controls 面板上向 dialog 資源中添加 4 個 static、2 個 combo、2 個 edit,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 6 所示。 表 6 資源設(shè)置 idproperti

31、estype member idc_edit1 idc_ 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() 版權(quán)所有:版權(quán)所有:dgghate 17 cdialog:o

32、ninitdialog(); / todo: add extra initialization 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 shou

33、ld return false (2) 當(dāng)用戶單擊“添加“按鈕時,實(shí)現(xiàn)添加員工功能,其響應(yīng)代碼如下 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); 版權(quán)所有:版權(quán)所有:dg

34、ghate 18 xxb.setygxm(m_name); cstring sex,whcd; m_sex.getwindowtext(sex); 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); x

35、xb.setwhcd(strwhcd); xxb.sql_insert(); /向浮動工資表添加編號、姓名 cygfdgzxmb xmb; 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); 版權(quán)所有:版權(quán)所有:dgghat

36、e 19 sjb.sql_insert(); cdialog:onok(); 避免漏輸現(xiàn)象:對于一個軟件來說,在保證一定功能的基礎(chǔ)上,給使用者留 出的出錯機(jī)會越少,那么開發(fā)出來的軟件越成功。本系統(tǒng)在用戶漏輸某個重要字 段時,系統(tǒng)會彈出提示對話框警告,這個功能主要是在保存時判斷文本框的值是 否為空,如果不為空,就繼續(xù)向下執(zhí)行;如果為空,彈出錯誤提示12。 6.5 員工工資添加模塊設(shè)計 6.5.1 實(shí)現(xiàn)目標(biāo) 添加員工實(shí)際發(fā)放的工資情況,員工工資添加對話框設(shè)計如圖 16 所示。 圖 16 員工工資添加對話框 6.5.2 設(shè)計步驟 (1) 向項(xiàng)目中添加一個新 dialog 資源,資源 id 為 idd

37、_yggongzitj。在 idd_yggongzitj 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的 “properties”菜單命令,打開“dialog properties”對話框。在“dialog properties”對話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“員工 工資添加” 。 版權(quán)所有:版權(quán)所有:dgghate 20 (2) 從 controls 面板上向 dialog 資源中添加 19 個 static、17 個 edit、2 個 button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 7 所示。 表 7 資源設(shè)置 idproper

38、tiestype member idc_edit1 idc_edit2 idc_edit3 idc_edit4 idc_edit5 idc_edit6 idc_edit7 idc_edit8 idc_edit9 idc_edit10 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)

39、 默認(rèn) 默認(rèn) read-only true read-only true caption 添加 caption 退出 caption 上月余額 caption 應(yīng)發(fā)工資 cstring cstring int int int 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 代碼分

40、析 (1) 雙擊“idc_edit9”控件,自動生成 onchangeedit9 函數(shù),實(shí)現(xiàn)用戶添加 加班天數(shù)時,加班工資自動計算并顯示,具體代碼如下: void cyggztjdlg:onchangeedit9() / 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() 版權(quán)所有:版權(quán)所

41、有:dgghate 21 / with the enm_change flag ored into the mask. updatedata(true); cstring str; str.format(%d,m_jiabts*40); m_jiabgz.setwindowtext(str); updatedata(false); / todo: add your control notification handler code here (2) 雙擊“上月余額”按鈕,系統(tǒng)自動添加消息響應(yīng)函數(shù) onbuttonsyye,具 體代碼如下。 void cyggztjdlg:onbuttonsyy

42、e() / todo: add your control notification handler code here updatedata(true); if(m_id=) messagebox(請先填寫員工編號); return; adoconn m_adoconn; 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_

43、id,y,m)=1) 版權(quán)所有:版權(quán)所有:dgghate 22 cstring sql; sql.format(select * from gzffmxb where ygid=%s and year(sjian)=%i and month(sjian)=%i,m_id,y,m); m_adoconn.getrecordset(_bstr_t)sql); str=(char*)(_bstr_t)m_adoconn.m_precordset-getcollect(yu_e); m_syye.setwindowtext(str); else m_syye.setwindowtext(0); upd

44、atedata(false); m_adoconn.exitconnect(); 在頭文件中添加下列代碼。 ctime t; (3) 雙擊“應(yīng)發(fā)工資”按鈕,系統(tǒng)自動添加消息響應(yīng)函數(shù) onbuttonyfgz,具 體代碼如下: void cyggztjdlg:onbuttonyfgz() / todo: add your control notification handler code here updatedata(true); cstring syye; m_syye.getwindowtext(syye); if(syye=) messagebox(請先添加上月余額); return;

45、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; 版權(quán)所有:版權(quán)所有:dgghate 23 str.format(%d,yfgz); m_yfgz.setwindowtext(str); (4) 為“添加”按鈕添加代碼,實(shí)現(xiàn)添加員工工資功能,代碼如下: void cyggztjdlg:onok() / todo: add extra validation here updatedata(t

46、rue); cygjcxxb xxb; cstring yfgz; m_yfgz.getwindowtext(yfgz); if(m_id=) messagebox(編號不能為空); return; if(xxb.haveid(m_id)!=1) messagebox(員工編號不存在); return; if(m_name=) messagebox(姓名不能為空); return; if(xxb.havename(m_id,m_name)!=1) messagebox(員工不存在); return; if(yfgz=) messagebox(應(yīng)發(fā)工資不能為空); 版權(quán)所有:版權(quán)所有:dggha

47、te 24 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); mxb.setshbz(m_shbz); mxb.setzfbz(m_zfbz); mxb.setjiabts(m_jiabts); int jiabgz; jiabgz=m_jiabts*40; mxb.s

48、etjiabgz(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.setjiabgz(jiabgz); sjb.setsjts(m_sjts); sjb.setsjkk(sjkk); sjb.sql_update(m_id); cdialog:onok(); 版權(quán)所有:版權(quán)所有:dgg

49、hate 25 6.6 用戶管理模塊設(shè)計 6.6.1 實(shí)現(xiàn)目標(biāo) 實(shí)現(xiàn)新建、刪除用戶功能,用戶管理對話框設(shè)計如圖 17 所示。 圖 17 用戶管理對話框 6.6.2 設(shè)計步驟 (1) 向項(xiàng)目中添加一個新 dialog 資源,資源 id 為 idd_xinjyh。在 idd_xinjyh 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜 單命令,打開“dialog properties”對話框。在“dialog properties”對話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“用戶管理” 。 (2) 從 controls 面板上向 dialog

50、 資源中添加 4 個 static、1 個 combo、3 個 edit、1 個 button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 8 所 示。 版權(quán)所有:版權(quán)所有:dgghate 26 表 8 資源設(shè)置 idpropertiestype member idc_edit1 idc_edit2 idc_edit3 idc_combo1 idok idc_button1 idcancel 默認(rèn) password true password true 默認(rèn) caption 添加 caption 刪除 caption 退出 cstring cstring cstring ccombo

51、box 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.addstring(普通管理員); return true; / return true unless you set the focus

52、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; 版權(quán)所有:版權(quán)所有:dgghate 27 m_jb.getwindowtext(jb); if(jb=) messagebox(級別不能為空); return; i

53、f(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.getcursel(),strjb); if(strjb=系統(tǒng)管理員) strjb=

54、1; else 版權(quán)所有:版權(quán)所有:dgghate 28 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; xxb.sql_delete(m_name)

55、; (4) 當(dāng)用戶單擊主界面菜單中的“用戶管理”菜單項(xià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; 版權(quán)所有:版權(quán)所有:dgghate 29 6.7 總體查詢模塊設(shè)計 6.7.1 實(shí)現(xiàn)目標(biāo) 便于用戶查詢員工的工資,公司發(fā)放工資總額??傮w查詢對話框設(shè)計如圖 18 所示。 圖 1

56、8 “總體查詢”對話框 6.7.2 設(shè)計步驟 (1) 向項(xiàng)目中添加一個新 dialog 資源,資源 id 為 idd_ztcx。在 idd_ztcx 對話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜單命令,打開 “dialog properties”對話框。在“dialog properties”對話框中選擇 general 選項(xiàng)卡, 更改其“caption”文本框內(nèi)容為“總體查詢” 。 (2) 從 controls 面板上向 dialog 資源中添加 1 個 static、1 個 datacombo、2 個 check box 控件、1 個 ado data 控件、1

57、個 datagrid、1 個 date time、1 個 button 控件,更改資源的屬性,并為資源設(shè)置相對應(yīng)的變量,如表 9 所示。 版權(quán)所有:版權(quán)所有:dgghate 30 表 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 退出 b

58、ool bool cdatacombo cadodc cdatetimectrl cdatagrid m_check1 m_check2 m_dc m_ad m_time m_da (3) ado data 控件具體設(shè)置如下。 右鍵單擊該控件,從彈出的菜單中單擊“properties”項(xiàng),彈出“ado data 控 件屬性”對話框。 在“general”選項(xiàng)卡取消“visible”復(fù)選框的選擇,因?yàn)橐话闶褂?ado data 控件的對話框控件不可見。 單擊“通用”選項(xiàng)卡,選擇“使用連接字符串”選項(xiàng),然后單擊“生成”按鈕,如 圖 19 所示。 圖 19 設(shè)置數(shù)據(jù)源 接著彈出“數(shù)據(jù)連接屬性”對話框

59、,在“提供者”頁中選擇“microsoft ole db provider for sql server”選項(xiàng),如圖 20 所示。 單擊“下一步”按鈕,在“連接”選項(xiàng)卡上設(shè)置對 sql server 的連接屬性, 版權(quán)所有:版權(quán)所有:dgghate 31 包括選擇服務(wù)器,選擇數(shù)據(jù)庫,具體如圖 21 所示。 圖 20 “數(shù)據(jù)連接屬性”對話框 圖 21 “連接”選項(xiàng)卡 版權(quán)所有:版權(quán)所有:dgghate 32 單擊“確定”按鈕,完成對“數(shù)據(jù)連接屬性”的設(shè)置。 在“ado data 控件屬性”對話框中單擊 “記錄源”選項(xiàng)卡,在“命令類 型” 欄中選擇“1-adcmdtext” ,然后在“命令文本(s

60、ql)”中輸入“select ygid as 員工編號,ygxm as 員工姓名,jbgz as 基本工資,glgz as 工齡工 資,zwgz as 職務(wù)工資,ylbxj as 養(yǎng)老保險金,grsds as 個人所得稅,shbz as 生活補(bǔ)助,zfbz as 住房補(bǔ)助,bxf as 保險費(fèi),jiabts as 加班天數(shù),jiabgz as 加班工資,sjts as 事假天數(shù),sjkk as 事假扣款,yfje as 應(yīng)發(fā)金額,sfje as 實(shí)發(fā)金額,yu_e as 余額,sjian as 時間 from gzffmxb” ,如圖 22 所示。 圖 22 “記錄源”選項(xiàng)卡 (4) data

溫馨提示

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

最新文檔

評論

0/150

提交評論