基于C++的企業考勤管理系統的設計與開發_第1頁
基于C++的企業考勤管理系統的設計與開發_第2頁
基于C++的企業考勤管理系統的設計與開發_第3頁
基于C++的企業考勤管理系統的設計與開發_第4頁
基于C++的企業考勤管理系統的設計與開發_第5頁
已閱讀5頁,還剩80頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上摘 要黑體 二號 隨著現代科學技術的發展,越來越多的公司和企業對職工的考勤都實行了信息化管理,使用計算機系統代替復雜的手工方式來管理考勤事務??记诠芾硐到y可以有效地管理公司員工的出勤情況,規范人事制度管理,保證公司正常的工作,是人力資源管理的重要組成部分。 系統的開發主要包括后臺數據庫的建立,維護以及前端應用程序的開發兩個方面,主要模塊包括基本信息管理模塊,考勤信息管理模塊,統計查詢模塊和系統用戶管理模塊。系統是使用Visual C+開發語言,使用Microsoft Visual Studio 6.0作為工具軟件,數據庫為SQL Server 2000。系統采用目前比

2、較流行的ADO數據訪問技術,并將每個數據庫表的字段和操作封裝到類中,它使應用程序的各個窗口都能夠共享對表的操作,不需要重復編碼,使程序更加易于維護,從而將面向對象的程序設計思想應用到數據庫應用程序中。關鍵詞:考勤管理;人力資源;數據庫;數據訪問技術Abstract Along with the development of the modern science and technology, more and more companies and enterprises implemented the information management to the staff's chec

3、king attendance, and use computer system instead of the complex manual way to manage the checking attendance business. The checking attendance management system may effectively manage the staff's going out on duty situation, Standard personnel system management, Guarantees the company normal wor

4、k. 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 the front-side application. This system contains following several modules: the basic information management module

5、, 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 system. The system uses the popular ADO technology, and encapsulates the fields and the operations of each table i

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

7、ords: Attendance management; Human resources; Database; Data access technology專心-專注-專業目 錄二號黑體居中第1章 第2章 目錄頁碼與正文頁碼分開,不同 第1章 概述一級標題 黑體 二號理工類學科的論文主體不少于10000字1.1 企業考勤管理系統意義二級標題黑體 三號 考勤管理是企事業單位經營的重要環節,加強考勤管理,嚴肅考勤制度是企事業單位搞好各項經營管理工作的前提與保障.科學地管理考勤不僅可以保證各項經營管理計劃得以落實,而且有利于提高工作學習效率.長期以來,很多單位沿襲人工方式進行考勤管理,每個單位都有專

8、門負責考勤登記的人員.即便如此科學準確地管理考勤也絕非易事,原因主要在于考勤涉及人員、班種、請假等諸多因素,每日考勤統計工作量極大等.利用計算機管理考勤不僅能使管理人員從繁重的考勤管理工作中解脫出來,而且能夠使考勤管理工作更加科學化,規范化,智能化. 隨著計算機技術的高速發展,正在改變著整個世界的經濟,也改變著企業的管理.順應信息技術發展的潮流,作為企業信息化的核心部分,選擇先進的,符合國際標準的考勤系統,不僅可以有效提高企業管理,協作與監控員工的出勤效率,更可以為企業進一步信息化建設奠定良好的基礎.利用計算機實現企業人事考勤管理勢在必行。本系統結合企業實際考勤管理制度,經過實際的需求分析,采

9、用功能強大的Visual C+ 6.0作為開發工具,開發出來的企業考勤管理系統。 其一,可以將考勤事務交給基本部門處理,交個每個員工自己處理,交給系統自動處理,用IT技術推動人事考勤管理的變革。 其二,新的考勤系統的實施,不僅把HR人員從考勤的具體事務中解放出來,而且也推動了全員對人事管理的參與和互動.HR人員的可以把工作重心可以放在服務員工、支持公司管理層的戰略決策上,放在公司最重要的資產員工和員工的集體智慧的管理上等核心業務上來。在此討論的考勤管理系統的開發,旨在探索一種新的考勤模式.通過這種新的模式,為企業的傳統考勤模式創造一種新的概念,提高考勤工作效率和標準化水平。 整個系統從符合操作

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

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

