論文VC++員工工資管理系統(tǒng)_第1頁
論文VC++員工工資管理系統(tǒng)_第2頁
論文VC++員工工資管理系統(tǒng)_第3頁
論文VC++員工工資管理系統(tǒng)_第4頁
論文VC++員工工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-目錄1. 引言 11.1系統(tǒng)的設(shè)計(jì)目標(biāo)和系統(tǒng)的意義.11.2工資管理系統(tǒng)將達(dá)到的效果.21.3系統(tǒng)的開發(fā)設(shè)計(jì)思想.21.4開發(fā)和運(yùn)行環(huán)境.31.5系統(tǒng)的功能分析和模塊設(shè)計(jì).31.6 可行性分析和需求分析42. 數(shù)據(jù)庫設(shè)計(jì).52.1數(shù)據(jù)需求分析.52.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).62.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 62.4數(shù)據(jù)庫結(jié)構(gòu)的實(shí)現(xiàn) 83. 員工工資管理系統(tǒng)設(shè)計(jì).93.1設(shè)計(jì)瀏覽記錄界面93.2員工工資模塊設(shè)計(jì).93.3資詳情模塊的設(shè)計(jì).123.4工信息模塊設(shè)計(jì).163.5登陸框的設(shè)計(jì)203.6菜單項(xiàng)設(shè)計(jì).214.系統(tǒng)測試和異常處理224.1系統(tǒng)測試.234.2異常處理.23結(jié)束語 .24考文獻(xiàn)24附

2、錄:源程序清單員工工資管理系統(tǒng)學(xué)生姓名: 指導(dǎo)老師: 摘 要 單位人員工資管理歷來是企業(yè)管理中重要的組成部分,合理利用人力資源是企業(yè)發(fā)展的原動(dòng)力。但由于工資管理信息種類繁雜、數(shù)量繁多,因此傳統(tǒng)的工資信息管理需大量人力、物力,且容易出錯(cuò)。因此,建立高效、實(shí)用、科學(xué)的工資管理信息系統(tǒng),是企業(yè)管理走向現(xiàn)代化的重要一步。 本論文包括需求分析、系統(tǒng)功能、系統(tǒng)設(shè)計(jì)、程序設(shè)計(jì)、系統(tǒng)測試及存在問題等方面,較為系統(tǒng)地介紹了“工資管理信息系統(tǒng)”課題開發(fā)的整個(gè)過程。 本系統(tǒng)采用小型數(shù)據(jù)庫管理系統(tǒng)中優(yōu)秀的軟件“visual c+ 6.0” 作為系統(tǒng)開發(fā)工具,在對被調(diào)研單位工資管理體系進(jìn)行充分分析和系統(tǒng)論證的基礎(chǔ)上開發(fā)

3、研制的,它不但能夠完成工資管理的基本業(yè)務(wù)要求,如“職工的添加和刪除、任意條件查詢、基本項(xiàng)目統(tǒng)計(jì)、打印輸出報(bào)表”等功能;而且具有程序設(shè)計(jì)合理、操作簡單、運(yùn)行可靠、保密性強(qiáng)等特點(diǎn)。關(guān)鍵詞 工資管理 畢業(yè)設(shè)計(jì) 數(shù)據(jù)庫 c+ 6.01 引言本課程設(shè)計(jì)主要解決在企業(yè)中,運(yùn)用計(jì)算機(jī)對各種工資信息進(jìn)行日常的管理,如查詢、修改、增加和刪除等,針對系統(tǒng)服務(wù)對象的具體要求,設(shè)計(jì)了企業(yè)工資管理系統(tǒng),使管理員能夠有序的管理每一位職工的各項(xiàng)工資條款的發(fā)放以及員工個(gè)人臺(tái)帳的生成,使企業(yè)運(yùn)用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益。1.1系統(tǒng)的設(shè)計(jì)目標(biāo)和系統(tǒng)的意義采用所現(xiàn)有的軟硬件及科學(xué)的管理系統(tǒng)開發(fā)方案,建立xxx公司工資管理系

