基于C的企業(yè)考勤管理系統(tǒng)的設(shè)計與開發(fā)_第1頁
基于C的企業(yè)考勤管理系統(tǒng)的設(shè)計與開發(fā)_第2頁
基于C的企業(yè)考勤管理系統(tǒng)的設(shè)計與開發(fā)_第3頁
基于C的企業(yè)考勤管理系統(tǒng)的設(shè)計與開發(fā)_第4頁
基于C的企業(yè)考勤管理系統(tǒng)的設(shè)計與開發(fā)_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要 隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,越來越多的公司和企業(yè)對職工的考勤都實行了信息化管理,使用計算機系統(tǒng)代替復(fù)雜的手工方式來管理考勤事務(wù)??记诠芾硐到y(tǒng)可以有效地管理公司員工的出勤情況,規(guī)范人事制度管理,保證公司正常的工作,是人力資源管理的重要組成部分。 系統(tǒng)的開發(fā)主要包括后臺數(shù)據(jù)庫的建立,維護以及前端應(yīng)用程序的開發(fā)兩個方面,主要模塊包括基本信息管理模塊,考勤信息管理模塊,統(tǒng)計查詢模塊和系統(tǒng)用戶管理模塊。系統(tǒng)是使用Visual C+開發(fā)語言,使用Microsoft Visual Studio 6.0作為工具軟件,數(shù)據(jù)庫為SQL Server 2000。系統(tǒng)采用目前比較流行的ADO數(shù)據(jù)訪問技術(shù),并將每個

2、數(shù)據(jù)庫表的字段和操作封裝到類中,它使應(yīng)用程序的各個窗口都能夠共享對表的操作,不需要重復(fù)編碼,使程序更加易于維護,從而將面向?qū)ο蟮某绦蛟O(shè)計思想應(yīng)用到數(shù)據(jù)庫應(yīng)用程序中。關(guān)鍵詞:考勤管理;人力資源;數(shù)據(jù)庫;數(shù)據(jù)訪問技術(shù)Abstract Along with the development of the modern science and technology, more and more companies and enterprises implemented the information management to the staffs checking attendance, and us

3、e computer system instead of the complex manual way to manage the checking attendance business. The checking attendance management system may effectively manage the staffs going out on duty situation, Standard personnel system management, Guarantees the company normal work. It is the important part

4、of human resources management The development of this system mainly includes two aspects: the establishment of the backstage database and the development of the front-side application. This system contains following several modules: the basic information management module, the attendance information

5、 management module, the statistical inquiry module and the system user administration module. Visual C+ and SQL Server2000 are used in the development of the system. The system uses the popular ADO technology, and encapsulates the fields and the operations of each table into some classes. It causes

6、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 to maintain. By this way, the idea of object-oriented programming will be applied in the database application.Key words: Attendance management;

7、 Human resources; Database; Data access technology目 錄摘 要2第1章 概述11.1 企業(yè)考勤管理系統(tǒng)意義1企業(yè)考勤系統(tǒng)的應(yīng)用背景11.3 企業(yè)考勤系統(tǒng)基于的技術(shù)種類1第2章 系統(tǒng)的可行性研究12.1 技術(shù)可行性分析1經(jīng)濟可行性分析12.3 操作運行可行性分析1第3章 系統(tǒng)分析13.1 系統(tǒng)需求分析1用戶工作流程13.1.2 功能需求13.2 性能需求13.3 全局分析1第4章 系統(tǒng)軟件設(shè)計14.1 系統(tǒng)設(shè)計預(yù)覽14.1.1 系統(tǒng)設(shè)計目標與功能結(jié)構(gòu)14.1.2 業(yè)務(wù)流程圖展示14.2 數(shù)據(jù)庫設(shè)計14.2.1 數(shù)據(jù)庫分析14.3 公共類的設(shè)計14

8、.3.1 CADOconnection類14.3.2 CADODataSet類14.4 統(tǒng)主體窗的設(shè)計14.5 系統(tǒng)模塊設(shè)計14.5.1 用戶登入模塊設(shè)計14.5.2 用戶管理模塊設(shè)計14.5.3 部門管理模塊設(shè)計14.5.4 人員信息管理模塊14.5.5 考勤管理模塊設(shè)計14.5.6 考勤匯總查詢模塊設(shè)計1第5章 總結(jié)與展望1參考文獻1附 錄1致 謝1 第1章 概述1.1 企業(yè)考勤管理系統(tǒng)意義 考勤管理是企事業(yè)單位經(jīng)營的重要環(huán)節(jié),加強考勤管理,嚴肅考勤制度是企事業(yè)單位搞好各項經(jīng)營管理工作的前提與保障.科學(xué)地管理考勤不僅可以保證各項經(jīng)營管理計劃得以落實,而且有利于提高工作學(xué)習(xí)效率.長期以來,很

9、多單位沿襲人工方式進行考勤管理,每個單位都有專門負責(zé)考勤登記的人員.即便如此科學(xué)準確地管理考勤也絕非易事,原因主要在于考勤涉及人員、班種、請假等諸多因素,每日考勤統(tǒng)計工作量極大等.利用計算機管理考勤不僅能使管理人員從繁重的考勤管理工作中解脫出來,而且能夠使考勤管理工作更加科學(xué)化,規(guī)范化,智能化. 隨著計算機技術(shù)的高速發(fā)展,正在改變著整個世界的經(jīng)濟,也改變著企業(yè)的管理.順應(yīng)信息技術(shù)發(fā)展的潮流,作為企業(yè)信息化的核心部分,選擇先進的,符合國際標準的考勤系統(tǒng),不僅可以有效提高企業(yè)管理,協(xié)作與監(jiān)控員工的出勤效率,更可以為企業(yè)進一步信息化建設(shè)奠定良好的基礎(chǔ).利用計算機實現(xiàn)企業(yè)人事考勤管理勢在必行。本系統(tǒng)結(jié)

