




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
論緒 11.1應用背景 11.2開發(fā)工具的選擇 1VisualC++6.0簡介 1運用VisualC++編程的理由 2面對對象的應用服務層設計 21.3論文的工作介紹 32系統(tǒng)總體設計 42.1
系統(tǒng)需求分析 42.2
系統(tǒng)概要設計 52.2.1
系統(tǒng)結(jié)構(gòu)設計 52.2.2
數(shù)據(jù)庫設計 72.3
系統(tǒng)具體設計 143系統(tǒng)應用程序設計 163.1
系統(tǒng)程序框架的組成 163.2登錄認證對話框的實現(xiàn) 173.3
主對話框窗體功能的實現(xiàn) 183.4
上班時間設置窗體功能的實現(xiàn) 193.5
考勤修改窗體功能的實現(xiàn) 203.6添假出勤記錄屬性頁的實現(xiàn) 213.7加班記錄屬性頁功能的實現(xiàn) 223.8請假和出差屬性頁功能的實現(xiàn) 233.9考勤統(tǒng)計模塊功能的實現(xiàn) 254系統(tǒng)開發(fā)總結(jié) 264.1結(jié)束語 264.2參考文獻 264.3致謝 265附錄 281緒論1.1應用背景隨著經(jīng)濟的發(fā)展,企業(yè)的規(guī)模不斷擴大,人員流淌日趨頻繁,人員出入考勤管理的工作量也隨之增加,以往的人工處理方式對于員工許多的企業(yè)來說就顯得力不從心,利用現(xiàn)代計算機技術(shù)可使考勤人員管理從繁重的勞動中解脫出來,特殊是對于人員出勤檔案的查詢可做到更剛好,更精確。便利員工的出勤統(tǒng)計狀況等各方面的工作。考勤制度是每個企業(yè)單位所必需的,計算機的出現(xiàn)使員工出勤狀況的記錄和統(tǒng)計工作變的特別簡潔。通過開發(fā)一個企業(yè)企業(yè)員工管理系統(tǒng),可使企業(yè)員工的出勤管理工作系統(tǒng)化,規(guī)范化和自動化,從而達到全面提高企業(yè)員工考勤管理效率的目的。1.2開發(fā)工具的選擇本系統(tǒng)是在VC++6.0開發(fā)環(huán)境下,采納Dialogbased的應用程序框架。由一個主對話框和若干個功能對話框組成。系統(tǒng)采納microsoftoffice中的Access2000來設計數(shù)據(jù)庫,再連接數(shù)據(jù)源。1.2.1VisualC++6.0簡介
VisualC++6.0是Microsoft公司開發(fā)的基于C/C++的集成開發(fā)工具,它是VisualStudio中功能最為強大、代碼效率最高的開發(fā)工具。
VisualC++6.0和以前的版本相比有了多方面的改進。它的編譯器、調(diào)試器、連接器、編輯器、資源編輯器都有所加強,在編輯器中還供應了自動語句生勝利能,編輯器會像VisualBasic一樣自動提示函數(shù)的參數(shù)、對象的成員。另外,VisualC++6.0還供應了許多向?qū)АFC供應了一些新的類,供應了更強大的數(shù)據(jù)訪問功能。
用戶可利用VisualC++6.0以兩種方式編寫Win32應用程序,一種方式是基于WindowsAPI的C編程方式,另一種是基于MFC的C++編程方式。C編程方式是傳統(tǒng)的、久經(jīng)考驗的編程方式,代碼的效率較高,但開發(fā)難度和開發(fā)的工作量大。C++編程方式代碼運行效率相對較低,但開發(fā)難度小、開發(fā)工作量小、源代碼效率高。C編程方式的用戶己經(jīng)很少,本書將以C++編程方式向用戶介紹利用VisualC++6.0的程序設計。運用VisualC++編程的理由VisualC++的集成開發(fā)環(huán)境供應了一個快速的框架,很大地提高了編程效率,但是,要真正駕馭VisualC++6.0,還必需對C/C+語言編程有深化地了解,理解MFC庫和Windows下的編程方法.在Windows下編程,通常是調(diào)用WindowsAPI得以實現(xiàn).VisualC++6.0將大量地WindowsAPI以C++格式進行封裝,通MPFC方式供應應開發(fā)人員,大大簡化了開發(fā)人員地編程工作,供應了工作效率.因而,要學好VisualC++,MFC地駕馭是關(guān)鍵.VisualC++6.0中,我們可以運用MFC完成大多熟地工作,也可以干脆調(diào)用WindowsAPI完成一些底層地開發(fā).用VisualC++6.0開發(fā)的程序代碼簡練,運行速度快.VisualC++6.0中,供應了兩個功能強大的編程工具:AppWizard和ClassWizard.利用VisualC++6.0的AppWizard可以在很短的時間內(nèi)創(chuàng)建出Windows應用程序的框架;二ClassWizard,則可以在應用程序框架之上快速增加新的類,成員變量和函數(shù),使Windows編程得以快速實現(xiàn),兩者結(jié)合,讓Windows下的編程變得特別簡潔.面對對象的應用服務層設計N層的應用軟件系統(tǒng),由于其眾多的優(yōu)點,已經(jīng)成為典型的軟件系統(tǒng)架構(gòu),也已經(jīng)為廣闊開發(fā)人員所熟知。在一個典型的三層應用軟件系統(tǒng)中,應用系統(tǒng)通常被劃分成以下三個層次:數(shù)據(jù)庫層、應用服務層和用戶界面層。如下圖所示:本系統(tǒng)也是采納三層應用服務設計,分別是數(shù)據(jù)庫層、應用服務層和用戶界面層,分三層逐步綻開具體的設計。1.3論文的工作介紹緒論部分介紹了本系統(tǒng)的應用背景以及對數(shù)據(jù)庫開發(fā)工具的選擇。其次章是本文的主體,依據(jù)軟件工程的要求,從需求分析起先,經(jīng)過概要設計最終到具體設計,完成對整個系統(tǒng)的設計。
第三章依據(jù)其次章的設計結(jié)果利用Access2000和VisualC++6.0進行了具體的窗體和應用程序設計。
總結(jié)部分介紹了設計體會和編程體會,并指出了系統(tǒng)設計中的不足和改進的方向3系統(tǒng)總體設計
軟件系統(tǒng)的總體設計大約要經(jīng)驗可行性分析和項目開發(fā)安排,需求分析,概要設計,具體設計,編碼,測試以及維護等七個階段。可行性分析和項目開發(fā)安排在前面已經(jīng)敘述,下面所要做的是進行軟件需求分析,概要設計和具體設計。編碼過程將在下一節(jié)論述,而測試和維護過程不在本文敘及.3.1
系統(tǒng)需求分析在經(jīng)過前一階段的分析之后,我確定了我的開發(fā)課題為企業(yè)員工考勤管理系統(tǒng)。現(xiàn)在所要做的是要精確定義系統(tǒng)必需做什么以及系統(tǒng)必需具備的功能。
軟件需求分析中我采納結(jié)構(gòu)化分析方法(structuredanalysis,簡稱sa),sa是面對數(shù)據(jù)流進行需求分析的方法,像全部的軟件分析方法(如面對對象分析方法、idef方法等等)一樣,sa也是一種建模活動,它運用簡潔易讀的符號,依據(jù)軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,描繪滿意功能要求的軟件模型。
在系統(tǒng)中我采納數(shù)據(jù)流圖(dfd)這種半形式化的描述方式表達需求。它是一種功能模型,以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流淌和處理的過程,只反映系統(tǒng)必需完成的邏輯功能。它有四種基本圖形符號:
◆→:箭頭,表示數(shù)據(jù)流;
◆〇:圓或橢圓,表示加工;
◆═:雙杠,表示數(shù)據(jù)存儲;
◆□:方框,表示數(shù)據(jù)的源點或終點。,頂層流圖僅包含一個員工,它代表被開發(fā)系統(tǒng),它的輸入流是該系統(tǒng)的輸入數(shù)據(jù)了,輸出流是該系統(tǒng)的輸出數(shù)據(jù);底層流圖是指其加工不須要再做分解的數(shù)據(jù)流圖,中間層流圖表示對其上層父圖的細化,它的每一步操作可能接著細化成子圖。出勤的原始記錄主要來源于考勤機,并且以固定格式保存在數(shù)據(jù)庫中。考勤管理系統(tǒng)的任務是如何處理這些數(shù)據(jù).系統(tǒng)的數(shù)據(jù)流程如下:
通過以上的數(shù)據(jù)流圖之后,我們已大體地了解了系統(tǒng)的功能和目標,接下來所要做的就是系統(tǒng)功能模塊的劃分和數(shù)據(jù)庫的設計,也就是系統(tǒng)的概要設計。3.2
系統(tǒng)概要設計在軟件需求分析階段,搞清晰了軟件“做什么”的問題,形成了目標系統(tǒng)的邏輯模型。現(xiàn)在我們所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現(xiàn)軟件的需求。首先,我們須要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。2.2.1
系統(tǒng)結(jié)構(gòu)設計系統(tǒng)的概要設計中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個困難問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,全部的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。
將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的困難性,提高可讀性、可維護性,但模塊的劃分不能是隨意的,應盡量保持其獨立性。也就是說,每個模塊只完成系統(tǒng)要求的獨立的子功能,并且和其他模塊的聯(lián)系最少且接口簡潔,即盡量做到高內(nèi)聚低耦合,提高模塊的獨立性,為設計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎。
在系統(tǒng)的概要設計中我采納結(jié)構(gòu)化設計(structuredesign,簡稱sd),sd以需求分析階段產(chǎn)生的數(shù)據(jù)流圖dfd為基礎,按肯定的步驟映射成軟件結(jié)構(gòu)。我首先將整個系統(tǒng)化分為幾個小問題,小模塊,在系統(tǒng)中,我設計了上下班時間設置、出勤記錄管理、和考勤統(tǒng)計管理3個小模塊。然后,進一步細分模塊,添加細微環(huán)節(jié)。比如,出勤記錄管理我又將其分為添加修改出勤管理、加班管理、請假管理;出差管理(即是代理出勤管理)等等。
以下就是系統(tǒng)的結(jié)構(gòu)圖:(在這里為了表達便利我將結(jié)構(gòu)圖分開來表達。)出勤統(tǒng)計狀況出勤狀況記錄考勤管理系統(tǒng)
出勤統(tǒng)計狀況出勤狀況記錄考勤管理系統(tǒng)在得到系統(tǒng)的第一層功能模塊圖后,經(jīng)過進一步地細化,得一系統(tǒng)的子功能模塊圖:出勤狀況出勤狀況記錄出差狀況記錄添加出勤狀況請假狀況記錄加班狀況記錄2.2.2
數(shù)據(jù)庫設計
1
、er圖設計
在系統(tǒng)設計的起先,我首先考慮的是如何用數(shù)據(jù)模型來數(shù)據(jù)庫的結(jié)構(gòu)和語義,以對現(xiàn)實世界進行抽象。目前廣泛運用的數(shù)據(jù)模型可分為兩種類型,一種是獨立于計算機系統(tǒng)的“概念數(shù)據(jù)模型”,如“實體聯(lián)系模型”;另一種是干脆面對數(shù)據(jù)庫邏輯結(jié)構(gòu)的“結(jié)構(gòu)數(shù)據(jù)模型”。在本系統(tǒng)中我采納“實體聯(lián)系模型”(er模型)來描述數(shù)據(jù)庫的結(jié)構(gòu)和語義,以對現(xiàn)實世界進行第一次抽象。er模型干脆從現(xiàn)實世界抽象出實體類型及實體間聯(lián)系,然后用er圖來表示數(shù)據(jù)模型。它有兩個明顯的優(yōu)點:接近于人的思維,簡潔理解;和計算機無關(guān),用戶簡潔接受。但er模型只能說明實體間語義的聯(lián)系,不能進一步說明具體的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫設計的第一步。
er圖是直觀表示概念模型的工具,它有四個基本成分:
◆矩形框,表示實體類型(考慮問題的對象)。
◆菱形框,表示聯(lián)系類型(實體間的聯(lián)系)。
◆橢圓形框,表示實體類型和聯(lián)系類型的屬性。對于關(guān)鍵碼的屬性,在屬性名下劃一橫線。
◆直線,聯(lián)系類型和其涉及的實體類型之間以直線連接。
本系統(tǒng)為企業(yè)員工考勤管理,主要管理員工的出勤、請假、出差和加班等事項。系統(tǒng)依據(jù)須要可以記錄出勤人員的信息,同時還須要了解員工的請假、出差和加班等的記錄狀況。依據(jù)考勤管理的實際狀況,考慮了多方面的因素以后,確定系統(tǒng)的er圖。
考勤管理系統(tǒng)的E-R圖如圖所示
在該數(shù)據(jù)庫中,我們設計了六個實體,分別是員工、出勤管理、加班管理、請假管理;出差管理,月度考勤統(tǒng)計管理。在本系統(tǒng)中員工是核心,也是基本,沒有了員工其它的也就沒有什么意義了。員工記錄的添加是考慮到出勤記錄問題,也就是說,在出勤管理的實際運用中,須要記錄每個員工的具體狀況這樣才便利月度的統(tǒng)計,特殊是由于員工的工資要按工作時的多少發(fā)放,所以在設計數(shù)據(jù)庫時,,員工記錄這一實體特別重要。通過這一個er圖我們可以比較清晰地了解員工工作時間的多少,及其具體的狀況,從員工的出勤到請假,加班等狀況的勤奮狀況及其員工的素養(yǎng),同時也可以為以后的查詢或核對供應肯定有用的信息。
下面就是各實體及聯(lián)系類型的屬性即數(shù)據(jù)庫的邏輯設計,所以考勤管理系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系表為:員工(員工號,員工密碼,權(quán)限,姓名)出勤記錄(員工號,記錄編號,出入狀態(tài),出入時間)加班記錄(員工號,記錄編號,加班時間,日期)請假記錄(員工號,記錄編號,起始時間,結(jié)束時間,緣由)出差記錄(員工號,記錄編號,起始時間,結(jié)束時間,具體描述)因為每一個基本表關(guān)系都是完全依靠且沒有傳遞依靠,所以關(guān)系達到3NF范式2、數(shù)據(jù)庫表格設計
在完成系統(tǒng)的er圖之后,須要將er模型轉(zhuǎn)化為關(guān)系模型,也就是說,要設計出數(shù)據(jù)庫所須要的表格。在這里,我選用的是關(guān)系數(shù)據(jù)庫。因為關(guān)系數(shù)據(jù)庫中的二維表格可以很清晰地描述數(shù)據(jù)之間的聯(lián)系。
我在系統(tǒng)中定義的表格都嚴格地依據(jù)范式的思想和要求去完成,數(shù)據(jù)庫中的全部表格都達到了三范式的要求。依據(jù)系統(tǒng)er圖,針對本系統(tǒng)的特點,在對所搜集的數(shù)據(jù)進行規(guī)范化之后,定義了如下六張表格,分別是ATTENDANCE出勤記錄表,LEAVE請假記錄表,OVERTIME加班記錄表,ERRAND出差記錄表,員工及密碼信息表。通過對這六張表格的操作可以較好地完成系統(tǒng)設計的各項功能,六張表格之間有著不同程度的聯(lián)系。ATTENDANCE出勤記錄表字段名稱
數(shù)據(jù)類型
說明
person
文本
員工編號
in_out
文本
出入狀況
io_time
日期/時間
出入時間
圖1ATTENDANCE出勤記錄表出勤記錄表主要用于記錄員工出入狀況和時間的具體信息,包括記錄號、員工、出入狀況和時間、各類信息,它即是該數(shù)據(jù)庫的主表,是系統(tǒng)主界面的主要內(nèi)容。
在該表中員工編號是主鍵,出入狀況和時間為其屬性成員。做為備注有一點說明,我的數(shù)據(jù)庫中備注的數(shù)據(jù)類型是文本,而不是備注類型,主要考慮到該字段的長度并不大,而且在VisualC++中文本數(shù)據(jù)類型的處理也比較便利一點。
圖2LEAVE請假記錄表字段名稱數(shù)據(jù)類型
說明
person
文本
員工編號
start_time
日期/時間
假期起先時間
end_time
日期/時間
假期結(jié)束時間
reason文本
請假緣由
LEAVE請假記錄表主要是記錄員工的請假狀況,請假的起先時間和結(jié)束時間,以便利以后員工的統(tǒng)計狀況。圖3OVERTIME加班記錄表person
文本
員工編號
work_hours
數(shù)字加班時間
work_date
日期/時間
加班日期
OVERTIME加班記錄表主要是記錄員工的加班時間長度和日期如圖3所示。圖4ERRAND出差記錄表person
文本
員工編號
start_time
日期/時間
假期起先時間
end_time
日期/時間
假期結(jié)束時間
discription文本
具體描述ERRAND出差記錄表主要是記錄員工的出差起始時間/結(jié)束時間和具體描述。圖5PERSON員工信息表
字段名稱
數(shù)據(jù)類型
說明Person文本
員工編號passwd文本
密碼
authority文本
用戶權(quán)限
name文本員工姓名sex
文本性別
birthday
日期/時間
生日
job
文本
職務edu_level
文本
受教化程度specialty文本
專業(yè)技能address文本
家庭住址tel文本聯(lián)系電話
PERSON員工信息表員工信息表主要用于記錄有關(guān)員工的各類信息,包括姓名、職稱、誕生日期、聯(lián)系電話、聯(lián)系地址等。它主要用來為系統(tǒng)供應員工的有關(guān)信息,因為在系統(tǒng)中,出勤管理、加班管理、請假管理;出差管理,月度考勤統(tǒng)計管理操作均和員工有著肯定的聯(lián)系,須要查找有關(guān)此項記錄有關(guān)的員工信息
等都要用到這個表。圖6COUNTER信息表字段名稱
數(shù)據(jù)類型
說明Counter_value數(shù)字計數(shù)值Descrtption文本描述COUNTER信息表主要是記錄員工的統(tǒng)計工作。圖7DEPARTMENT信息表字段名稱
數(shù)據(jù)類型
說明Name文本部門名稱Manager文本部門經(jīng)理Intro備注簡介
DEPARTMENT信息表主要是記錄員工部門里面的各種信息。圖8ATTENDANCE—STAT信息表字段名稱
數(shù)據(jù)類型
說明Year_month文本統(tǒng)計月份Person文本員工號Work_hour數(shù)字累計工作時間Over_hour數(shù)字累計加班時間Leave_hour數(shù)字累計請假時間Errand_hday數(shù)字累計出差時間Late_times數(shù)字遲到次數(shù)Early_times數(shù)字早退次數(shù)Absent_times數(shù)字曠工次數(shù)ATTENDANCE—STAT信息表主要用于記錄有關(guān)統(tǒng)計的具體信息,主要是按月度來統(tǒng)計包括員工的工作時間、加班時間,累計請假時間,累計出差時間,遲到和早退的次數(shù)等信息。通過以上設計已經(jīng)完成了系統(tǒng)的概要設計,當我們有了系統(tǒng)的功能模塊圖和數(shù)據(jù)庫之后,就須要著手去實現(xiàn)每一個模塊,為每一個功能設計程序流程圖,這也就是系統(tǒng)的具體設計。
3.3
系統(tǒng)具體設計在前面的概要設計中,已將系統(tǒng)劃分為多個模塊,并將它們依據(jù)肯定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口。現(xiàn)在所要做的就是確定每個模塊具體執(zhí)行過程,也可以說是“過程設計”。
由前一階段產(chǎn)生的系統(tǒng)功能模塊圖,我為系統(tǒng)的主要部分設計了如下程序模塊圖:
通過以上步驟,基本上完成了對整個系統(tǒng)的總體設計,接下來所要做的就是軟件的編碼工作。3系統(tǒng)應用程序設計3.1
系統(tǒng)程序框架的組成本實例采納dialogbased的應用程序框架.由一個主對話框和若干個功能對話框組成,其中功能對話框登陸對話框和上下班時間設置對話框都是非模態(tài)對話框用AppWizard生成程序框架,加入數(shù)據(jù)庫支持.在MFCAppWizar-Step1中選擇DialogBased選項,其余均采納缺省配置.本程序數(shù)據(jù)庫的操作是通過MFC的ODBC類實現(xiàn)的,為了運用ODBC類,須要在stdafx.h中加入#include“afxdb.h”一行.因本程序只需連接一個數(shù)據(jù)庫,所以定義了一個CDatadase型的全局變量db,一次性打開和關(guān)閉數(shù)據(jù)庫,便利程序的編寫.數(shù)據(jù)庫的打開在登錄認證對話框中.在主程序結(jié)束前關(guān)閉數(shù)據(jù)庫,因此在App類的ExitInstance()函數(shù)中加入以下代碼;if(db.Isopen())db.Close();運用全局數(shù)據(jù)庫變量db,須要在其他地方運用他的文件中加入以下語句:ExternDatabasedb;為了訪問數(shù)據(jù)庫中的表格,本程序從CRecordset中派生8個類,分別用于封裝所需訪問的表格,如下列圖表所示.這些類通過RFX(RecordFieldExchange)機制將成員變量也表格中的字段值聯(lián)系起來,通過訪問成員變量可以訪問當前記錄中字段的值.CRecordset派生類在Acess數(shù)據(jù)庫中對應的表格:CRecordset表格CAttendanceRSATTENDANCE出勤記錄表CCounterRSCOUNTER計數(shù)器表CdepattRSDEPARTMENT部門信息表CerrandRSERRAND出差記錄表CerrandRSCLeaveRSCOvertimeRSOVERTIME加班記錄表CPersonRSPERSON員工個人信息表CStatRSATTENDANCE_STAT月度考勤統(tǒng)計表3.2登錄認證對話框的實現(xiàn)首先在限制面板中建立ODBC數(shù)據(jù)源,數(shù)據(jù)源名稱為MISDB,運行程序Attendance.exe,進入登陸界面(界面一)。用戶名為HONG,密碼為123。登陸窗口對話框,包括三個輸入框和兩個按鈕。主要控件類型,ID和對應的成員變量及說明見見表。登陸窗口對話框的封裝類為CLoginDlg。界面一:登錄認對話框其中兩個Button采納了缺省ID,即IDOK和IDCANCEL,其中對IDOK的點擊加了登錄代碼,CLoginDlg類須要用到加密類,為了保證統(tǒng)一,加密類運用了CCrypt類,須要在cpp文件開頭加入#include“CCrypt”一行。另外,為了運用全局變量數(shù)據(jù)庫變量db,須要在cpp文件開頭加入下面的語句:externCDatabasedb;變更"登錄人事管理系統(tǒng)"字體的類型為華文彩云和須要在OnInitDialog()添加下面的代碼。BOOLCLoginDlg::OnInitDialog(){ CDialog::OnInitDialog(); m_font.CreatePointFont(180,"華文彩云",NULL);GetDlgItem(IDC_STATIC_LOGINTEXT)->SetFont(&m_font,true); //如數(shù)據(jù)庫為打開狀態(tài),則關(guān)閉 if(db.IsOpen())db.Close();}在用戶的“登陸”按鈕功能實現(xiàn)的代碼在voidCLoginDlg::OnOK()函數(shù)中見附錄最侯為了先運行登錄認證對話框,還需在App類的InitInstance()函數(shù)中加代碼://顯示登錄對話框 CLoginDlgLoginDlg; if(LoginDlg.DoModal()!=IDOK)returnFALSE;3.3
主對話框窗體功能的實現(xiàn)用戶登錄后即顯示主對話框窗口,主對話框包括5個按鈕,分別實現(xiàn)5項功能,封裝主對話框的類是CAttendanceDlg,主要界面及說明如下:界面二:主對話框在CAttendanceDlg中定義以下成員變量:CBrushm_brush; CStatDlg*m_pStatDlg;CAttDlg*m_pAttDlg; CFontm_font; //變更標題字體類型 m_font.CreatePointFont(180,"華文彩云",NULL); GetDlgItem(IDC_STATIC_HEAD)->SetFont(&m_font,true); //初始化對話框指針為空m_pAttDlg=NULL; m_pStatDlg=NULL;對話框中的5個按鈕的功能主要就是顯示相應的功能對話框.。各按鈕的功能主要是顯示相應的功能對話框。各按鈕的事務處理代碼見附錄。 3.4
上班時間設置窗體功能的實現(xiàn)點擊“設置”進入界面三設置上下班時間。在界面三中,你可以修改上下班時間,點擊“修改”,設置的時間會記錄到配置文件“workplan.ini”中。假如配置文件不存在,上下班時間就被設定為程序中的默認值。界面三:上班時間設置窗體公司的上下班時間相當固定,而且須要在統(tǒng)計時頻繁運用,所以不須要保存在數(shù)據(jù)庫中.本例采納標準的INI設置文件來保存這些數(shù)據(jù);“修改”按鈕的BN_CLICKEN事務處理程序用于保存當前的設置.“復原默認設置”按鈕的BN_CLICKED事務處理程序用于復原原來的設置.這個函數(shù)也同時被OnInitDialog()函數(shù)引用,以實現(xiàn)初始化操作.OnWorkplanReset()函數(shù)則存放復原默認設置按鈕的碼3.5
考勤修改窗體功能的實現(xiàn)考勤修改對話框主要用來人工輸入出勤狀況.假如考勤機出現(xiàn)問題,這個功能剛好彌補數(shù)據(jù).同時加班,請假,出差的記錄都須要通過這個對話框來輸入.對話框的布局如下圖所示.為了區(qū)分不同的輸入,在對話框中嵌入了CPropertySheet和4個CPropertyPage,4個CPropertyPage分別放置出勤,加班,請假和出差記錄的修改界面.4個界面共用一個查詢條件設置,下圖中下方的空白界面即是用來放置CPropertySheet和CPropertyPage的,考勤修改對話框的封裝類是CAttDlg。對話框界面如下:界面四在對話框中嵌入了CPropertySheet和4個CPropertyPage,就須要定義類的變量CPage1m_Page1(出勤頁),CPage2m_Page2(加班頁),CPage3m_Page3(請假頁),CPage4m_Page4(出差頁),和CPropertySheetm_Sheet。然后修改它的初始化函數(shù)BOOLCAttDlg::OnInitDialog()的代碼,見附錄。在輸入員工號時,須要剛好檢索員工姓名,以確定設置的條件有效.通過ClassWizard加入處理IDC_EDT_SEEKPERSONID的EN_CHANGE消息處理的函數(shù)OnChangeEdtSeekpersonid()。3.6添假出勤記錄屬性頁的實現(xiàn)再加入一個對話框資源將其封裝類設為CPropertyPage他的繼承類為CPage1,對話框的界面如下界面五在界面五中,可以檢索或修改出勤記錄。檢索考勤記錄:在“記錄檢索條件”中,選中“時間范圍”復選框,輸入時間范圍,或選中“員工”復選框,輸入員工號,在右邊的文本框中會自動顯示員工號對應的員工名字,然后點擊“按條件檢索”,在“出勤記錄列表”中會顯示出選定時間范圍或員工的出勤記錄。:添加記錄:在“添加記錄”中輸入出入時間,出入狀況,部門縮寫(輸入后右邊會顯示部門名稱),員工號(輸入后右邊會顯示員工名字)。點擊“全部員工”把全部員工每人一條出勤記錄添加到數(shù)據(jù)庫并在出勤列表中顯示,點擊“部門員工”為該部門的每位員工添加一條出勤記錄到數(shù)據(jù)庫并在出勤列表中顯示,點擊“單個員工”為該員工添加一條出勤記錄到數(shù)據(jù)庫并在出勤列表中顯示。下面的進度條會顯示添加記錄的進度。刪除記錄:在“出勤記錄列表”中選定記錄編號,然后點擊“刪除所選記錄”,把記錄從列表和數(shù)據(jù)庫中刪除。他的屬性頁面的初始化函數(shù)為OnInitDialog()。為了更新列表框內(nèi)容,編寫的UpdateList()函數(shù)調(diào)用此函數(shù)可使列表框顯示給定的數(shù)據(jù)表格,當輸入部門編號時,自動檢索部門名稱.他的實現(xiàn)函數(shù)為OnChangeEdtDepartid()。在輸入員工號時,也須要剛好檢索員工姓名,以確定設置的條件有效,在函數(shù)OnChangeEdtPersonid()中實現(xiàn)。添加部門和全體員工出勤記錄的過程最終客分解為添加單個員工記錄的過程.通過添加出勤記錄函數(shù)IO_Add(CStringstrPersonID)實現(xiàn)。添加記錄的3個按鈕的處理程序分別調(diào)用以上的函數(shù)。:OnBtnAddall()為添加全部員工出勤記錄,OnBtnAdddepart()為追加部門員工考勤記錄,OnBtnAddperson()為追加單個員工考勤記錄。3.7加班記錄屬性頁功能的實現(xiàn)這個屬性頁的創(chuàng)建以上面的添假出勤記錄屬性頁的創(chuàng)建類似,封裝類都為CPropertyPage類他的繼承類為CPage2,對話框的界面如下。同時也要對他的初始化函數(shù)OnInitDialog(),UpdateList()函數(shù),OnChangeEdtOvertimePersonid()略做修改。添加按鈕的實現(xiàn)如下函數(shù)為OnBtnOvertimeAdd(),下面的“刪除所以記錄”按鈕和”按條件檢索”按鈕的功能和添加修改出勤記錄中的相應按鈕功能類似,代碼不再重復出現(xiàn),可見源程序界面六3.8請假和出差屬性頁功能的實現(xiàn)這兩個屬性爺?shù)膭?chuàng)建基本相同,請假記錄的封裝類為CPropertyPage繼承的CPage3類,出差記錄的封裝類為CPropertyPage繼承的CPage4類界面的初始化,列表的更新,員工姓名的
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024河南省三門峽中等專業(yè)學校工作人員招聘考試及答案
- 2024洞口縣鳳凰職業(yè)技術(shù)學校工作人員招聘考試及答案
- 護理工作計劃2025
- 租賃合同范本-鏟車租賃專用
- 網(wǎng)絡安全保障協(xié)議:企業(yè)信息安全防護合同
- 軟件開發(fā)與維護合同模板
- 數(shù)控加工工藝與編程試題(含參考答案)
- 農(nóng)業(yè)與財務管理的結(jié)合
- 研學基地參加創(chuàng)業(yè)比賽全程紀實
- 維保安全培訓
- 2025年杭州醫(yī)學院考研試題及答案
- 2025年骨科入科考試題及答案
- 2025年山西工程職業(yè)學院單招職業(yè)傾向性測試題庫含答案
- 基于三新背景下的2025年高考生物二輪備考策略講座
- 醫(yī)療機構(gòu)自殺風險評估與預防措施
- 全國自考《銀行會計學》2024年7月《銀行會計學》自學考試試題及答案
- 術(shù)前預防感染
- 生產(chǎn)設備設施-射線探傷-安全檢查表
- 2024重組膠原蛋白行業(yè)白皮書
- 臨床藥物治療學知到智慧樹章節(jié)測試課后答案2024年秋湖南中醫(yī)藥大學
- 2024年新能源充電站租賃合同
評論
0/150
提交評論