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

下載本文檔

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

文檔簡(jiǎn)介

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

2、工資管理業(yè)務(wù)范圍。企業(yè)應(yīng)用本系統(tǒng)后,可以有效的提高工資管理水 平。本文從需求分析、可行性分析、總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、功能模塊編程實(shí)現(xiàn) 等方面闡述了本系統(tǒng)的設(shè)計(jì)過程。為便于說明,文中繪制了程序結(jié)構(gòu)框圖、部分 界面圖和數(shù)據(jù)表。最后附有主要的源程序代碼清單。 關(guān)鍵詞關(guān)鍵詞 :數(shù)據(jù)庫(kù) 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è)計(jì).4 4.1 系統(tǒng)功能結(jié)構(gòu)

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

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

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

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

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

13、理,嚴(yán) 格按照工資條款及發(fā)放制度計(jì)算并發(fā)放員工工資。 企業(yè)工資管理系統(tǒng)可以完成日常工資的管理,如查詢、修改、增加、刪除以 及存儲(chǔ)等操作,迅速準(zhǔn)確地完成各種工資數(shù)據(jù)的統(tǒng)計(jì)和匯總工作,快速打印出工 資報(bào)表等,大大提高了企業(yè)工資管理效率2。 版權(quán)所有:版權(quán)所有:dgghate 4 4 總體設(shè)計(jì) 系統(tǒng)總體設(shè)計(jì)是把需求轉(zhuǎn)化為軟件系統(tǒng)的最重要的環(huán)節(jié)。系統(tǒng)總體設(shè)計(jì)的優(yōu) 劣在根本上決定了軟件系統(tǒng)的質(zhì)量3。 4.1 系統(tǒng)功能結(jié)構(gòu) 工資系統(tǒng)的功能結(jié)構(gòu)如圖 1 所示。 工資管理系統(tǒng) 基本信息管理工資管理工資查詢系統(tǒng)管理幫助 員工錄入 員工刪除 基本工資管理 浮動(dòng)工資管理 浮動(dòng)工資查詢 加班休假查詢 總體查詢 用戶管

14、理 修改密碼 退出系統(tǒng) 關(guān)于 基本工資查詢 工資發(fā)放管理 圖 1 系統(tǒng)功能圖 4.2 設(shè)計(jì)目標(biāo) 本系統(tǒng)是根據(jù)中小企業(yè)的實(shí)際需求而開發(fā)的,完全能夠?qū)崿F(xiàn)企業(yè)對(duì)客戶的自 動(dòng)化管理,通過本系統(tǒng)可以達(dá)到以下目標(biāo): (1)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。 (2)界面設(shè)計(jì)美觀,人機(jī)交互界面友好。 (3)信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲(chǔ)安全可靠。 (4)采用多種方式查詢數(shù)據(jù)。 (5)操作員可以隨時(shí)修改自己的口令。 (6)對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的錯(cuò)誤。 5 系統(tǒng)設(shè)計(jì) 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ā)語(yǔ)言,另一方面,它能夠和 microsoft 的操作系統(tǒng)無(wú) 縫結(jié)合,開發(fā)出高性能的 windows 應(yīng)用程序3。在數(shù)據(jù)庫(kù)領(lǐng)域,visual c+的表現(xiàn) 也異常搶眼,它提供了多種數(shù)據(jù)庫(kù)開發(fā)技術(shù),支持幾乎所有的數(shù)據(jù)庫(kù)系統(tǒng),如 sql server,db2,sybase,foxpro,access 等;而且還提供了良好的開發(fā)環(huán)境和 豐富的文檔支持??傊?visual c+可以開發(fā)出功能強(qiáng)大、性能優(yōu)良和界面 友好的數(shù)據(jù)庫(kù)應(yīng)用程序,這也正是許多公司長(zhǎng)期以來(lái)采用 visual c+開發(fā)數(shù)據(jù)庫(kù) 系統(tǒng)的重要原因3