10、合企業(yè)實際考勤管理制度,經(jīng)過實際的需求分析,采用功能強大的Visual C+ 6.0作為開發(fā)工具,開發(fā)出來的企業(yè)考勤管理系統(tǒng)。 其一,可以將考勤事務(wù)交給基本部門處理,交個每個員工自己處理,交給系統(tǒng)自動處理,用IT技術(shù)推動人事考勤管理的變革。 其二,新的考勤系統(tǒng)的實施,不僅把HR人員從考勤的具體事務(wù)中解放出來,而且也推動了全員對人事管理的參與和互動.HR人員的可以把工作重心可以放在服務(wù)員工、支持公司管理層的戰(zhàn)略決策上,放在公司最重要的資產(chǎn)員工和員工的集體智慧的管理上等核心業(yè)務(wù)上來。在此討論的考勤管理系統(tǒng)的開發(fā),旨在探索一種新的考勤模式.通過這種新的模式,為企業(yè)的傳統(tǒng)考勤模式創(chuàng)造一種新的概念,提高

11、考勤工作效率和標準化水平。 整個系統(tǒng)從符合操作簡便、界面友好、靈活、實用、安全的要求出發(fā),完成日常的員工簽到,出勤修改,出勤查詢,用戶維護,員工維護,以及系統(tǒng)配置等功能.經(jīng)過實際使用證明,本文所設(shè)計的系統(tǒng)可以滿足企業(yè)進行日常的員工考勤管理方面的需要。1.2 企業(yè)考勤系統(tǒng)的應(yīng)用背景隨著計算機在國內(nèi)外的普及和計算機科學(xué)技術(shù)的飛速發(fā)展,人們開始越來越多地利用計算機解決實際問題。企業(yè)員工考勤信息管理是企業(yè)信息管理的重要部分。面對大量的人事考勤信息,采用人力處理將浪費大量的時間、人力和物力,且數(shù)據(jù)的準確性低。 因此,開發(fā)一個界面友好,易于操作的員工信息管理軟件進行自動化處理具有較大的社會現(xiàn)實意義。同時,

12、人事考勤管理系統(tǒng)是一切應(yīng)用系統(tǒng)的典范,它具有一切應(yīng)用系統(tǒng)的特征,系統(tǒng)結(jié)構(gòu)與現(xiàn)實生活緊密結(jié)合,具體直觀,開發(fā)應(yīng)用簡單,不失一般性。 人事考勤管理系統(tǒng)的特點是從人事考勤管理的角度出發(fā),用集中的數(shù)據(jù)庫將幾乎所有與人事考勤相關(guān)的數(shù)據(jù)統(tǒng)一管理起來,形成了集成的信息源。友好的用戶界面,強有力的報表生成工具、分析工具和信息的共享使得人事考勤管理人員得以擺脫繁重的日常工作,集中精力從戰(zhàn)略的角度來考慮企業(yè)人事考勤規(guī)劃和政策. 作為計算機應(yīng)用的一部分,使用計算機對考勤信息進行管理,有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高人事勞資

13、管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 考勤管理系統(tǒng)就是把分散的企事業(yè)單位的考勤信息實行統(tǒng)一、集中、規(guī)范的收集管理,建立分類編號管理、電腦存儲查詢以及防火、防潮、防蛀、防盜等現(xiàn)代化、專業(yè)化的管理系統(tǒng),為企事業(yè)單位和職工解除后顧之憂。 企業(yè)考勤管理系統(tǒng)為企事業(yè)單位提供信息咨詢、信息檢索、信息存取等服。 本考勤管理系統(tǒng)基本上能夠滿足現(xiàn)代企業(yè)考勤管理需求。信息錄入項目齊全、完整、系統(tǒng)?,F(xiàn)代考勤管理系統(tǒng)靈活使用表格對各種信息分門別類,組成企業(yè)考勤管理系統(tǒng),可以方便地查詢、閱讀、修改、交流和重復(fù)使用。 1.3 企業(yè)考勤系統(tǒng)基于的技術(shù)種類 基于ClientServer結(jié)構(gòu)的遠程電

14、腦考勤系統(tǒng),PB和SQL Server結(jié)合開發(fā)出兩層C/S結(jié)構(gòu)的遠程電腦考勤系統(tǒng)。該系統(tǒng)采用條碼掃描的形式,在Client端采集考勤數(shù)據(jù),在Server端綜合匯總,匯總的數(shù)據(jù)除供管理者查詢以做決策的依據(jù)外,還可直接將其傳至公司的財務(wù)系統(tǒng),作為薪金發(fā)放的重要參考。在論述遠程電腦考勤系統(tǒng)實例的同時,還從系統(tǒng)環(huán)境,前臺應(yīng)用程序的設(shè)計,后臺數(shù)據(jù)庫的設(shè)計,系統(tǒng)數(shù)據(jù)庫的安全,系統(tǒng)網(wǎng)絡(luò)的安全等方面給出了開發(fā)兩層次C/S結(jié)構(gòu)應(yīng)用系統(tǒng)、一般方法和技巧,具有一定的參考價值。 基于VB/SQL Server的管理系統(tǒng)的實現(xiàn)智能化考勤系統(tǒng)設(shè)計,VB作為一種面向?qū)ο蟮目梢暬幊坦こ?具有簡單易學(xué)、靈活方便和易于擴充的特