12、界接軌的重要條件。 考勤管理系統就是把分散的企事業單位的考勤信息實行統一、集中、規范的收集管理,建立分類編號管理、電腦存儲查詢以及防火、防潮、防蛀、防盜等現代化、專業化的管理系統,為企事業單位和職工解除后顧之憂。 企業考勤管理系統為企事業單位提供信息咨詢、信息檢索、信息存取等服。 本考勤管理系統基本上能夠滿足現代企業考勤管理需求。信息錄入項目齊全、完整、系統。現代考勤管理系統靈活使用表格對各種信息分門別類,組成企業考勤管理系統,可以方便地查詢、閱讀、修改、交流和重復使用。 1.3 企業考勤系統基于的技術種類 基于ClientServer結構的遠程電腦考勤系統,PB和SQL Server結合開發

13、出兩層C/S結構的遠程電腦考勤系統。該系統采用條碼掃描的形式,在Client端采集考勤數據,在Server端綜合匯總,匯總的數據除供管理者查詢以做決策的依據外,還可直接將其傳至公司的財務系統,作為薪金發放的重要參考。在論述遠程電腦考勤系統實例的同時,還從系統環境,前臺應用程序的設計,后臺數據庫的設計,系統數據庫的安全,系統網絡的安全等方面給出了開發兩層次C/S結構應用系統、一般方法和技巧,具有一定的參考價值。 基于VB/SQL Server的管理系統的實現智能化考勤系統設計,VB作為一種面向對象的可視化編程工程,具有簡單易學、靈活方便和易于擴充的特點.與后端的SQL Server相結合,VB能

14、夠提供一個高性能的客戶機/服務器方案.主要講述在軟件工程原理指導下,考勤管理方案的設計,該系統服務端采用了Mircosoft SQL Serve2000,客戶端采用Visual Basic編程,通過微軟的ADO控件調用服務器端的相關數據,實現數據的分布式管理. 基于ASP.NET的考勤管理系統的設計與實現,考勤管理系統是企事業單位實現員工考勤自動化管理的重要設施.本文詳細討論了某公司考勤管理系統的系統功能、系統結構的設計和關鍵技術實現的過程.用ASP.NET開發的該系統具有操作簡便、界面友好、靈活、實用和安全等特點. 正文頁碼要用阿拉伯數字,與目錄頁碼不同第2章 系統的可行性研究2.1 技術可

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

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

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

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

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

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

21、需求,也是與國際社會流行趨勢相吻合的。企業管理制度的齊全與穩定,提供了企業創新發展的基礎。企業計算機設備齊全,網絡完善,有良好的機房和技術人員。企業DBA對微機操作熟練,完全可以掌握系統的使用和維護。因此,考勤系統的操作運行是可行的。第3章 一級標題 黑體 二號系統分析3.1 系統二級標題 黑體 三號需求分析需求分析是系統開發必要環節,也是重中之重;需求過程研究業務工作,以期設計出有助于業務工作的更加完善的系統。作為該過程的結果,需求規格說明書是對系統的功能和行為完整的描述。系統設計將來自于需求和分析的抽象規格說明轉變為面向真實世界的設計。一旦構建完成,該系統就會投入使用,同時會不可避免地產生

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

23、勤信息進行管理和統計。(2) 該管理軟件將根據用戶的需要對個人信息進行查詢,并能打印詳細信息。(3) 該管理軟件將為用戶提供賬號管理工具,以便用戶對賬號進行管理,具體為添加用戶、刪除用戶、修改用戶密碼。(4) 該管理軟件提供企業人員管理,能夠對企業員工的分類管理,新員工的加入以及員工刪除,修改進本信息等功能。3.1.2 功能需求基于系統需求分析,該系統需要實現以下基本功能:用戶管理:管理系統操作人員,設置操作人員口令和權限。在滿足不同系統用戶的操作需求的基礎上,提高系統的安全性。人事考勤管理:完成企業對員工個人考勤信息(包括員工的基本檔案和在職信息)的管理及相關操作。操作員進行員工考勤信息錄入

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

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

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

27、,做成一個頂層圖會使得各用例間的關系更清晰.具體關系如圖所示. 圖3-1 考勤管理系統頂層Use Case全局分析第4章 系統軟件設計4.1 系統設計預覽4.1.1 系統設計目標與功能結構人事考勤管理系統以實現員工日常出勤信息管理為設計目標,加以強大的數據庫管理功能,可以方便對考勤信息進行管理,大大地提高了人事部門的日常工作效率。本系統在設計時應滿足以下幾點: 采用人機對話的操作方式,信息查詢靈活、方便、快捷、準確、數據 存儲安全可靠。對考勤信息的操作簡單,可以方便的進行添加、修改、和刪除,可以錄入員工信息、部門信息。對員工的考勤信息可按月進匯總計算,對用戶輸入的數據,系統進行嚴格的數據檢查,