16、。visual c+提供了可視化的編程環(huán)境,不僅可以編寫面向用戶 的應(yīng)用程序,而且還適用于編寫直接對(duì)系統(tǒng)或設(shè)備操作的底層程序4。 sql server 2000 在 sql server 7.0 版的基礎(chǔ)上擴(kuò)展了數(shù)據(jù)庫(kù)管理系統(tǒng)的性能、 可靠性、質(zhì)量和易用性。由于增加了這幾種新的功能,因此它成為大規(guī)模聯(lián)機(jī)事 務(wù)處理(oltp) 、數(shù)據(jù)倉(cāng)庫(kù)和電子商務(wù)應(yīng)用程序的優(yōu)秀數(shù)據(jù)庫(kù)平臺(tái)5。sql server 2000 是基于 sql 客戶/服務(wù)器(c/s)模式的數(shù)據(jù)庫(kù)系統(tǒng),其圖形化界面使數(shù)據(jù)庫(kù) 管理更加簡(jiǎn)潔、靈活,同時(shí)又具有豐富的編程接口,為用戶從事程序開發(fā)提供了 更多的方便。使用 sql server 2

17、000 可以獲得非凡的可伸縮性和可靠性。通過向上 伸縮和向外擴(kuò)展的能力,sql server 滿足了苛刻的電子商務(wù)和企業(yè)應(yīng)用程序要求。 ado 是 activex data object(activex 數(shù)據(jù)對(duì)象)的縮寫,是目前最流行的客 戶端數(shù)據(jù)庫(kù)技術(shù)。ado 是建立在 ole db 底層技術(shù)之上的高級(jí)編程接口6。 5.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 5.2.1 數(shù)據(jù)庫(kù)概要說明 在使用數(shù)據(jù)庫(kù)之前,先創(chuàng)建數(shù)據(jù)庫(kù)7。數(shù)據(jù)表是包含數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的數(shù) 據(jù)庫(kù)對(duì)象,表定義為列的集合8。數(shù)據(jù)庫(kù) gzffxt 中包括員工基礎(chǔ)信息表、員工 基本工資表、員工浮動(dòng)工資表、員工加班/休假表、工資發(fā)放明細(xì)表、用戶表 6 個(gè) 數(shù)據(jù)表

18、。 圖 2 所示的即為本系統(tǒng)中數(shù)據(jù)庫(kù)中的數(shù)據(jù)表結(jié)構(gòu)圖,該數(shù)據(jù)表結(jié)構(gòu)圖包含系 統(tǒng)所有數(shù)據(jù)表??梢郧逦胤从硵?shù)據(jù)庫(kù)信息。 圖 2 數(shù)據(jù)庫(kù)概要說明 版權(quán)所有:版權(quán)所有:dgghate 6 5.2.2 部分?jǐn)?shù)據(jù)表的結(jié)構(gòu) 表 1 ygjcxxb(員工基礎(chǔ)信息表) 字段名數(shù)據(jù)類型長(zhǎng)度描述 ygid ygxm sex whcd varchar varchar char varchar 30 30 2 20 員工編號(hào) 員工姓名 性別 文化程度 表 2 ygjbgzb(員工基本工資表) 字段名數(shù)據(jù)類型長(zhǎng)度描述 ygid ygxm jbgz zwgz glgz ylbxj varchar varchar mone

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

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

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

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

23、11 設(shè)計(jì)好的工程屬性 6.2 主窗口設(shè)計(jì) 6.2.1 菜單資源設(shè)計(jì) 在程序設(shè)計(jì)中,我們所要做的很大一部分工作是對(duì)程序的輸入進(jìn)行響應(yīng),而 我們最常用的選擇方式就是用菜單進(jìn)行選擇。在 visual c+ 6.0 中,菜單功能的實(shí) 現(xiàn)(比如增減菜單和菜單項(xiàng),定義菜單的 id,菜單的布局以及菜單的初始化,提 示信息等)都是通過資源文件和相關(guān)函數(shù)來(lái)實(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 目錄下新 增一個(gè) menu 目錄項(xiàng),菜單 id 為 idr_menu1。雙擊此菜單,對(duì)此菜單項(xiàng)的屬性進(jìn)行 設(shè)計(jì)。 6.2.2 客戶區(qū)設(shè)計(jì) (1) 打開對(duì)話框 idd_gzglxt_dialog 屬性窗口,在對(duì)話框中添加 1 個(gè) picture 控件,用來(lái)存放圖片。在 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)閉對(duì)話框,退出系統(tǒng)。 void cgzglxtdlg:onexit() / todo: add your command handler code here onok(); 6.3 登錄模塊設(shè)計(jì) 6.3.1 實(shí)現(xiàn)目標(biāo) 登錄模塊功能是完成用戶登錄本系統(tǒng)的操作2,用戶登錄對(duì)話框的設(shè)計(jì)如圖 14 所示。 圖 14 登錄對(duì)話框 6.3.2 設(shè)計(jì)步驟 (1) 向項(xiàng)目中添加一個(gè)新 dialog 資源,資源 id 為 idd_login。在 idd_login 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜單 命令,