15、點.與后端的SQL Server相結(jié)合,VB能夠提供一個高性能的客戶機/服務(wù)器方案.主要講述在軟件工程原理指導(dǎo)下,考勤管理方案的設(shè)計,該系統(tǒng)服務(wù)端采用了Mircosoft SQL Serve2000,客戶端采用Visual Basic編程,通過微軟的ADO控件調(diào)用服務(wù)器端的相關(guān)數(shù)據(jù),實現(xiàn)數(shù)據(jù)的分布式管理. 基于ASP.NET的考勤管理系統(tǒng)的設(shè)計與實現(xiàn),考勤管理系統(tǒng)是企事業(yè)單位實現(xiàn)員工考勤自動化管理的重要設(shè)施.本文詳細討論了某公司考勤管理系統(tǒng)的系統(tǒng)功能、系統(tǒng)結(jié)構(gòu)的設(shè)計和關(guān)鍵技術(shù)實現(xiàn)的過程.用ASP.NET開發(fā)的該系統(tǒng)具有操作簡便、界面友好、靈活、實用和安全等特點. 第2章 系統(tǒng)的可行性研究2.1

16、 技術(shù)可行性分析為達到技術(shù)的可行支持在程序設(shè)計開發(fā)之前,首要確定運用什么工具來開發(fā),必須考量運用怎樣的形式才能達到最好的效果。1991年微軟公司推出Visual Basic,是基于BASIC的可視化的程序設(shè)計語言。既繼承了其先輩的BASIC所有的程序設(shè)計簡單易用的特點,其程序也采用了面向?qū)ο?,事件?qū)動的編程機制,用一種巧妙的方法把Windows的編程復(fù)雜性封裝起來,提供了一種所見即所得的可視界面設(shè)計方法。VB的多種功能特點體現(xiàn)于:具有面向?qū)ο蟮目梢暬O(shè)計工具,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法,把程序和數(shù)據(jù)封裝起來視為一個對象,每個對象都是可逆的。程序員在設(shè)計時只需要根據(jù)現(xiàn)有界面設(shè)計的要求,直接在屏幕

17、上畫出窗口,菜單,按扭等不同類型的對象,并為每個對象設(shè)置屬性。程序員的編程工作僅編寫針對對象要完成哪些功能的程序,因而程序設(shè)計的效率可提高很多。事件驅(qū)動的編程機制的運用,事件驅(qū)動是非常適合圖形用戶界面的編程方式。傳統(tǒng)的編程方式是一種面向過程,按程序事先設(shè)計的流程運行。但在圖形用戶界面的應(yīng)用程序中,用戶的動作即事件掌握著程序的運行流向,每個事件都能驅(qū)動一段程序的運行。程序員只要編寫響應(yīng)用戶動作的代碼,各個動作之間不一定有聯(lián)系。這樣的應(yīng)用程序代碼較短,使得程序既易于編寫又易于維護。明確提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境在VB集成開發(fā)環(huán)境中,用戶可設(shè)計界面、編寫代碼、調(diào)試程序,直至把應(yīng)用程序編譯成

18、可執(zhí)行文件,在Windows中運行,使用戶在友好的開發(fā)環(huán)境中工作。結(jié)構(gòu)化的程序設(shè)計語言,VB具有豐富的數(shù)據(jù)類型、眾多的內(nèi)部函數(shù)和結(jié)構(gòu)化程序結(jié)構(gòu),而且簡單易學(xué)。支持多種數(shù)據(jù)庫系統(tǒng)的訪問,利用數(shù)據(jù)控件或ODBC能夠訪問的數(shù)據(jù)庫系統(tǒng)有,Microsoft Access、Btrieve 、dBASE、Microsoft FoxPro和Paradox等,也可以訪問Microsoft Excel、Lotus1-2-3等多種電子表格。OLE技術(shù)在于VB的核心就是其對對象的鏈接與嵌入(OLE)的支持,利用OLE,VB能夠開發(fā)集聲音、圖像、動畫、字處理、Web等對象于一體的應(yīng)用程序。Active技術(shù)發(fā)展了原有的

19、OLE技術(shù),它使開發(fā)人員擺脫了特定語言的束縛??煞奖愕厥褂脴藴实腁ctive部件,調(diào)用標準的接口,實現(xiàn)特定的功能。完備的help聯(lián)機幫助功能,與Windows環(huán)境下的軟件一樣,在VB中,利用幫助菜單和F1功能鍵,用戶可隨時方便地得到所需的幫助信息,VB幫助窗口中顯示了有關(guān)的示例代碼,通過復(fù)制、粘貼操作可獲得大量的示例代碼,為用戶的學(xué)習(xí)和使用提供了捷徑?;谝陨详P(guān)于Visul Basic C+強大功能和易操作性的介紹,我們將采用其作為本次考勤系統(tǒng)的前臺開發(fā)工具。SQL Server 2000 是Microsoft 公司推出的數(shù)據(jù)庫管理系統(tǒng),它繼承了SQL Server 7.0在數(shù)據(jù)庫軟件設(shè)計和引

20、擎方面的優(yōu)勢,同時增加了讀多新的功能,使用更加方便,完全支持Web應(yīng)用,而且更具可靠性和穩(wěn)定性。我們選擇SQL Server 2000作為后臺支持,大家都知道,SQL Server 2000對一些企業(yè)級用戶來說是個福音,它在存儲大容量數(shù)據(jù)、保證數(shù)據(jù)的安全性、維護數(shù)據(jù)的完整性都有著極其出色的一方面。它還具有自動高效的機制以及運行分布式處理等優(yōu)點。這種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)能夠滿足各種類型數(shù)據(jù)庫的單獨開發(fā)和其他商業(yè)應(yīng)用程序開發(fā)的需要。使用SQL Server 2000我們可以很方便的建立數(shù)據(jù)庫,可以將所建立的數(shù)據(jù)庫很好的和VB結(jié)合起來。2.2 經(jīng)濟可行性分析考勤系統(tǒng)的面向主體用戶群是企業(yè),而企業(yè)在運