4、統(tǒng),實(shí)現(xiàn)xxx公司工資管理的計(jì)算機(jī)自動(dòng)化。要求系統(tǒng)符合計(jì)量所的工資管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求。能夠提供詳細(xì)的員工基礎(chǔ)信息,包括自然條件信息、工資情況、來源、去向、崗位變動(dòng)情況。能夠隨時(shí)查閱在職、非在職人員信息,提供出職工花名冊,同時(shí)為財(cái)務(wù)部提供人員變動(dòng)單及月基本工資匯總情況等。針對這些要求,系統(tǒng)建立了職工信息查詢、職工信息刪除、職工工資信息管理、職工工資信息查詢4個(gè)主要信息庫。系統(tǒng)根據(jù)增減人員、工資變動(dòng)操作自動(dòng)生成記錄記載變動(dòng)內(nèi)容,以便用戶查詢其變動(dòng)過程。實(shí)現(xiàn)了對員工信息的查詢、統(tǒng)計(jì)、增減、變動(dòng)記錄、打印相關(guān)報(bào)表等功能。以前,有關(guān)工資的所有相關(guān)操作的程序都是由手工來完成的

5、,利用這種方式當(dāng)企業(yè)規(guī)模較小,業(yè)務(wù)不是很多,需要管理的數(shù)據(jù)量也很少時(shí),用人工方式處理或許還可以接受,但隨著企業(yè)規(guī)模的逐漸增大,經(jīng)營時(shí)間的增長,其工資各種補(bǔ)帖的不斷增加,以往的那種靠手工記錄各類信息,單據(jù)等的辦法已遠(yuǎn)遠(yuǎn)不能滿足財(cái)務(wù)人員的發(fā)展要求,而且,手工操作的方式極易產(chǎn)生誤差且不易檢查出錯(cuò)誤,易給該部門造成不可避免的物質(zhì)和經(jīng)濟(jì)損失。還有,其管理的范圍的不斷擴(kuò)大,大量的數(shù)據(jù)需要錄入,大量的信息需要修改、更新、查詢與維護(hù),且費(fèi)時(shí)費(fèi)力,造成工作效率低,準(zhǔn)確率差,這樣時(shí)間久了,會(huì)給查找、更新、維護(hù)帶來不少的困難,從而使該管理系統(tǒng)管理不完善,這樣久而久之,最終導(dǎo)致該部門被現(xiàn)行市場所淘汰。所以開發(fā)一個(gè)有關(guān)

6、工資管理的軟件是非常必要的。1.2工資管理系統(tǒng)將達(dá)到的效果該系統(tǒng)著眼于員工工資業(yè)務(wù)的實(shí)際,對發(fā)放工資業(yè)務(wù)進(jìn)行了細(xì)致的分析、研究,認(rèn)真分析其業(yè)務(wù)流程,采用靈活方便的計(jì)算處理方式,改變手工操作的繁雜、低效、不宜操作、靈活性差的特點(diǎn),提高其工作效率和效益。實(shí)現(xiàn)xxx公司工資管理業(yè)務(wù)的制度化、現(xiàn)代化的管理。工資管理系統(tǒng)是為了能夠迅速、準(zhǔn)確地反映出用戶需要的各種信息,及時(shí)方便的進(jìn)行各種檢索,從而為決策者做出準(zhǔn)確的判斷提供強(qiáng)有力的支持。計(jì)算機(jī)的使用使得企業(yè)管理變得更加合理,更加規(guī)范,更加科學(xué)。 1.3系統(tǒng)的開發(fā)設(shè)計(jì)思想本系統(tǒng)開發(fā)設(shè)計(jì)思想:* 盡量利用企業(yè)現(xiàn)有軟件環(huán)境,采用先進(jìn)的管理系統(tǒng)方案,從而達(dá)到充分利

7、用企業(yè)現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的;* 系統(tǒng)應(yīng)符合企業(yè)工資管理的規(guī)定,滿足企業(yè)相關(guān)人員日常使用的需要,并達(dá)到操作過程的直觀、方便、實(shí)用、安全等要求;* 系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于技術(shù)維護(hù)人員進(jìn)行補(bǔ)充、維護(hù)。* 系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作。1.4開發(fā)和運(yùn)行環(huán)境開發(fā)工具:vc+6.0微軟公司的visual c+6.0是應(yīng)用程序開發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。visual c+6.0提供了大量的控件,這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能,減少了編程人員的工作量,也簡化

