![基于VC%252B%252B的考勤系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e8f3592e-d794-4336-a636-9116ea24fee0/e8f3592e-d794-4336-a636-9116ea24fee01.gif)
![基于VC%252B%252B的考勤系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e8f3592e-d794-4336-a636-9116ea24fee0/e8f3592e-d794-4336-a636-9116ea24fee02.gif)
![基于VC%252B%252B的考勤系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e8f3592e-d794-4336-a636-9116ea24fee0/e8f3592e-d794-4336-a636-9116ea24fee03.gif)
![基于VC%252B%252B的考勤系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e8f3592e-d794-4336-a636-9116ea24fee0/e8f3592e-d794-4336-a636-9116ea24fee04.gif)
![基于VC%252B%252B的考勤系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e8f3592e-d794-4336-a636-9116ea24fee0/e8f3592e-d794-4336-a636-9116ea24fee05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于VC+的考勤系統(tǒng)摘要:隨著現(xiàn)代科學技術(shù)的發(fā)展,越來越多的公司和企業(yè)對職工的考勤都實行了信息化管理,使用計算機系統(tǒng)代替復雜的手工方式來管理考勤事務??记谙到y(tǒng)可以有效地管理公司員工的出勤情況,規(guī)范人事制度管理,保證公司正常的工作,是人力資源管理的重要組成部分。因此,考勤管理系統(tǒng)的設(shè)計與實現(xiàn)有著十分重要的意義。系統(tǒng)的開發(fā)主要包括后臺數(shù)據(jù)庫的建立,維護以及前端應用程序的開發(fā)兩個方面,主要模塊包括基本信息管理模塊,考勤信息管理模塊,統(tǒng)計查詢模塊和系統(tǒng)用戶管理模塊。系統(tǒng)是使用Visual C+開發(fā)語言,使用Microsoft Visual Studio 6.0作為工具軟件,數(shù)據(jù)庫為Access 200
2、3。系統(tǒng)采用目前比較流行的ODBC數(shù)據(jù)訪問技術(shù),并將每個數(shù)據(jù)庫表的字段和操作封裝到類中,它使應用程序的各個窗口都能夠共享對表的操作,不需要重復編碼,使程序更加易于維護,從而將面向?qū)ο蟮某绦蛟O(shè)計思想應用到數(shù)據(jù)庫應用程序中。關(guān)鍵字: Visual C+,Access,MFC,考勤管理,ODBC數(shù)據(jù)訪問技術(shù)。VC + + based on the attendance systemAbstract:With the development of modern science and technology, an increasing number of companies and enterpris
3、es of the attendance of all employees to implement the information management, the use of complex computer systems to replace manual methods to manage time and attendance matters. Attendance system can effectively manage staff attendance and standardize the management of the personnel system to ensu
4、re that normal work is an important human resource management component. Therefore, the Attendance Management System Design and Implementation is very important. System mainly includes the establishment of the background database, front-end application maintenance and development of two main modules
5、, including basic information management module, attendance information management module, statistics module and system queries the user management module. System is to use Visual C + + development language, the use of Microsoft Visual Studio 6.0 as a tool for software, database for Access 2003. Sys
6、tem is currently more popular ODBC data access technology, and database tables for each of the field and operation of the class package, which allows applications to share all the various windows on the operation table, do not need to duplicate code, so that procedures more easy to maintain, so that
7、 object-oriented programming design concepts applied to database applications.Key words:Visual C + +, Access, MFC, attendance management, ODBC data access technology.前 言二十一世紀人類已進入到了一個高速發(fā)展的信息時代。社會的高度信息化要求各企事業(yè)單位不停的提高信息管理技術(shù)以適應社會的發(fā)展。 我國當前考勤管理在許多企業(yè)中還是停留在手工記錄的方式,其操作相當繁雜??记诠ぷ餍枰芾碚呱钊氲狡髽I(yè)的各個部門中去統(tǒng)計員工的出勤情況。由于企業(yè)
8、部門繁多,導致經(jīng)常會出現(xiàn)記錄錯誤的情況發(fā)生。極大的影響了企業(yè)對員工的管理。本設(shè)計運用 Access 2003數(shù)據(jù)庫設(shè)計軟件與Visual C+程序語言設(shè)計了一個考勤管理軟件。使用該軟件,管理者可以快速記錄公司全體員工當日的出勤狀況。并可按月份統(tǒng)計員工出勤,出差,請假狀況及正常工作時間。很好的解決了前者在管理方面所存在的弊端。且操作非常簡單,用戶只需要懂得操作Windows系統(tǒng)便可,無需再進行其他任何培訓,方便用戶使用。在本軟件的開發(fā)過程中主要使用了Visual C+中的MFC庫來完成用戶界面設(shè)計和求值、統(tǒng)計的算法設(shè)計。運用 Access 2003來建立系統(tǒng)數(shù)據(jù)庫,并通過ODBC實現(xiàn)兩者的連接。
9、 目 錄一 引 言5(一) 課題背景5(二) 本課題的研究意義6(三)本課題研究方法6二 開發(fā)工具6(一) Visual C+ 6.06(二) ACCESS 2003數(shù)據(jù)庫7(三) ODBC數(shù)據(jù)訪問技術(shù)7三 考勤系統(tǒng)的設(shè)計9(一) 需求分析91 系統(tǒng)需求92 功能需求9(二) 功能模塊構(gòu)成10(三) 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計10四 考勤系統(tǒng)的實現(xiàn)13(一) 系統(tǒng)登錄功能的實現(xiàn)13(二) 系統(tǒng)管理14(三) 考勤管理141 加班信息管理142 出差信息管理153 請假信息管理16(四) 修改查詢管理161 添加修改172 查詢統(tǒng)計17(五) 系統(tǒng)設(shè)置18一 引 言在當今社會,隨著計算機的普及及網(wǎng)絡(luò)技術(shù)的應
10、用,考勤管理工作應該從繁瑣的日常事務中解放出來,比工作效率。并且,使用計算機對員工信息進行考勤管理,具有手工所無法比擬的優(yōu)點。例如:查詢迅速查找方便、可靠性高成本低高效率等。(一) 課題背景長期以來,繁瑣的考勤記錄整理,統(tǒng)計,查詢等工作,一直困擾著企業(yè)行政部門的工作人員。因此考勤管理在生產(chǎn)管理過程中充當著一個十分重要角色,考勤管理的效率對企業(yè)工作效率的提高起著舉足輕重的作用。隨著現(xiàn)代科學技術(shù)的發(fā)展,越來越多的公司和企業(yè)對職工的考勤管理都實行了信息化管理,使用計算機系統(tǒng)代替繁瑣冗余的手工方式來管理考勤事務?;诖?,開發(fā)了一套考勤管理系統(tǒng),不僅能夠很好的管理員工考勤信息,也能更好的提高企業(yè)的工作效
11、率,并且這些信息也將直接作為公司對員工的獎懲、提升以及培訓的一個重要依據(jù)。(二) 本課題的研究意義隨著計算機的普及和計算機科學技術(shù)的飛速發(fā)展,人們開始越來越多地利用計算機解決實際問題。考勤管理是商業(yè)信息管理的重要部分,面對大量的商品信息,采用人力處理將浪費大量的時間、人力和物力,而且統(tǒng)計數(shù)據(jù)麻煩。因此,開發(fā)一個界面友好,易于操作的考勤管理軟件進行自動化處理變得十分重要,這正是本系統(tǒng)開發(fā)的目的和意義。通過此考勤管理系統(tǒng)的開發(fā)鍛煉了學生的實際動手能力對以后的學習和工作能力的培養(yǎng)也具有重要意義。(三)本課題研究方法開發(fā)考勤管理系統(tǒng)需要選擇兩種工具,即前臺開發(fā)語言和后臺數(shù)據(jù)庫。一般開發(fā)C/S結(jié)構(gòu)的應用
12、程序時,前臺開發(fā)語言通??梢赃x擇Visual Basic、Visual C+、Delphi和Power Builder等,如果開發(fā)網(wǎng)絡(luò)應用程序,則需要選擇一個網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),如Access、Oracle、 SQL Server 2000和IBM DB2等。本設(shè)計是使用Visual C+ 6.0的開發(fā)工具,使用Access 2003作為后臺數(shù)據(jù)庫開發(fā),采用了比較流行的數(shù)據(jù)庫訪問技術(shù)ODBC(Open Database Connectivity),是提供對各種數(shù)據(jù)庫的標準接口。本次畢業(yè)設(shè)計應首先分析考勤管理系統(tǒng)的相關(guān)功能,結(jié)合本次畢業(yè)設(shè)計的相關(guān)要求寫出需求分析;其次,綜合運用以前所學的相關(guān)知識,在
13、設(shè)計中以需求分析為基礎(chǔ),寫出系統(tǒng)開發(fā)計劃、實現(xiàn)流程及相關(guān)問題的實現(xiàn)方法;同時,在開發(fā)設(shè)計與實現(xiàn)中,要保存好相關(guān)的設(shè)計文檔。二 開發(fā)工具(一) Visual C+ 6.0Visual C+6.0 是微軟公司1998年推出的產(chǎn)品,是基于Windows操作系統(tǒng)的編程工具,是Microsoft Visual Studio 6.0的組件之一,具有功能強大的可視化開發(fā)環(huán)境,為程序員開發(fā)軟件提供了方便的條件,并且VisualC+6.0集程序的代碼編輯、編譯、連接、調(diào)試等功能與一體,給程序員提供一個完整、全面而又方便的開發(fā)環(huán)境。它采用一種巧妙的方法將Windows的編程復雜性封裝起來,編程者可以比較輕松地進行
14、Windows應用程序的設(shè)計。Visual C+ 6.0繼承了以前版本的優(yōu)點,為用戶提供了更為友好的可視化開發(fā)環(huán)境。它提供了強大的編譯能力以及良好的界面操作性,具有功能強大、通用性強和易于擴充等特點,越來越多的被用來當作客戶/服務器應用程序的前臺應用工具,而且能夠?qū)indows NT、Windows 2000 以及Windows XP 下的C+程序設(shè)計提供完善的編程環(huán)境。同時Visual C+6.0 對網(wǎng)絡(luò)、數(shù)據(jù)庫等方面的編程也都提供相應的環(huán)境支持。隨著可視化編程的蓬勃發(fā)展,越來越多的程序員開始使用可視化編程技術(shù)。Visual C+6.0擁有兩種編程方式: 一種是傳統(tǒng)的基于WindowsAP
15、I的C編程方式,雖然代碼效率較高,但開發(fā)難度與開發(fā)工作量也隨著增高,目前使用這種編程方式的用戶已經(jīng)很少。另一種是基于MFC的C+編程方式,雖然代碼運行效率相對較低,但開發(fā)難度小,開發(fā)工作量小,源代碼效率高,已經(jīng)成為Visual C+開發(fā)windows應用程序的主流。本系統(tǒng)選擇的就是基于MFC的C+編程方式。(二) ACCESS 2003數(shù)據(jù)庫Access 2003是微軟Office 2003系列軟件的組件之一,是目前比較流行的、面向?qū)ο蟮闹行⌒妥烂骊P(guān)系型數(shù)據(jù)庫系統(tǒng)軟件。Access 2003是一種關(guān)系式數(shù)據(jù)庫,Access 2003數(shù)據(jù)庫由七種對象組成,它們是表、查詢、窗體、報表、宏、頁和模塊
16、。表(Table) 表是數(shù)據(jù)庫的基本對象,是創(chuàng)建其他5種對象的基礎(chǔ)。表由記錄組成,記錄由字段組成,表用來存貯數(shù)據(jù)庫的數(shù)據(jù),故又稱數(shù)據(jù)表。查詢(Query)查詢可以按索引快速查找到需要的記錄,按要求篩選記錄并能連接若干個表的字段組成新表。 窗體(Form)窗體提供了一種方便的瀏覽、輸入及更改數(shù)據(jù)的窗口。還可以創(chuàng)建子窗體顯示相關(guān)聯(lián)的表的內(nèi)容。窗體也稱表單。 報表(Report)報表的功能是將數(shù)據(jù)庫中的數(shù)據(jù)分類匯總,然后打印出來,以便分析。 宏(Macro)宏相當于DOS中的批處理,用來自動執(zhí)行一系列操作。Access列出了一些常用的操作供用戶選擇,使用起來十分方便。模塊(Module)模塊的功能與
17、宏類似,但它定義的操作比宏更精細和復雜,用戶可以根據(jù)自己的需要編寫程序。模塊使用Visual Basic編程。頁是一種特殊的直接連接到數(shù)據(jù)庫中數(shù)據(jù)的一種WEB頁。通過數(shù)據(jù)訪問頁將數(shù)據(jù)發(fā)布到Internet 或Intranet上,并可以適用瀏覽器進行數(shù)據(jù)的維護和操作。(三) ODBC數(shù)據(jù)訪問技術(shù)ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標準API(應用程序編程接口)。這些API利用SQ
18、L來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。一個基于ODBC的應用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對應的DBMS的ODBC驅(qū)動程序完成。也就是說,不論是FoxPro、Access、SQL還是Oracle數(shù)據(jù)庫,均可用ODBC API進行訪問。ODBC的體系結(jié)構(gòu)由以下幾個部分組成: 應用程序:就是我們使用ODBC訪問數(shù)據(jù)庫的應用系統(tǒng) ODBC API:Windows提供的使用ODBC訪問數(shù)據(jù)庫的接口函數(shù),應用程序通過調(diào)用API中提供的函數(shù),最終依靠SQL語句實現(xiàn)數(shù)據(jù)庫的操作。 驅(qū)動程序管理器(
19、Driver Manager):驅(qū)動程序管理器存放在ODBC32.DLL中,它主要負責裝載和卸載ODBC驅(qū)動程序,并將ODBC API函數(shù)的調(diào)用轉(zhuǎn)交給ODBC驅(qū)動程序。 數(shù)據(jù)源:其中記錄了應用程序要訪問的數(shù)據(jù)庫的一些信息,比如數(shù)據(jù)庫的位置和名稱、數(shù)據(jù)庫的類型等。 ODBC驅(qū)動程序:是DBMS系統(tǒng)提供的使用ODBC進行數(shù)據(jù)庫訪問的驅(qū)動,也就是ODBC和數(shù)據(jù)庫之間的接口,以DLL的形式提供。不同的數(shù)據(jù)庫廠商提供的驅(qū)動是不同的,也就是說,不能使用一種數(shù)據(jù)庫的ODBC驅(qū)動來訪問另外一種數(shù)據(jù)庫,比如不能使用SQL Server的ODBC驅(qū)動來訪問Oracle數(shù)據(jù)庫。 ODBC數(shù)據(jù)源管理器(Adminis
20、trator):在Windows的控制面板中,我們可以找到該程序,它主要管理已經(jīng)安裝的ODBC驅(qū)動程序,并管理數(shù)據(jù)源(建立和刪除等)。各部件之間的關(guān)系如圖下圖所示:圖1ODBC體系結(jié)構(gòu)圖應用程序要訪問一個數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應數(shù)據(jù)庫的連接。 在ODBC中,ODBCAPI不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負責將應用程序?qū)DBCAPI的調(diào)用傳遞給正確的驅(qū)動程序,
21、而驅(qū)動程序在執(zhí)行完相應的操作后,將結(jié)果通過驅(qū)動程序管理器返回給應用程序。 在訪問ODBC數(shù)據(jù)源時需要ODBC驅(qū)動程序的支持。用Visual C+6.0安裝程序可以安裝SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle和Microsoft Text等驅(qū)動程序 三 考勤系統(tǒng)的設(shè)計(一) 需求分析1 系統(tǒng)需求考勤管理系統(tǒng)需要滿足:使用者通過計算機來管理每日工作的信息,對各個信息能進行及時的操作如刪除、查詢等。2 功能需求基于系統(tǒng)需求分析,該系統(tǒng)需要實現(xiàn)以下基本功能: 簽到功能這個功能是本系統(tǒng)的核心功能。當員工上班到公司后,通過輸入自己的員號然后進行某
22、個操作,就可以把到達公司的時間記錄下來,并且要求保存到數(shù)據(jù)庫中,以備查詢。在記錄下來的信息中應該包括員工的唯一號,以及簽到的日期和簽到的具體時間,這包括上班時間和下班時間的簽到情況。當然,這并不能全部反映員工出勤的情況,比如有些員工因為出差而不能簽到,因為請假而不能簽到等,因此對于當天不能按時簽到的員工,需寫明未簽到原因,并將數(shù)據(jù)保存到數(shù)據(jù)庫中,以備查詢。 查詢功能簽到功能中要求將員工上班的簽到情況記錄下來,也就是供以后查看而用。查詢某個員工在某段時間或者某天的出勤情況,只要輸入員工的唯一號碼,并輸入要查詢的日期,即可將此員工在給定日期內(nèi)的出勤情況顯示出來。 修改功能對于出勤到公司的員工來說,
23、通過簽到即可將簽到信息記錄下來。可是對于因為某種原因不能到公司的員工來說,由于不能簽到當天的出勤記錄就沒有。這樣做對于公司的管理不利,應該把每位員工工作日的出勤情況記錄下來,以備管理使用。另外,可能發(fā)生修改出勤結(jié)果的情況時,可能遲到是由于某種合理的理由時,可以到公司有關(guān)部門進行修改。 系統(tǒng)配置功能要想考勤,必須確定合法的上班時間,對于不同的公司有著不同的規(guī)定,因此本系統(tǒng)將提供用戶自行設(shè)定的功能。自行設(shè)定的數(shù)據(jù)包括:上午上班時間、上午下班時間、下午上班時間和下午下班時間。 員工維護對于一個公司要考勤,顯然是對屬于這個公司的員工進行的,那么員工的信息就必須記錄下來,包括員工的姓名、與昂共在這個公司
24、的唯一員工號。增加員工:當某個新人加入員工后,人事部分應該給他分配員工號,這樣可以用此來簽到,并且需要把此員工的信息增加到公司的員工信息庫中。刪除員工:當某個員工離開這家公司后,應該把這個員工的信息刪除,并且要求把他的所有的簽到信息也刪除。修改員工信息:由于某種原因需要修改員工的信息,比如員工號重新分配,這時就需要提供修改功能,以便能夠及時對員工信息的更新。 用戶登錄做為考勤系統(tǒng)來講首先應該不是人人都可以進入的。因此,應該通過輸入用戶名和用戶密碼后再進入,并且要根據(jù)不同的權(quán)限進行功能提供方面的區(qū)分。這里,要求分為兩種權(quán)限的用戶:一種是超級用戶,一種是普通用戶。超級用戶擁有系統(tǒng)提供的所有功能,包
25、括“修改出勤”、“查詢”、“員工維護”、“系統(tǒng)配置”、“用戶維護”、“簽到”功能;而對于普通用戶來說只有“簽到”功能。(二) 功能模塊構(gòu)成 系統(tǒng)登錄:使用時輸入用戶名和密碼進入考勤系統(tǒng)。 系統(tǒng)管理:主要用于用戶進入考勤系統(tǒng)后,可以選擇重新登錄或退出系統(tǒng)。 考勤管理:主要用于員工非正常上班的情況下,做好統(tǒng)計記錄,必備查詢。 修改查詢管理:用于修改員工上班情況以及查詢某個員工某個時間段的考勤情況。 系統(tǒng)設(shè)置:設(shè)定上下班時間,對于不同的企業(yè),可以根據(jù)各自的規(guī)定,自行設(shè)定。(三) 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計根據(jù)用戶的需求,對需要保存的信息進行分析,然后,設(shè)計出合理的表。下面是本系統(tǒng)數(shù)據(jù)庫的設(shè)計。為了運行程序的方便
26、,本系統(tǒng)選擇了Access 2003數(shù)據(jù)庫。數(shù)據(jù)庫:Misdb.mdb基于功能模塊分析,為考勤系統(tǒng)創(chuàng)建16個數(shù)據(jù)表。其數(shù)據(jù)庫的設(shè)計如下:表3.3.1 考勤表(ATTENDANCE)字段名稱字段數(shù)據(jù)類型字段描述PERSON文本員工號,唯一標志,外鍵 ID數(shù)字考勤統(tǒng)計編號IN_OUT文本考勤出入類型IO_TIME日期/時間上下班時間要求:每個員工每天的出勤記錄只有一條,因此員工號和出勤時間作為唯一標志。外鍵:員工號必須在數(shù)據(jù)庫表中已經(jīng)存在。表3.3.2 考勤統(tǒng)計表(ATTENDANCE_STAT)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號YEAR_MONTH日期/時間統(tǒng)計時間PERSON文本員工號
27、,外鍵WORK_HOUR數(shù)字工作時間OVER_HOUR數(shù)字加班時間LEAVE_HDAY文本請假情況ERRAND_HDAY文本出差情況LATE_TIMES數(shù)字遲到次數(shù)EARLY_TIMES數(shù)字早退次數(shù)ABSENT_TIMES數(shù)字缺勤次數(shù)表3.3.3 考勤記錄表(COUNTER)字段名稱字段數(shù)據(jù)類型字段描述ID文本考勤類型編號COUNTER_VALUE數(shù)字次數(shù)統(tǒng)計DESCRIPTION文本考勤類型注:此表沒有關(guān)鍵字。表3.3.4 部門表(DEPARTMENT)字段名稱字段數(shù)據(jù)類型字段描述ID文本部門簡稱NAME文本部門名稱MANAGER文本部門經(jīng)理INTRO文本部門簡介注:此表沒有關(guān)鍵字。表3.3
28、.5 教育水平表(EDU_LEVEL)字段名稱字段數(shù)據(jù)類型字段描述CODE數(shù)字教育情況編號DESCRIPTION文本學歷注:此表沒有關(guān)鍵字。表3.3.6 出差表(ERRAND)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號PERSON文本員工號,外鍵START_TIME日期/時間開始時間END_TIME日期/時間結(jié)束時間DESCRIPTION文本出差情況描述表3.3.7 崗位表(JOB)字段名稱字段數(shù)據(jù)類型字段描述CODE文本職稱簡寫DESCRIPTION文本崗位描述注:此表沒有關(guān)鍵字。表3.3.8 請假表(LEAVE)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號PERSON文本員工號,外鍵STAR
29、T_TIME日期/時間開始時間END_TIME日期/時間結(jié)束時間REASON文本請假原因描述表3.3.9 非正常工資類型表(OTHER_TYPE)字段名稱字段數(shù)據(jù)類型字段描述CODE數(shù)字類型編號DESCRIPTION文本非正常工資類型注:此表沒有關(guān)鍵字。表3.3.10 加班表(OVERTIME)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號PERSON文本員工號,外鍵WORK_HOURS數(shù)字加班時間WORK_DATE日期/時間加班日期表3.3.11 員工信息表(PERSON)字段名稱字段數(shù)據(jù)類型字段描述ID文本員工號,唯一標志PASSWD文本員工密碼AUTHORITY數(shù)字權(quán)限設(shè)置NAME文本員工姓
30、名SEX文本性別BIRTHDAY日期/時間出生年月DEPARTMENT文本部門簡稱JOB文本崗位職稱EDU_LEVEL文本教育水平SPECIALTY文本專業(yè)ADDRESS文本地址TEL文本聯(lián)系方式EMAIL文本電子郵箱STATE文本工作狀態(tài)REMARK文本備注關(guān)鍵字:ID表3.3.12 員工登記表(PERSONNEL)字段名稱字段數(shù)據(jù)類型字段描述 ID數(shù)字序列號 PERSON文本員工號 CHANGE文本變化 RECORD_TIME日期/時間記錄時間 表3.3.13 員工變動表(PERSONNEL_CHANGE) 字段名稱字段數(shù)據(jù)類型字段描述 CODE 數(shù)字編號 DESCRIPTION 文本描述
31、 表3.3.14 工資表(SALARY)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號YEARMONTH日期/時間年月PERSON文本員工名BASIC數(shù)字基本工資BONUS數(shù)字獎金ADD_DETAIL數(shù)字加班費ADD_TOTAL數(shù)字總共費用SUB_DETAIL數(shù)字誤工費SUB_TOTAL數(shù)字減少統(tǒng)計TOTAL數(shù)字總體統(tǒng)計 表3.3.15 福利獎金表(SALARY_OTHER)字段名稱字段數(shù)據(jù)類型字段描述ID數(shù)字序列號YEARMONTH日期/時間年月PERSON文本員工號TYPE文本類型NAME文本員工姓名MONEY數(shù)字工資DESCRIPTIONL文本描述 表3.3.16 工資創(chuàng)建表(SALARY_
32、SET)字段名稱字段數(shù)據(jù)類型字段描述PERSON文本員工號SALARY數(shù)字工資此系統(tǒng)中將使用MFC ODBC進行編程,并用MFC提供的動態(tài)數(shù)據(jù)交換機制(record field exchange,RFX),這將會給我們訪問表中各個字段的值帶來很大的方便,同時也方便系統(tǒng)升級為其他的數(shù)據(jù)庫系統(tǒng)。四 考勤系統(tǒng)的實現(xiàn)(一) 系統(tǒng)登錄功能的實現(xiàn)首先給出登錄對話框,如圖2所示: 圖2 登錄對話框用戶要使用本系統(tǒng),首先必須通過系統(tǒng)的身份認證。如果用戶名錯誤或者不存在,將無法進入系統(tǒng)。(二) 系統(tǒng)管理系統(tǒng)管理功能包括:重新登錄和退出系統(tǒng)。如圖3所示: 圖3 系統(tǒng)管理(三) 考勤管理考勤管理中負責對加班、出差和
33、請假情況記錄。如圖4所示: 圖4 考勤管理1 加班信息管理加班信息管理主要是對加班員工的加班時間以及加班日期進行管理。包括添加,刪除加班信息。如圖5所示: 圖5 加班信息管理2 出差信息管理出差信息管理主要是對出差員工信息進行管理。包括添加,查詢,刪除出差信息。信息包括出差時間、員工號、員工名稱以及出差原因。如圖6所示:圖6 出差信息管理3 請假信息管理請假信息管理主要是對請假員工信息進行管理。包括添加,刪除請假信息。信息包括請假時間、員工號、員工名稱以及請假原因。如圖7所示:圖7 請假信息管理(四) 修改查詢管理修改查詢管理包括添加修改和查詢統(tǒng)計兩個功能。如圖8所示:圖8 修改查詢管理1 添
34、加修改添加修改包括分別對全體員工的出勤情況進行添加,修改,刪除。如圖9所示:圖9 添加修改2 查詢統(tǒng)計查詢統(tǒng)計功能可以對某個月某個時間段的全體員工出勤情況進行統(tǒng)計,并且能夠查詢單個員工當月出勤情況。如圖10所示:圖10 查詢統(tǒng)計(五) 系統(tǒng)設(shè)置系統(tǒng)設(shè)置主要對上下班時間進行設(shè)定,可以根據(jù)不同情況自行設(shè)定。如圖11所示:圖11 系統(tǒng)設(shè)置結(jié)論經(jīng)過一個學期的設(shè)計,“考勤信息管理系統(tǒng)” 已經(jīng)基本設(shè)計完成。在這幾個月的開發(fā)過程中,學到了許多有關(guān)數(shù)據(jù)庫管理軟件設(shè)計的東西。另外,通過對VC+6.0的使用,我也對軟件有了一些認識,學到了很多關(guān)于該軟件可視化編程的東西;也深深體會到了VC+6.0的功能強大,使用和
35、操作簡單。基于該系統(tǒng)的一些設(shè)計,下面對系統(tǒng)做一個總結(jié)。 在整個設(shè)計過程中,主要的工作有: 系統(tǒng)的權(quán)限及安全設(shè)計,包括用戶權(quán)限的個人設(shè)定,密碼保護與修改。 員工信息、出勤信息、員工工資、相關(guān)查詢、密碼修改、幫助說明和退出系統(tǒng)模塊的頁面設(shè)計及功能的設(shè)計實現(xiàn)。設(shè)計中力求界面友好、簡潔,易于操作。代碼部分盡量避免邏輯錯誤,算法設(shè)計簡單合理,盡量使程序具有較好的可讀性,有利于其他的設(shè)計者對程序的閱讀。 力求對數(shù)據(jù)庫操作的安全與穩(wěn)定,盡量避免數(shù)據(jù)庫操作異常,并要保證查詢的快速無誤。 當然在設(shè)計中還有很多不足的地方。對于這樣的軟件開發(fā),由于沒有相應的切合實際的需求分析,所以在開發(fā)過程中遇到了許多棘手的問題。
36、現(xiàn)在開發(fā)出來的軟件對數(shù)據(jù)庫的操作還不夠穩(wěn)定常會出現(xiàn)非法操作,異常處理做的還很欠缺。程序代碼中還存在不少的Bug,這些在最后的測試過程中還有必要做較多的修改和完善。在設(shè)計時,由于時間和能力有限還有部分的功能沒有實現(xiàn),希望系統(tǒng)能在以后升級成更高版本時得以實現(xiàn)。致 謝在論文完成之際,我要特別感謝我的指導老師的熱情關(guān)懷和悉心指導。在我撰寫論文的過程中,老師傾注了大量的心血和汗水,無論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了楊婧老師悉心細致的教誨和無私的幫助,特別是她廣博的學識、深厚的學術(shù)素養(yǎng)、嚴謹?shù)闹螌W精神和一絲不茍的工作作風使我終生受益,在此表示真誠地感
37、謝和深深的謝意。 在論文的寫作過程中,也得到了許多同學的寶貴建議,在此一并致以誠摯的謝意。 感謝所有關(guān)心、支持、幫助過我的良師益友。 最后,向在百忙中抽出時間對本文進行評審并提出寶貴意見的各位專家表示衷心地感謝! 參考文獻: 劉瑞,吳躍進 ,王宗越. Visual C+項目開發(fā)實用案例. 科學出版社.2006 孫鑫 余安萍. VC+深入詳解. 電子工業(yè)出版社.2006 陳清華等.Visual C+課程設(shè)計案例精選與編程指導.東南大學出版社.2004 劉長明等.VISUAL C+實踐與提高-多媒體篇 .中國鐵道出版社.2003 龍馬工作室.VISUAL C+管理信息系統(tǒng)完整項目實例剖析.人民郵電
38、出版社.2004 訾秀玲等.Access數(shù)據(jù)庫技術(shù)及應用教程. 清華大學出版社.2007 李閩溟等 .Visual C+6.0數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航. 人民郵電出版社.2004 嚴華峰等.VISUAL C+課程設(shè)計案例精編(第二版).中國水利水電出版社 2004 張榮梅,梁曉林.Visual C+實用教程.冶金工業(yè)出版社.2004 魏亮,李春葆編著.Visual C+程序設(shè)計例學與實踐.清華大學出版社 .2006附錄:部分代碼如下:void CAttendanceDlg:OnAgainlogin() / 隱藏主對話框ShowWindow(SW_HIDE);/ 顯示登錄對話框CLogi
39、nDlg dlg;if(dlg.DoModal()=IDOK)ShowWindow(SW_SHOW); / 顯示對話框else EndDialog(IDCANCEL); / 退出程序/ TODO: Add your command handler code hereCAttDlg:CAttDlg(CWnd* pParent /*=NULL*/): CDialog(CAttDlg:IDD, pParent)/ 設(shè)置起始時間CTime End_t=CTime:GetCurrentTime(); / 當前時間CTimeSpan tp(30,0,0,0); / 時間間隔為30天/AFX_DATA_IN
40、IT(CAttDlg)m_StartTime = End_t-tp;m_EndTime = End_t;m_strPersonID = _T("");m_strName = _T("");m_bSeekbyperson = FALSE;m_bSeekbytime = FALSE;/AFX_DATA_INITint CAttendanceApp:ExitInstance() if(db.IsOpen() db.Close();/ 關(guān)閉數(shù)據(jù)庫return CWinApp:ExitInstance();/ 全局函數(shù),將時間串轉(zhuǎn)換為CTime型變量CTime S
41、trToTime(CString str)/ 時間串格式 "%Y-%m-%d %H:%M:%S",如"1999-01-01 11:11:11"int nYear,nMonth,nDay,nHour,nMinute,nSecond;sscanf(str.Left(4), "%d", &nYear); / 得到年sscanf(str.Mid(5,2), "%d", &nMonth); / 得到月sscanf(str.Mid(8,2), "%d", &nDay); / 得到日s
42、scanf(str.Mid(11,2), "%d", &nHour); / 得到時sscanf(str.Mid(14,2), "%d", &nMinute); / 得到分sscanf(str.Mid(17,2), "%d", &nSecond); / 得到分/ 構(gòu)造CTime變量CTime result(nYear,nMonth,nDay,nHour,nMinute,nSecond);return result;void CAttendanceDlg:OnBtnConfig() / 顯示工作時間設(shè)置對話框CWo
43、rkplanDlg dlg;dlg.DoModal();void CAttendanceDlg:OnBtnRecord() / 非模態(tài)顯示出勤記錄對話框if(!m_pAttDlg) / 指針為空,創(chuàng)建對話框m_pAttDlg=new CAttDlg();m_pAttDlg->Create(IDD_DLG_ATTENDANCE, this);m_pAttDlg->ShowWindow(SW_SHOW);else / 對話框已創(chuàng)建m_pAttDlg->ShowWindow(SW_SHOW); / 顯示窗口void CAttendanceDlg:OnBtnStatistics()
44、/ 非模態(tài)顯示考勤統(tǒng)計對話框if(!m_pStatDlg) / 指針為空,創(chuàng)建對話框m_pStatDlg=new CStatDlg();m_pStatDlg->Create(IDD_DLG_STAT, this);m_pStatDlg->ShowWindow(SW_SHOW);else / 對話框已創(chuàng)建m_pStatDlg->ShowWindow(SW_SHOW); / 顯示窗口CAttendanceDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) pDC->SetBkMode(TRANSPARENT); / 設(shè)置
45、背景模式return m_brush; / 返回畫刷void CAttendanceDlg:OnAgainlogin() / 隱藏主對話框ShowWindow(SW_HIDE);/ 顯示登錄對話框CLoginDlg dlg;if(dlg.DoModal()=IDOK)ShowWindow(SW_SHOW); / 顯示對話框else EndDialog(IDCANCEL); / 退出程序/ TODO: Add your command handler code hereBOOL CLoginDlg:OnInitDialog() CDialog:OnInitDialog();/ 改變"登
46、錄人事管理系統(tǒng)"字體大小LOGFONT LogFont;GetFont()->GetLogFont(&LogFont);LogFont.lfHeight+=LogFont.lfHeight/2;LogFont.lfWidth+=LogFont.lfWidth/2;m_font.CreateFontIndirect(&LogFont);GetDlgItem(IDC_STATIC_LOGINTEXT)->SetFont(&m_font);/ 如數(shù)據(jù)庫為打開狀態(tài),則關(guān)閉if(db.IsOpen() db.Close();return TRUE; / re
47、turn TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CLoginDlg:OnOK() BOOL bLogin=FALSE;CString strPasswd,strCount;UpdateData(); / 更新數(shù)據(jù)變量if(!db.Open(m_strDSN) return; / 連接數(shù)據(jù)庫strPasswd=CCrypt:Encrypt(m_strPasswd, 123); / 加密密碼CRecordset rs(&db); /
48、 構(gòu)造記錄集rs.Open(CRecordset:forwardOnly,"select COUNT(ID) as COUNT from PERSON where ID='" + m_strUser+"' and PASSWD='" + strPasswd + "' and AUTHORITY='4'"); / 執(zhí)行查詢rs.GetFieldValue("COUNT",strCount);rs.Close(); / 關(guān)閉數(shù)據(jù)集if(strCount="1&q
49、uot;) / 判斷認證是否通過EndDialog(IDOK); / 結(jié)束對話框,返回IDOKelseMessageBox("請確認用戶名和密碼,注意大小寫!","認證失敗");db.Close(); / 關(guān)閉數(shù)據(jù)庫BOOL CPage1:OnInitDialog() CDialog:OnInitDialog();/ 出入情況缺省為出(CButton*)GetDlgItem(IDC_RADIO_OUT)->SetCheck(TRUE);/ 為List添加網(wǎng)格m_cList.SetExtendedStyle(LVS_EX_GRIDLINES);m_c
50、List.SetExtendedStyle(LVS_EX_FULLROWSELECT);/ 設(shè)置List的列int nWidth=110;m_cList.InsertColumn(0, "記錄編號", LVCFMT_LEFT, nWidth);m_cList.InsertColumn(1, "員工號", LVCFMT_LEFT, nWidth);m_cList.InsertColumn(2, "出入情況", LVCFMT_LEFT, nWidth);m_cList.InsertColumn(3, "時間", LVC
51、FMT_LEFT, nWidth);CAttendanceRS rs(&db); / 構(gòu)造出勤記錄表UpdateList(rs); / 更新List/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CPage1:OnChangeEdtDepartid() UpdateData(); / 更新數(shù)據(jù)CDepartRS rs(&a
52、mp;db); / 構(gòu)造記錄集rs.m_strFilter = "ID='" + m_strDepartID + "'" / 設(shè)置過濾條件rs.Open(); / 打開記錄集if(rs.GetRecordCount()=1) / 判斷部門代碼輸入是否正確m_strDepartName=rs.m_NAME; / 提取部門名稱else m_strDepartName.Empty(); / 清除部門名稱rs.Close(); / 關(guān)閉記錄集UpdateData(FALSE); / 更新界面數(shù)據(jù)/ TODO: If this is a RICHE
53、DIT control, the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code herevoid CPage1:OnChangeEdtPersonid() UpdateData(); / 更新數(shù)據(jù)CPersonRS rs(&db); / 構(gòu)造PERSON記錄表rs.m_strFilter = "ID='" + m_strPersonID + "'" / 設(shè)置過濾條件rs.Open(); / 打開記錄表if(rs.GetRecordCount()=1) / 判斷員工號是否正確m_strPersonName=rs.m_NAM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GGFG-PAB-Exatecan-TFA-生命科學試劑-MCE-7805
- 2025年度私教健身中心教練團隊合作協(xié)議
- 2025年度水產(chǎn)養(yǎng)殖技術(shù)支持租地合同
- 二零二五年度私人酒店健身教練用工協(xié)議
- 材料采購合同
- 食堂操作間衛(wèi)生與消毒措施
- 河道清淤施工方案6篇
- 個人不服勞動合同糾紛仲裁起訴狀范本
- 上海簡易離婚合同模板
- 上海市商品住宅銷售合同模板
- 貴州省工傷待遇申請表(綜合柜員)
- 籍貫對照表完整版
- 畢業(yè)生就業(yè)推薦表word模板
- a320飛機剎車系統(tǒng)原理及故障分析
- GB 5009.228-2016食品安全國家標準食品中揮發(fā)性鹽基氮的測定
- 并聯(lián)電容器課件
- 彼得圣吉:第五項修煉課件
- 色素性皮膚病
- 《社會主義市場經(jīng)濟理論(第三版)》第二章社會主義市場經(jīng)濟改革論
- 學校預算管理內(nèi)部控制制度
- anthone溫控儀說明書LU920
評論
0/150
提交評論