21、營過程中準求的在范圍內(nèi)的盡量少的成本下實現(xiàn)最大的產(chǎn)出,已達到最高的性價比。以企業(yè)員工的數(shù)量可滿足考勤系統(tǒng)的容量與需求,因此只需在配備定量的服務(wù)器的條件下,增加考勤機和IC卡即可??记谙到y(tǒng)運行的環(huán)境采用操作系統(tǒng)WINDOWS系統(tǒng),系統(tǒng)開發(fā)工具,以及后臺數(shù)據(jù)庫均無需購買。因此實施此考勤系統(tǒng)無需硬件資金投入,若想將管理系統(tǒng)全面投入運行,所需資金投入也只需日常維護與技術(shù)支持等必須費用。所以,實施考勤系統(tǒng)在經(jīng)濟上是可行的,將考勤系統(tǒng)全面投入運行,在經(jīng)濟上也是可行的。2.3 操作運行可行性分析信息化考勤系統(tǒng)是考勤管理模式的發(fā)展方向,以現(xiàn)代化信息技術(shù)完成考勤工作,可以提高工作效率和工作質(zhì)量,迎合現(xiàn)代化企業(yè)發(fā)

22、展管理的需求,也是與國際社會流行趨勢相吻合的。企業(yè)管理制度的齊全與穩(wěn)定,提供了企業(yè)創(chuàng)新發(fā)展的基礎(chǔ)。企業(yè)計算機設(shè)備齊全,網(wǎng)絡(luò)完善,有良好的機房和技術(shù)人員。企業(yè)DBA對微機操作熟練,完全可以掌握系統(tǒng)的使用和維護。因此,考勤系統(tǒng)的操作運行是可行的。第3章 系統(tǒng)分析3.1 系統(tǒng)需求分析需求分析是系統(tǒng)開發(fā)必要環(huán)節(jié),也是重中之重;需求過程研究業(yè)務(wù)工作,以期設(shè)計出有助于業(yè)務(wù)工作的更加完善的系統(tǒng)。作為該過程的結(jié)果,需求規(guī)格說明書是對系統(tǒng)的功能和行為完整的描述。系統(tǒng)設(shè)計將來自于需求和分析的抽象規(guī)格說明轉(zhuǎn)變?yōu)槊嫦蛘鎸嵤澜绲脑O(shè)計。一旦構(gòu)建完成,該系統(tǒng)就會投入使用,同時會不可避免地產(chǎn)生更多的新需求。同時,需求過程與分

23、析活動之間有相當(dāng)程度的重疊,分析建模對于設(shè)定工作的范圍和其他一些事來說是必要的,所以我們利用分析模型來描述需求過程,隨著開發(fā)工作的繼續(xù),分析活動在工作中占的比例將變得越來越大,直到所有需求都已知。3.1.1 用戶工作流程登陸運行更新(刪除)查詢系統(tǒng)開發(fā)主要有以下五個模塊組成:在系統(tǒng)模塊中實現(xiàn)了,登錄與運行功能。在維護模塊中實現(xiàn)了,對數(shù)據(jù)庫更新與刪除的功能。在查詢模塊中實現(xiàn)了,條件模糊查詢功能。能夠清楚的讓使用者了解本系統(tǒng),并幫助使用者如何更好的使用本系統(tǒng)3.1.2用戶業(yè)務(wù)需求(1) 該管理軟件將對企業(yè)人事考勤檔案進行管理和統(tǒng)計,對部門信息、員工信息、考勤數(shù)據(jù)、考勤信息進行管理和統(tǒng)計。(2) 該

24、管理軟件將根據(jù)用戶的需要對個人信息進行查詢,并能打印詳細信息。(3) 該管理軟件將為用戶提供賬號管理工具,以便用戶對賬號進行管理,具體為添加用戶、刪除用戶、修改用戶密碼。(4) 該管理軟件提供企業(yè)人員管理,能夠?qū)ζ髽I(yè)員工的分類管理,新員工的加入以及員工刪除,修改進本信息等功能。3.1.2 功能需求基于系統(tǒng)需求分析,該系統(tǒng)需要實現(xiàn)以下基本功能:用戶管理:管理系統(tǒng)操作人員,設(shè)置操作人員口令和權(quán)限。在滿足不同系統(tǒng)用戶的操作需求的基礎(chǔ)上,提高系統(tǒng)的安全性。人事考勤管理:完成企業(yè)對員工個人考勤信息(包括員工的基本檔案和在職信息)的管理及相關(guān)操作。操作員進行員工考勤信息錄入及更改,其中包括員工的基本信息、

25、工作部門、工作流程,要求對這些員工檔案信息可以進行新增、修改、刪除操作,同時可以進行查詢和瀏覽操作。該模塊是本系統(tǒng)的重點,用戶可以通過該模塊為單位建立一個比較完整的人事考勤系統(tǒng),同時可以對數(shù)據(jù)進行查看?;A(chǔ)數(shù)據(jù)管理:維護人事管理相關(guān)的一些基礎(chǔ)數(shù)據(jù)。主要包括以下功能:(1) 部門類別設(shè)置:維護企業(yè)中設(shè)立的部門類別信息;(2) 職工類型設(shè)置:維護當(dāng)前企業(yè)職工與企業(yè)的關(guān)系的類別信息;(3) 職務(wù)類別設(shè)置:維護企業(yè)中設(shè)立的職務(wù)類別信息;(4) 職工資類別設(shè)置:維護企業(yè)中設(shè)立的工資類別信息;(5) 稱類別設(shè)置:維護企業(yè)職工的職稱類別信息;人事變動管理:對于人事上的變動調(diào)整進行管理,對人員考勤的信息進行更