8、了界面設(shè)計(jì)過程,從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。故而,實(shí)現(xiàn)本系統(tǒng)visual c+6.0是一個(gè)相對較好的選擇。 在目前市場上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動(dòng)作必需要耗費(fèi)數(shù)倍的工夫來處理,使得原來所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程語言的彈性,卻沒有便利的工具作配合,會(huì)使一些即使非常簡單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。運(yùn)行

9、環(huán)境:windows 98或windows 2000xp1.5系統(tǒng)的功能分析和模塊設(shè)計(jì)系統(tǒng)功能分析企業(yè)工資管理系統(tǒng)需要完成的功能主要有:* 系統(tǒng)數(shù)據(jù)初始化;* 員工基本信息數(shù)據(jù)的輸入;* 員工基本信息數(shù)據(jù)的修改、刪除;* 企業(yè)工資的基本設(shè)定;* 員工工資的瀏覽;* 員工個(gè)人工資表的查詢;系統(tǒng)功能模塊設(shè)計(jì)在系統(tǒng)功能分析的基礎(chǔ)上,根據(jù)visual c+6.0程序編制的特點(diǎn),得到如圖1所示的系統(tǒng)功能模塊圖。員工工資管理系統(tǒng)員工信息工資基本設(shè)置工資匯總資料輸入員工增刪員工查詢基本工資員工獎(jiǎng)金工資福利個(gè)人罰款工資總表個(gè)人工資查詢員工修改圖1 系統(tǒng)功能模塊1.6 可行性分析和需求分析經(jīng)濟(jì)可行性由于該軟件屬

10、于個(gè)人開發(fā),無需過大的資金投入.所以經(jīng)濟(jì)上是可行的。技術(shù)可行性vc+6.0中文版作為一個(gè)關(guān)系型數(shù)據(jù)庫系統(tǒng),它提供了面向?qū)ο蟮木幊碳夹g(shù),可簡化數(shù)據(jù)庫管理,使開發(fā)應(yīng)用程序這艱辛的工作就象堆木那樣簡單方便.另外, vc+6.0中文版開發(fā)的應(yīng)用程序可以獨(dú)立運(yùn)行于windows平臺(tái). vc+6.0中文版,它是運(yùn)行于w indows95/98和window xp平臺(tái)32位數(shù)據(jù)庫系統(tǒng),充分發(fā)揮了32位微處理器強(qiáng)大的32位數(shù)據(jù)處理性能.它功能強(qiáng)大,直觀易用,支持客戶/服務(wù)器結(jié)構(gòu)和面向?qū)ο缶幊?提供多種可視化編程工具,支持最新internet技術(shù),www數(shù)據(jù)庫的設(shè)計(jì),最新流行的activex 等。 vc+6.0

11、中文版完全支持oop(面向?qū)ο螅┑膽?yīng)用程序設(shè)計(jì)方法,vc+6.0使用了真正的類,包括繼承性,封裝性和多態(tài)性,用可視方式創(chuàng)建類,查看類及類代碼;利用表單向?qū)нM(jìn)行專業(yè)級(jí)界面設(shè)計(jì);對表關(guān)系進(jìn)行可視化查看;可利用ole自動(dòng)化來包含其他軟件(如excel, word)中的對象并使用這些軟件。通過vc+6.0對象和事件模型,用戶可以快速創(chuàng)建和實(shí)現(xiàn)無模式(modeless)的應(yīng)用程序;利用生成器和工具欄,開發(fā)人員可以快速開發(fā)應(yīng)用程序,而省去編寫大量的代碼、定義繁多的屬性??傊?,vc+6.0中文版是一種適用于專業(yè)人員的開發(fā)工具。 對于一個(gè)大型的管理系統(tǒng),它很可能需要對不同的用戶各自創(chuàng)建一個(gè)大型的文件系統(tǒng),它包

12、括許多表,而屬于一個(gè)用戶的一套表與屬于另一個(gè)用戶的一套表實(shí)際上是相同的,只是名稱有所不同。在vc+6.0中引入的真正的數(shù)據(jù)庫的概念,使這一問題的解決變得非常的容易,設(shè)計(jì)人員只要為不同的用戶創(chuàng)建不同的數(shù)據(jù)庫,然后在這些數(shù)據(jù)庫下建立用戶自己的表就可以很容易對每個(gè)用戶進(jìn)行區(qū)別和維護(hù)了。而且,這樣的數(shù)據(jù)庫的關(guān)系能力更加強(qiáng)大,更加穩(wěn)定可靠。 可以按照需要給自己的數(shù)據(jù)庫定制相應(yīng)的菜單樣和工具欄。 重新設(shè)計(jì)了項(xiàng)目管理器其最簡單的用途是作為一種組織工具,保存屬于特定應(yīng)用程序所有文件的列表,而且根據(jù)文件類型將這些文件進(jìn)行劃分。它所提供的多頁框界面,使對項(xiàng)目文件的添加、建立和編程更加容易??梢耘coffice軟件集

