考勤管理系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
《考勤管理系統(tǒng)的設計與實現(xiàn)畢業(yè)論文》由會員分享,可在線閱讀,更多相關《考勤管理系統(tǒng)的設計與實現(xiàn)畢業(yè)論文(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 摘 要 在現(xiàn)代化企業(yè)中,企業(yè)員工的考勤工作不僅工作量大,而且時效性強。隨著數(shù)據(jù)庫技 術的發(fā)展和企業(yè)信息化建設的進行,使用計算機管理企業(yè)考勤工作也成為大勢所趨,它為 企業(yè)的考勤工作節(jié)約了大量的人力和物力,也大大減輕了考勤工作人員的工作量。 考勤管理系統(tǒng)是企業(yè)對考勤實行了信息化管理,其目的是為了實現(xiàn)員工考勤數(shù)據(jù)采 集、信息查詢和數(shù)據(jù)統(tǒng)計過程的自動化,完善人事管理現(xiàn)代化,方便管理人員統(tǒng)計、考核 員工出勤情況,計算員工工資。 關鍵詞 關鍵詞關鍵詞 關鍵詞:考勤管理,Access2007,數(shù)據(jù)庫,VC++
2、Abstract In the corporations today, employees’ job of check on work attendance not only workload is very large, but also time is very strong. Along with development of database technology and progress of corporation information’s building, using computer to manage check on work attendance o
3、f corporations which it is necessary. It saves a mass of manpower and material resources and greatly lightens workload of employees. Attendance Management System is a business-to-appraisal of the implementation of information management, which aims is designed to achieve staff attendance da
4、ta collection, information query and statistical process automation, improve personnel management modernization, and the convenience of staff to report to work, facilitate management statistics, the examination staff attendance. Key words: attendance, Access2007, database,VC++
5、 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 目 錄 0 緒論 ........................................................................................................................................... 1 1. 系統(tǒng)目標及使用軟件介紹 .......................................................................................................
6、1 1.1. 系統(tǒng)目標 ......................................................................................................................... 1 1.2. 使用軟件的介紹 ............................................................................................................. 1 2. 可行性研究及設計思想 ................
7、........................................................................................... 2 2.1. 可行性研究 ..................................................................................................................... 2 2.2. 開發(fā)設計思想 .........................................................
8、........................................................ 3 3. 需求分析 ................................................................................................................................... 3 3.1. 用戶需求分析 .................................................................................
9、................................ 3 3.2. 數(shù)據(jù)分析——概念模型設計 ......................................................................................... 3 3.2.1. 數(shù)據(jù)描述 ............................................................................................................... 3 3.2.2. 數(shù)據(jù)庫建模 .......
10、.................................................................................................... 4 3.2.3. 關系描述的設計 ................................................................................................... 5 4. 系統(tǒng)設計 ..................................................................
11、................................................................. 6 4.1. Access2007數(shù)據(jù)庫的建立 ........................................................................................... 6 4.2. 數(shù)據(jù)庫連接 ...................................................................................................
12、.................. 7 4.3. 數(shù)據(jù)庫操作 ..................................................................................................................... 8 4.4. 各個模塊的設計與實現(xiàn) ................................................................................................. 9 5. 主要技術 ...............
13、.................................................................................................................. 15 5.1. 主要控件代碼 ............................................................................................................... 15 5.2. ADO數(shù)據(jù)庫訪問技術 .................................
14、................................................................ 16 6. 結束語 ..................................................................................................................................... 17 致 謝 .............................................................................
15、.......................................................... 18 參考文獻 ....................................................................................................................................... 18 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 1. 0 緒論 當今社會,資金是企業(yè)生存的主要元素,資金的流動影響到企業(yè)的整體運作,企業(yè)員 工
16、的工資是企業(yè)資金管理的一個重要的組成部分。而隨著企業(yè)人員數(shù)量的增加,企業(yè)的工 資管理也變得越來越復雜。企業(yè)員工的人數(shù)越多,工資的統(tǒng)計工作就越多,工資的發(fā)放困 難就越大。 傳統(tǒng)的紙張材料的數(shù)據(jù)信息管理方式已經(jīng)不適合現(xiàn)代企業(yè)的發(fā)展,實現(xiàn)工資管理的系 統(tǒng)化、規(guī)范化、自動化,將成為現(xiàn)代公司管理工資的首選。隨著計算機的誕生和普及以及 計算機網(wǎng)絡的發(fā)展,我們可以開發(fā)一個工資管理系統(tǒng),用計算機代替大量的人工統(tǒng)計和計 算,完成許多工資信息的處理,同時,使用計算機還可以安全地、完整地保存大量的工作 記錄。 1. 系統(tǒng)目標及使用軟件介紹 1.1. 系統(tǒng)目標
17、 系統(tǒng)需符合考勤工資管理制度,并達到操作直觀、方便、實用、安全等要求。能夠提 供詳細的員工基礎信息,包括自然條件信息、工資情況、來源、去向、崗位變動情況。能 夠隨時查閱在職、非在職人員信息,提供出職工花名冊,同時為財務部提供人員變動單及 月基本工資匯總情況等。針對這些要求,系統(tǒng)建立了職工信息查詢、職工信息刪除、職工 工資信息管理、職工工資信息查詢4個主要信息庫。系統(tǒng)根據(jù)增減人員、工資變動操作自 動生成記錄記載變動內(nèi)容,以便用戶查詢其變動過程。實現(xiàn)了對員工信息的查詢、統(tǒng)計、 增減、變動記錄等功能。 1.2. 使用軟件的介紹 (1) 應用程序開發(fā)工
18、具 微軟公司的VC++6.0是Windows應用程序開發(fā)工具,是目前最為廣泛的、易學易用 的面向對象的開發(fā)工具。VC++6.0提供了大量的控件,這些控件可用于設計界面和實現(xiàn)各 種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程序 的運行效率和可靠性。故而,實現(xiàn)本系統(tǒng)VC是一個相對較好的選擇[1]。 VC++6.0編程語言是一個面向對象的集成開發(fā)系統(tǒng)。它簡單、高效的特點使它成為編 程者的最愛。它提供了靈活的可視化設計工具,將可視化界面與面向對象技術完善、緊密 地結合起來,其友好的集成開發(fā)界面,可視化的雙向開發(fā)模式,良好的
19、數(shù)據(jù)庫應用支持高 效的程序開發(fā)和程序運行,備受廣大程序開發(fā)人員的好評。采用Access 2007數(shù)據(jù)庫環(huán)境 開發(fā),可縮短開發(fā)周期,提高開發(fā)效率的特點。對系統(tǒng)的軟硬件要求也低,減少用戶的資 金投入[2]。 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 2. ( 2) 關系型數(shù)據(jù)庫的選擇 Access2007 就是關系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。 Access 的優(yōu)點在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類 似于 Excel 的電子表格,可以使數(shù)據(jù)庫一目了然[3]。另外, Access 允許
20、創(chuàng)建自定義報表用 于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲庫,可以使用桌面數(shù)據(jù)庫文件把 數(shù)據(jù)庫文件置于網(wǎng)絡文件服務器,與其他網(wǎng)絡用戶共享數(shù)據(jù)庫。Access 是一種關系數(shù)據(jù)庫 工具,關系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。如上所述,Access 作為關系數(shù)據(jù)庫開 發(fā)具備了許多優(yōu)點,可以在一個數(shù)據(jù)包中同時擁有桌面數(shù)據(jù)庫的便利和關系數(shù)據(jù)庫的強大 功能。 3. 可行性研究及設計思想 3.1. 可行性研究 (1) 技術可行性 隨著國內(nèi)軟件開發(fā)的日益發(fā)展壯大,各種中小企事業(yè)單位已具備獨立開發(fā)各種類型的 軟件的能力,能夠滿足不同行
21、業(yè)的特別的需求。而這個系統(tǒng)盡管其在組織關系上存在著很 大的復雜性,繁瑣性,但是就整個系統(tǒng)的技術構成上來看,它還是屬于一個數(shù)據(jù)庫應用類 的系統(tǒng)。其基本操作還是對存在數(shù)據(jù)庫進行添加、刪除、查找、編輯等。所以就單純的數(shù) 據(jù)庫應用來看,暫不存在太大的技術問題。 (2) 經(jīng)濟可行性 對于整個系統(tǒng)而言,在系統(tǒng)未運行之前,初期投資比較大,花費相對而言比較多。各 部門必須配置電腦、服務器、打印機、傳真機及相關的網(wǎng)絡設備,但是在整個系統(tǒng)投入運 行之后,因為現(xiàn)在計算機已經(jīng)普及了,相關的人員培訓費可以減少很多。而同時又減少了 數(shù)據(jù)的流通環(huán)節(jié),不必要花費那么多的時間,也
22、就是說最重要的就是提高了效率,而又保 證了各項數(shù)據(jù)的準確性,也避免了工作人員的流動造成的收據(jù)丟失等問題,適應了當前的 發(fā)展形式。 (3) 管理可行性 隨著時代的發(fā)展,人員素質的提高,不論是對于電腦系統(tǒng)的基本操作還是對于系統(tǒng)的 維護都有了一定的基礎。同時還可以配置專業(yè)的電腦維護人員來維護電腦,不必擔心電腦 故障問題。 (4) 開發(fā)環(huán)境可行性 我采用的VC++6.0開發(fā)工具,它首先是一個開放的協(xié)作式系統(tǒng),可以和多種PC產(chǎn)品 集成,并可以通過專用接口或ODBC接口連接許多比較常用的數(shù)據(jù)庫;其次它具有可視化河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計)
23、 4. 的開發(fā)環(huán)境,使代碼的編寫更為直觀,并且在可視化環(huán)境下的調試和維護也相對容易。而 為方便用戶界面的開發(fā),VC++6.0提供了大量控件,這既豐富了應用程序的表達能力,也 加快了項目的開發(fā)速度。同時,它擁有多平臺的開發(fā)環(huán)境,如果需要把一個平臺上開發(fā)的 代碼移植到另外一個平臺上,只要重新編譯就可以了。 4.1. 開發(fā)設計思想 本系統(tǒng)開發(fā)設計思想: (1) 盡量利用企業(yè)現(xiàn)有軟件環(huán)境,采用先進的管理系統(tǒng)方案,從而達到充分利用 企業(yè)現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應用效果的目的。 (2) 系統(tǒng)應符合企業(yè)工資管理的規(guī)定,滿足企業(yè)相關人員日常使用的需要,并
24、達 到操作過程的直觀、方便、實用、安全等要求。 (3) 系統(tǒng)采用模塊化程序設計方法,既便于系統(tǒng)功能的各種組合和修改,又便于 技術維護人員進行補充、維護。 (4) 系統(tǒng)應具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)的添加、刪除、修 改、備份等操作。 5. 需求分析 5.1. 用戶需求分析 隨著社會現(xiàn)代化的發(fā)展,單位日常管理相關的信息隨之急劇增加,傳統(tǒng)的人力手工管 理模式越來越不能適應現(xiàn)在的工作效率和準確性。在這個高節(jié)奏的信息時代,安全、準確 的管理信息系統(tǒng)是每個管理者所需求的。建立一個適應現(xiàn)代化社會經(jīng)濟體制的管理信息系 統(tǒng)勢在必行
25、。 在大量地調查和研究的基礎上,包括訪問用戶,了解財務系統(tǒng)模型,熟悉現(xiàn)有的工作 流程和數(shù)據(jù)流程等工作,采集和分析有關資料和、報表和業(yè)務規(guī)定,進行了財務管理軟件 的開發(fā)。在整個系統(tǒng)的設計和開發(fā)過程中,積極采納最終用戶的意見。對于開發(fā)財務管理 系統(tǒng)進行了認真仔細的分析,在實施過程中不斷地加以修改和完善,使這套財務管理系統(tǒng) 能更好地運行。 該系統(tǒng)的具體任務就是設計一個電腦公司財務的數(shù)據(jù)庫管理系統(tǒng),由計算機來代替人 工執(zhí)行一系列諸如增加、刪除、修改、查詢、統(tǒng)計及打印等操作。這樣就使辦公人員以輕 松快捷地完成財務管理的任務。 5.2. 數(shù)據(jù)分析——概
26、念模型設計 5.2.1. 數(shù)據(jù)描述 (1) 靜態(tài)數(shù)據(jù) 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 6. 靜態(tài)數(shù)據(jù)是系統(tǒng)內(nèi)部有關的數(shù)據(jù)結構與操作規(guī)程。 具體可包括:員工基本信息表(PersonInfo)、員工工種情況表(Department)、員工考 勤情況表(Attendance)、員工缺勤情況表(Absent)、員工加班情況表(Duty)、部門表(Dept)、 工資表(PersonPay)。 (2) 動態(tài)數(shù)據(jù) 動態(tài)數(shù)據(jù)包括程序運行時輸入和輸出的數(shù)據(jù),具體是數(shù)據(jù)庫的各個表的各個不同元組 與屬性值. (3) 數(shù)據(jù)庫描述 根據(jù)
27、上面的分析就可以設計出能夠滿足用戶需求的各種數(shù)據(jù)實體,以及它們之間的關 系,為后面的邏輯結構設計打下基礎,這些實體包括各種具體信息,通過相互之間的作用 形成數(shù)據(jù)的流動。 概念型數(shù)學模型是一種面向問題的數(shù)學模型,是按用戶的觀點來對數(shù)據(jù)和信息建模。 最常用的表示概念數(shù)據(jù)模型的方法是實體——聯(lián)系方法(Entity——Relationship Approach)。這種方法用E—R圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實 現(xiàn)方法,該方法又稱E—R模型。E—R圖中共有三種符號:實體、屬性和聯(lián)系。通常實體 用矩形來表示,屬性用橢圓或圓角矩形來表示,聯(lián)系用
28、菱形來表示[4]。聯(lián)系又分為一對一、 一對多和多對多三種類型。 6.1.1. 數(shù)據(jù)庫建模 經(jīng)過上面的分析,能夠提取出以下幾個實體:員工、工種、考勤情況、月工資等。它 們的實體圖如圖3.1至3.2所示。 圖 3.1 員工信息實體圖 員 工 員工姓名 性別 員工編號 所在部門 所屬工種 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 5 圖 6.2. 工種實體圖 3.2.3 關系描述的設計 根據(jù)以上各實體圖和考勤管理
29、系統(tǒng)的E—R圖,經(jīng)過轉換,可以得出各個關系。其轉 換規(guī)則為:首先每個實體應轉化為一個關系,有屬性的聯(lián)系也應轉化為一個關系,然后需 要給出每個關系的關鍵字。根據(jù)以上規(guī)則,直接給出所有關系。 員工基本信息(PersonInfo),見表3.1。 表 表表 表3.1 員工基本信息 員工基本信息員工基本信息 員工基本信息 員工編號 員工編號員工編號 員工編號 員工姓名 員工姓名員工姓名 員工姓名 性別 性別性別 性別 所在部門 所在部門所在部門 所在部門 所屬工種 所屬工種所屬工種
30、所屬工種 工種編號 工種編號工種編號 工種編號 PersonID PersonName PersonSex Dept Job DeptNO 部門信息(Department),見表3.2。 表 表表 表3.2 部門信息 部門信息部門信息 部門信息 工種編號 工種編號工種編號 工種編號 所在部門 所在部門所在部門 所在部門 工種名稱 工種名稱工種名稱 工種名稱 基本工資 基本工資基本工資 基本工資 DeptNO Dept Job Pay 員工考勤情況( Attendanc
31、e),見表3.3。 表 表表 表3.3 員工考勤信息 員工考勤信息員工考勤信息 員工考勤信息 員工編號 員工編號員工編號 員工編號 員工姓名 員工姓名員工姓名 員工姓名 執(zhí)勤天數(shù) 執(zhí)勤天數(shù)執(zhí)勤天數(shù) 執(zhí)勤天數(shù) 加班天數(shù) 加班天數(shù)加班天數(shù) 加班天數(shù) 缺勤天數(shù) 缺勤天數(shù)缺勤天數(shù) 缺勤天數(shù) 所在月份 所在月份所在月份 所在月份 PersonID PersonName AtDays DutyDays AbDays AtMonth 員工缺勤情況( Absent),見表3.4。 表
32、 表表 表3.4 員工缺勤情況 員工缺勤情況員工缺勤情況 員工缺勤情況 員工編號 員工編號員工編號 員工編號 員工姓名 員工姓名員工姓名 員工姓名 缺勤天數(shù) 缺勤天數(shù)缺勤天數(shù) 缺勤天數(shù) 請假類型 請假類型請假類型 請假類型 所在月份 所在月份所在月份 所在月份 備注 備注備注 備注 扣除工資 扣除工資扣除工資 扣除工資 PersonID PersonName AbDays AbReason AbMonth AbRemarks AbPay 員工加班情況( D
33、uty),見表3.5。 工 種 工種編 號 部門名 稱 工種名 稱 基本工 資 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 6 表 表表 表3.5 員工加班情況 員工加班情況員工加班情況 員工加班情況 員工編號 員工編號員工編號 員工編號 員工姓名 員工姓名員工姓名 員工姓名 加班天數(shù) 加班天數(shù)加班天數(shù) 加班天數(shù) 所在月份 所在月份所在月份 所在月份 加班工資 加班工資加班工資 加班工資 PersonID Pers
34、onName DutyDays DuMonth DutyPay 員工工資信息( PersonPay),見表3.6。 表 表表 表3.6 員工 員工員工 員工工資 工資工資 工資信息 信息信息 信息 員工編號 員工編號員工編號 員工編號 員工姓名 員工姓名員工姓名 員工姓名 工種 工種工種 工種 編號 編號編號 編號 基本工資 基本工資基本工資 基本工資 加班 加班加班 加班 工資 工資工資 工資 扣除 扣除扣
35、除 扣除 工資 工資工資 工資 總工資 總工資總工資 總工資 月份 月份月份 月份 PersonID PersonName DutyNO BasePay DutyPay AbPay SumPay PMonth 在得出以上關系后,根據(jù)關系數(shù)據(jù)庫的理論要求,需要對所有關系進行關系規(guī)范化, 至少要求各個關系達到第三范式的要求,按照第三范式的要求對比以上各個關系,在所有 關系中都不存在非主屬性對關鍵字的部分依賴,即滿足第三范式。 7. 系統(tǒng)設計 7.1. Access2007數(shù)據(jù)庫的建立 為了在操作過程中使用數(shù)據(jù)
36、的方便,選用Access作為數(shù)據(jù)庫,啟動Access建立一個 空白的數(shù)據(jù)庫: (1) 打開Access2007,點擊【空白數(shù)據(jù)庫】,為數(shù)據(jù)庫命名Attendance,選擇好存 儲路徑,單擊創(chuàng)建,如圖4.1所示。 圖 4.1 數(shù)據(jù)庫創(chuàng)建圖 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 7 ( 2) 在工資數(shù)據(jù)庫中創(chuàng)建部門信息表,月工資表,管理員,考勤記錄,員工信息 表等表,如圖4.2所示。 圖 7.2. 考勤數(shù)據(jù)庫圖 7.3. 數(shù)據(jù)庫連接 首先,需要在stdafx.h中添加如下代碼: #import "C:\Program Files
37、\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 然后,在CAttendanceApp中的InitInstance函數(shù)下添加如下代碼: AfxOleInit(); HRESULT hr; m_pConnection.CreateInstance(__uuidof(Connection)); try { m_pConnection->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data S
38、ource=Attendance.mdb"; m_pConnection->ConnectionTimeout=10; hr=m_pConnection->Open("","","",adModeUnknown); if(hr!=S_OK) 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 8 AfxMessageBox(" 無法連接到數(shù)據(jù)庫,請確定數(shù)據(jù)庫路徑正確!"); } catch(_com_error e) { CString errormessage; errormessage.Format("連接數(shù)據(jù)庫失敗!\r\n錯誤信息:
39、%d",e.ErrorMessage()); AfxMessageBox(errormessage);///顯示錯誤信息 } 利用extern CAttendanceApp theApp; 在所有的操作頁面類中聲明一個外部的對象,就 可以對數(shù)據(jù)庫進行操作了。 7.4. 數(shù)據(jù)庫操作 要對數(shù)據(jù)庫進行操作,首先需要聲明一個數(shù)據(jù)集,以便用它操作,例如: _RecordsetPtr m_pRecPer; m_pRecPer.CreateInstance(__uuidof(Recordset)); ///進行實例化… 打開指定記錄集:
40、try { m_pRecPer->Open("select*fromPersonInfo",_variant_t((IDispatch*)theApp.m_pConne ction,true),adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_error e) { CString str; str.Format("數(shù)據(jù)庫打開失?。r\n錯誤信息:%s",e.ErrorMessage); AfxMessageBox(str); } 向表中添加信息(打開記錄集方法同上,
41、更換所需要的SQL語句即可): m_pRecPer->AddNew(); m_pRecPer->PutCollect("PersonID",(_variant_t)(dlg.m_strNO)); m_pRecPer->PutCollect("PersonName",(_variant_t)(dlg.m_strName)); m_pRecPer->PutCollect("PersonSex",(_variant_t)(strSex)); 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 9 m_pRecPer->PutCollect("Dept",(_variant_t)(
42、dlg.m_strDept)); m_pRecPer->PutCollect("Job",(_variant_t)(dlg.m_strJob)); m_pRecPer->Update(); m_pRecPer->Close(); 修改表中信息: m_pRecPer->PutCollect("PersonID",(_variant_t)(dlg.m_strNO)); m_pRecPer->PutCollect("PersonName",(_variant_t)(dlg.m_strName)); m_pRecPer->PutCollect("PersonS
43、ex",(_variant_t)(strSex)); m_pRecPer->PutCollect("Dept",(_variant_t)(dlg.m_strDept)); m_pRecPer->PutCollect("Job",(_variant_t)(dlg.m_strJob)); m_pRecPer->Update(); m_pRecPer->Close(); 刪除選中信息: m_pRecPer->Delete(adAffectCurrent); m_pRecPer->Update(); m_pRecPer->Close(); 7.5.
44、 各個模塊的設計與實現(xiàn) (1) 登陸模塊 系統(tǒng)登錄模塊用于驗證用戶登錄系統(tǒng)時輸入的用戶名,密碼是否正確,只有合法的用 戶才可以進入系統(tǒng)。 為了實現(xiàn)此功能,需要在數(shù)據(jù)庫中加入表Login,表內(nèi)容見表4.1: 表 表表 表4.1 Login表內(nèi)容 表內(nèi)容表內(nèi)容 表內(nèi)容 字段名稱 字段名稱字段名稱 字段名稱 數(shù)據(jù)類型 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)據(jù)類型 必填字段 必填字段必填字段 必填字段 相關屬性 相關屬性相關屬性 相關屬性 備注 備注備注 備注 ID 自動編號 是
45、 —— 主鍵 userName 文本 否 字段大小=12 用戶名 userPassword 文本 否 字段大小=16 密碼 實現(xiàn)驗證用戶名,密碼功能的代碼如下: CString strName; strName.Format("select userPassword from Login where userName='%s'",m_strName); BSTR bstrSql=strName.AllocSysString(); try 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 10 { m_pRecordset-
46、>Open(bstrSql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpen Static,adLockOptimistic,adCmdText); } catch(_com_error e) { CString strOpen; strOpen.Format("數(shù)據(jù)庫打開失?。r\n錯誤信息:%d",e.ErrorMessage); AfxMessageBox(strOpen); } if(!m_pRecordset->adoEOF) { if(m_strPas
47、s==(_bstr_t)m_pRecordset->GetCollect("userPassword")) CDialog::OnOK(); else AfxMessageBox("密碼不正確!"); } else AfxMessageBox("該用戶不存在!"); 該系統(tǒng)還實現(xiàn)了注冊新用戶的功能,在系統(tǒng)菜單下有注冊新用戶選項卡,點擊注冊新 用戶,即可注冊新用戶,如圖4.3 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 11 圖 7.6. 新用戶注冊 點擊后彈出注冊窗口,實現(xiàn)注冊新用戶代碼如下: CString str; s
48、tr.Format("select * from Login where userName='%s'",m_strName); BSTR bstrSql=str.AllocSysString(); try { m_pRecordset->Open(bstrSql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpen Dynamic,adLockOptimistic,adCmdText); } catch(_com_error e) { AfxMessageBox(e.ErrorMe
49、ssage()); } if(m_pRecordset->adoEOF) { try { m_pRecordset->AddNew(); 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 12 m_pRecordset->PutCollect("userName",(_variant_t)(m_strName)); m_pRecordset->PutCollect("userPassword",(_variant_t)(m_strPass)); m_pRecordset->Update(); } catch(_com_error
50、e) { AfxMessageBox(e.ErrorMessage()); } AfxMessageBox("新用戶注冊成功!"); CDialog::OnOK(); } else AfxMessageBox("該用戶名已存在!"); 新用戶注冊成功后會提示“新用戶注冊成功!”,可以利用重新登錄來檢測是否注冊成 功。 (2) 員工信息模塊 員工信息模塊可以顯示員工基本信息,并可以增加新的員工信息并對需要修改或刪除 的員工信息加以修改、刪除,在刪除的同時還需要把其他表單中相應的員工記錄刪除。 點擊數(shù)據(jù)選擇菜單下的
51、員工信息,就可以彈出員工信息模塊,如圖4.4所示 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 13 圖 7.7. 員工信息界面 在該模塊中含有添加、修改、刪除以及通過編號查詢和通過姓名查詢的功能,點擊添 加按鈕會彈出相應的添加窗口,在選中記錄之后點擊修改(刪除)按鈕會彈出相應的修改 窗口(確認刪除的提示),如果沒有選擇記錄,則會有“請選擇需要修改(刪除)的記錄” 的提示。 該模塊的編寫需要注意以下幾點: ① 添加新記錄時需確定要添加的員工信息在員工信息表中沒有記錄。 ② 確定新員工信息的部門、工種及工種編號在部門信息中存有記錄。 ③ 刪除記
52、錄時需同時刪除員工在考勤表,工資表的對應記錄,并在刪除的時候會有 是否刪除的確定提示。 (3) 部門信息模塊 該模塊顯示了工種編號、部門名稱、工種名稱以及基本工資,并可以對其進行添加和 修改,同時也能根據(jù)部門名稱和部門編號進行查詢操作。 點擊數(shù)據(jù)選擇下的部門信息菜單,便可彈出相應的部門信息窗口。 (4) 考勤信息模塊 該模塊實現(xiàn)了考勤信息的顯示及查詢,查詢分為姓名查詢、編號查詢、按年查詢和按 月查詢四種方式,當填寫好年月,并輸入姓名(或編號),點擊姓名(或編號)下的查詢河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 14 按鈕,便可查詢該姓名(或
53、編號)的員工在該年月下的考勤信息。 點擊數(shù)據(jù)選擇菜單下的考勤信息,可彈出如圖4.5的考勤信息界面。 圖 7.8. 考勤信息界面 需要注意的是,該模塊并不具備添加、修改功能,添加新紀錄時,需要先在缺勤信息 內(nèi)添加當月的缺勤紀錄(如果當月沒有缺勤紀錄,可添加缺勤天數(shù)為0),再在加班信息中 添加當月的加班天數(shù)(沒有加班可以不進行填寫,系統(tǒng)會默認為0)。 (5) 缺勤記錄模塊及加班記錄模塊 缺勤記錄模塊用于實現(xiàn)對員工執(zhí)勤情況的管理,通過在該模塊下添加、修改員工執(zhí)勤 記錄可相應修改員工在考勤信息及工資信息中的相應數(shù)據(jù)。點擊考勤記錄菜單下的缺勤記
54、 錄選項,可彈出如圖4.6的缺勤記錄界面。 該模塊的編寫需要注意以下幾點: ① 添加新記錄時需要先確定該員工是否在員工信息中有記錄,在確定該員工的當月 記錄是否已經(jīng)添加在缺勤記錄表中。 ② 添加新記錄的同時需要在考勤信息和工資信息中添加相應的記錄。 ③ 修改一條記錄時也需要在考勤信息和工資信息中修改相應的記錄。 加班記錄模塊用于實現(xiàn)對員工加班情況的管理,編寫方法及注意事項和缺勤模塊基本 一致,通過點擊考勤記錄菜單下的加班記錄選項,便可彈出加班記錄的界面。 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 15 圖 7.9. 缺勤信息界面 (6)
55、 工資信息模塊 該模塊用于顯示員工工資信息,并實現(xiàn)姓名查詢、員工編號查詢、工種編號和按月查 詢以及數(shù)據(jù)導出的功能,選擇數(shù)據(jù)選擇菜單下的工資信息,便可彈出相應的工資信息界面, 其實現(xiàn)方法與考勤信息模塊基本一致。 8. 主要技術 我的程序是采用Visual C++完成,所用的技術是C++的數(shù)據(jù)庫編程,選用的數(shù)據(jù)庫 是MicroSoft 的 Access 2007, 整個制作過程用了兩個月,有不少地方做的不好(例如界 面不太美觀),需要進一步的完善才行,不足之處請老師見諒。 8.1. 主要控件代碼 關于下拉列表框的使用,向下拉列表框中添加數(shù)據(jù),
56、以月份為例,代碼如下: for(int i=1;i<13;i++) { CString strI; strI.Format("%d",i); ((CComboBox*)GetDlgItem(IDC_COMBO_M))->AddString(strI); } 河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 16 關于列表控件的使用,設置列表控件表頭,以員工信息為例,代碼如下: m_listPerson.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_listPerson.I
57、nsertColumn(0,"員工編號",LVCFMT_LEFT,80); m_listPerson.InsertColumn(1,"員工姓名",LVCFMT_LEFT,80); m_listPerson.InsertColumn(2,"性別",LVCFMT_LEFT,60); m_listPerson.InsertColumn(3,"所在部門",LVCFMT_LEFT,80); m_listPerson.InsertColumn(4,"所屬工種",LVCFMT_LEFT,80); m_listPerson.InsertColumn(5,"工種編號",LVCFMT
58、_LEFT,80); 向列表控件中添加數(shù)據(jù)庫信息,以添加員工信息為例: while(!m_pRecPer->adoEOF) { try { m_listPerson.InsertItem(0,_bstr_t("")); m_listPerson.SetItemText(0,0,(_bstr_t)m_pRecPer->GetCollect("PersonID")); m_listPerson.SetItemText(0,1,(_bstr_t)m_pRecPer->GetCollect("PersonName") m_listPerson.Se
59、tItemText(0,2,(_bstr_t)m_pRecPer->GetCollect("PersonSex")) m_listPerson.SetItemText(0,3,(_bstr_t)m_pRecPer->GetCollect("Dept")); m_listPerson.SetItemText(0,4,(_bstr_t)m_pRecPer->GetCollect("Job")); m_listPerson.SetItemText(0,5,(_bstr_t)m_pRecPer->GetCollect("DeptNO")); m_pRecPer->MoveNex
60、t(); } catch(_com_error e) { CString strerror; strerror.Format("數(shù)據(jù)庫導出失敗!\r\n錯誤信息:%s",e.ErrorMessage); AfxMessageBox(strerror); } } 8.2. ADO數(shù)據(jù)庫訪問技術 盡管應用程序仍可使用Visual C++ 6.0中的ODBC和RDO,但Microsoft還是推薦將河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 17 ADO 作為新應用程序的數(shù)據(jù)訪問方法。 所有這些數(shù)據(jù)訪問方法都是COM接口,可在
61、不同工具中使用,但是,它們之間還是 有幾點主要區(qū)別: (1) ADO是訪問OLE DB中所有類型數(shù)據(jù)的對象模型。 諸如Visual Basic、Java、Visual C++ 6.0、VBScript和Jscript的語言都可使用ADO, 然后通過其訪問任何OLE DB源中的數(shù)據(jù)。ADO可用來訪問關系數(shù)據(jù),以及E-Mail或電 子表格中含有的數(shù)據(jù)。 (2) RDO是訪問ODBC中關系數(shù)據(jù)的對象模型。 RDO可使Visual Basic開發(fā)人員訪問ODBC數(shù)據(jù)時不需編寫ODBC API代碼。RDO 是針對ODBC API的一種COM接口,可在程序設
62、計對象模型中提供ODBC的功能。它的 作用是可使用那些使用了復雜的查詢引擎的數(shù)據(jù)庫服務器程序,例如,SQL Server和 Oracle。 (3) DAO是通過訪問Jet本地或SQL數(shù)據(jù)的對象模型。 DAO是三種數(shù)據(jù)訪問方法中最早的一種方法。使用DAO,可訪問Microsoft Jet數(shù)據(jù) 庫、Microsoft Jet-connected ODBC數(shù)據(jù)庫和可安裝的索引序列訪問方法(indexed sequential Access method,ISAM)數(shù)據(jù)源,例如FoxPro、Paradox、Lotus 1-2-3中的數(shù)據(jù)。同新型的 ADO和RD
63、O技術相比,DAO是速度相對較慢、功能較少的數(shù)據(jù)訪問方法。DAO,與其 同伴Microsoft Jet數(shù)據(jù)引擎相似,最初是為支持ISAM數(shù)據(jù)訪問而設計的。 綜上所述,ADO具有以下特點: (1) ADO可訪問各種類型的數(shù)據(jù),而RDO和DAO只能訪問關系數(shù)據(jù)。 (2) ADO對象模型沒有RDO或DAO那么復雜,易于使用,需要代碼也較少。 (3) ADO結合了RDO和DAO最好的性能,最終將取代它們。 (4) ADO是Microsoft工具使用的標準數(shù)據(jù)訪問對象模型[5]。 6 結束語 通過本次畢業(yè)設計實踐,我不僅加深了對Visual C++ 6.0
64、 程序設計工具的熟悉,加深 了對Access 2007的認識;而且還學到了一些有關考勤管理系統(tǒng)開發(fā)方面的知識。體會了軟 件開發(fā)的基本過程,這為我今后在該領域上的應用奠定了基礎。 在指導老師毛曉菊的引導和幫助下,通過幾個月的設計和開發(fā),企業(yè)考勤管理管理系 統(tǒng)基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成職工基本信息、工資輸入和統(tǒng)計。 以及各類查詢。并提供部分系統(tǒng)維護功能,使用戶方便進行數(shù)據(jù)備份和恢復、數(shù)據(jù)刪除。同 時也考慮到了單位編碼以減少數(shù)據(jù)冗余的問題,對于數(shù)據(jù)的一致性的問題也通過程序進行河南農(nóng)業(yè)大學華豫學院本科畢業(yè)論文(設計) 18 了有效的解決。
65、 但是,在開發(fā)過程中,由于平時在軟件開發(fā)方面的實踐太少,因而重復工作太多。又 由于時間和技術水平的限制,本軟件的部分功能還有不盡人意的地方,請老師和同學多提 寶貴意見,以使我在今后的工作中進一步完善。我將不勝感激! 致 謝 在論文完成之際,謹向所有關心和幫助過我的人表示最衷心的感謝。 首先感謝我的導師毛曉菊老師,感謝她在學業(yè)上對我孜孜不倦的教誨和悉心指導,她 那種嚴謹?shù)闹螌W態(tài)度、永無止境的追求、忘我的工作熱情、平易近人的為人風格和為教育 事業(yè)無私奉獻的高尚品德將不斷地鞭策和激勵我,我將在今后的工作和學習中積極向上、 努力進取、以實際行動
66、報答她對我的培養(yǎng)和教育。 感謝河南農(nóng)大華豫學院計算機科學與技術學院的領導及所有老師對我的培養(yǎng),尤其感 謝導師***在我論文撰寫過程中給予我很大的幫助;感謝所有曾給予我?guī)椭暮糜押屯瑢W; 最后,感謝父母和家人一直的大力支持。 參考文獻 [1] 丁有和,鄭進,周怡君.Visual C++實用教程[M].北京:電子工業(yè)出版社.2008:334-369. [2] 侯奇峰,李曉華,李莎.Visual C++數(shù)據(jù)庫通用模塊開發(fā)與系統(tǒng)移植[M].北京:清華 大學出版社.2007:207-405. [3] 郭玲文,丁永衛(wèi),張忠將等.中文版Access2007循序漸進教程[M].北京:科學出版 社.2008:1-73. [4] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第四版)[M].北京:高等教育出版社.2008:263-330. [5] Peter.Rob ,Elie.Semaan.數(shù)據(jù)庫設計與開發(fā)[M].北京:電子工業(yè)出版社.2005:9-26. 8469049
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。