26、新(如:員工職務(wù)、員工職稱、員工性質(zhì)等的變動)考勤管理:考勤管理可幫助公司完成時間管理記錄員工上下班、加班、出缺勤時間,并可將數(shù)據(jù)連至薪資計算系統(tǒng)處理,以便作薪資結(jié)算。企業(yè)還可根據(jù)此考勤系統(tǒng)查詢企業(yè)內(nèi)各時段的員工出缺勤狀況,作管理方面的分析。提供了全面的考勤管理。數(shù)據(jù)庫管理:對現(xiàn)有的數(shù)據(jù)庫進行管理,包括數(shù)據(jù)備份和恢復(fù),以方便用戶對數(shù)據(jù)庫的管理和維護工作,提高系統(tǒng)的數(shù)據(jù)安全性。3.2 性能需求(1) 硬件環(huán)境在最低配置的情況下,系統(tǒng)的性能往往不盡如人意,現(xiàn)在的硬件性能已經(jīng)相當(dāng)出色,且價格也很便宜,因此通常給服務(wù)器端配置高性能硬件。處理器:Inter Pentium II 266 MX或更高內(nèi)存:

27、64MB硬盤空間:2GB顯卡:SVGA顯示適配器(2) 軟件環(huán)境操作系統(tǒng):Windows 98/ME/2000/NT數(shù)據(jù)庫: MSQ3.3 全局分析用戶需要輸入用戶名和密碼進入人事考勤管理系統(tǒng),對人事考勤管理系統(tǒng)的部門、員工的基本信息進行維護和管理。在考勤管理模塊中錄入員工當(dāng)天的考勤信息,同時可對年、月、員工進行查詢。還可以通過考勤匯總查詢對員工某月的考勤記錄進行匯總,計算出員工月工作天數(shù),早退、遲到的天數(shù)等。Use Case是對一個活動者使用系統(tǒng)的一項功能時所進行的交互過程的一個文字描述序列.在該Use Case圖中只有頂層圖,主要是考慮到考勤管理系統(tǒng)體積不大,做成一個頂層圖會使得各用例間的

28、關(guān)系更清晰.具體關(guān)系如圖所示. 圖3-1 考勤管理系統(tǒng)頂層Use Case全局分析第4章 系統(tǒng)軟件設(shè)計4.1 系統(tǒng)設(shè)計預(yù)覽4.1.1 系統(tǒng)設(shè)計目標與功能結(jié)構(gòu)人事考勤管理系統(tǒng)以實現(xiàn)員工日常出勤信息管理為設(shè)計目標,加以強大的數(shù)據(jù)庫管理功能,可以方便對考勤信息進行管理,大大地提高了人事部門的日常工作效率。本系統(tǒng)在設(shè)計時應(yīng)滿足以下幾點: 采用人機對話的操作方式,信息查詢靈活、方便、快捷、準確、數(shù)據(jù) 存儲安全可靠。對考勤信息的操作簡單,可以方便的進行添加、修改、和刪除,可以錄入員工信息、部門信息。對員工的考勤信息可按月進匯總計算,對用戶輸入的數(shù)據(jù),系統(tǒng)進行嚴格的數(shù)據(jù)檢查,盡可能排除人為的錯誤。 系統(tǒng)最大

29、限度的實現(xiàn)了易維護性和易操作性。統(tǒng)運行穩(wěn)定、安全可靠。人事考勤系統(tǒng)功能結(jié)構(gòu)如圖4-1所示。 圖4-1人事考勤系統(tǒng)功能結(jié)構(gòu)4.1.2 業(yè)務(wù)流程圖展示圖4-2人事考勤系統(tǒng)業(yè)務(wù)流程圖4.2 數(shù)據(jù)庫設(shè)計4.2.1 數(shù)據(jù)庫分析 人事考勤管理系統(tǒng)使用了Microsoft SQL Sever 2000 數(shù)據(jù)庫來滿足系統(tǒng)的要求,數(shù)據(jù)庫名稱為tb_person,在數(shù)據(jù)庫中創(chuàng)建4張表用于存儲各種不同的信息,如圖4-2所示 圖4-2 數(shù)據(jù)庫中的標2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計下面給出人事考勤管理系統(tǒng)數(shù)據(jù)庫中的主要表的表結(jié)構(gòu)。Tab_User(管理員信息表):用于保存管理員的信息,如圖4-3所示Tab_Dept(部門信息表):

30、用于記錄部門的信息情況,如圖4-4所示Tab_Employees(員工信息表):用于保存公司員工信息,如圖4-5所示Tab_check(考勤信息表):記錄員工每天的考勤信息,如圖4-6所示4.3 公共類的設(shè)計 本系統(tǒng)是使用ADO連接數(shù)據(jù)庫的,為了能更方便地在程序中使用ADO建立數(shù)據(jù)庫連接與數(shù)據(jù)表的操作,就在公共類中對系統(tǒng)中所使用的ADO操作進行了封裝。在該系統(tǒng)中建立了ADO的兩個公共類CADOConnection和CADODataSet,這兩個類定義在ADO.h頭文件中,實現(xiàn)ADO.cpp文件中。4.3.1 CADOconnection類CADOConnection類是用來連接數(shù)據(jù)庫的,實現(xiàn)了