13、成。2 數(shù)據(jù)庫設(shè)計(jì)2.1數(shù)據(jù)需求分析通過對企業(yè)工資管理的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:* 員工基本狀況:包括的數(shù)據(jù)庫項(xiàng)有員工號(hào)、員工姓名、性別、所在部門、生日、家庭住址、聯(lián)系電話等。因?yàn)楸境绦蛑兄簧婕暗焦べY管理,故為了說明簡單,在數(shù)據(jù)庫中只包含進(jìn)了與員工的工資相關(guān)的資料,如入廠時(shí)間、所在部門、崗位、工資級(jí)別等。* 工資級(jí)別的工資金額:包括的數(shù)據(jù)庫項(xiàng)有工資技能等級(jí)、工資額。* 企業(yè)部門及工作崗位信息:包括的數(shù)據(jù)庫項(xiàng)有部門名稱、工作崗位名稱、崗位工資等。* 公司福利金額:包含的數(shù)據(jù)庫項(xiàng)有福利值。* 工資信息:包含的數(shù)據(jù)庫項(xiàng)有員工號(hào)、員工姓名、員工基礎(chǔ)工資、公司福利、員工實(shí)得工資。

14、2.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:員工實(shí)體、員工工資實(shí)體、工資等級(jí)實(shí)體、部門崗位實(shí)體、公司福利實(shí)體。實(shí)體和實(shí)體之間的關(guān)系e-r圖如圖3所示。員工 員工工資對應(yīng)包含基礎(chǔ)工資個(gè)人獎(jiǎng)金個(gè)人罰款福利費(fèi)用對應(yīng)對應(yīng)對應(yīng)對應(yīng)工資等級(jí)員工等級(jí)員工出勤公司福利圖2 實(shí)體之間關(guān)系e-r圖2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)為數(shù)據(jù)庫員工工資表添加如下數(shù)據(jù)表 圖3 員工工資表結(jié)構(gòu)圖4 工資詳情表結(jié)構(gòu)圖5 登陸框結(jié)構(gòu)圖6 工資詳情表結(jié)構(gòu) 圖7 員工信息表結(jié)構(gòu)創(chuàng)建數(shù)據(jù)源為數(shù)據(jù)庫創(chuàng)建用戶dsn,數(shù)據(jù)源名稱為”員工工資表” 圖8 創(chuàng)建數(shù)據(jù)源2.4數(shù)據(jù)庫結(jié)構(gòu)的實(shí)現(xiàn)在需求分析、概念結(jié)構(gòu)設(shè)計(jì)的繼承上得數(shù)據(jù)庫的邏輯結(jié)構(gòu)之后,

15、我們就可以在vc+6.0數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu)。數(shù)據(jù)庫的邏輯結(jié)構(gòu),直接使用vc+6.0的項(xiàng)目管理器來實(shí)現(xiàn),在這之前,先建一個(gè)名為salary(工資)的項(xiàng)目,保存在磁盤。如d:salary。存儲(chǔ)為d:salarydatabasesalary.dbc。為數(shù)據(jù)庫添加數(shù)據(jù)表,存儲(chǔ)為d:salarydatabase tms.dbf.3工工資管理系統(tǒng)設(shè)計(jì)3.1設(shè)計(jì)瀏覽記錄界面 圖9 主界面 為控件添加成員變量與控件變量并邦定3.2員工工資模塊設(shè)計(jì)圖10 員工工資管理模塊查詢控件的設(shè)計(jì) 在cex_viewl類中添加按扭控件查詢idc_button_queryy的bn_clicked消息映射,并添加下列代

