數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)企業(yè)考勤管理系統(tǒng)設(shè)計(jì)



《數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)企業(yè)考勤管理系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)企業(yè)考勤管理系統(tǒng)設(shè)計(jì)(36頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、華科學(xué)院數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì) 第一章 系統(tǒng)概述 1.1系統(tǒng)開發(fā)的背景與意義 1.1.1系統(tǒng)開發(fā)背景 現(xiàn)在不論哪個(gè)企業(yè),都要進(jìn)行考勤,一些企業(yè)在考勤管理方面用了大量的人力和財(cái)力,不說準(zhǔn)確度和可信度如何,其效率很低,而且容易出錯(cuò),不利于管理。所以人工考勤已經(jīng)很難再滿足企業(yè)規(guī)范化管理的要求,隨著數(shù)據(jù)庫技術(shù)的發(fā)展和企業(yè)信息化建設(shè)的進(jìn)行,使用計(jì)算機(jī)管理考勤成為一種主流趨勢(shì),它不僅為企業(yè)減少了人力財(cái)力的付出,而且也大大減輕了考勤工作人員的工作量。 本文系統(tǒng)的闡述了企業(yè)考勤管理設(shè)計(jì)開發(fā)的全過程。包括系統(tǒng)需求調(diào)查分析,概念結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)等部分。 1.1.2 系統(tǒng)開發(fā)意義 開發(fā)本系統(tǒng)的目的,
2、就是要解決目前企業(yè)中關(guān)于員工出勤管理中所面臨的一系列問題。開發(fā)出企業(yè)考勤管理系統(tǒng)能有效地提高企業(yè)辦事效率,解決目前員工出勤管理問題,實(shí)現(xiàn)員工請(qǐng)出勤信息和缺勤信息對(duì)企業(yè)領(lǐng)導(dǎo)透明,使管理人員及時(shí)把握員工的情況,及時(shí)與員工溝通,提高生產(chǎn)質(zhì)量。 第二章 系統(tǒng)需求分析 2.1系統(tǒng)功能要求 (1)記錄每個(gè)員工每天所有進(jìn)入公司的時(shí)刻和離開公司的時(shí)刻。 (2)每天結(jié)束時(shí)自動(dòng)統(tǒng)計(jì)當(dāng)天的工作時(shí)間 (3)每天結(jié)束時(shí)自動(dòng)統(tǒng)計(jì)當(dāng)天遲到或早退的次數(shù)。 (4)對(duì)于彈性工作制,每天結(jié)束時(shí)自動(dòng)統(tǒng)計(jì)當(dāng)月的工時(shí),并自動(dòng)算出當(dāng)月欠缺或富余的時(shí)間 (5)每個(gè)月末統(tǒng)計(jì)該月的工作時(shí)間判
3、斷是否足夠 (6)每個(gè)月末統(tǒng)計(jì)該月的工作天數(shù)并判斷是否足夠 (7)管理人員查詢并修改工作時(shí)間(特殊情況下修改) (8)管理人員賬戶管理(如設(shè)置密碼等) (9)管理人員設(shè)定早退及遲到的條件,每個(gè)月的工作時(shí)間 (10)管理人員設(shè)定每個(gè)月的工作日期及放假日期 2.2 需求分析概述 實(shí)際的管理和記錄工作非常需要快速獲知各個(gè)部門員工的每日出勤情況,以便于及時(shí)向高層管理者反映員工的出勤,缺勤情況。目前,由于負(fù)責(zé)考勤的員工,工作任務(wù)比較多,而且還都是重復(fù)數(shù)據(jù),讓工作者沒有辦法及時(shí)的向上報(bào)告。工作問題不能及時(shí)處理。 針對(duì)以上的情況,我們提出企業(yè)考勤管理系統(tǒng),實(shí)現(xiàn)網(wǎng)上考勤任務(wù),以減輕考勤人員的工
4、作量。我公司準(zhǔn)備開發(fā)員工考勤管理系統(tǒng),完成員工基本信息維護(hù)、企業(yè)的部門信息維護(hù)、企業(yè)基本考勤類型的維護(hù)、員工考勤的管理、員工考勤的查詢與分析。實(shí)現(xiàn)人事考勤的需要,包括員工遲到、早退的情況的記錄,在每個(gè)月底計(jì)算工資對(duì)員工和對(duì)員工進(jìn)行績效評(píng)估的時(shí)候,對(duì)員工整個(gè)月的考勤記錄進(jìn)行查詢和統(tǒng)計(jì)。 2.3系統(tǒng)層次劃分 設(shè)定工作放假日期 統(tǒng)計(jì)工作時(shí)間 記錄時(shí)刻 統(tǒng)計(jì)遲到早退次數(shù) 統(tǒng)計(jì)工時(shí) 設(shè)置密碼 設(shè)定遲到早退條件 判斷工作天數(shù)足夠 判斷工作時(shí)間足夠 查詢修改工作時(shí)間 考勤系統(tǒng)管理 管理系統(tǒng) 整合系統(tǒng) 考勤系統(tǒng)
5、 圖2.1 系統(tǒng)層次圖 員工 刷卡 2.4 系統(tǒng)數(shù)據(jù)流圖 產(chǎn)生數(shù)據(jù) 進(jìn)出時(shí)間信息 錄入進(jìn)出情況 進(jìn)出記錄 分析數(shù)據(jù) 傳送 統(tǒng) 數(shù)據(jù)統(tǒng)計(jì)
6、 錄入遲到情況 遲到記錄 統(tǒng) 計(jì) 錄入早退情況 計(jì) 進(jìn) 早退記錄 統(tǒng) 遲 出 錄入 準(zhǔn)備數(shù)據(jù) 錄入工作時(shí)間情況 計(jì) 到 記 考勤管理系統(tǒng)
7、 時(shí)間記錄 早 記 錄 退 錄 統(tǒng)計(jì)信息 工作日期 放假日期 統(tǒng)計(jì)工作時(shí)間記錄 評(píng) 估 參照
8、 已統(tǒng)計(jì)信息 職稱表 完整的考勤數(shù)據(jù) 月度考勤統(tǒng)計(jì) 圖2.2系統(tǒng)數(shù)據(jù)流程圖
9、 登陸 員工 考勤管理系統(tǒng) 帳號(hào)和 核對(duì)密碼 查詢考勤統(tǒng)計(jì) 月度考勤統(tǒng)計(jì) 密碼 查詢?nèi)掌谇闆r
10、 工作日期 放假日期 圖2.3 系統(tǒng)查詢數(shù)據(jù)流程圖 2.5 數(shù)據(jù)字典 (1),數(shù)據(jù)項(xiàng)描述 數(shù)據(jù)項(xiàng) 別名 類型 長度 取值范圍 取值含義 含義說明 員工編號(hào) yno bigint 0000000至 9999999 前三位為部門編號(hào),后四位為順序編號(hào) 唯一標(biāo)識(shí)每個(gè)員工 員工姓名 yname char 3 規(guī)范化 唯一標(biāo)識(shí)每個(gè)員工 員工性別 ysex char “男”或“女” 規(guī)范化 性別是區(qū)分員工的一個(gè)大致范圍 職位 yzhi bigint 標(biāo)識(shí)員工工
11、作性質(zhì) 入職時(shí)間 ytime bigint 2000至 2050 日期 進(jìn)入職位時(shí)間 員工年齡 yage int 20至70 員工年齡的允許范圍 唯一標(biāo)識(shí)員工年齡 密碼 ysecret int 000000至999999 6位登陸密碼 唯一標(biāo)識(shí)每個(gè)人的信息 表2-1 數(shù)據(jù)項(xiàng)描述表 (2)數(shù)據(jù)結(jié)構(gòu)描述 數(shù)據(jù)結(jié)構(gòu) 說明 組成 員工信息 是考勤管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)員工的有關(guān)信息 員工編號(hào),員工姓名,員工性別,出生日期,職位,密碼 部門信息 是考勤管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)部門的有關(guān)信息 部門編號(hào),部門名
12、稱 表2-2數(shù)據(jù)結(jié)構(gòu)描述 (3)數(shù)據(jù)流描述 數(shù)據(jù)流 說明 數(shù)據(jù)流來源 數(shù)據(jù)流去向 組成 平均流量 高峰期流量 核對(duì)密碼 根據(jù)不同人員相應(yīng)的權(quán)限 登錄時(shí)的信息 考勤管理系統(tǒng) 管理員的帳號(hào)密碼與普通員工的帳號(hào)密碼 每天傳輸1000次 1500次 完整的考勤數(shù)據(jù) 員工的考勤數(shù)據(jù) 月度考勤統(tǒng)計(jì) 工資評(píng)估 月度考勤編號(hào)、員工編號(hào)、日期、累計(jì)正常工作時(shí)間遲到次數(shù)、早退次數(shù)、曠工次數(shù) 每月傳輸1500次 1500次 表3-3數(shù)據(jù)流描述 (4)數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)存儲(chǔ) 說明 流入數(shù)據(jù)流 流出數(shù)據(jù)流 組成 數(shù)據(jù)量 存取方式 月度考勤統(tǒng)計(jì) 記錄員工每月
13、的考勤情況 一個(gè)月的信息統(tǒng)計(jì) 統(tǒng)計(jì)好的考勤數(shù)據(jù) 月度考勤編號(hào)、員工編號(hào)、日期、正常工作時(shí)間、遲到次數(shù)、早退次數(shù)、曠工次數(shù) 每月1500次 更新,順序檢索 表3-4數(shù)據(jù)存儲(chǔ) (5)處理過程 處理過程 說明 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 處理 登錄 用正確的賬號(hào)登錄 賬號(hào)和密碼 核對(duì)密碼 要求密碼正確,并且根據(jù)賬戶名來區(qū)分管理員和普通員工 錄入數(shù)據(jù) 將準(zhǔn)備的數(shù)據(jù)依次錄入 準(zhǔn)備的出差,請(qǐng)假,加班,出勤的數(shù)據(jù) 錄入正常工作,遲到早退,出勤的情況 要求數(shù)據(jù)根據(jù)其內(nèi)容分別編入不同的記錄中
14、 修改數(shù)據(jù) 根據(jù)相應(yīng)的評(píng)估方法來修改數(shù)據(jù) 完整的考勤數(shù)據(jù) 修改數(shù)據(jù)單 把錯(cuò)誤數(shù)據(jù)修改成正確數(shù)據(jù) 表3-5處理過程 第三章 系統(tǒng)總體設(shè)計(jì) 3.1 系統(tǒng)總體設(shè)計(jì)目標(biāo) 經(jīng)過調(diào)查、信息流程分析、數(shù)據(jù)收集,并結(jié)合需求分析,明確了該子系統(tǒng)的功能: (1)給員工編號(hào),登記其基本信息。 (2)給員工配置信息,天下班時(shí)間,每天工作時(shí)間 (3)對(duì)員工的考勤數(shù)據(jù)進(jìn)行登記,并進(jìn)行每日和月度考勤統(tǒng)計(jì)。 (4)對(duì)員工的月度考勤統(tǒng)計(jì)的結(jié)果來核算員工工資和工作放假日期。 3.2 系統(tǒng)概念設(shè)計(jì) 3.2.1 概念模型(E-R圖) 員 工 員工號(hào) 員工姓名 職 位 密 碼
15、 員工年齡 員工性別 圖3.1 員工屬性圖 刷 卡 機(jī) 規(guī) 格 刷卡機(jī)名稱 刷卡機(jī)號(hào) 圖3.2刷卡機(jī)屬性圖 管理員號(hào) 性 別 管理員 姓 名 年 齡 圖3.3管理員屬性圖 員工姓名 員工號(hào) 密 碼 員 工 職 位 員工性別 員工年齡 上班的時(shí) 間 m 每天工作時(shí)間 記錄 早退的次數(shù) 遲到的次數(shù) 下班的時(shí) 間 管理員號(hào) 剩余的時(shí)間 姓 名 刷卡機(jī)號(hào) 統(tǒng)計(jì)
16、 n 管理員 刷卡機(jī) m n 工作天數(shù) 性 別 年 齡 規(guī) 格 刷卡機(jī)名稱 圖4.4 系統(tǒng)E-R圖 3.2.2 關(guān)系模式 員工(員工號(hào),姓名,性別,年齡,職位,密碼,入職時(shí)間) 記錄數(shù)據(jù)(員工號(hào),刷卡機(jī)號(hào),上班的時(shí)間,下班的時(shí)間,每天工作時(shí)間) 刷卡機(jī)(刷卡機(jī)號(hào),刷卡機(jī)名稱,規(guī)格) 統(tǒng)計(jì)數(shù)據(jù)(員工號(hào),刷卡機(jī)號(hào),剩余的時(shí)間,遲到的次數(shù),早退的次數(shù),工作天數(shù)) 管理員(管理員號(hào),姓名,性別,年齡) 員工
17、表(employee) 列名 別名 類型 長度 備注 員工號(hào) yno bigint 6 設(shè)為主碼 員工姓名 yname char 20 員工性別 ysex char 2 年齡 ygage int 3 職位 ygzhw char 6 密碼 secret int 6 入職時(shí)間 ygrzh time 8 表3-1 員工表 記錄數(shù)據(jù)表(data_record): 列名 別名 類型 長度 備注 員工號(hào) yno bigint 6 設(shè)為主碼 刷卡機(jī)號(hào) skno bigint 1
18、5 設(shè)為主碼 上班的時(shí)間 ondutytime datatime 4 下班的時(shí)間 offdutytime datatime 4 每天工作時(shí)間 worktime char 4 表3-2記錄數(shù)據(jù)表 刷卡機(jī)表(skj): 列名 別名 類型 長度 備注 刷卡機(jī)號(hào) skno bigint 15 設(shè)為主碼 刷卡機(jī)名稱 skname char 8 規(guī)格 skgg char 10 表3-3刷卡機(jī)表 統(tǒng)計(jì)數(shù)據(jù)表(statistics_data): 列名 別名 類型 長度 備注 員工號(hào) yno
19、 bigint 6 設(shè)為主碼 刷卡機(jī)號(hào) skno bigint 15 設(shè)為主碼 剩余的時(shí)間 ljworktime char 10 遲到的次數(shù) latetimes int 2 早退的次數(shù) leavetimes int 2 工作天數(shù) workday bigint 2 表3-4統(tǒng)計(jì)數(shù)據(jù)表 管理員表(Administrator) 列名 別名 類型 長度 備注 管理員號(hào) ano bigint 6 設(shè)為主碼 姓名 aname char 20 性別 asex char 2 年齡 aage
20、 int 3 表3-5管理員表 第四章 數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn) 4.1 系統(tǒng)實(shí)現(xiàn)工具簡介 4.1.1 PowerDesigner 建模工具簡介 提高軟件質(zhì)量,開發(fā)周期, 并且使軟件更能夠適應(yīng)業(yè)務(wù)需求的變化,以提高投資回報(bào)率,是每個(gè)企業(yè)所面臨的、需要解決的關(guān)鍵問題。軟件建模為是提高與有效控制軟件質(zhì)量的解決之道。近些年來為大家關(guān)注的主要是數(shù)據(jù)設(shè)計(jì)模型、對(duì)象模型、和業(yè)務(wù)流程模型。由于歷史原因,面向數(shù)據(jù)架構(gòu),開發(fā)以及業(yè)務(wù)分析的建模工作總是被單獨(dú)購買,彼此之間沒有集成或共享信息。但是,企業(yè)不斷需要更集成的建模套件,即集
21、成化企業(yè)級(jí)建模工具,來支持在共享環(huán)境下,企業(yè)整個(gè)架構(gòu)的不同方面的全面建模。 目前各主要的建模工具廠商如Sybase PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在加強(qiáng)各自建模工具的融合與集成。PowerDesigner經(jīng)過近20年的發(fā)展,已經(jīng)在原有的數(shù)據(jù)建模上,形成一套完整的集成化企業(yè)級(jí)建模解決方案。 PowerDesigner系列產(chǎn)品提供了一個(gè)完整的建模解決方案,業(yè)務(wù)或系統(tǒng)分析人員,設(shè)計(jì)人員,數(shù)據(jù)庫管理員BA和開發(fā)人員可以對(duì)其裁剪以滿足他們的特定的需要;而其模塊化的結(jié)構(gòu)為購買和擴(kuò)展提供了極大的靈活性,
22、從而使開發(fā)單位可以根據(jù)其項(xiàng)目的規(guī)模和范圍來使用他們所需要的工具。PowerDesigner靈活的分析和設(shè)計(jì)特性允許使用一種結(jié)構(gòu)化的方法有效地創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)倉庫,而不要求嚴(yán)格遵循一個(gè)特定的方法學(xué)。PowerDesigner提供了直觀的符號(hào)表示使數(shù)據(jù)庫的創(chuàng)建更加容易,并使項(xiàng)目組內(nèi)的交流和通訊標(biāo)準(zhǔn)化,同時(shí)能更加簡單地向非技術(shù)人員展示數(shù)據(jù)庫和應(yīng)用的設(shè)計(jì)。 PowerDesigner不僅加速了開發(fā)的過程,也向最終用戶提供了管理和訪問項(xiàng)目的信息的一個(gè)有效的結(jié)構(gòu)。它允許設(shè)計(jì)人員不僅創(chuàng)建和管理數(shù)據(jù)的結(jié)構(gòu),而且開發(fā)和利用數(shù)據(jù)的結(jié)構(gòu)針對(duì)領(lǐng)先的開發(fā)工具環(huán)境快速地生成應(yīng)用對(duì)象和數(shù)據(jù)敏感的組件。開發(fā)人員可以使
23、用同樣的物理數(shù)據(jù)模型查看數(shù)據(jù)庫的結(jié)構(gòu)和整理文檔,以及生成應(yīng)用對(duì)象和在開發(fā)過程中使用的組件。應(yīng)用對(duì)象生成有助于在整個(gè)開發(fā)生命周期提供更多的控制和更高的生產(chǎn)率。 PowerDesigner是一個(gè)功能強(qiáng)大而使用簡單工具集,提供了一個(gè)復(fù)雜的交互環(huán)境,支持開發(fā)生命周期的所有階段,從處理流程建模到對(duì)象和組件的生成。PowerDesigner產(chǎn)生的模型和應(yīng)用可以不斷地增長,適應(yīng)并隨著你的組織的變化而變化。 PowerDesigner包含六個(gè)緊密集成的模塊,允許個(gè)人和開發(fā)組的成員以合算的方式最好地滿足他們的需要。這六個(gè)模塊是: PowerDesigner ProcessAnalyst,
24、用于數(shù)據(jù)發(fā)現(xiàn)。 PowerDesigner DataArchitect,用于雙層,交互式的數(shù)據(jù)庫設(shè)計(jì)和構(gòu)造。 PowerDesigner AppModeler,用于物理建模和應(yīng)用對(duì)象及數(shù)據(jù)敏感組件的生成。 PowerDesigner MetaWorks,用于高級(jí)的團(tuán)隊(duì)開發(fā),信息的共享和模型的管理。 PowerDesigner WarehouseArchitect,用于數(shù)據(jù)倉庫的設(shè)計(jì)和實(shí)現(xiàn)。 PowerDesigner Viewer,用于以只讀的、圖形化方式訪問整個(gè)企業(yè)的模型信息。 PowerDesigner 主要包括以下幾個(gè)功能部分 ?。?) Dat
25、aArchitect 這是一個(gè)強(qiáng)大的數(shù)據(jù)庫設(shè)計(jì)工具,使用DataArchitect 可利用實(shí)體-關(guān)系圖為一個(gè)信息系統(tǒng) 創(chuàng)建"概念數(shù)據(jù)模型"-CDM(Conceptual Data Model)。并且可根據(jù)CDM 產(chǎn)生基于某一特定 數(shù)據(jù)庫管理系統(tǒng)(例如:Sybase System 11)的"物理數(shù)據(jù)模型"-PDM(Physical Data Model)。 還可優(yōu)化PDM,產(chǎn)生為特定DBMS 創(chuàng)建數(shù)據(jù)庫的SQL 語句并可以文件形式存儲(chǔ)以便在其他時(shí) 刻運(yùn)行這些SQL 語句創(chuàng)建數(shù)據(jù)庫。另外,DataArchitect還可根據(jù)已存在的數(shù)據(jù)庫反向生成 PDM,C
26、DM 及創(chuàng)建數(shù)據(jù)庫的SQL腳本。 ?。?) ProcessAnalyst 這部分用于創(chuàng)建功能模型和數(shù)據(jù)流圖,創(chuàng)建"處理層次關(guān)系"。 (3) AppModeler 為客戶/服務(wù)器應(yīng)用程序創(chuàng)建應(yīng)用模型。 ?。?) ODBC Administrator 此部分用來管理系統(tǒng)的各種數(shù)據(jù)源。 (5)XML文件 可以使用工具生成相應(yīng)的XML文件,或者用XML文件生成相關(guān)模型 4.1.2 SQL Server 2000簡介 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同
27、開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本;Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。在本書中介紹的是Microsoft SQL Server 以后簡稱為SQL Server SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的一個(gè)版本。該版本繼承了SQ
28、L Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。 SQL Server 2000 的特性Microsoft® SQL Server? 2000 的特性包括: (1).Internet 集成。SQL Server 2000 數(shù)據(jù)庫引擎提供完整的XML 支持。它還具有構(gòu)成最大的Web 站點(diǎn)的數(shù)據(jù)存儲(chǔ)組件所需的可伸縮性、可用性和安全功能。 (2).可伸縮性
29、和可用性。同一個(gè)數(shù)據(jù)庫引擎可以在不同的平臺(tái)上使用,從運(yùn)行 Microsoft Windows® 98 的便攜式電腦,到運(yùn)行 Microsoft Windows 2000 數(shù)據(jù)中心版的大型多處理器服務(wù)器。 (3).企業(yè)級(jí)數(shù)據(jù)庫功能。SQL Server 2000 關(guān)系數(shù)據(jù)庫引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護(hù)數(shù)據(jù)完整性,同時(shí)將管理上千個(gè)并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。 (4).易于安裝、部署和使用。 SQL Server 2000 中包括一系列管理和開發(fā)工具,這些工具可改進(jìn)在多個(gè)站點(diǎn)上安裝、部署、管理和使用 SQL Server 的過程。SQL Ser
30、ver 2000 還支持基于標(biāo)準(zhǔn)的、與 Windows DNA 集成的程序設(shè)計(jì)模型,使 SQL Server 數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付 SQL Server 應(yīng)用程序,使客戶只需最少的安裝和管理開銷即可實(shí)現(xiàn)這些應(yīng)用程序。
4.1.2企業(yè)考勤管理系統(tǒng)的實(shí)現(xiàn)
#include
31、loyee { int id; char name[20]; char department[20]; }; struct date / { int year; int month; int day; }; struct attendance { int id; int late; int early; char
32、 name[20]; struct date dat; }; struct statistic { int id; int late_count; int early_count; char name[20]; }; int COUNT=0; int FLAG_pause=1; system(“pause”) struct employee person[MAX_COUNT]; struct data B
33、ASE_DATA={2010,3,1}; void input_employee() { system("cls"); FILE *fp1,*fp2; struct employee temp; fp1=fopen("information1.txt","w"); fp2=fopen("information2.txt","w"); printf("\t\t\t\t 員工信息\n"); printf("\n\t\t\t\tID\t姓名\t部門\n\t\t\t\t"); f
34、printf(fp1,"\t\t\t\t 輸入員工信息\n"); fprintf(fp1,"\n\t\t\t\tID\t姓名\t部門\n"); scanf("%d%s%s",&temp.id,temp.name,temp.department); while(temp.id!=0) { person[COUNT]=temp; printf("%d",temp.id); COUNT++; fprintf(fp1,"\t\t\t\t%d\t%s\t%s\
35、n",temp.id,temp.name,temp.department); fprintf(fp2,"%d\t%s\t%s\n",temp.id,temp.name,temp.department); printf("\t\t\t\t"); scanf("%d%s%s",&temp.id,temp.name,temp.department); } fclose(fp1); fclose(fp2); } void read_file() { FILE *fp;
36、 COUNT=0; if((fp=fopen("information2.txt","r"))==NULL) { printf("cant not open file\n"); exit(1); } while(!feof(fp)) { fscanf(fp,"%d%s%s",&person[COUNT].id,person[COUNT].name, person[COUNT].department);
37、 COUNT++; } COUNT--; fclose(fp); } void write_file() { int i; FILE *fp1,*fp2; fp1=fopen("information1.txt","w+"); fp2=fopen("information2.txt","w+"); if(fp1==NULL || fp2==NULL) { printf("cant not open file\n");
38、 exit(1);
}
fprintf(fp1,"\t\t\t\t 輸入員工信息\n");
printf(fp1,"\n\t\t\t\tID\t姓名\t部門\n");
for(i=0;i 39、on[i].department);
}
fclose(fp1);
fclose(fp2);
}
void output_employee()
{
int i;
int id;
int choice;
char temp[20];
system("cls");
read_file();
printf("\n\t\t\t\t\t輸出員工信息\n");
printf("\n\t1.輸出全體員工信息\t");
printf("2.按姓名輸出員工信息\t" 40、);
printf("3.按ID輸出員工信息\t");
printf("4.按部門員工信息\t");
printf("5.返回主菜單\n");
printf("\n\t請(qǐng)選擇(1~5):\t");
start:
scanf("%d",&choice);
if(choice<1 || choice>5)
{
printf("\t輸入錯(cuò)誤,請(qǐng)重輸:\t");
goto start;
}
switch(choice)
{
case(1): 41、
{
printf("\t\t\tID\t姓名\t部門\n");
for(i=0;i 42、canf("%s",temp);
printf("\t\t\tID\t姓名\t部門\n");
for(i=0;i 43、}
case(3):
{
printf("\t\t\t輸入ID:");
scanf("%d",&id);
printf("\t\t\tID\t姓名\t部門\n");
for(i=0;i 44、,person[i].id,person[i].name,
person[i].department);
break;
}
}
break;
}
case(4):
{
printf("\t\t\t輸入部門:");
scanf("%s",temp);
printf("\t\t\tID\t姓名\t部門\n 45、");
for(i=0;i 46、(5):
break;
}
system("pause");
}
void insert_employee(struct employee new_person)
{
int i;
system("cls");
read_file();
i=COUNT;
while(person[i].id>new_person.id)
{
person[i]=person[i-1];
i--;
}
47、 person[i]=new_person;
COUNT++;
write_file();
if(FLAG_pause==0)
system("pause");
}
void delete_employee(int id)
{
int i;
int j;
read_file();
system("cls");
for(i=0;i 48、 break;
for(j=i;j 49、 printf("\t請(qǐng)輸入新的員工信息:\n\t\t\tID\t姓名\t部門\n\t\t\t");
scanf("%d%s%s",&someone.id,someone.name,someone.department);
insert_employee(someone);
write_file();
FLAG_pause=0;
system("pause");
}
void management_employee()
{
int choice;
int id;
struct 50、employee someone;
printf("\n\t\t\t\t\t員工信息管理\n");
printf("\n\t1.輸入員工信息\t");
printf("2.輸出員工信息\t");
printf("3.插入員工信息\t");
printf("4.修改員工信息\t");
printf("5.刪除員工\t");
printf("6.返回主菜單\n");
printf("\n\t請(qǐng)選擇(1~6):\t");
start:
scanf("%d",&choice);
if(choi 51、ce<1 || choice>6)
{
printf("\t輸入錯(cuò)誤,請(qǐng)重輸:\t");
goto start;
}
switch(choice)
{
case(1):
{
input_employee();
break;
}
case(2):
{
output_employee();
break;
}
52、 case(3):
{
printf("\t\t\t插入新員工信息\n");
printf("\t\t\t請(qǐng)輸入員工的:\n\t\t\tID\t姓名\t部門\n");
printf("\t\t\t");
scanf("%d%s%s",&someone.id,someone.name,someone.department);
insert_employee(someone);
break;
}
53、
case(4):
{
printf("\t\t\t修改員工信息\n");
printf("\t請(qǐng)輸入要修改的員工ID:\t");
scanf("%d",&id);
edit_employee(id);
break;
}
case(5):
{
printf("\t\t\t刪除員工信息\n");
printf("\t 54、請(qǐng)輸入要?jiǎng)h除的員工ID:\t");
scanf("%d",&id);
delete_employee(id);
break;
}
case(6):
break;
}
}
int computer(struct data someday)
{
int i;
int days=0;
if(someday.month==BASE_DATA.month)
days=someda 55、y.day-BASE_DATA.day+1;
else
{
for(i=BASE_DATA.month+1;i 56、 days=days+30;
case 5:
days=days+31;
case 6:
days=days+30;
case 7:
days=days+31;
case 8:
days=days+31;
57、 case 9:
days=days+30;
case 10:
days=days+31;
case 11:
days=days+30;
}
days=days+someday.day;
}
return days;
}
void recorder() 58、
{
int i;
int late;
int early;
int id;
int days;
char name[20];
char filename[40];
FILE *fp;
struct date current_date;
system("cls");
read_file(); 59、
printf("\n\t\t\t\t考勤記錄\n");
printf("\n\t\t日期:");
scanf("%d%d%d",¤t_date.year,¤t_date.month,¤t_date.day);
days=computer(current_date);
itoa(days,filename, 10);
strcat(filename,".txt");
fp=fopen(filename,"w");
fprintf(fp," 60、%d\t%d\t%d\n",current_data.year,current_data.month,current_data.day);
printf("\n\t\tID\t姓名\t遲到\t早退\n");
fprintf(fp,"ID\t姓名\t遲到\t早退\n");
for(i=0;i 61、me);
scanf("%d%d",&late,&early);
fprintf(fp,"%d\t%s\t%d\t%d\n",id,name,late,early);
}
fprintf(fp,"\n");
fclose(fp);
system("pause");
}
void statistic()
{
int i;
int j;
int k=0;
int status=0; 62、 / int begin_page;
int end_page;
char save;
char filename[40];
int year;
int month;
int day;
char ID[20];
char name[20];
char late[20];
c 63、har early[20];
FILE *fp;
struct date begin;
struct date end;
struct statistic temp;
struct statistic stat[30];
for(i=0;i<30;i++)
{
stat[i].early_count=0;
stat[i].late_count=0;
}
system( 64、"cls");
printf("\t\t\t統(tǒng)計(jì)員工考勤\n");
printf("\n\t請(qǐng)輸入起止日期\n");
printf("\n\t\t起始日期:");
scanf("%d%d%d",&begin.year,&begin.month,&begin.day);
printf("\n\t\t終止日期:");
scanf("%d%d%d",&end.year,&end.month,&end.day);
begin_page=computer(begin);
end_page=computer(e 65、nd);
for(i=begin_page;i<=end_page;i++)
{
itoa(i,filename, 10);
strcat(filename,".txt");
fp=fopen(filename,"r");
fscanf(fp,"%d%d%d%s%s%s%s",&year,&month,&day,ID,name,late,early);
if(i==begin_page)
{
wh 66、ile(!feof(fp))
{
fscanf(fp,"%d%s%d%d",&stat[k].id,stat[k].name,&stat[k].late_count,&stat[k].early_count);
k++;
}
k--;
}
else
{
while(!feof(fp))
{
fscanf(fp,"%d%s%d%d",&temp.id,temp.name,
&temp.late_count,&temp.early_count);
for(j=0;j
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報(bào)告材料
- 副書記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多