28、盡可能排除人為的錯誤。 系統最大限度的實現了易維護性和易操作性。統運行穩定、安全可靠。人事考勤系統功能結構如圖4-1所示。 圖4-1人事考勤系統功能結構4.1.2 業務流程圖展示圖4-2人事考勤系統業務流程圖4.2 數據庫設計4.2.1 數據庫分析 人事考勤管理系統使用了Microsoft SQL Sever 2000 數據庫來滿足系統的要求,數據庫名稱為tb_person,在數據庫中創建4張表用于存儲各種不同的信息,如圖4-2所示 圖4-2 數據庫中的標2數據庫邏輯結構設計下面給出人事考勤管理系統數據庫中的主要表的表結構。Tab_User(管理員信息表):用于保存管理員的信息,如圖4-3所示

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

30、on類是用來連接數據庫的,實現了對_Connection接口的封裝,CADOConnection類在頭文件中的定義如下:#import"msado15.dll" no_namespace rename("EOF,"adoEOF")class CADOConnectionprivate:Static void InitADO();Static void UnInitADO();protected:_ConnectionPtr m_Connection;public:BOOL IsOpen();_ConnectionPtr GetConnectio

31、n();Cstring GetSQLConstr(CString IP,CString DBName);BOOL Open(CString ConStr);CADOConnection();VirtualCADOConnection();CADOConnection*GetConnection();CADOConnection類的實現代碼如下:定義兩個全局變量ConCount和g_Connection,ConCount變量是一個整型變量,用起來記錄在工程中所創建的CADOConnection類的實例個數。在構造方法中當此變量為0時調用CoInitialize函數實現OLE的初始化。在析構方法中

32、當此變量為0時調用CoUninitialize方法取消OLE的初始化。Int ConCount = 0;CADOConnection g_Connection;GetConnection 函數是一個全局函數,用于返回全局數據庫連接對象的指針,代碼如下:CADOConnection*GetConnection()Return & g_Connection;CADOConnection方法是析構函數,用于初始化OLE和創建_Connection接口的指針實例,代碼如下:CADOConnection:CADOConnection()InitADO();m_Connection.CreateI