16、碼: void cex_view:onbuttonquery() updatedata();m_strquery.trimleft ();if(m_strquery.isempty ()messagebox(要查詢的員工號(hào)不能為空!);return;if(m_pset-isopen () m_pset-close(); m_pset-m_strfilter.format(id=%s,m_strquery);m_pset-m_strsort=department;m_pset-open();if(!m_pset-iseof()updatedata(false);elsemessagebox(沒有

17、查到你要找員工的記錄!);添加,修改,刪除控件的設(shè)計(jì) 添加一對話框資源id號(hào)為idd_salary_table將表單資源的控件復(fù)制到對話框即可,然后為對話框資源創(chuàng)建一個(gè)對話框類csalarydlg,在mfc中為控件添加成員變量如下圖所示:圖11 員工工資表界面圖12 為控件添加成員變量然后為idok添加bn_clicked消息映射,并添加下列代碼: void csalarydlg:onok() updatedata(); m_strid.trimleft(); m_strdepartment.trimleft(); if(m_strid.isempty() messagebox(員工號(hào)不能為空

18、!); else if(m_strdepartment.isempty() messagebox(部門號(hào)不能為空!); elsecdialog:onok(); 然后cex_view類中的三個(gè)按扭;idc_rec_add,idc_rec_edit,idc_rec_del添加bn_clicked消息映射,并添加下列代碼:void cex_view:onrecadd() csalarydlg dlg;if(dlg.domodal()=idok)m_pset-addnew(); m_pset-m_department =dlg.m_strdepartment; m_pset-m_id =dlg.m_s

19、trid; m_pset-m_name =dlg.m_strname; m_pset-m_salary =dlg.m_fsalary; m_pset-update(); m_pset-requery();void cex_view:onrecedit() csalarydlg dlg; dlg.m_strdepartment =m_pset-m_department; dlg.m_strid =m_pset-m_id;dlg.m_strname =m_pset-m_name; dlg.m_fsalary =m_pset-m_salary; if(dlg.domodal()=idok) m_ps

20、et-edit();m_pset-m_department =dlg.m_strdepartment;m_pset-m_id =dlg.m_strid;m_pset-m_name =dlg.m_strname;m_pset-m_salary =dlg.m_fsalary;m_pset-update();m_pset-requery();updatedata(false);void cex_view:onrecdel() crecordsetstatus status;m_pset-getstatus(status);m_pset-delete();if(status.m_lcurrentrec

21、ord=0)m_pset-movenext();elsem_pset-movefirst();updatedata(false);3.3資詳情模塊的設(shè)計(jì)圖13 工資詳情模塊為對話框資源創(chuàng)建一個(gè)對話框類cdetaildlg,在mfc中為控件添加成員變量如下圖所示圖14 為控件添加成員變量為表單資源的按扭添加bn_clicked消息映射,并添加下列代碼:void cex_view:onbuttondetail() cdetaildlg dlg; dlg.domodal();在cdetaildlg類中添加按扭控件查詢idc_button_queryy2的bn_clicked消息映射,并添加下列代碼:

22、void cdetaildlg:onbuttonquery2() updatedata();m_strquery2.trimleft ();if(m_strquery2.isempty ()messagebox(要查詢的員工號(hào)不能為空!);return;cstring str;str=m_strquery2;cdetailset cset;cset.m_strfilter.format(id=%s,str);cset.open();if(!cset.iseof()m_strdepartment=cset.m_department;m_fbasic=cset.m_basic;m_fbonus=c

23、set.m_bonus;m_fwelfare=cset.m_welfare;m_ffine=cset.m_fine;m_ftotal=cset.m_total;m_strid=cset.m_id;updatedata(false);elsemessagebox(查詢的員工記錄不存在!);if(cset.isopen()cset.close();為上對話框定義crecordset派生類圖15 對話框定義crecordset派生類添加一對話框資源id號(hào)為idd_detail_tabel將工資詳情的控件復(fù)制到對話框即可,然后為話框資源創(chuàng)建一個(gè)對話框類cdtabeldlg在mfc中為控件添加成員變量如

24、下圖所示圖16 工資詳情表界面圖17 為控件添加成員變量然后為idok添加bn_clicked消息映射,并添加下列代碼:void cdtabeldlg:onok() updatedata(); m_strid.trimleft(); m_strdepartment.trimleft(); if(m_strid.isempty() messagebox(員工號(hào)不能為空!); else if(m_strdepartment.isempty() messagebox(部門號(hào)不能為空!); else cdialog:onok();然后cdetaildlg類中的三個(gè)按扭;idc_rec_add,idc_

25、rec_edit,idc_rec_del添加bn_clicked消息映射,并添加下列代碼:void cdetaildlg:onbuttonadd2() cdtabeldlg dlg;if(dlg.domodal()=idok) cdetailset pset;pset.addnew(); pset.m_department =dlg.m_strdepartment; pset.m_id =dlg.m_strid; pset.m_basic =dlg.m_fbasic; pset.m_bonus =dlg.m_fbonus; pset.m_welfare =dlg.m_fwelfare; pse

26、t.m_fine =dlg.m_ffine; pset.m_total =dlg.m_ftotal; pset.update(); pset.requery();void cdetaildlg:onbuttonedit2() cdetailset pset; pset.open();updatedata();pset.edit(); pset.m_department=m_strdepartment; pset.m_id= m_strid; pset.m_basic=m_fbasic;pset.m_bonus= m_fbonus; pset.m_welfare=m_fwelfare;pset.

27、m_fine= m_ffine;pset.m_total= m_ftotal;updatedata(false);pset.update();pset.requery();pset.close();messagebox(修改成功);void cdetaildlg:onbuttondel2() updatedata();cdetailset cset;cset.open();cset.m_strfilter=id=+m_strid+;cset.requery();cset.delete();cset.close();updatedata(false);3.4工信息模塊設(shè)計(jì)添加對話框圖18 員工信

28、息界面為對話框資源創(chuàng)建一個(gè)對話框類cinfodlg,在mfc中為控件添加成員變量如下圖所示圖19 為控件添加成員變量為表單資源的按扭添加bn_clicked消息映射,并添加下列代碼void cex_view:onbuttoninfo() cinfodlg dlg; dlg.domodal();在cinfodlg類中添加按扭控件查詢idc_button_queryy3的bn_clicked消息映射,并添加下列代碼:void cinfodlg:onbuttonquery3() updatedata();m_strquery3.trimleft ();if(m_strquery3.isempty (

29、)messagebox(要查詢的員工號(hào)不能為空!);return;cstring str;str=m_strquery3;cinfoset cset;cset.m_strfilter.format(id=%s,str);cset.open();if(!cset.iseof()m_strdepartment=cset.m_department;updatedata(false);elsemessagebox(查詢的員工記錄不存在!);if(cset.isopen()cset.close();為上對話框定義crecordset派生類圖20 crecordset派生類添加一對話框資源id號(hào)為idd_

30、info_tabel將工資詳情的控件復(fù)制到對話框即可,然后為對話框資源創(chuàng)建一個(gè)對話框類citabeldlg在mfc中為控件添加成員變量如下圖所示圖21 員工信息表界面圖22 為控件添加成員變量然后為idok添加bn_clicked消息映射,并添加下列代碼:void citabeldlg:onok() updatedata(); m_strid.trimleft(); m_strdepartment.trimleft(); if(m_strid.isempty() messagebox(員工號(hào)不能為空!); else if(m_strdepartment.isempty() messagebox

31、(部門號(hào)不能為空!); elsecdialog:onok();然后cinfoldlg類中的三個(gè)按扭;idc_rec_add,idc_rec_edit,idc_rec_del添加bn_clicked消息映射,并添加下列代碼:void cinfodlg:onbuttonadd3() citabeldlg dlg;if(dlg.domodal()=idok) cinfoset pset;pset.addnew(); pset.m_department =dlg.m_strdepartment; pset.m_id =dlg.m_strid; pset.m_mame =dlg.m_strname; p

32、set.m_sex =dlg.m_strsex; pset.m_job =dlg.m_strjob; pset.m_birthday =dlg.m_strbirthday; pset.m_tel =dlg.m_strtel; pset.m_address =dlg.m_straddress; pset.update(); pset.requery();void cinfodlg:onbuttonedit3() cinfoset pset; pset.open();updatedata();pset.edit(); pset.m_department=m_strdepartment; pset.

33、m_id= m_strid; pset.m_mame=m_strname;pset.m_sex= m_strsex; pset.m_job=m_strjob;pset.m_birthday= m_strbirthay;pset.m_tel= m_strtel;pset.m_address= m_straddress;updatedata(false);pset.update();pset.requery();pset.close();messagebox(修改成功);void cinfodlg:onbuttondel3() updatedata();cinfoset cset;cset.ope

34、n();cset.m_strfilter=id=+m_strid+;cset.requery();cset.delete();cset.close();updatedata(false);3.5登陸框的設(shè)計(jì)添加如下的對話框如上的方法依次為其創(chuàng)建對話框類dengludlg和crecordset派生類cdengluset在mfc中為控件添加成員變量如下圖所示圖23 為控件添加成員變量圖24 登陸框界面然后為idok添加bn_clicked消息映射,并添加下列代碼:bool cdengludlg:check()updatedata();cdengluset pset;pset.open();if(m

35、_stryonghu.isempty()|m_strmima.isempty()messagebox(請輸用戶名和密碼!);return false;pset.m_strfilter.format(name=%s,m_stryonghu);pset.requery();if(pset.m_name!=m_stryonghu|pset.m_password!=m_strmima)messagebox(密碼或用戶名有錯(cuò)!);return false;return true;void cdengludlg:onok() cwnd *m_pmainwnd;if(!check()return;cdial

36、og:onok();m_pmainwnd=afxgetmainwnd();cdialog:onok();3.6菜單項(xiàng)設(shè)計(jì)為程序添加子菜單項(xiàng)圖25 菜單項(xiàng)屬性id號(hào)分別為id_salary,id_info,并在mfc中分別為其添加command消息映射,并添加代碼如下:void cmainframe:onsalary() cdetaildlg dlg;dlg.domodal();void cmainframe:oninfo() cinfodlg dlg;dlg.domodal();4系統(tǒng)測試和異常處理4.1系統(tǒng)測試 系統(tǒng)測試結(jié)果如圖圖26 進(jìn)入登陸框測試圖27 進(jìn)入主界面測試4.2異常處理由于時(shí)

37、間匆忙以及本人水平有限,本程序存在的問題比較多,自認(rèn)為主要有以下幾個(gè)方面。1. 程序沒有對輸入的員工信息諸如 工號(hào),姓名,部門號(hào),等進(jìn)行檢測其合理性,所以在工號(hào),姓名,部門號(hào)等中可以輸入字母或在名字中可以輸入數(shù)字就在所難免了,作為一個(gè)員工信息管理,這樣的安全性是致命的。要解決這個(gè)問題,就要在重載函數(shù)中加入各種判斷語句,工作量比較大。2. 由于水平有限,沒有制作圖形界面,多媒體等美化程序的設(shè)置,只是一些簡單的對話框和界面,看起來難免有些單調(diào)不夠完善。3. 程序的功能也是一個(gè)問題,員工的信息太簡單,可進(jìn)行的操作也少,可能有些功能實(shí)現(xiàn)起來顯得有些別扭。 結(jié)束語經(jīng)過一個(gè)多月的設(shè)計(jì)和開發(fā),工資管理系統(tǒng)的

38、開發(fā)基本完成。其功能基本符合用戶需求,能夠完成員工工資的查詢以及管理員對數(shù)據(jù)的添加刪除等管理。但是由于畢業(yè)設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不盡如人意的地方,比如系統(tǒng)功能較少,用戶界面不夠美觀,出錯(cuò)處理不夠等多方面問題。這些都有待進(jìn)一步改善。在設(shè)計(jì)過程中,我們結(jié)合以前在課堂中的學(xué)習(xí)內(nèi)容和收集課外的相關(guān)資料,不斷的學(xué)習(xí)改進(jìn),當(dāng)遇到問題時(shí)努力解決,虛心請教老師和同學(xué),雖然設(shè)計(jì)過程十分艱難,但也燃起了我們對專業(yè)的興趣和求索,在翻閱大量的相關(guān)書籍和瀏覽了各種應(yīng)用程序后,我們總結(jié)經(jīng)驗(yàn)在結(jié)合自己的學(xué)習(xí)基礎(chǔ),終于完成了員工工資管理系統(tǒng),盡管我們設(shè)計(jì)的程序還比較簡單也不夠完善,但看到自己的努力成果卻有著莫大的滿

39、足感,我們希望在以后的學(xué)習(xí)道路中能夠繼承老師對我們的期望繼續(xù)對vc+以及相關(guān)語言的學(xué)習(xí),我們相信只要經(jīng)過我們堅(jiān)持不懈的努力,總有一天會(huì)作出另人滿意的程序。我們能夠順利完成此次設(shè)計(jì),離不開老師悉心教導(dǎo)和同學(xué)們的無私幫助,特別要感謝的是謝中科老師,在接觸程序語言的這一年中,我們從一無所知到現(xiàn)在可以自己設(shè)計(jì)完成簡單的應(yīng)用程序,都是老師悉心教導(dǎo)的結(jié)果,并且老師工作態(tài)度認(rèn)真,治學(xué)嚴(yán)謹(jǐn),耐心解答我們提出的各種問題,同時(shí)還不忘鼓勵(lì)我們不斷前進(jìn),才使我們有了向困難挑戰(zhàn)的信心,在以后的道路中我們會(huì)以更加努力的決心和優(yōu)異的成績來回報(bào)老師和幫助我們的人。參考文獻(xiàn)1 鄭阿奇,丁有和. visual c+教程. 北京:

40、機(jī)械工業(yè)出版社 ,2004 2 黃明,梁旭,周紹斌.visual c+信息系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例 . 北京:機(jī)械工業(yè)出版社3王育堅(jiān). visual c+面向?qū)ο缶幊探坛? 北京:清華大學(xué)出版社,20034 伍俊良. visual c+課程設(shè)計(jì)與系統(tǒng)開發(fā)例案. 北京:清華大學(xué)出版社,2002附錄:源程序清單ex_員工工資管理系統(tǒng)view.cpp/ cex_view message handlersvoid cex_view:onbuttonquery() updatedata();m_strquery.trimleft ();if(m_strquery.isempty ()messagebox(要查

41、詢的員工號(hào)不能為空!);return;if(m_pset-isopen () m_pset-close(); m_pset-m_strfilter.format(id=%s,m_strquery);m_pset-m_strsort=department;m_pset-open();if(!m_pset-iseof()updatedata(false);elsemessagebox(沒有查到你要找員工的記錄!);void cex_view:onrecadd() csalarydlg dlg;if(dlg.domodal()=idok)m_pset-addnew(); m_pset-m_depar

42、tment =dlg.m_strdepartment; m_pset-m_id =dlg.m_strid; m_pset-m_name =dlg.m_strname; m_pset-m_salary =dlg.m_fsalary; m_pset-update(); m_pset-requery();void cex_view:onrecedit() csalarydlg dlg; dlg.m_strdepartment =m_pset-m_department; dlg.m_strid =m_pset-m_id;dlg.m_strname =m_pset-m_name; dlg.m_fsala

43、ry =m_pset-m_salary; if(dlg.domodal()=idok) m_pset-edit();m_pset-m_department =dlg.m_strdepartment;m_pset-m_id =dlg.m_strid;m_pset-m_name =dlg.m_strname;m_pset-m_salary =dlg.m_fsalary;m_pset-update();m_pset-requery();updatedata(false);void cex_view:onrecdel() crecordsetstatus status;m_pset-getstatus

44、(status);m_pset-delete();if(status.m_lcurrentrecord=0)m_pset-movenext();elsem_pset-movefirst();updatedata(false);void cex_view:onbuttondetail() cdetaildlg dlg; dlg.domodal();void cex_view:onbuttoninfo() cinfodlg dlg; dlg.domodal();detaildlg.cpp/ cdetaildlg message handlersvoid cdetaildlg:onbuttonque

45、ry2() updatedata();m_strquery2.trimleft ();if(m_strquery2.isempty ()messagebox(要查詢的員工號(hào)不能為空!);return;cstring str;str=m_strquery2;cdetailset cset;cset.m_strfilter.format(id=%s,str);cset.open();if(!cset.iseof()m_strdepartment=cset.m_department;m_fbasic=cset.m_basic;m_fbonus=cset.m_bonus;m_fwelfare=cset

46、.m_welfare;m_ffine=cset.m_fine;m_ftotal=cset.m_total;m_strid=cset.m_id;updatedata(false);elsemessagebox(查詢的員工記錄不存在!);if(cset.isopen()cset.close();void cdetaildlg:onbuttonadd2() cdtabeldlg dlg;if(dlg.domodal()=idok) cdetailset pset;pset.addnew(); pset.m_department =dlg.m_strdepartment; pset.m_id =dlg.m_strid; pset.m_basic =dlg.m_

溫馨提示

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

評論

0/150

提交評論