freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于visualc的人事考勤管理系統(tǒng)(編輯修改稿)

2025-07-24 19:06 本頁面
 

【文章內(nèi)容簡介】 原理中的各種同步、互斥和臨界區(qū)等操作。Visual C++ 中,使用 MFC 類庫也實現(xiàn)了多線程的程序設(shè)計,使得多線程編程更加方便。MFC 中有兩類線程,分別稱之為工作者線程和用戶界面線程。二者的主要區(qū)別在于工作者線程沒有消息循環(huán),而用戶界面線程有自己的消息隊列和消息循環(huán)。工作者線程沒有消息機制,通常用來執(zhí)行后臺計算和維護(hù)任務(wù),如冗長的計算過程,打印機的后臺打印等 [8]。用戶界面線程一般用于處理獨立于其他線程執(zhí)行之外的用戶輸入,響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等。但對于 Win32 的 API 編程而言,這兩種線程是沒有區(qū)別的,它們都只需線程的啟動地址即可啟動線程來執(zhí)行任務(wù)。在 MFC 中,一般用全局函數(shù) AfxBeginThread()來創(chuàng)建并初始化一個線程的運行,該函數(shù)有兩種重載形式,分別用于創(chuàng)建工作者線程和用戶界面線程在本程序程序里,涉及了一些對線程的創(chuàng)建,管理和銷毀工作。常用的創(chuàng)建線程函數(shù)為 CreateThread 和_beginthreadex, 兩函數(shù)功能幾乎一樣(在某些特殊地方,兩者用法需注意,推薦用后者) ,在創(chuàng)建前必須定義一個按照線程函數(shù)原型的函數(shù),將其地址傳7 / 38給創(chuàng)建線程函數(shù),讓操作系統(tǒng)知道即將從哪個地方運行線程。除此之外,還可以傳遞參數(shù),供線程使用。若創(chuàng)建成功,該函數(shù)會返回一個 HANDLE,這個句柄標(biāo)示了剛創(chuàng)建的線程內(nèi)核對象,當(dāng)線程創(chuàng)建成功后,必須調(diào)用 CloseHandle 函數(shù)將其關(guān)閉,這是因為如果不關(guān)閉該內(nèi)核句柄,當(dāng)線程退出后,操作系統(tǒng)并沒有銷毀該線程,造成資源浪費,這是因為獲取一個實內(nèi)核句柄都會增加內(nèi)核使用計數(shù),只有當(dāng)該內(nèi)核對象的使用計數(shù)為 0 時,才會銷毀該內(nèi)核對象,線程也是如此。常用的銷毀線程函數(shù)是ExitThread, TermelateThread 函數(shù),但推薦使用函數(shù)返回的方式結(jié)束進(jìn)程,因為操作系統(tǒng)會自動調(diào)用 ExitThread 函數(shù),并回收分配的內(nèi)存資源。由于多個線程在同時運行的時候,會對共享數(shù)據(jù)進(jìn)行訪問或修改,那么就必須要注意數(shù)據(jù)同步,windows 給我們提供了多種數(shù)據(jù)同步的方法,比如基于用戶模式的原子鎖,臨界區(qū),Slim 讀寫鎖等,還有基于內(nèi)核模式的內(nèi)核對象,如互斥對象,事件對象,信號量,條件變量等 [7]。在本程序中,最常用的是臨界區(qū),原因是基于用戶模式,同步效率快,服務(wù)器可以進(jìn)行更多的操作,其次還用到了事件對象,由于臨界區(qū)太過單一的功能,并不能滿足有些數(shù)據(jù)同步的需要,因此用到了功能強大的事件對象,在 MFC中,事件對象被封裝成了 CEvent 類,在 SDK 下,可以用調(diào)用 CreateEvent API 函數(shù)創(chuàng)建一個事件對象。 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今五十年前,隨著信息技術(shù)和市場的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式 [1]。數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進(jìn)行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應(yīng)用。嚴(yán)格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫” 。在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣的“倉庫 ”,并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數(shù)據(jù)庫。有了這個數(shù)據(jù)倉庫 我們就可以根據(jù)需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計算機上自動進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。此外,在財務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種數(shù)據(jù)庫 ,使其可以利用計算機實現(xiàn)財務(wù)、倉庫、生產(chǎn)的自動化管理。8 / 38本次課題中采用的是 SQL Server 數(shù)據(jù)庫,Microsoft 按照客戶/服務(wù)器體系結(jié)構(gòu)的分布進(jìn)行操作。這種方法產(chǎn)生不必要的代價和復(fù)雜性。多年以來,SQL Server 一直用在事務(wù)處理監(jiān)視系統(tǒng)中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,這些系統(tǒng)早在二、三十年前就采用了典型的三層模型。三層模型在今天基于 Web 的應(yīng)用系統(tǒng)中占據(jù)了支配地位,這類系統(tǒng)以 Microsoft 的 MTS 以及新的 COM+ 為代表 [2]。從 SQL Server 的角度看,三層解決方案中的客戶機程序是放在中間層的。中間層直接與數(shù)據(jù)庫交互。實際的桌面,或瘦客戶機(Thin Client) ,使用其他機制并通常直接與中間層交互,而不是直接與數(shù)據(jù)庫系統(tǒng)交互。SQL Server 有兩個接口可以認(rèn)為是 SQL Server 的本機接口,即 OLEDB 和 ODBC。ODBC 在五年之前就替代了 DBLibrary,是新的 SQL Server 應(yīng)用程序更理想的 API。最上面的部分實現(xiàn) API 的細(xì)節(jié),例如行集和游標(biāo)應(yīng)該是什么樣等等。TDS 格式化程序負(fù)責(zé)處理實際請求,例如 SQL 語句,并將其封裝成 TDS 消息包,發(fā)送給 SQL Server,獲得返回的結(jié)果,然后再把結(jié)果反饋到接口實現(xiàn)。結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱 SQL,是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言。它的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。ANSI 規(guī)定 SQL 是關(guān)系型數(shù)據(jù)庫系統(tǒng)管理的標(biāo)準(zhǔn)語言 [5]。SQL 語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中得數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。SQL 語言之所以能夠為用戶及業(yè)界所接受,并成為國際標(biāo)準(zhǔn),是因為他是一個綜合的,功能極強同時又簡潔易學(xué)的語言。在考勤管理系統(tǒng)中系統(tǒng)的操作都要用到數(shù)據(jù)庫,在數(shù)據(jù)庫應(yīng)用中使用 SQL 可以使得開發(fā)程序更加的有效,在考勤管理系統(tǒng)中的添加記錄,刪除記錄,請假記錄的使用都要使用 SQL,這樣的設(shè)計才可以使得開發(fā)出的系統(tǒng)高效,穩(wěn)定,安全??傊?SQL 語言對于考勤管理系統(tǒng)的總的設(shè)計有非常重要的作用。人事考勤管理系統(tǒng)使用了 Microsoft SQL Server 2022 數(shù)據(jù)庫來滿足系統(tǒng)的要求,數(shù)據(jù)庫名稱為 tb_person,在數(shù)據(jù)庫中創(chuàng)建四張用于存儲各種不同信息。規(guī)劃出本軟件中使用的數(shù)據(jù)庫實體對象,分別為管理員實體、部門實體、員工實體和考勤實體等,如下圖所示,為這幾個實體的 E—R 圖。管理員實體:管理員實體包括編號、用戶、密碼。管理員實體如下圖所示:密碼編號用戶9 / 38部門實體:部門實體包括部門編號、部門名稱、備注信息和上級部門編號。部門實體 ER 圖如下圖所示: 員工實體:員工實體包括自動編號、員工編號、員工姓名、照片、性別和生日等信息。員工實體 ER 圖如下圖所示:考勤實體:考勤實體包括人員姓名、考勤日期、上班時間、下班時間、上班考勤時間和下班考勤時間等信息??记趯嶓w ER 圖如下圖所示:管理員部門實體部門編號部門名稱 備注信息上級部門編號員工生日自動編號 員工編號員工姓名性別 照片 考勤考勤日期上班時間 下班時間上班考勤時間10 / 38 系統(tǒng)分析 需求分析人事考勤管理系統(tǒng)以實現(xiàn)員工日常出勤信息管理為設(shè)計目標(biāo),加以強大的數(shù)據(jù)庫管理功能,可以方便對考勤信息進(jìn)行管理,大大提高了人事部門的日常工作效率,本系統(tǒng)在設(shè)計時應(yīng)該滿足以下幾點。1) 采用人機對話的操作方式,信息查詢靈活、方便、快捷、準(zhǔn)確,數(shù)據(jù)存儲安 全可靠2) 對考勤信息的操作簡單,可以方便的進(jìn)行添加、修改和刪除3) 可以錄入員工信息、部門信息4) 對員工的考勤信息可按月進(jìn)行匯總計算。5) 對用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗,盡可能排除人為的錯誤。6) 系統(tǒng)最大限度的實現(xiàn)了易維護(hù)性和易操作性7) 系統(tǒng)運行穩(wěn)定,安全可靠 可行性分析1) 技術(shù)可行性本程序是基于 windows 平臺下的應(yīng)用軟件。開發(fā)該軟件,應(yīng)具備一定的 windows編成基礎(chǔ),熟悉常用的 API 函數(shù),深入了解 MFC 框架和窗口重繪技術(shù)2)進(jìn)度可行性和成本可行性因為本文只是探討和學(xué)習(xí) Win32 應(yīng)用程序編程,因而其經(jīng)濟成本和效益可以忽略不計;在進(jìn)度可行性方面,從選題到論文初稿完成的時間足以完成本次程序編寫。、人員姓名 下班考勤時間11 / 3812 / 38第三章 系統(tǒng)詳細(xì)設(shè)計 程序流程設(shè)計結(jié)束部門管理員工信息管理用戶管理員工考勤管理修改用戶 添加用戶 刪除用戶 修改員工資料 添加員工資料 刪除員工資料添加部門信息修改部門信息 刪除部門信息 考勤記錄查詢 考勤記錄添加 考勤記錄刪除開始系統(tǒng)主界面用戶登錄判斷YN圖 31 程序流程圖1) 當(dāng)用戶啟動程序根據(jù)用戶在登錄窗口內(nèi)輸入的用戶名和密碼進(jìn)行驗證;2) 驗證通過后即可操作部門管理、員工考勤管理、用戶管理、員工信息管理四個模塊。13 / 38 用戶登錄管理模塊設(shè)計開始結(jié)束進(jìn)入主界面用戶名和密碼正確YN圖 32 用戶登錄流程圖 用戶登陸模塊概述用戶登錄模塊是所有管理系統(tǒng)所應(yīng)具備的基礎(chǔ)模塊之一,此模塊實現(xiàn)了對用戶使用系統(tǒng)的檢驗工作,使沒有權(quán)限的用戶不能使用該系統(tǒng),增加了系統(tǒng)的安全性,用戶登陸界面如圖 33 所示。圖 33 用戶登錄界面 用戶登錄技術(shù)分析用戶登錄窗體是整個系統(tǒng)中創(chuàng)建并顯示的第一個窗體,所以該窗體應(yīng)在主窗體創(chuàng)建前創(chuàng)建并顯示。在登錄窗體創(chuàng)建的同時應(yīng)該創(chuàng)建數(shù)據(jù)庫連接。這些操作都應(yīng)該在應(yīng)用程序類的初始化方法中實現(xiàn); 用戶登錄實現(xiàn)過程(1) 創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框?ID 改為14 / 38IDD_DLGLOGIN,將對話框標(biāo)題改為登陸。(2) 向?qū)υ捒蛑刑砑觾蓚€靜態(tài)文本控件,一個文本框控件,一個列表框控件和兩個按鈕控件,分別設(shè)置兩個靜態(tài)文本控件的 caption 屬性為用戶名和密碼,設(shè)置文本框控件的類型為 Password。分別設(shè)置兩個按鈕的 caption 屬性為確定和取消。(3) 在窗體的初始化方法中創(chuàng)建用戶表的數(shù)據(jù)集,并將用戶名添加到列表控件中。在“確定”按鈕的事件中實現(xiàn)用戶名和密碼的驗證。 用戶管理實現(xiàn)過程(1) 創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框?ID 改為IDD_DLGUSER,將對話框標(biāo)題改為“用戶管理”(2) 定義 UpdateGrid 方法,用來更新列表視圖中顯示的用戶信息。(3) 向?qū)υ捒蛑刑砑?OnInitDialog 方法,在對話框的初始化方法中添加列表視圖控件應(yīng)顯示的列頭,并在下列表視圖控件中添加數(shù)據(jù)。(4) 在“添加”按鈕的事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕,實現(xiàn)對用戶的添加。(5) 在“修改”按鈕的事件中彈出“用戶編輯”窗體,輸入用戶名后單擊“確定”按鈕,實現(xiàn)對用戶的修改。(6) 在“刪除 ”按鈕的單擊事件中獲取當(dāng)前記錄并進(jìn)行刪除操作。 部門信息管理模塊設(shè)計(1) 創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框?ID 改為 IDD_DLGDEPT,將對話框標(biāo)題改為“部門管理” 。(2) 向?qū)υ捒蛑刑砑右粋€樹列表控件,四個按鈕控件,各控件的屬性設(shè)置如表所示。(3) 定義 GetNode 方法用來按層級關(guān)系獲取部門表中的所有數(shù)據(jù),并將其添加到樹列表控件中。該方法由 UpdateDept 方法進(jìn)行調(diào)用。(4) 當(dāng)單擊“添加”按鈕時將彈出部門編輯窗體,輸入部門信息后單擊“確定”按鈕將添加一個新的部門。(5) 當(dāng)單擊“修改”按鈕時將彈出部門編輯窗體,輸入部門信息后單擊“確定”按鈕將添加一個新的部門。 (6) 當(dāng)單擊“ 刪除”按鈕時將刪除當(dāng)前選中的節(jié)點。15 / 38 員工信息管理模塊設(shè)計(1) 創(chuàng)建一個對話框,打開對話框?qū)傩源翱?,將對話框?ID 改為IDD_DLGPERSON,將對話框標(biāo)題改為“人員信息管理” ;(2) 添加 GetNode 方法將獲取部門表中得數(shù)據(jù)信息添加到樹列表視圖控件中。該方法由 UpdateDept 方法調(diào)用。(3) 定義 UpdatePerson 方法用來更新人員信息,將其顯示在列表視圖控件中。(4) 添加 OnInitDialog 方法,用于初始化人員信息管理窗體中得數(shù)據(jù)。在該方法中顯示部門信息、人員信息;(5) 單擊“添加”按鈕,彈出人員編輯窗體,輸入人員信息后單擊“保存”按鈕實現(xiàn)人員信息的添加。(6) 單擊“修改”按鈕,彈出人員編輯窗體,輸入人員信息后單擊“保存”按鈕實現(xiàn)人員信息修改。(7) 單擊“刪除 ”按鈕實現(xiàn)當(dāng)前選中的人員信息記錄刪除的操作。 考勤管理模塊設(shè)計考勤管理模塊用于將所有人員當(dāng)天的考勤信息錄入到該模塊中,并且可以根據(jù)年、月和人員對已錄入的考勤記錄進(jìn)行查詢。 考勤管理技術(shù)分析在進(jìn)行程序設(shè)計時日期型數(shù)據(jù)可以使用字符串的形式存入日期類型的數(shù)據(jù)庫字段中,但相反的字符串類型的日期數(shù)據(jù)要想轉(zhuǎn)換成日期類型的數(shù)據(jù)就必須要自己實現(xiàn)其轉(zhuǎn)換功能,在該模塊中實現(xiàn)了字符串形式的日期和時間分別轉(zhuǎn)換成日期類型的數(shù)據(jù)。在該模塊中還實現(xiàn)了一個時間相減的方法,在這個方法中實現(xiàn)相減都是轉(zhuǎn)換成秒后進(jìn)行減法計算的,然后再將秒轉(zhuǎn)換成對應(yīng)的時間類型數(shù)據(jù)。 考勤管理實現(xiàn)過程 (1) 創(chuàng)建一個對話框,打開對話框?qū)傩源翱冢瑢υ捒虻?ID 改為IDD_DLGCHECK,將對話框的標(biāo)題改為“考勤管理” 。(2) 添加 UpdateList 方法,用于更新顯示人員的考勤信息。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1