33、nstance("ADODB.Connection");CADOConnection方法是析構函數,用于取消OLE初始化和釋放_Connection接口的指針,代碼如下:CADOConnection:CADOConnection()If(IsOpen();m_Connection->Close();m_Connection = NULL;UnInitADO();InitADO方法是一個靜態方法,用于初始化OLE,代碼如下:Void CADOConnection:InitADO()If(ConCount + = 0)CoInitialize(NULL);UnInitAD

34、O方法是一個靜態方法,用于取消OLE的初始化,代碼如下:void CADOConnection:UnInitADO()if(ConCount = 0)CoUninitialize();Open方法通過指定的數據庫連接字符串與SQL數據庫建立連接,代碼如下:BOOL CADOConnection:Open(CString ConStr)if(IsOpen()m_Connection->Close();m_Connection->Open(_bstr_t)ConStr,","adModeUnknown);return IsOpen();GetSQLConStr方法用

35、來生成與數據庫連接所需要的連接字符串,代碼如下:CString CADOConnection:GetSQLConStr(CString IP,CString DBName)CString 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

36、 CADOConnection:GetConnection()return m_Connection:IsOpen 方法用來判斷當前數據庫連接對象與數據庫的連接狀態,代碼如下:BOOL CADOConnection:IsOpen()long State;m_Connection->get_State(&State);if(State = adStateOpen)return true;return false;4.3.2 CADODataSet類CADODataSet類是用來存儲數據的數據集類,該類實現了_Recordset 接口的實例,該類在頭文件中的定義如下:class CA

37、DODataSetprotected:_RecoedsetPtr m_DataSet;CADOConnection *m_Connectionpublic:void Delete();int GetRecordNo();void move(int nIndex);void Save();void SetFieldValue(CString FieldName,_variant_t Value);void AddNew();BOOL Next();FieldsPtr GetFields();int GetRecordCount();void SetConnetion(CADOConnection

38、 *pCon);BOOL Open(CString SQLStr);CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet方法為記錄集實現類的構造方法,在該方法中實現記錄集接口對象的創建,代碼如下:CADODataSet:CADODataSet()m_DataSet.CreateInstance("ADODB.Recordset");CADODataSet類為記錄集實現類的構造方法,在該方法中實現記錄集的關閉與接口的釋放,代碼如下:CADODataSet:CADODataSet()if(Is

39、Open()m_DataSet->Close();m_DataSet = NULL;m_Connection = NULL;SetConnection方法用來設置記錄集所連接的數據庫連接類的對象,代碼如下:void CADODataSet:SetConnection(CADOConnection *pCon)m_Connection = pCon;GetRecordCount方法用來獲取記錄集中數據的數量,實現代碼如下:int CADODataSet:GetRecordCount()if(IsOpen()return m_DataSet->GetRecordCount();else

40、return 0;Open方法通過SQL查詢語句打開數據集,實現代碼如下:BOOL CADODataSet:Open(CString SQLStr)if(IsOpen)m_DataSet->Close();IsOpen方法用來判斷數據集是否處于打開狀態,實現代碼如下:BOOL CADODataSet:IsOpen()long State;m_DataSet->get_State(&State);if(State = adStateOpen)return true;return false;GetFields方法用來獲取記錄集中字段的集合,實現代碼如下:FieldsPtr C

41、ADODataSet:GetFields()return m_DataSet->GetFields();Next方法將記錄指針下移一位,實現代碼如下:BOOL CADODataSet:Next()if(m_DataSet->adoEOF)retuen false;m_DataSet->MoveNext();return true;AddNew方法用于記錄集中添加一個新行,實現代碼如下:void CADODataSet:AddNew()m_DataSet->AddNew();SetFieldValue方法用來向記錄集中指定的字段賦值,實現代碼如下:void CADODat

42、aSet:SetFieldValue(CString FieldName,_variant_t Value0)m_DataSet->PutCollect(_bstr_t)FieldName,Value);Save方法用來保存對記錄集中所做的任何數據更改,實現代碼如下:void CADODataSet:Save()m_DataSet->Upsate();Move方法將記錄集的當前指針移動到指定的索引位置,實現代碼如下:void CADODataSet:Move(int nIndex)m_DataSet->MoveFirst();m_DataSet->Move(nIndex

43、);GetRecordNo方法用來獲取記錄集中的當前行號,實現代碼如下:int CADODataSet:GetRecordNO()return m_DataSet->AbsolutePositon;Delete方法用來刪除記錄集中的當前行,實現代碼如下:void CADODataSet:Delete()m_DateSet->Delete(adAffectCurent);4.4 統主體窗的設計人事考勤系統主窗口由菜單和客戶區域組成,其中,客戶區域顯示了一幅位圖,主窗體效果如圖4-3所示。主窗體設計步驟如下:(1) 啟動Visual C+ 6.0,選擇File/New命令,打開New窗

44、口,如圖4-4所示。(2) 在New窗口左方的列表視圖中選擇MFC AppWizardexe選項,在Project name編輯框中輸入工程名稱,在Location編輯框中設置工程保存的路徑。單擊OK按鈕進入MFC AppWizard-Step1窗口,如圖4-5所示。(3) 單擊Finish按鈕完成工程的創建。(4) 向工程中導入一幅位圖資源。(5) 創建一個菜單資源,并設置各個菜單項的ID和名稱。(6) 通過類向導向主窗口添加菜單項的單擊事件。4.5 系統模塊設計4.5.1 用戶登入模塊設計用戶登入模塊是所有管理系統所應具備的基礎模塊之一,該模塊實現了用戶使用系統的檢驗工作,使沒有權限的用戶

45、不能使用該系統,增加了系統的安全性。用戶登入界面如圖4-6所示。用戶登錄窗體是整個系統中創建并顯示的第一個窗體,所以該窗體應在主窗體創建前創建并顯示。在登錄窗體創建的同時應該創建數據庫連接。這些操作都應在程序類的初始化方法中實現,該方法名為InitInstance,代碼如下:BOOL CPersonApp:InitInstance()AfxEnableControlContainer();#ifdef_AFXDLLEnable3dControls();#elseEnable3dControlsStatic(); #endifLoadSkin();BOOLbCon=GetConnection()

46、->Open(GetConnection()->GetSQLConStr("","tb_person");CLoginDialog logindlg;if(logindlg.DoModal()! = IDOK)return false;CPersonDlg dlg;m_pMainWnd =& dlg;int nResponse = dlg.DoModal();if(nResponse = IDOK)else if(nResponse = IDCANCEL)return FALSE; 創建一個對話框,打開對話框屬性窗口

47、,將對話框的ID改為IDD_DLGOGIN,將對話框標題改為“登入”。想對話框中添加兩個靜態文本控件、一個編輯框控件、一個列表框控件和兩個按鈕控件。分別設置兩個按鈕的Caption屬性為“確定”和“取消”。在窗體的初始化方法中創建用戶表的數據集,并將用戶名添加到列表控件中,實現代碼如下:BOOL CLoginDialog:OnInitDialog()CDialog:OnInitDialog();m_DataSet.SetConnection(GetConnection();m_DataSet.Open("Select * From Tab_User");int count

48、= m_DataSet.GetRecordCount();for(int i = 0;i < count;i+)m_UserList.AddString(_bstr_t)m_DataSet.GetFields()->ItemL"UserName"->Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE;在“確定”按鈕的事件中實現用戶名和密碼的檢證,實現代碼如下:void CLoginDialog:OnLogin()CString sql,user,pass;m_UserList.GetWin

49、dowText(user);m_passWord.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 用戶管理模塊設計用戶管理模塊實現了對系統登錄用戶的添

50、加、修改和刪除操作。用戶管理模塊的界面如圖 4-7所示。在用戶管理模塊中使用CListCtrl控件顯示用戶信息,當對某一記錄進行編輯或刪除操作時必須獲取一個與記錄對應的標識,所以在對用戶列表進行添加時利用列表視圖控件SetItemData方法將記錄集對應的行號添加到每一行對應的數據中。當對記錄進行修改時即可通過獲取對應的行號對數據集中的數據進行修改。獲取數據時使用列表視圖控件中的GetItemData方法.創建一個對話框,打開對話框屬性窗口,將對話框的ID改為IDD_DLGUSER,將對話框標題改為“用戶管理”。向對話框中添加一個列表視圖控件和4個按鈕控件。列表視圖控件的變量為m_grid,分

51、別設置按鈕控件的Caption屬性為“添加”、“修改”、“刪除”和“退出”。定義UpdateGrid方法,用來更新列表視圖中顯示的用戶信息,實現代碼如下:void CUserManage:UpdateGrid() m_DataSet.Open("Select * From tab_User"); m_grid.DeleteAllItems(); for(int = 0;i < m_DataSet.GetRecordCount();i+) m_grid.InsertItem(i,(_bstr_t)m_DataSet.GetFields()->ItemL"

52、UserName"->Value);int no = m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next(); 向對話框中添加OnInitDialog方法,在對話框的初始化方法中添加列表視圖控件應顯示的列頭,并在下拉列表視圖控件中添加數據,代碼如下:BOOL CUserManage:OnInitDialog() CDialog:OnInitDialog();m_grid.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_grid.Inse

53、rtColumn(0,"用戶名");m_grid.SetColumnWidth(0,150);m_DataSet.SetConnection(:GetConnection();UpdateGrid();return TRUE; 在“添加”按鈕事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕,實現對用戶的添加,代碼如下:void CUserManage:OnAppend() CUserEdit useredit;if (useredit.DoModal() = IDOK)m_DataSet.AddNew();m_DataSet.SetFieldValue("

54、UserName",(_bstr_t));m_DataSet.Save();UpdateGrid();在“修改”按鈕事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕實現對用戶的修改,代碼如下:void CUserManage:OnEdit() CUserEdit useredit;int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1); = (char *)(_bstr_t)m_DataSet.GetFields()->Ite

55、mL"UserName"->Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFieldValue("UserName",(_bstr_t));m_DataSet.Save();UpdateGrid();在“刪除”按鈕的單擊事件中獲取當前記錄進行刪除操作,代碼如下:void CUserManage:OnDelete() if (MessageBox("是否刪除此記錄!","提示",MB_YESNO|MB_ICONWARNING) = IDYES)int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();4.5.3 部門管理模塊設計部門管理記錄了部門間的層次結構和部門信息,所以通常部門管理窗體中對于部門的顯示是使用樹列表顯示的。部門管理界面如圖4-8所示。由于部門通常都是存在層次級別的,所以在設計數據表結構時應至少創建3個字段,即“編號”、“父編號”和名稱。而在程序中顯示部門信息時也根據“父編號”作為查詢條件不斷地查找下一級的部門。在

溫馨提示

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

評論

0/150

提交評論