26、打開“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“登錄框” 。 版權(quán)所有:版權(quán)所有:dgghate 14 (2) 從 controls 面板上向 dialog 資源中添加 2 個(gè) static、1 個(gè) picture、2 個(gè) edit,更改資源的屬性,并為資源設(shè)置相對(duì)應(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 /將對(duì)話框中編輯框的數(shù)據(jù)讀取到成員變量中 updatedata(true); if(m_name=) messagebox(請(qǐng)輸入用戶名); return; /如果讀取數(shù)據(jù)和用戶輸入不同,則返回 if(ffxxb.haveczy(m_na

28、me,m_pwd)!=1) messagebox(用戶名或密碼錯(cuò)誤!); return; ffxxb.setczyname(m_name); jb=1; /判斷當(dāng)前用戶級(jí)別 if(ffxxb.haveczyjb(m_name,m_pwd,jb)=1) 版權(quán)所有:版權(quán)所有:dgghate 15 ffxxb.setczyjb(jb); cdialog:onok(); 下面在主對(duì)話框中添加代碼,使對(duì)話框在啟動(dòng)時(shí)首先打開登錄對(duì)話框。在主窗 口選擇 oninitdialog 函數(shù),該函數(shù)將打開登錄對(duì)話框,如果用戶不是通過單擊 “登錄”按鈕關(guān)閉對(duì)話框,則調(diào)用 onok 函數(shù)關(guān)閉主對(duì)話框,具體代碼如下: 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è)計(jì) 6.4.1 實(shí)現(xiàn)目標(biāo) 添加員工信息,員工錄入對(duì)話框的設(shè)計(jì)如圖 15 所示。 版權(quán)所有:版權(quán)所有:dgghate 16 圖 15 員工錄入對(duì)話框 6.4.2 設(shè)計(jì)

30、步驟 (1) 向項(xiàng)目中添加一個(gè)新 dialog 資源,資源 id 為 idd_ygtjk。在 idd_ygtjk 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜單 命令,打開“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“員工錄入” 。 (2) 從 controls 面板上向 dialog 資源中添加 4 個(gè) static、2 個(gè) combo、2 個(gè) edit,更改資源的屬性,并為資源設(shè)置相對(duì)應(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í),實(shí)現(xiàn)添加員工功能,其響應(yīng)代碼如下 void cygjctjdlg:onok() / todo: add extra validation here cygjcxxb xxb; updatedata(true); if(m_id=) messagebox(編號(hào)不能為空); return; if(m_name=) messagebox(姓名不能為空); return; if(xxb.haveid(m_id)=1) messagebox(員工編號(hào)已存在); 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(); /向浮動(dòng)工資表添加編號(hào)、姓名 cygfdgzxmb xmb; xmb.setygid(m_id); xmb.setygxm(m_name); xmb.sql_insert(); /向基本工資表添加編號(hào)、姓名 cygjbgzb gzb; gzb.setygid(m_id); gzb.setygxm(m_name); gzb.sql_insert(); /向加班休假表添加編號(hào)、姓名 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)象:對(duì)于一個(gè)軟件來(lái)說,在保證一定功能的基礎(chǔ)上,給使用者留 出的出錯(cuò)機(jī)會(huì)越少,那么開發(fā)出來(lái)的軟件越成功。本系統(tǒng)在用戶漏輸某個(gè)重要字 段時(shí),系統(tǒng)會(huì)彈出提示對(duì)話框警告,這個(gè)功能主要是在保存時(shí)判斷文本框的值是 否為空,如果不為空,就繼續(xù)向下執(zhí)行;如果為空,彈出錯(cuò)誤提示12。 6.5 員工工資添加模塊設(shè)計(jì) 6.5.1 實(shí)現(xiàn)目標(biāo) 添加員工實(shí)際發(fā)放的工資情況,員工工資添加對(duì)話框設(shè)計(jì)如圖 16 所示。 圖 16 員工工資添加對(duì)話框 6.5.2 設(shè)計(jì)步驟 (1) 向項(xiàng)目中添加一個(gè)新 dialog 資源,資源 id 為 idd

