【正文】
ore. I decided later that it must be our mental quir k associated w ith the Trumps that made me see it that way when someone was trying to reach me and I had cards in my handany cards. Ordinarily, of course, we get the message empty handed, unless we are doing the calling. It could have been that my subconsciouswhich was kind of footloose at the timejust seized on the available props out of habit Later, though, I had cause to wonder. Really, I just don39。t be sure. It was far from Amber, somewhere where the shadows go mad. Farther than I like to go. Star k, w ith shifting colors. Fiery. Day without a sun in the sky. Rocks that glided like sailboats across the land. Brand there in some sort of to wera small point of stability in that f lowing scene. I remembered it, all right. A nd I remembered the presence coiled about the base of tha t tower. Br illiant. Prismatic. Some sort of watchthing, it seemedtoo bright for me to make out its outline, to guess its proper size. Then it all just went away. Instant off. And there I was, sta。m also luc ky. Eric was neither. The trouble with him was that he was good at so many things he wouldn39。 ( 5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。 第 25 頁(yè) 共 26 頁(yè) 致 謝 本文是在羅代升老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。 相信這次設(shè)計(jì)的完成對(duì)我今后的工作有很大的幫助。為了防止因?yàn)楸?UserInfo 中的 EmpId 字段找不到表 EmpInfo 中對(duì)應(yīng)的 EmpId 字段值而造成用戶(hù)記錄無(wú)法顯示問(wèn)題,在表之間連接關(guān)系時(shí)使用了 LEFT JION 關(guān)鍵字,即只要是 UserInfo 中存在的記錄都將出現(xiàn)在結(jié)果集中,無(wú)論它在其他兩個(gè)表中是否存在對(duì)應(yīng)的記錄。 UpdateData(FALSE)。 第 23 頁(yè) 共 26 頁(yè) return。 //刷新 ADO Data 控件的記錄源 (cSource)。 這個(gè)模塊 包括了用戶(hù)管理和密碼修改兩個(gè)功能。 + cTime + 39。 //根據(jù)部門(mén)編號(hào)設(shè)置 SELECT 語(yǔ)句 cTime = (%Y%m%d)。 + cTime + 39。 + cTime + 39。 cTime = cYear + + cMonth。 第 19 頁(yè) 共 26 頁(yè) 圖 11 月考勤統(tǒng)計(jì)圖 主要代碼如下: void CDepDlg::RefreshData() { UpdateData(TRUE)。 // 設(shè)置 SELECT 語(yǔ)句 CString cSource = SELECT AS 員工編號(hào) , AS 姓名 , AS 出勤日期 , AS 是否全勤 , AS 是否出差 , AS 是否事假 , AS 是否病假 , AS 是否曠工 , AS 是否休息 , AS 是否遲到 , AS 是否早退 , AS 備注 FROM CheckInfo c, EmpInfo e WHERE = AND = 39。// 插入記錄 } else { (, (0))。 = 否 。 if(().GetEof())// 是否選擇人員 { MessageBox(請(qǐng)選擇人員 )。} 請(qǐng)假信息保存在表 CheckInfo 中,如果在出勤信息管理模塊中輸入了出勤信息,則不能再輸入請(qǐng)假信息。 = CheckDate。 請(qǐng)假信息管理對(duì)話(huà)框中,通過(guò)點(diǎn)擊左邊的部門(mén),列出各個(gè)部門(mén)中的員工及其員工的信息,選中員工的姓名則可以進(jìn)行員工的請(qǐng)假信息的編輯。 else if((4) == 周六日加班 ) = 1。 return。選擇加班狀態(tài),包括加班時(shí)數(shù),加班原因和加班類(lèi)型,然后單擊確定按鈕,可以保存指定員工的加班情況。 //根據(jù)部門(mén)編號(hào)設(shè)置 SELECT 語(yǔ)句 (%d, iDepId)。 出勤管理對(duì)話(huà)框中,根據(jù)左邊的部門(mén),列出各個(gè)部門(mén)中的員工及其員工的出勤信息,出勤時(shí)間,是否全勤,是否出差,是否遲到,是否早退,是否曠工等。 // 將員工數(shù)據(jù)讀取到編輯對(duì)話(huà)框中 if(()==IDOK) RefreshData()。 // 設(shè)置 SELECT 語(yǔ)句 CString cSource = SELECT EmpId, Name AS 姓名 , Sex AS 性別 , Birthday AS 生日 , IdCard AS 身份證號(hào) , OfficePhone AS 辦公電話(huà) , Mobile AS 手機(jī)號(hào)碼 , HireDate AS 到崗日期 , Mission AS 工作崗位 , Duty AS 職務(wù) , Memo AS 備注 FROM EmpInfo e, DepInfo d WHERE = 。同樣普通用戶(hù)只能查看員工信息,不能對(duì)其信息進(jìn)行添加,修改和刪除等操作。 //用于保存當(dāng)前選擇的節(jié)點(diǎn) node = ()。部門(mén)信息的選擇,是為了方便用戶(hù)選擇部門(mén),以后的其他模塊程序可以通過(guò)此程序來(lái)獲取選擇的部門(mén)信息。} void CHolidayManDlg::OnModiButton()// 修改按鈕 { CHolidayEditDlg dlg。 圖 3 節(jié)假日信息框 部分代碼如下: BOOL CHolidayManDlg::OnInitDialog()// 初始化 { CDialog::OnInitDialog()。} else { MessageBox(重試次數(shù)已到,不能再輸入用戶(hù)名和密碼,即將退出系統(tǒng)! , 用戶(hù)名錯(cuò)誤 , MB_ICONEXCLAMATION)。 GetDlgItem(IDC_USER_EDIT)SetFocus()。 表 3 EmpInfo 字 段 數(shù)據(jù)類(lèi)型 長(zhǎng) 度 是否允許為空 字段描述 EmpId int 4 否 編號(hào) Name varchar 50 否 姓名 Sex char 2 是 性別 Birthday varchar 20 是 生日 IdCard varchar 20 是 身份證號(hào) OfficePhone varchar 30 是 辦公電話(huà) Mobile varchar 30 是 手機(jī)電話(huà) HireDate Int 4 是 到崗日期 DepId varchar 40 是 部門(mén)編號(hào) Mission varchar 50 是 工作崗位 Duty varchar 20 是 職務(wù) Memo varchar 200 是 備注信息 HolidaySet 表是設(shè)置節(jié)假日信息的。普通用戶(hù)只能修改自身的信息 功能模塊構(gòu)成如圖 1: 圖 1 功能模塊 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 考勤管理系統(tǒng)數(shù)據(jù)庫(kù)采用 Microsoft SQL SERVER 2021,在使用數(shù)據(jù)庫(kù)過(guò)程中,接觸最多的就是數(shù)據(jù)庫(kù)中的表,表是數(shù)據(jù)存儲(chǔ)的地方,是數(shù)據(jù)庫(kù)最重要的部分。 基本信息管理模塊,包括節(jié)假日日期設(shè)置,部門(mén)信息管理緩和員工信息管理。 每一個(gè)功能模塊都需要針對(duì)不同的表來(lái)完成相同的數(shù)據(jù)庫(kù)操作,即添加記錄,修改記錄,刪除記錄以及查詢(xún)顯示記錄信息。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用 Web 帶來(lái)的機(jī)會(huì)非常重要。除了 IntelliSense Technology(智能感應(yīng)技術(shù))和 Edit and Continue(即編即調(diào))等顯著縮短開(kāi)發(fā)時(shí)間 的新特性外, Visual C++ Web開(kāi)發(fā)和企業(yè)開(kāi)發(fā)提供更良好的支持。 2 開(kāi)發(fā)工具 Visual C++ Visual C++ 是微軟 公司 1998年推出的產(chǎn)品, 是基于 Windows操作系統(tǒng)的編程工具, 是 Microsoft Visual Studio ,是一種面向?qū)ο蟪?序設(shè)計(jì)語(yǔ)言 。 隨著計(jì)算機(jī)的 普及 和計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,人們開(kāi)始越來(lái)越多地利用計(jì)算機(jī)解決實(shí)際問(wèn)題。隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,越來(lái)越多的公司和企業(yè)對(duì)職工的考勤管理都實(shí)行了信息化管理 ,使用計(jì)算機(jī)系統(tǒng)代替繁瑣冗余的手工方式來(lái)管理考勤事務(wù)。系統(tǒng)采用目前比較流行的 ADO 數(shù)據(jù)訪(fǎng)問(wèn)技術(shù),并將每個(gè)數(shù)據(jù)庫(kù)表的字段和操作封裝到類(lèi)中,它使應(yīng)用程序的各個(gè)窗口都能夠共享對(duì)表的操作,不需要重復(fù)編碼,使程序更加易于維護(hù),從而將面向?qū)ο蟮某绦蛟O(shè)計(jì)思想應(yīng)用到數(shù)據(jù)庫(kù)應(yīng)用程序中。系統(tǒng)是使用 Visual C++開(kāi)發(fā)語(yǔ)言,使用 Microsoft Visual Studio 作為工具軟件,數(shù)據(jù)庫(kù)為 SQL Server 2021??记诠芾碓谏a(chǎn)管理過(guò)程中充當(dāng)著一個(gè)十分重要角色,考勤管理的效率對(duì)生產(chǎn)的效果起著舉足輕重的作用。 論文 系統(tǒng)規(guī)劃設(shè)計(jì)過(guò)程是從單位的業(yè)務(wù)流程出發(fā)展開(kāi)分析,從而完成系統(tǒng)各個(gè)功能模塊的分析過(guò)程,以及完成部分功能模塊的 設(shè)計(jì) ,實(shí)現(xiàn)了數(shù)據(jù)庫(kù)信息的瀏覽、錄入、查詢(xún)、修改、刪除等各種操作, 通過(guò)統(tǒng)一界面使得系統(tǒng)操作更為靈活、方便便捷。本次畢業(yè)設(shè)計(jì)應(yīng)首先分析考勤管理系統(tǒng)的相關(guān)功能,結(jié)合本次畢業(yè)設(shè) 計(jì)的相關(guān)要求寫(xiě)出 需求分析;其次,綜合運(yùn)用以前所學(xué)的相關(guān)知識(shí), 在設(shè)計(jì)中以需求分析為基礎(chǔ),寫(xiě)出系統(tǒng)開(kāi)發(fā)計(jì)劃、實(shí)現(xiàn)流程及相關(guān)問(wèn)題的實(shí)現(xiàn)方法;同時(shí),在開(kāi)發(fā)設(shè)計(jì)與實(shí)現(xiàn)中,要保存好相關(guān)的設(shè)計(jì)文 檔 。 Visual C++ 不犧牲靈活性、性能和控制力度的同時(shí),給 C++帶來(lái)了更高水平的生產(chǎn)效率。除這些核心企業(yè)品質(zhì)外, SQL Server 2021 還為您的數(shù)據(jù)管理與分析帶來(lái)了靈活性,允許單位在快速變化的環(huán)境中 從容響應(yīng),從而獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。 該系統(tǒng)包括基本信息管理,考勤信息管理,統(tǒng)計(jì)查詢(xún)和用戶(hù)管理等主要模塊。 功能模塊構(gòu)成 考勤管理系統(tǒng)由基本信息管理模塊、考勤信息模塊、統(tǒng)計(jì)查詢(xún)模塊和用戶(hù)管理模塊四個(gè)主要功能模塊構(gòu)成。 Admin 用戶(hù)可以修改自己的密碼,創(chuàng)建修改和刪除普通用戶(hù)信息。 EmpId 是主鍵。 //將對(duì)話(huà)框中編輯框的數(shù)據(jù)讀取到成員變量中 if(m_User == )// 沒(méi)有輸入用戶(hù)名 { MessageBox(請(qǐng)輸入用戶(hù)名 , 信息提示 )。 return。普通用戶(hù)是不能打開(kāi)這一塊信息的,節(jié)假日管理對(duì)他們是不可見(jiàn)的。 // 初始化 HolidayEditDlg 對(duì)話(huà)框中的變量 if (() == IDOK) RefreshData()。在 刪除部門(mén)的時(shí)候要對(duì)部門(mén)信息進(jìn)行判斷,如果部門(mén)是根節(jié)點(diǎn),包含下一級(jí)部門(mén)和員工時(shí)不能刪除。 }} void CDepManDlg::OnAddButton() //添加按鈕 {HTREEITEM node。員工管理則是 通過(guò)選擇部門(mén)信息,添加,修改和刪除員工信息 這里可以查看每個(gè)部門(mén)下的員工信息。 //根據(jù)部門(mén)編號(hào)設(shè)置 SELECT 語(yǔ)句 (%d, iDepId)。 CEmpEditDlg dlg。選擇出勤狀態(tài),然后單擊確定按鈕,可以保存指定員工的出勤情況。 CString cDepId。首先點(diǎn)擊選擇部門(mén),在左側(cè)則列出所有部門(mén)及其員工信息,選擇一個(gè)員工,會(huì)在右側(cè) 下方顯示他的加班狀態(tài)。} void COvertimeManDlg::OnModiButton()// 修改 按鈕 { if (().GetEof()) { MessageBox(請(qǐng)選擇要修改的記錄 !)。 if((4) == 法定節(jié)假日加班 ) = 0。選擇出勤狀態(tài),請(qǐng)假分為病假和事假,并且需要輸入請(qǐng)假原因,然后單擊確定按鈕,可以保存指定員工的請(qǐng)假情況。 } CCheckInfo cur。 // 修改 CheckInfo 表記 第 16 頁(yè) 共 26 頁(yè)