考勤管理系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文.doc
《考勤管理系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《考勤管理系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文.doc(11頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、畢業(yè)設(shè)計(jì)(論文)考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)論文作者姓名:申請(qǐng)學(xué)位專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)申請(qǐng)學(xué)位類別:指導(dǎo)教師姓名(職稱):論文提交日期:第 1 頁 共 24 頁考勤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,越來越多的公司和企業(yè)對(duì)職工的考勤都實(shí)行了信息化管理,使用計(jì)算機(jī)系統(tǒng)代替復(fù)雜的手工方式來管理考勤事務(wù)。考勤管理系統(tǒng)可以有效地管理公司員工的出勤情況,規(guī)范人事制度管理,保證公司正常的工作,是人力資源管理的重要組成部分。系統(tǒng)的開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立,維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面,主要模塊包括基本信息管理模塊,考勤信息管理模塊,統(tǒng)計(jì)查詢模塊和系統(tǒng)用戶管理模塊。系統(tǒng)是使用Visual
2、 C+開發(fā)語言,使用Microsoft Visual Studio 6.0作為工具軟件,數(shù)據(jù)庫為SQL Server 2000。系統(tǒng)采用目前比較流行的ADO數(shù)據(jù)訪問技術(shù),并將每個(gè)數(shù)據(jù)庫表的字段和操作封裝到類中,它使應(yīng)用程序的各個(gè)窗口都能夠共享對(duì)表的操作,不需要重復(fù)編碼,使程序更加易于維護(hù),從而將面向?qū)ο蟮某绦蛟O(shè)計(jì)思想應(yīng)用到數(shù)據(jù)庫應(yīng)用程序中。關(guān)鍵詞:考勤管理;人力資源;數(shù)據(jù)庫;數(shù)據(jù)訪問技術(shù)Design and Realization of Attendance Management SystemAbstractAlong with the development of the modern sc
3、ience and technology, more and more companies and enterprises implemented the information management to the staffs checking attendance, and use computer system instead of the complex manual way to manage the checking attendance business. The checking attendance management system may effectively mana
4、ge the staffs going out on duty situation, Standard personnel system management, Guarantees the company normal work. It is the important part of human resources management The development of this system mainly includes two aspects: the establishment of the backstage database and the development of t
5、he front-side application. This system contains following several modules: the basic information management module, the attendance information management module, the statistical inquiry module and the system user administration module. Visual C+ and SQL Server2000 are used in the development of the
6、system. The system uses the popular ADO technology, and encapsulates the fields and the operations of each table into some classes. It causes the operation which the application procedure each window all can share synchronizes tables. It has not repeat codes, and makes the application to be easier t
7、o maintain. By this way, the idea of object-oriented programming will be applied in the database application.Key words: Attendance management; Human resources; Database; Data access technology目 錄論文總頁數(shù):26頁1引言11.1課題背景11.2本課題研究意義11.3本課題研究方法12開發(fā)工具22.1Visual C+6.022.2SQL Server 200023考勤管理系統(tǒng)的設(shè)計(jì)33.1需求分析33.
8、2功能模塊構(gòu)成33.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)44考勤管理系統(tǒng)的實(shí)現(xiàn)64.1系統(tǒng)登陸功能的實(shí)現(xiàn)64.2基本信息管理模塊74.2.1節(jié)假日信息管理74.2.2部門信息管理84.2.3員工信息管理94.3考勤管理模塊114.3.1出勤信息管理114.3.2加班信息管理134.3.3請(qǐng)假信息管理144.3.4出差信息管理164.4統(tǒng)計(jì)查詢模塊174.4.1日考勤統(tǒng)計(jì)表174.4.2月考勤統(tǒng)計(jì)表184.4.3當(dāng)日考勤人員列表204.5用戶管理模塊21結(jié) 論23參考文獻(xiàn)24致 謝25聲 明261 引言1.1 課題背景無論公司還是企業(yè),都會(huì)涉及到對(duì)職工的考勤管理??记诠芾碓谏a(chǎn)管理過程中充當(dāng)著一個(gè)十分重要角色,考勤
9、管理的效率對(duì)生產(chǎn)的效果起著舉足輕重的作用。隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,越來越多的公司和企業(yè)對(duì)職工的考勤管理都實(shí)行了信息化管理,使用計(jì)算機(jī)系統(tǒng)代替繁瑣冗余的手工方式來管理考勤事務(wù)。傳統(tǒng)的手工方式不僅效率低下,而且容易出錯(cuò),采用計(jì)算機(jī)技術(shù)進(jìn)行貨物管理可以克服手工管理的缺點(diǎn),將人們從煩雜的勞動(dòng)中解放出來。先進(jìn)的考勤管理思想在商業(yè)中實(shí)現(xiàn)就成為了一個(gè)時(shí)代的目標(biāo)。公司集團(tuán)非常急需一套既有先進(jìn)考勤方法又適合國(guó)內(nèi)大商業(yè)的考勤管理系統(tǒng),作為實(shí)現(xiàn)目標(biāo)和提高現(xiàn)有水平的一種重要手段。考勤管理系統(tǒng)是一個(gè)公司不可缺少的部分,它的執(zhí)行對(duì)于公司的決策者和管理者來說是很有幫助的,隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的
10、功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。基于此,開發(fā)了一套考勤管理系統(tǒng),其主要目的是為了統(tǒng)計(jì)員工的遲到、早退、曠工、事病假、加班以及出差情況,這些信息將直接作為公司對(duì)員工的獎(jiǎng)懲、提升以及培訓(xùn)的依據(jù)。1.2 本課題研究意義隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)給人們帶來了很多便利,同樣考勤管理系統(tǒng)也是如此,它主要是為了滿足單位日常的考勤管理的需求,擴(kuò)大工作空間,使單位管理過程更加快速、安全、高。論文系統(tǒng)規(guī)劃設(shè)計(jì)過程是從單位的業(yè)務(wù)流程出發(fā)展開分析,從而完成系統(tǒng)各個(gè)功能模塊的分析過程,以及完成部分功能模塊的設(shè)計(jì),實(shí)現(xiàn)了數(shù)據(jù)庫信息的瀏覽、錄入、查詢、修改、刪除等各
11、種操作,通過統(tǒng)一界面使得系統(tǒng)操作更為靈活、方便便捷。隨著計(jì)算機(jī)的普及和計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,人們開始越來越多地利用計(jì)算機(jī)解決實(shí)際問題??记诠芾硎巧虡I(yè)信息管理的重要部分,面對(duì)大量的商品信息,采用人力處理將浪費(fèi)大量的時(shí)間、人力和物力,而且統(tǒng)計(jì)數(shù)據(jù)麻煩。因此,開發(fā)一個(gè)界面友好,易于操作的考勤管理軟件進(jìn)行自動(dòng)化處理變得十分重要,這正是本系統(tǒng)開發(fā)的目的和意義。通過此考勤管理系統(tǒng)的開發(fā)鍛煉了學(xué)生的實(shí)際動(dòng)手能力對(duì)以后的學(xué)習(xí)和工作能力的培養(yǎng)也具有重要意義。1.3 本課題研究方法開發(fā)數(shù)據(jù)庫管理信息系統(tǒng)需要選擇兩種工具,即前臺(tái)開發(fā)語言和后臺(tái)數(shù)據(jù)庫。一般開發(fā)C/S結(jié)構(gòu)的應(yīng)用程序時(shí),前臺(tái)開發(fā)語言通??梢赃x擇Vis
12、ual Basic、Visual C+、Delphi和Power Builder等,如果開發(fā)網(wǎng)絡(luò)應(yīng)用程序,則需要選擇一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),如Access、Oracle和IBM DB2等。本設(shè)計(jì)是使用Visual C+ 6.0的開發(fā)工具,使用Microsoft SQL Server 2000作為后臺(tái)數(shù)據(jù)庫開發(fā),采用了最新的數(shù)據(jù)庫訪問技術(shù)ADO(ActiveX Data Objects),是提供對(duì)各種數(shù)據(jù)庫的標(biāo)準(zhǔn)接口。本次畢業(yè)設(shè)計(jì)應(yīng)首先分析考勤管理系統(tǒng)的相關(guān)功能,結(jié)合本次畢業(yè)設(shè)計(jì)的相關(guān)要求寫出需求分析;其次,綜合運(yùn)用以前所學(xué)的相關(guān)知識(shí),在設(shè)計(jì)中以需求分析為基礎(chǔ),寫出系統(tǒng)開發(fā)計(jì)劃、實(shí)現(xiàn)流程及相關(guān)問題的
13、實(shí)現(xiàn)方法;同時(shí),在開發(fā)設(shè)計(jì)與實(shí)現(xiàn)中,要保存好相關(guān)的設(shè)計(jì)文檔。2 開發(fā)工具2.1 Visual C+6.0Visual C+6.0 是微軟公司1998年推出的產(chǎn)品,是基于Windows操作系統(tǒng)的編程工具,是Microsoft Visual Studio 6.0的組件之一,是一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言。它采用一種巧妙的方法將Windows的編程復(fù)雜性封裝起來,編程者可以比較輕松地進(jìn)行Windows應(yīng)用程序的設(shè)計(jì)。Visual C+ 6.0繼承了以前版本的優(yōu)點(diǎn),為用戶提供了更為友好的可視化開發(fā)環(huán)境。它提供了強(qiáng)大的編譯能力以及良好的界面操作性,具有功能強(qiáng)大、通用性強(qiáng)和易于擴(kuò)充等特點(diǎn),越來越多的被用來當(dāng)作
14、客戶/服務(wù)器應(yīng)用程序的前臺(tái)卡法工具,而且能夠?qū)indows 9x、Windows NT 以及Windows 2000 下的C+程序設(shè)計(jì)提供完善的編程環(huán)境。同時(shí)Visual C+6.0 對(duì)網(wǎng)絡(luò)、數(shù)據(jù)庫等方面的編程也都提供相應(yīng)的環(huán)境支持。幾乎所有世界級(jí)的軟件,從業(yè)界領(lǐng)先的Web瀏覽器到面向任務(wù)的企業(yè)應(yīng)用,都是使用Microsoft Visual C+開發(fā)系統(tǒng)來開發(fā)的。要用C+來開發(fā)Windows和Web上的高性能應(yīng)用程序,Visual C+是效率最高的首選工具。Visual C+ 6.0在不犧牲靈活性、性能和控制力度的同時(shí),給C+帶來了更高水平的生產(chǎn)效率。除了IntelliSense Techn
15、ology(智能感應(yīng)技術(shù))和Edit and Continue(即編即調(diào))等顯著縮短開發(fā)時(shí)間的新特性外,Visual C+ 6.0還為Web開發(fā)和企業(yè)開發(fā)提供更良好的支持。有了Microsoft Visual C+ 6.0企業(yè)版,可以創(chuàng)建出面向Windows和Web的多層次可調(diào)節(jié)的應(yīng)用程序。有了它為Internet、SQL和COM開發(fā)所提供的優(yōu)化了的支持,可以大大提高您的開發(fā)效率。2.2 SQL Server 2000Microsoft SQL Server 2000是一套完整的數(shù)據(jù)庫和分析產(chǎn)品,可迅速提供下一代可擴(kuò)展電子商務(wù)、各種業(yè)務(wù)和數(shù)據(jù)倉庫解決方案。Microsoft SQL Serve
16、r 2000是一個(gè)分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu),采用了Transact-SQL的SQL語言在客戶機(jī)與服務(wù)器間傳遞客戶機(jī)的請(qǐng)求與服務(wù)器的處理結(jié)果。它一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點(diǎn):易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價(jià)比等。性能、可伸縮性及可靠性是基本要求,而進(jìn)入市場(chǎng)時(shí)間也非常關(guān)鍵。除這些核心企業(yè)品質(zhì)外,SQL Server 2000 還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中從容響應(yīng),從而獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利
17、用 Web帶來的機(jī)會(huì)非常重要。Microsoft SQL Server 2000是眾多數(shù)據(jù)庫開發(fā)軟件的一種,它的版本包括企業(yè)版,標(biāo)準(zhǔn)版,個(gè)人版,Windows CE版,開發(fā)版和評(píng)估版。不同版本的功能和用戶群不同。SQL是訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,無論后臺(tái)數(shù)據(jù)庫是SQL Server,Oracle,還是IBM DB2,甚至是小型數(shù)據(jù)庫ACCESS,都可以使用標(biāo)準(zhǔn)的SQL語句對(duì)它進(jìn)行操作。在這里,是采用SQL Server 2000是作為后臺(tái)數(shù)據(jù)庫。3 考勤管理系統(tǒng)的設(shè)計(jì)3.1 需求分析考勤管理系統(tǒng)的用戶是各單位負(fù)責(zé)考勤管理的員工和領(lǐng)導(dǎo),它可以有效的管理公司單位員工的出勤情況,規(guī)范人事制度的管理。管理
18、員可以創(chuàng)建用戶,修改用戶信息以及刪除用戶,和對(duì)公司一些員工信息的編輯等。該系統(tǒng)包括基本信息管理,考勤信息管理,統(tǒng)計(jì)查詢和用戶管理等主要模塊。每一個(gè)功能模塊都需要針對(duì)不同的表來完成相同的數(shù)據(jù)庫操作,即添加記錄,修改記錄,刪除記錄以及查詢顯示記錄信息。具體功能有以下幾個(gè)方面。1、基本信息的添加,修改,刪除和查詢。節(jié)本信息管理包括節(jié)假日日期設(shè)置,部門信息管理和員工信息管理。2、考勤信息管理包括出勤管理,加班管理,請(qǐng)假管理和出差管理等功能。3、統(tǒng)計(jì)查詢功能包括日考勤統(tǒng)計(jì)表,月考勤統(tǒng)計(jì)表和當(dāng)日缺勤人員列表。4、用戶管理包括Admin用戶管理和其他用戶管理。3.2 功能模塊構(gòu)成考勤管理系統(tǒng)由基本信息管理模
19、塊、考勤信息模塊、統(tǒng)計(jì)查詢模塊和用戶管理模塊四個(gè)主要功能模塊構(gòu)成?;拘畔⒐芾砟K,包括節(jié)假日日期設(shè)置,部門信息管理緩和員工信息管理。節(jié)假日日期信息只包括具體的日期數(shù)據(jù),部門信息包括部門名稱和部門功能的描述,員工信息包括員工姓名,性別,生日,身份證號(hào)等??记谛畔ǔ銮?,加班,請(qǐng)假,出差等信息。出勤信息包括全勤,休息,曠工,遲到和早退等信息;加班信息包括員工信息,加班時(shí)間,加班類型和加班描述;請(qǐng)假信息包括員工信息,請(qǐng)假類型和原因;出差信息包括員工信息和出差原因。統(tǒng)計(jì)查詢模塊包括日考勤統(tǒng)計(jì)表,月考勤統(tǒng)計(jì)表和當(dāng)日缺勤人員列表。日考勤統(tǒng)計(jì)表包括員工姓名,考勤日期,是否全勤,是否請(qǐng)假等信息,月考勤統(tǒng)計(jì)
20、表包括員工姓名,考勤月份,全勤天數(shù),出差天數(shù)等信息,當(dāng)日缺勤人員列表包括系統(tǒng)當(dāng)前日期缺勤員工的姓名,所在部門和聯(lián)系電話等信息。用戶管理模塊用戶包括Admin用戶和普通用戶。Admin用戶可以修改自己的密碼,創(chuàng)建修改和刪除普通用戶信息。普通用戶只能修改自身的信息功能模塊構(gòu)成如圖1:圖1 功能模塊3.3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)考勤管理系統(tǒng)數(shù)據(jù)庫采用Microsoft SQL SERVER 2000,在使用數(shù)據(jù)庫過程中,接觸最多的就是數(shù)據(jù)庫中的表,表是數(shù)據(jù)存儲(chǔ)的地方,是數(shù)據(jù)庫最重要的部分。這個(gè)系統(tǒng)數(shù)據(jù)庫表由6個(gè)表構(gòu)成,具體如下。CheckInfo表是記錄考勤信息的,記錄員工遲到,早退,全勤,曠工,病假,事假
21、,休息,出差等信息。表1 CheckInfo字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述CheckDatechar10否考勤日期EmpIdint4否員工編號(hào)QuanQinchar2是全勤ChuChaichar2是出差BingJiachar2是病假ShiJiachar2是事假KuangGongchar2是曠工XiuXichar50是休息ChiDaochar50是遲到Zaotuichar50是早退Memovarchar200是備注DepInfo表是記錄部門信息的。DepId為主鍵。表2 DepInfo字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述DepIdint4否部門編號(hào)DepNamevarchar50否
22、部門名稱Describesvarchar250是描述UIDint4否總的編號(hào)EmpInfo表是記錄員工的基本信息。管理員可以查看員工信息,添加員工信息需要用的表。EmpId是主鍵。表3 EmpInfo字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述EmpIdint4否編號(hào)Namevarchar50否姓名Sexchar2是性別Birthdayvarchar20是生日IdCardvarchar20是身份證號(hào)OfficePhonevarchar30是辦公電話Mobilevarchar30是手機(jī)電話HireDateInt 4是到崗日期DepIdvarchar40是部門編號(hào)Missionvarchar50是工作
23、崗位Dutyvarchar20是職務(wù) Memo varchar 200 是 備注信息HolidaySet表是設(shè)置節(jié)假日信息的。Id為主鍵。表4 HolidaySet字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述Idint4否編號(hào)HolidayDatechar10否節(jié)假日期HolidayNamevarchar50是節(jié)假名稱OverTime表是記錄加班信息的。表5 OverTime字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述otDateChar10否加班日期EmpIdint4否員工編號(hào)otHoursmallint2否加班時(shí)間otTypevarchar50否加班類型Describesvarchar200是描述
24、UserInfo表是記錄用戶信息的,包括用戶名和密碼。表6 UserInfo字 段數(shù)據(jù)類型長(zhǎng) 度是否允許為空字段描述UserNamevarchar40否用戶名Passwdvarchar40是密碼UserTypeint4否用戶類型4 考勤管理系統(tǒng)的實(shí)現(xiàn)4.1 系統(tǒng)登陸功能的實(shí)現(xiàn)用戶要使用本系統(tǒng),首先必須通過系統(tǒng)的身份認(rèn)證。如果用戶名錯(cuò)誤或者不存在,密碼錯(cuò)誤3次后,對(duì)話框自動(dòng)關(guān)閉。圖2 登陸對(duì)話框具體代碼如下:void CLoginDlg:OnOK() UpdateData(TRUE); /將對(duì)話框中編輯框的數(shù)據(jù)讀取到成員變量中if(m_User = )/ 沒有輸入用戶名MessageBox(請(qǐng)輸
25、入用戶名, 信息提示);GetDlgItem(IDC_USER_EDIT)-SetFocus();return;CUserInfo User; / 定義用戶信息表變量if(!User.IsExistUser(m_User) / 判斷用戶是否存在count+;if(count SetFocus();return;elseMessageBox(重試次數(shù)已到,不能再輸入用戶名和密碼,即將退出系統(tǒng)!, 用戶名錯(cuò)誤, MB_ICONEXCLAMATION);exit(0);User.GetInfo(m_User); / 判斷密碼是否正確if(User.Passwd != m_Passwd)/同用戶判斷C
26、Dialog:OnOK();/ 關(guān)閉對(duì)話框4.2 基本信息管理模塊基本信息管理模塊包括節(jié)假日信息管理,部門信息管理和員工信息管理。4.2.1 節(jié)假日信息管理節(jié)假日信息管理,首先對(duì)節(jié)假日信息的編輯,判斷節(jié)假日記錄是否存在,存入數(shù)據(jù)。在從HolidaySet中讀取所有節(jié)假日記錄,在對(duì)記錄進(jìn)行操作,即添加,修改和刪除。普通用戶是不能打開這一塊信息的,節(jié)假日管理對(duì)他們是不可見的。圖3 節(jié)假日信息框部分代碼如下:BOOL CHolidayManDlg:OnInitDialog()/ 初始化CDialog:OnInitDialog();RefreshData();void CHolidayManDlg:R
27、efreshData()/ 更新數(shù)據(jù)UpdateData(TRUE);CString cSource = SELECT Id, HolidayDate AS 節(jié)假日, HolidayName AS 名稱 FROM HolidaySet;/ 設(shè)置Select語句m_Adodc.SetRecordSource(cSource); /刷新ADO Data控件的記錄源m_Adodc.RefreshData()void CHolidayManDlg:OnAddButton() /添加按鈕UpdateData(TRUE);CHolidayEditDlg dlg; / 初始化HolidayEditDlg對(duì)話
28、框中的變量if (dlg.DoModal() = IDOK)RefreshData();void CHolidayManDlg:OnModiButton()/ 修改按鈕CHolidayEditDlg dlg; / 設(shè)置HolidayEditDlg對(duì)話框中的變量if (dlg.DoModal() = IDOK) / 打開HolidayEditDlg對(duì)話框RefreshData();void CHolidayManDlg:OnDelButton()/ 刪除按鈕cur.SqlDelete(m_Datagrid.GetItem(0);RefreshData();4.2.2 部門信息管理部門信息管理模塊
29、包括部門信息編輯對(duì)話框,部門信息管理對(duì)話框和部門信息選擇對(duì)話框。部門編輯主要是用來添加和修改部門信息。部門信息管理對(duì)話框,是系統(tǒng)管理員進(jìn)行的操作,如果當(dāng)前用戶不是系統(tǒng)管理員,則添加,修改,和刪除等按鈕是不可以用,他們沒有相關(guān)的權(quán)限。在刪除部門的時(shí)候要對(duì)部門信息進(jìn)行判斷,如果部門是根節(jié)點(diǎn),包含下一級(jí)部門和員工時(shí)不能刪除。部門信息的選擇,是為了方便用戶選擇部門,以后的其他模塊程序可以通過此程序來獲取選擇的部門信息。圖4 部門圖主要代碼如下:BOOL CDepManDlg:OnInitDialog() /初始化CDialog:OnInitDialog();void CDepManDlg:AddtoT
30、ree(HTREEITEM m_node, int UpperId)/使用遞歸方法將部門添加到TreeView控件中int i;HTREEITEM m_child;if(UpperId = atoi(dep.a_UID.GetAt(i)m_child = m_tree.InsertItem(dep.a_DepName.GetAt(i), m_node);m_tree.SetItemData(m_child, atol(dep.a_DepId.GetAt(i);AddtoTree(m_child, atoi(dep.a_DepId.GetAt(i);void CDepManDlg:OnAddBu
31、tton() /添加按鈕HTREEITEM node; /用于保存當(dāng)前選擇的節(jié)點(diǎn)node = m_tree.GetSelectedItem(); /取得當(dāng)前選擇的節(jié)點(diǎn)/ 刪除按鈕void CDepManDlg:OnDelButton() HTREEITEM node; /用于保存當(dāng)前節(jié)點(diǎn)node = m_tree.GetSelectedItem(); /取得當(dāng)前節(jié)點(diǎn)/彈出對(duì)話框,要求用戶確認(rèn)是否刪除。如果用戶單擊“是”按鈕,則刪除if (MessageBox(是否刪除當(dāng)前部門?, 請(qǐng)確認(rèn), MB_YESNO) = IDYES)dep.SqlDelete(cDepId); /刪除表Departm
32、ents中的指定記錄m_tree.DeleteItem(node); /刪除Tree控件中的當(dāng)前節(jié)點(diǎn)4.2.3 員工信息管理編輯員工基本信息對(duì)話框用來添加和修改員工信息,主要包括員工的姓名,性別,出生日期,身份證號(hào),到崗日期,辦公電話,手機(jī)電話,工作崗位,職務(wù)和描述信息。員工管理則是通過選擇部門信息,添加,修改和刪除員工信息 這里可以查看每個(gè)部門下的員工信息。同樣普通用戶只能查看員工信息,不能對(duì)其信息進(jìn)行添加,修改和刪除等操作。圖5 員工信息圖主要代碼如下:void CEmpManDlg:RefreshData()UpdateData(TRUE);int iDepId; /從Tree控件中讀取
33、部門編號(hào)信息HTREEITEM node;node = m_tree.GetSelectedItem();iDepId = m_tree.GetItemData(node);CString cDepId; /根據(jù)部門編號(hào)設(shè)置SELECT語句cDepId.Format(%d, iDepId);/ 設(shè)置SELECT語句CString cSource = SELECT EmpId, Name AS 姓名, Sex AS 性別, Birthday AS 生日, IdCard AS 身份證號(hào), OfficePhone AS 辦公電話, Mobile AS 手機(jī)號(hào)碼, HireDate AS 到崗日期,
34、Mission AS 工作崗位, Duty AS 職務(wù), Memo AS 備注 FROM EmpInfo e, DepInfo d WHERE e.DepId = d.DepId;void CEmpManDlg:OnAddButton()/ 添加按鈕UpdateData(TRUE);CTime CurrentTime = CTime:GetCurrentTime();/ 添加員工時(shí),將日期控件設(shè)置為當(dāng)天if(dlg.DoModal()=IDOK)RefreshData();void CEmpManDlg:OnModiButton()/ 修改按鈕UpdateData(TRUE);CEmpInfo
35、 emp; / 讀取選擇員工的記錄emp.GetInfo(m_Datagrid.GetItem(0);CEmpEditDlg dlg; / 將員工數(shù)據(jù)讀取到編輯對(duì)話框中if(dlg.DoModal()=IDOK)RefreshData();void CEmpManDlg:OnDelButton()/ 刪除按鈕CEmpInfo emp;emp.SqlDelete(m_Datagrid.GetItem(0);RefreshData();4.3 考勤管理模塊考勤管理模塊主要實(shí)現(xiàn)了出勤信息管理,加班信息管理,請(qǐng)假信息管理和出差信息管理。4.3.1 出勤信息管理出勤信息編輯對(duì)話框中,首先單擊選擇部門按鈕
36、,在左側(cè)的表格中將顯示選擇部門中的所有員工信息。選擇一個(gè)員工,會(huì)在右側(cè)下方顯示他的出勤狀態(tài)。選擇出勤狀態(tài),然后單擊確定按鈕,可以保存指定員工的出勤情況。出勤管理對(duì)話框中,根據(jù)左邊的部門,列出各個(gè)部門中的員工及其員工的出勤信息,出勤時(shí)間,是否全勤,是否出差,是否遲到,是否早退,是否曠工等。用戶可以根據(jù)實(shí)際的情況進(jìn)行具體的操作,添加,修改和刪除。圖6 出勤信息主要代碼如下:void COnDutyManDlg:RefreshData()UpdateData(TRUE);int iDepId; /從Tree控件中讀取部門編號(hào)信息HTREEITEM node;node = m_tree.GetSele
37、ctedItem();iDepId = m_tree.GetItemData(node);CString cDepId; /根據(jù)部門編號(hào)設(shè)置SELECT語句cDepId.Format(%d, iDepId);/ 設(shè)置SELECT語句CString cSource = SELECT c.EmpId AS 員工編號(hào), e.Name AS 姓名, c.CheckDate AS 出勤日期, c.QuanQin AS 是否全勤, c.XiuXi AS 是否休息, c.KuangGong AS 是否曠工, c.ChiDao AS 是否遲到, c.ZaoTui AS 是否早退 FROM CheckInfo
38、c, EmpInfo e, DepInfo d WHERE c.EmpId = e.EmpId AND e.DepId = d.DepId;m_Adodc.SetRecordSource(cSource); /刷新ADO Data控件的記錄源m_Adodc.Refresh();void COnDutyManDlg:OnAddButton()/ 添加按鈕.void COnDutyManDlg:OnModiButton()/修改按鈕void COnDutyManDlg:OnDelButton()/刪除按鈕程序調(diào)用m_tree.GetSelectedItem()函數(shù)獲取當(dāng)前選擇的部門接點(diǎn)數(shù)據(jù),并使用
39、GetItemData(node)函數(shù)獲取部門編號(hào)。然后根據(jù)選擇的部門編號(hào)設(shè)置SELECT語句,從表CheckInfo,表EmpInfo和表DepInfo中獲取部門中所有員工的出勤記錄。4.3.2 加班信息管理加班信息編輯對(duì)話框主要是對(duì)員工的加班情況的添加和修改。首先點(diǎn)擊選擇部門,在左側(cè)則列出所有部門及其員工信息,選擇一個(gè)員工,會(huì)在右側(cè)下方顯示他的加班狀態(tài)。選擇加班狀態(tài),包括加班時(shí)數(shù),加班原因和加班類型,然后單擊確定按鈕,可以保存指定員工的加班情況。加班信息管理對(duì)話框中,通過點(diǎn)擊左邊的部門,列出各個(gè)部門中的員工及其員工的加班信息,加班時(shí)間,加班時(shí)數(shù),加班原因和加班類型等。用戶可以根據(jù)實(shí)際的情況
40、進(jìn)行具體的操作,添加,修改和刪除。圖7 加班信息框部分代碼如下:void COvertimeManDlg:OnAddButton() /添加按鈕COvertimeEditDlg dlg;CurrentTime = CTime:GetCurrentTime();dlg.otDate = CurrentTime.Format(%Y-%m-%d);if (dlg.DoModal() = IDOK)RefreshData();void COvertimeManDlg:OnModiButton()/ 修改按鈕if (m_Adodc.GetRecordset().GetEof()MessageBox(請(qǐng)選
41、擇要修改的記錄!);return;CEmpInfo emp; / 根據(jù)員工編號(hào)得到員工信息emp.GetInfo(m_Datagrid.GetItem(0);CString cDepId; / 根據(jù)部門編號(hào)得到部門信息cDepId.Format(%d, emp.DepId);dep.GetInfo(cDepId);COvertimeEditDlg dlg;if(m_Datagrid.GetItem(4) = 法定節(jié)假日加班)dlg.m_overtime = 0;else if(m_Datagrid.GetItem(4) = 周六日加班)dlg.m_overtime = 1;else if(m_
42、Datagrid.GetItem(4) = 日常加班)dlg.m_overtime = 2;dlg.otDate = m_Datagrid.GetItem(2);/ 日期dlg.m_describe = m_Datagrid.GetItem(5);if (dlg.DoModal() = IDOK)RefreshData();void COvertimeManDlg:OnDelButton()/刪除按鈕cur.SqlDelete(m_Datagrid.GetItem(2), m_Datagrid.GetItem(0);4.3.3 請(qǐng)假信息管理請(qǐng)假信息編輯對(duì)話框中,首先點(diǎn)擊選擇部門,在左側(cè)則列出所
43、有部門及其員工信息,選擇一個(gè)員工,會(huì)在右側(cè)下方顯示他的請(qǐng)假狀態(tài)。選擇出勤狀態(tài),請(qǐng)假分為病假和事假,并且需要輸入請(qǐng)假原因,然后單擊確定按鈕,可以保存指定員工的請(qǐng)假情況。請(qǐng)假信息管理對(duì)話框中,通過點(diǎn)擊左邊的部門,列出各個(gè)部門中的員工及其員工的信息,選中員工的姓名則可以進(jìn)行員工的請(qǐng)假信息的編輯。用戶可以根據(jù)實(shí)際的情況進(jìn)行具體的操作,添加,修改和刪除。圖8 請(qǐng)假信息圖主要代碼如下:void CLeaveEditDlg:OnOK() UpdateData(TRUE);if(m_Adodc.GetRecordset().GetEof()/ 是否選擇人員MessageBox(請(qǐng)選擇人員);return;if
44、(m_shijia = -1) / 是否進(jìn)行添加考勤狀態(tài)MessageBox(請(qǐng)選擇出勤狀態(tài));return;CCheckInfo cur;cur.CheckDate = CheckDate; / 賦值到CCheckInfo對(duì)象中cur.EmpId = atol(m_Datagrid.GetItem(0);switch(m_shijia)cur.Memo = m_memo;if(EmpId = )/ 在添加時(shí),若人員有出勤記錄,則不允許添加if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)MessageBox(已經(jīng)有此員工的出勤信息,不能添加);re
45、turn;cur.SqlInsert();/ 插入記錄elsecur.UpdateLeave(cur.CheckDate, EmpId); / 修改CheckInfo表記錄CDialog:OnOK();請(qǐng)假信息保存在表CheckInfo中,如果在出勤信息管理模塊中輸入了出勤信息,則不能再輸入請(qǐng)假信息。如果修改記錄,則程序調(diào)用Update Leave()函數(shù),更新表CheckInfo中的Shijia ,Bingjia和Memo等字段的值。4.3.4 出差信息管理出差信息管理編輯對(duì)話框主要是對(duì)員工的出差情況的添加和修改。首先點(diǎn)擊選擇部門,在左側(cè)則列出所有部門及其員工信息,選擇一個(gè)員工,會(huì)在右側(cè)下方
46、顯示他的出差狀態(tài)。選擇出差狀態(tài),寫出出差原因,然后單擊確定按鈕,可以保存指定員工的出差情況。出差信息管理對(duì)話框中,通過點(diǎn)擊左邊的部門,列出各個(gè)部門中的員工及其員工的出差信息。用戶可以根據(jù)實(shí)際的情況進(jìn)行具體的操作,添加,修改和刪除。圖9 出差信息主要代碼如下:void CErrandEditDlg:OnOK() UpdateData(TRUE);if(m_Adodc.GetRecordset().GetEof()/ 是否選擇人員MessageBox(請(qǐng)選擇人員);return; CCheckInfo cur;cur.CheckDate = CheckDate; / 賦值到CCheckInfo對(duì)象
47、中cur.EmpId = atol(m_Datagrid.GetItem(0);cur.ChuChai = 是;cur.QuanQin = 否;cur.BingJia = 否;cur.ShiJia = 否;cur.KuangGong = 否;cur.XiuXi = 否;cur.ChiDao = 否;cur.ZaoTui = 否;cur.Memo = m_memo;if(EmpId = )/ 在添加時(shí),若人員有出勤記錄,則不允許添加if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)MessageBox(已經(jīng)有此員工的出勤信息,不能添加);Return;
48、cur.SqlInsert();/ 插入記錄elsecur.UpdateErrand(cur.CheckDate, m_Datagrid.GetItem(0); / 修改CheckInfo表記錄CDialog:OnOK();4.4 統(tǒng)計(jì)查詢模塊統(tǒng)計(jì)查詢模塊主要是實(shí)現(xiàn)了日考勤統(tǒng)計(jì)表,月考勤統(tǒng)計(jì)表,當(dāng)日缺勤人員列表3個(gè)功能。4.4.1 日考勤統(tǒng)計(jì)表日考勤統(tǒng)計(jì)表按日查詢所有員工的出勤,加班,請(qǐng)假和出差等信息。首先選擇要查詢的日期,在點(diǎn)擊查詢按鈕,即列出這日期的員工信息,包括員工編號(hào),員工姓名,出勤日期,是否全勤,是否出差,是否請(qǐng)假,是否加班等等。圖10 日考勤統(tǒng)計(jì)圖主要代碼如下:void CTime
49、SelDlg:RefreshData()UpdateData(TRUE);CString cTime; /根據(jù)部門編號(hào)設(shè)置SELECT語句cTime = m_time.Format(%Y-%m-%d);/ 設(shè)置SELECT語句CString cSource = SELECT c.EmpId AS 員工編號(hào), e.Name AS 姓名, c.CheckDate AS 出勤日期, c.QuanQin AS 是否全勤, c.ChuChai AS 是否出差, c.ShiJia AS 是否事假, c.BingJia AS 是否病假, c.KuangGong AS 是否曠工, c.XiuXi AS 是否休
50、息, c.ChiDao AS 是否遲到, c.ZaoTui AS 是否早退, c.Memo AS 備注 FROM CheckInfo c, EmpInfo e WHERE c.EmpId = e.EmpId AND c.CheckDate = + cTime + ;/刷新ADO Data控件的記錄源m_Adodc.SetRecordSource(cSource);m_Adodc.Refresh();程序執(zhí)行SELECT語句,從表CheckInfo和EmpInfo中讀取選擇日期中各員工的考勤信息。4.4.2 月考勤統(tǒng)計(jì)表月考勤統(tǒng)計(jì)表是按月統(tǒng)計(jì)所有員工的出勤天數(shù),請(qǐng)假天數(shù),出差天數(shù)等信息。為了對(duì)各
51、種考勤天數(shù)進(jìn)行統(tǒng)計(jì),需要?jiǎng)?chuàng)建一組視圖,分別按月統(tǒng)計(jì)所有員工的全勤天數(shù),休息天數(shù),曠工天數(shù),遲到次數(shù),早退次數(shù),病假天數(shù),事假天數(shù)和出差天數(shù)。在表CheckInfo中,CheckDate字段保存考勤日期,LEFT(CheckDate)返回考勤日期的年份和月份信息,使用COUNT()函數(shù)和GROUP BY子句統(tǒng)計(jì)考勤月份和員工分組的各種考勤天數(shù)。圖11 月考勤統(tǒng)計(jì)圖主要代碼如下:void CDepDlg:RefreshData()UpdateData(TRUE);/根據(jù)部門編號(hào)設(shè)置SELECT語句CString cStrCnd,cDepId;cDepId.Format(%d, iDepId);if
52、 ( iDepId 0 )cStrCnd = And d.DepId= + cDepId;elsecStrCnd = ;CString cTime; / 查詢?nèi)掌? 得到年份和月份m_year.GetLBText(m_year.GetCurSel(), cYear);m_month.GetLBText(m_month.GetCurSel(), cMonth);cTime = cYear + - + cMonth; / 得到日期/ 設(shè)置SELECT語句CString cSource = SELECT e.Name AS 姓名, ISNULL(v1.CountQuanQin,0) AS 全勤天數(shù),
53、 ISNULL(v2.CountChuChai,0) AS 出差天數(shù), ISNULL(v3.CountShiJia,0) AS 事假天數(shù), ISNULL(v4.CountBingJia,0) AS 事假天數(shù), ISNULL(v5.CountKuangGong,0) AS 曠工天數(shù), ISNULL(v6.CountXiuXi,0) AS 休息天數(shù), ISNULL(v7.CountChiDao,0) AS 遲到次數(shù), ISNULL(v8.CountZaoTui,0) AS 早退次數(shù) FROM v_QuanQin v1, v_ChuChai v2, v_ShiJia v3, v_BingJia v4
54、,DepInfo d, v_KuangGong v5, v_XiuXi v6, v_ChiDao v7, v_ZaoTui v8, EmpInfo e WHERE e.EmpId *= v1.EmpId AND e.EmpId *= v2.EmpId And e.DepId=d.DepId AND e.EmpId *= v3.EmpId AND e.EmpId *= v4.EmpId AND e.EmpId *= v5.EmpId AND e.EmpId *= v6.EmpId AND e.EmpId *= v7.EmpId AND e.EmpId *= v8.EmpId AND v1.Che
55、ckMonth = + cTime + AND v2.CheckMonth = + cTime + AND v3.CheckMonth = + cTime + AND v4.CheckMonth = + cTime + AND v5.CheckMonth = + cTime + AND v6.CheckMonth = + cTime + AND v7.CheckMonth = + cTime + AND v8.CheckMonth = + cTime + + cStrCnd;/刷新ADO Data控件的記錄源m_Adodc.SetRecordSource(cSource);m_Adodc.Re
56、fresh();程序執(zhí)行SELECT語句,從表EmpInfo和其他視圖中讀取選擇月份中各員工的考勤信息,ISNULL()函數(shù)是SQL Server的內(nèi)部函數(shù),它的功能是當(dāng)?shù)谝粋€(gè)參數(shù)為NULL時(shí),將第二個(gè)參數(shù)作為結(jié)果返回。4.4.3 當(dāng)日考勤人員列表當(dāng)日考勤人員列表查詢當(dāng)前系統(tǒng)日期中所有缺勤的員工信息,缺勤指病假,事假和曠工等情況。圖12 當(dāng)日缺勤人員圖主要代碼如下:void CAbsenceDlg:RefreshData()UpdateData(TRUE);CString cTime; /根據(jù)部門編號(hào)設(shè)置SELECT語句cTime = CurrentTime.Format(%Y-%m-%d);
57、/ 設(shè)置SELECT語句CString cSource = SELECT e.EmpId AS 員工編號(hào), e.Name AS 姓名, d.DepName AS 部門名稱, e.Mobile AS 聯(lián)系電話 FROM DepInfo d, EmpInfo e WHERE e.DepId = d.DepId AND e.EmpId IN (SELECT EmpId FROM CheckInfo WHERE (ShiJia=是 OR BingJia=是 OR KuangGong=是) AND CheckDate = + cTime + );m_Adodc.SetRecordSource(cSour
58、ce); /刷新ADO Data控件的記錄源m_Adodc.Refresh();程序中使用了嵌套查詢語句,即在一個(gè)SELECT語句中嵌套使用了另外一個(gè)SELECT語句。主SELECT語句顯示員工和部門信息,在其查詢條件中使用IN子句嵌套另一個(gè)SELECT語句。從SELECT可以返回表CheckInfo中當(dāng)日事假,病假和曠工的記錄。4.5 用戶管理模塊根據(jù)用戶類型的不同,用戶管理模塊的功能也不相同,主要包括Admin用戶可以創(chuàng)建其他用戶,修改用戶的密碼,刪除其他用戶,而其他用戶只能修改自身的用戶信息。這個(gè)模塊包括了用戶管理和密碼修改兩個(gè)功能。在用戶管理中只有Admin用戶才可以進(jìn)行操作,可以添加刪除其他用戶信息。圖13 用戶管理框圖主要代碼如下:void CUserManDlg:RefreshData()UpdateData(TRUE);/ 設(shè)置Select語句CString cSource = SELECT UserN
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物理課件摩擦力(教學(xué)000)
- 道岔基本知識(shí)課件
- 演示文稿《大變革時(shí)代》課件
- (安徽專版)七年級(jí)英語下冊(cè) Unit 9 What does he look like同步作文指導(dǎo)習(xí)題課件 (新版)人教新目標(biāo)版
- 上課用無機(jī)非金屬材料的主角-硅課件
- 教育專題:教育專題:課堂教學(xué)評(píng)價(jià)指標(biāo)與實(shí)踐追求
- S21101糧油及制品不皂化價(jià)的測(cè)定-培訓(xùn)課件
- 神經(jīng)癥醫(yī)學(xué)知識(shí)講座
- 結(jié)構(gòu)金融商品與風(fēng)險(xiǎn)管理ppt模板
- 第6章串行接口及串行通信技術(shù)
- 計(jì)算機(jī)操作系統(tǒng)ppt課件第5章-設(shè)備管理
- 教育專題:七年級(jí)數(shù)學(xué)圖形操作課件湘教版
- 抗腫瘤藥物心臟毒性課件
- 員工招聘概述員工招聘的過程管理員工招聘的渠道人員測(cè)評(píng)與課件
- 加油站安全檢查圖課件