31、對_Connection接口的封裝,CADOConnection類在頭文件中的定義如下:#importmsado15.dll no_namespace rename(EOF,adoEOF)class CADOConnectionprivate:Static void InitADO();Static void UnInitADO();protected:_ConnectionPtr m_Connection;public:BOOL IsOpen();_ConnectionPtr GetConnection();Cstring GetSQLConstr(CString IP,CString DB

32、Name);BOOL Open(CString ConStr);CADOConnection();VirtualCADOConnection();CADOConnection*GetConnection();CADOConnection類的實現(xiàn)代碼如下:定義兩個全局變量ConCount和g_Connection,ConCount變量是一個整型變量,用起來記錄在工程中所創(chuàng)建的CADOConnection類的實例個數(shù)。在構(gòu)造方法中當(dāng)此變量為0時調(diào)用CoInitialize函數(shù)實現(xiàn)OLE的初始化。在析構(gòu)方法中當(dāng)此變量為0時調(diào)用CoUninitialize方法取消OLE的初始化。Int ConCoun

33、t = 0;CADOConnection g_Connection;GetConnection 函數(shù)是一個全局函數(shù),用于返回全局數(shù)據(jù)庫連接對象的指針,代碼如下:CADOConnection*GetConnection()Return & g_Connection;CADOConnection方法是析構(gòu)函數(shù),用于初始化OLE和創(chuàng)建_Connection接口的指針實例,代碼如下:CADOConnection:CADOConnection()InitADO();m_Connection.CreateInstance(ADODB.Connection);CADOConnection方法是析構(gòu)函數(shù),用于