37、_yggongzitj。在 idd_yggongzitj 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的 “properties”菜單命令,打開“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“員工 工資添加” 。 版權(quán)所有:版權(quán)所有:dgghate 20 (2) 從 controls 面板上向 dialog 資源中添加 19 個(gè) static、17 個(gè) edit、2 個(gè) button 控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(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”控件,自動(dòng)生成 onchangeedit9 函數(shù),實(shí)現(xiàn)用戶添加 加班天數(shù)時(shí),加班工資自動(dòng)計(jì)算并顯示,具體代碼如下: 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)自動(dòng)添加消息響應(yīng)函數(shù) onbuttonsyye,具 體代碼如下。 void cyggztjdlg:onbuttonsyy

42、e() / todo: add your control notification handler code here updatedata(true); if(m_id=) messagebox(請(qǐng)先填寫員工編號(hào)); 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)自動(dò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(請(qǐng)先添加上月余額); 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(編號(hào)不能為空); return; if(xxb.haveid(m_id)!=1) messagebox(員工編號(hào)不存在); 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è)計(jì) 6.6.1 實(shí)現(xiàn)目標(biāo) 實(shí)現(xiàn)新建、刪除用戶功能,用戶管理對(duì)話框設(shè)計(jì)如圖 17 所示。 圖 17 用戶管理對(duì)話框 6.6.2 設(shè)計(jì)步驟 (1) 向項(xiàng)目中添加一個(gè)新 dialog 資源,資源 id 為 idd_xinjyh。在 idd_xinjyh 對(duì)話框資源中單擊鼠標(biāo)右鍵,執(zhí)行彈出快捷菜單的“properties”菜 單命令,打開“dialog properties”對(duì)話框。在“dialog properties”對(duì)話框中選擇 general 選項(xiàng)卡,更改其“caption”文本框內(nèi)容為“用戶管理” 。 (2) 從 controls 面板上向 dialog

50、 資源中添加 4 個(gè) static、1 個(gè) combo、3 個(gè) edit、1 個(gè) button 控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(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(請(qǐng)輸入用戶名); return; cstring jb; 版權(quán)所有:版權(quán)所有:dgghate 27 m_jb.getwindowtext(jb); if(jb=) messagebox(級(jí)別不能為空); return; i

53、f(m_pwd=) messagebox(請(qǐng)輸入密碼); return; if(m_pwd1=) messagebox(請(qǐng)確認(rèn)密碼); return; if(m_pwd!=m_pwd1) messagebox(兩次密碼不同); return; cczyxxb xxb; if(xxb.havename(m_name)=1) messagebox(用戶以存在,請(qǐng)重新輸入); 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)前記錄,請(qǐng)確認(rèn),mb_yesno)=idyes) cczyxxb xxb; xxb.sql_delete(m_name)

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

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

57、個(gè) datagrid、1 個(gè) date time、1 個(gè) button 控件,更改資源的屬性,并為資源設(shè)置相對(duì)應(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 控 件屬性”對(duì)話框。 在“general”選項(xiàng)卡取消“visible”復(fù)選框的選擇,因?yàn)橐话闶褂?ado data 控件的對(duì)話框控件不可見。 單擊“通用”選項(xiàng)卡,選擇“使用連接字符串”選項(xiàng),然后單擊“生成”按鈕,如 圖 19 所示。 圖 19 設(shè)置數(shù)據(jù)源 接著彈出“數(shù)據(jù)連接屬性”對(duì)話框

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

60、ql)”中輸入“select ygid as 員工編號(hào),ygxm as 員工姓名,jbgz as 基本工資,glgz as 工齡工 資,zwgz as 職務(wù)工資,ylbxj as 養(yǎng)老保險(xiǎn)金,grsds as 個(gè)人所得稅,shbz as 生活補(bǔ)助,zfbz as 住房補(bǔ)助,bxf as 保險(xiǎn)費(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 時(shí)間 from gzffmxb” ,如圖 22 所示。 圖 22 “記錄源”選項(xiàng)卡 (4) data

溫馨提示

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

評(píng)論

0/150

提交評(píng)論