34、取消OLE初始化和釋放_Connection接口的指針,代碼如下:CADOConnection:CADOConnection()If(IsOpen();m_Connection-Close();m_Connection = NULL;UnInitADO();InitADO方法是一個靜態(tài)方法,用于初始化OLE,代碼如下:Void CADOConnection:InitADO()If(ConCount + = 0)CoInitialize(NULL);UnInitADO方法是一個靜態(tài)方法,用于取消OLE的初始化,代碼如下:void CADOConnection:UnInitADO()if(ConC

35、ount = 0)CoUninitialize();Open方法通過指定的數(shù)據(jù)庫連接字符串與SQL數(shù)據(jù)庫建立連接,代碼如下:BOOL CADOConnection:Open(CString ConStr)if(IsOpen()m_Connection-Close();m_Connection-Open(_bstr_t)ConStr,adModeUnknown);return IsOpen();GetSQLConStr方法用來生成與數(shù)據(jù)庫連接所需要的連接字符串,代碼如下:CString CADOConnection:GetSQLConStr(CString IP,CString DBName)C

36、String Str;Str.Format(Provider = SQLOLEDB.1;Persist Security Info = False;User ID = sa;Initial Catalog = %s;Data Source = %s,DBName,IP);return Str;GetConnection方法用于返回_Connection接口指針,代碼如下:_ConnectionPtr CADOConnection:GetConnection()return m_Connection:IsOpen 方法用來判斷當(dāng)前數(shù)據(jù)庫連接對象與數(shù)據(jù)庫的連接狀態(tài),代碼如下:BOOL CADOCo

37、nnection:IsOpen()long State;m_Connection-get_State(&State);if(State = adStateOpen)return true;return false;4.3.2 CADODataSet類CADODataSet類是用來存儲數(shù)據(jù)的數(shù)據(jù)集類,該類實現(xiàn)了_Recordset 接口的實例,該類在頭文件中的定義如下:class CADODataSetprotected:_RecoedsetPtr m_DataSet;CADOConnection *m_Connectionpublic:void Delete();int GetRecordNo

38、();void move(int nIndex);void Save();void SetFieldValue(CString FieldName,_variant_t Value);void AddNew();BOOL Next();FieldsPtr GetFields();int GetRecordCount();void SetConnetion(CADOConnection *pCon);BOOL Open(CString SQLStr);CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet方法為記

39、錄集實現(xiàn)類的構(gòu)造方法,在該方法中實現(xiàn)記錄集接口對象的創(chuàng)建,代碼如下:CADODataSet:CADODataSet()m_DataSet.CreateInstance(ADODB.Recordset);CADODataSet類為記錄集實現(xiàn)類的構(gòu)造方法,在該方法中實現(xiàn)記錄集的關(guān)閉與接口的釋放,代碼如下:CADODataSet:CADODataSet()if(IsOpen()m_DataSet-Close();m_DataSet = NULL;m_Connection = NULL;SetConnection方法用來設(shè)置記錄集所連接的數(shù)據(jù)庫連接類的對象,代碼如下:void CADODataSet:

40、SetConnection(CADOConnection *pCon)m_Connection = pCon;GetRecordCount方法用來獲取記錄集中數(shù)據(jù)的數(shù)量,實現(xiàn)代碼如下:int CADODataSet:GetRecordCount()if(IsOpen()return m_DataSet-GetRecordCount();elsereturn 0;Open方法通過SQL查詢語句打開數(shù)據(jù)集,實現(xiàn)代碼如下:BOOL CADODataSet:Open(CString SQLStr)if(IsOpen)m_DataSet-Close();IsOpen方法用來判斷數(shù)據(jù)集是否處于打開狀態(tài),實

41、現(xiàn)代碼如下:BOOL CADODataSet:IsOpen()long State;m_DataSet-get_State(&State);if(State = adStateOpen)return true;return false;GetFields方法用來獲取記錄集中字段的集合,實現(xiàn)代碼如下:FieldsPtr CADODataSet:GetFields()return m_DataSet-GetFields();Next方法將記錄指針下移一位,實現(xiàn)代碼如下:BOOL CADODataSet:Next()if(m_DataSet-adoEOF)retuen false;m_DataSet

42、-MoveNext();return true;AddNew方法用于記錄集中添加一個新行,實現(xiàn)代碼如下:void CADODataSet:AddNew()m_DataSet-AddNew();SetFieldValue方法用來向記錄集中指定的字段賦值,實現(xiàn)代碼如下:void CADODataSet:SetFieldValue(CString FieldName,_variant_t Value0)m_DataSet-PutCollect(_bstr_t)FieldName,Value);Save方法用來保存對記錄集中所做的任何數(shù)據(jù)更改,實現(xiàn)代碼如下:void CADODataSet:Save(

43、)m_DataSet-Upsate();Move方法將記錄集的當(dāng)前指針移動到指定的索引位置,實現(xiàn)代碼如下:void CADODataSet:Move(int nIndex)m_DataSet-MoveFirst();m_DataSet-Move(nIndex);GetRecordNo方法用來獲取記錄集中的當(dāng)前行號,實現(xiàn)代碼如下:int CADODataSet:GetRecordNO()return m_DataSet-AbsolutePositon;Delete方法用來刪除記錄集中的當(dāng)前行,實現(xiàn)代碼如下:void CADODataSet:Delete()m_DateSet-Delete(adA

44、ffectCurent);4.4 統(tǒng)主體窗的設(shè)計人事考勤系統(tǒng)主窗口由菜單和客戶區(qū)域組成,其中,客戶區(qū)域顯示了一幅位圖,主窗體效果如圖4-3所示。主窗體設(shè)計步驟如下:(1) 啟動Visual C+ 6.0,選擇File/New命令,打開New窗口,如圖4-4所示。(2) 在New窗口左方的列表視圖中選擇MFC AppWizardexe選項,在Project name編輯框中輸入工程名稱,在Location編輯框中設(shè)置工程保存的路徑。單擊OK按鈕進入MFC AppWizard-Step1窗口,如圖4-5所示。(3) 單擊Finish按鈕完成工程的創(chuàng)建。(4) 向工程中導(dǎo)入一幅位圖資源。(5) 創(chuàng)建

45、一個菜單資源,并設(shè)置各個菜單項的ID和名稱。(6) 通過類向?qū)蛑鞔翱谔砑硬藛雾椀膯螕羰录?.5 系統(tǒng)模塊設(shè)計4.5.1 用戶登入模塊設(shè)計用戶登入模塊是所有管理系統(tǒng)所應(yīng)具備的基礎(chǔ)模塊之一,該模塊實現(xiàn)了用戶使用系統(tǒng)的檢驗工作,使沒有權(quán)限的用戶不能使用該系統(tǒng),增加了系統(tǒng)的安全性。用戶登入界面如圖4-6所示。用戶登錄窗體是整個系統(tǒng)中創(chuàng)建并顯示的第一個窗體,所以該窗體應(yīng)在主窗體創(chuàng)建前創(chuàng)建并顯示。在登錄窗體創(chuàng)建的同時應(yīng)該創(chuàng)建數(shù)據(jù)庫連接。這些操作都應(yīng)在程序類的初始化方法中實現(xiàn),該方法名為InitInstance,代碼如下:BOOL CPersonApp:InitInstance()AfxEnableCo

46、ntrolContainer();#ifdef_AFXDLLEnable3dControls();#elseEnable3dControlsStatic(); #endifLoadSkin();BOOLbCon=GetConnection()-Open(GetConnection()-GetSQLConStr(,tb_person);CLoginDialog logindlg;if(logindlg.DoModal()! = IDOK)return false;CPersonDlg dlg;m_pMainWnd =& dlg;int nResponse = dlg.DoModal();if(n

47、Response = IDOK)else if(nResponse = IDCANCEL)return FALSE; 創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框的ID改為IDD_DLGOGIN,將對話框標題改為“登入”。想對話框中添加兩個靜態(tài)文本控件、一個編輯框控件、一個列表框控件和兩個按鈕控件。分別設(shè)置兩個按鈕的Caption屬性為“確定”和“取消”。在窗體的初始化方法中創(chuàng)建用戶表的數(shù)據(jù)集,并將用戶名添加到列表控件中,實現(xiàn)代碼如下:BOOL CLoginDialog:OnInitDialog()CDialog:OnInitDialog();m_DataSet.SetConnection(G

48、etConnection();m_DataSet.Open(Select * From Tab_User);int count = m_DataSet.GetRecordCount();for(int i = 0;i ItemLUserName-Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE;在“確定”按鈕的事件中實現(xiàn)用戶名和密碼的檢證,實現(xiàn)代碼如下:void CLoginDialog:OnLogin()CString sql,user,pass;m_UserList.GetWindowText(user);m_passW

49、ord.GetWindowText(pass);sql.Format(Select * From tab_user Where UserName = %s and PassWord = %s,user,pass);m_DataSet.Open(sql);if(m_DataSet.GetRecordCount() = 1):SetUserName(user);this-OnOk(); elseAfxMessageBox;4.5.2 用戶管理模塊設(shè)計用戶管理模塊實現(xiàn)了對系統(tǒng)登錄用戶的添加、修改和刪除操作。用戶管理模塊的界面如圖 4-7所示。在用戶管理模塊中使用CListCtrl控件顯示用戶信息,當(dāng)

50、對某一記錄進行編輯或刪除操作時必須獲取一個與記錄對應(yīng)的標識,所以在對用戶列表進行添加時利用列表視圖控件SetItemData方法將記錄集對應(yīng)的行號添加到每一行對應(yīng)的數(shù)據(jù)中。當(dāng)對記錄進行修改時即可通過獲取對應(yīng)的行號對數(shù)據(jù)集中的數(shù)據(jù)進行修改。獲取數(shù)據(jù)時使用列表視圖控件中的GetItemData方法.創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框的ID改為IDD_DLGUSER,將對話框標題改為“用戶管理”。向?qū)υ捒蛑刑砑右粋€列表視圖控件和4個按鈕控件。列表視圖控件的變量為m_grid,分別設(shè)置按鈕控件的Caption屬性為“添加”、“修改”、“刪除”和“退出”。定義UpdateGrid方法,用來更新

51、列表視圖中顯示的用戶信息,實現(xiàn)代碼如下:void CUserManage:UpdateGrid() m_DataSet.Open(Select * From tab_User); m_grid.DeleteAllItems(); for(int = 0;i ItemLUserName-Value);int no = m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next(); 向?qū)υ捒蛑刑砑覱nInitDialog方法,在對話框的初始化方法中添加列表視圖控件應(yīng)顯示的列頭,并在下拉列表視圖控件中添加數(shù)據(jù),代碼如下:BOOL

52、CUserManage:OnInitDialog() CDialog:OnInitDialog();m_grid.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_grid.InsertColumn(0,用戶名);m_grid.SetColumnWidth(0,150);m_DataSet.SetConnection(:GetConnection();UpdateGrid();return TRUE; 在“添加”按鈕事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕,實現(xiàn)對用戶的添加,代碼如下:void CUserMana

53、ge:OnAppend() CUserEdit useredit;if (useredit.DoModal() = IDOK)m_DataSet.AddNew();m_DataSet.SetFieldValue(UserName,(_bstr_t);m_DataSet.Save();UpdateGrid();在“修改”按鈕事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕實現(xiàn)對用戶的修改,代碼如下:void CUserManage:OnEdit() CUserEdit useredit;int no = m_grid.GetItemData(m_grid.GetSelectionMark

54、();m_DataSet.move(no-1); = (char *)(_bstr_t)m_DataSet.GetFields()-ItemLUserName-Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFieldValue(UserName,(_bstr_t);m_DataSet.Save();UpdateGrid();在“刪除”按鈕的單擊事件中獲取當(dāng)前記錄進行刪除操作,代碼如下:void CUserManage:OnDelete() if (MessageBox(是否刪除此記錄!,提示,MB_YESNO|MB_ICONWARNING)

55、= IDYES)int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();4.5.3 部門管理模塊設(shè)計部門管理記錄了部門間的層次結(jié)構(gòu)和部門信息,所以通常部門管理窗體中對于部門的顯示是使用樹列表顯示的。部門管理界面如圖4-8所示。由于部門通常都是存在層次級別的,所以在設(shè)計數(shù)據(jù)表結(jié)構(gòu)時應(yīng)至少創(chuàng)建3個字段,即“編號”、“父編號”和名稱。而在程序中顯示部門信息時也根據(jù)“父編號”作為查詢條件不斷地查找下一級的部門。在

56、本系統(tǒng)中,由于部門信息通常不會太多,所以可以用嵌套的方式將部門信息一次性地讀入樹列表視圖控件中,實現(xiàn)代碼如下:void CDeptManage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid );DataSet.Open(str);int count = DataSet.GetRecordCount(

57、);int ID;_variant_t value;for(int i = 0;i ItemDeptName-Value,pNode);value = (_vaiant_t)DataSet.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框的ID改為IDD_DLGDEPT,將對話框標題改為“部門管理”。向?qū)υ捒蛑刑砑右粋€樹列表控件、4個按鈕控件,分別設(shè)置按鈕控件的Caption屬性為“添加”、“修改”、“刪除”和“

58、退出”。定義GetNode方法用來按層次關(guān)系獲取部門表中的所有數(shù)據(jù),并添加到樹列表控件中。該方法由UpdateDept方法進行調(diào)用,實現(xiàn)代碼如下:void CDeptManage:UpdateDept()m_tree.DeleteAllItems();GetNode(TVI_ROOT,0);void CDeptManage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select

59、* From tab_Dept where pid = %d,nPid);DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for (int i = 0;iItemDeptName-Value,pNode);value = (_variant_t)DataSet.GetFields()-ItemID-Value;ID = Val;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();當(dāng)單擊“添加”按鈕時將彈出部門編輯窗體,

60、輸入部門信息后單擊“確定”按鈕將添加一個新的部門,代碼如下:void CDeptManage:OnAdd() CDeptEdit deptedit;if (deptedit.DoModal() = IDOK)HTREEITEM pNode = m_tree.GetSelectedItem();int pID;if (deptedit.isroot)pID = 0;elsepID = m_tree.GetItemData(pNode);CADODataSet dataset;dataset.SetConnection(:GetConnection();dataset.Open(Select to

61、p 1 * From tab_Dept);dataset.AddNew();dataset.SetFieldValue(DeptName,(_variant_t);dataset.SetFieldValue(memo,(_variant_t)deptedit.memo);dataset.SetFieldValue(PID,(long)pID);dataset.Save();UpdateDept();當(dāng)單擊“修改”按鈕時將彈出部門編輯窗體,輸入部門信息后單擊“確定”按鈕將添加一個新的部門,代碼如下:void CDeptManage:OnEdit() CDeptEdit deptedit;deptedit.visible = false;HTREEITEM pNode = m_tre

溫馨提示

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

最新文檔

評論

0/150

提交評論