歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

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

  • 資源ID:253592148       資源大小:364KB        全文頁數:36頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

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

華科學院數據庫系統(tǒng)課程設計 第一章 系統(tǒng)概述 1.1系統(tǒng)開發(fā)的背景與意義 1.1.1系統(tǒng)開發(fā)背景 現在不論哪個企業(yè),都要進行考勤,一些企業(yè)在考勤管理方面用了大量的人力和財力,不說準確度和可信度如何,其效率很低,而且容易出錯,不利于管理。所以人工考勤已經很難再滿足企業(yè)規(guī)范化管理的要求,隨著數據庫技術的發(fā)展和企業(yè)信息化建設的進行,使用計算機管理考勤成為一種主流趨勢,它不僅為企業(yè)減少了人力財力的付出,而且也大大減輕了考勤工作人員的工作量。 本文系統(tǒng)的闡述了企業(yè)考勤管理設計開發(fā)的全過程。包括系統(tǒng)需求調查分析,概念結構設計,邏輯結構設計等部分。 1.1.2 系統(tǒng)開發(fā)意義 開發(fā)本系統(tǒng)的目的,就是要解決目前企業(yè)中關于員工出勤管理中所面臨的一系列問題。開發(fā)出企業(yè)考勤管理系統(tǒng)能有效地提高企業(yè)辦事效率,解決目前員工出勤管理問題,實現員工請出勤信息和缺勤信息對企業(yè)領導透明,使管理人員及時把握員工的情況,及時與員工溝通,提高生產質量。 第二章 系統(tǒng)需求分析 2.1系統(tǒng)功能要求 (1)記錄每個員工每天所有進入公司的時刻和離開公司的時刻。 (2)每天結束時自動統(tǒng)計當天的工作時間 (3)每天結束時自動統(tǒng)計當天遲到或早退的次數。 (4)對于彈性工作制,每天結束時自動統(tǒng)計當月的工時,并自動算出當月欠缺或富余的時間 (5)每個月末統(tǒng)計該月的工作時間判斷是否足夠 (6)每個月末統(tǒng)計該月的工作天數并判斷是否足夠 (7)管理人員查詢并修改工作時間(特殊情況下修改) (8)管理人員賬戶管理(如設置密碼等) (9)管理人員設定早退及遲到的條件,每個月的工作時間 (10)管理人員設定每個月的工作日期及放假日期 2.2 需求分析概述 實際的管理和記錄工作非常需要快速獲知各個部門員工的每日出勤情況,以便于及時向高層管理者反映員工的出勤,缺勤情況。目前,由于負責考勤的員工,工作任務比較多,而且還都是重復數據,讓工作者沒有辦法及時的向上報告。工作問題不能及時處理。 針對以上的情況,我們提出企業(yè)考勤管理系統(tǒng),實現網上考勤任務,以減輕考勤人員的工作量。我公司準備開發(fā)員工考勤管理系統(tǒng),完成員工基本信息維護、企業(yè)的部門信息維護、企業(yè)基本考勤類型的維護、員工考勤的管理、員工考勤的查詢與分析。實現人事考勤的需要,包括員工遲到、早退的情況的記錄,在每個月底計算工資對員工和對員工進行績效評估的時候,對員工整個月的考勤記錄進行查詢和統(tǒng)計。 2.3系統(tǒng)層次劃分 設定工作放假日期 統(tǒng)計工作時間 記錄時刻 統(tǒng)計遲到早退次數 統(tǒng)計工時 設置密碼 設定遲到早退條件 判斷工作天數足夠 判斷工作時間足夠 查詢修改工作時間 考勤系統(tǒng)管理 管理系統(tǒng) 整合系統(tǒng) 考勤系統(tǒng) 圖2.1 系統(tǒng)層次圖 員工 刷卡 2.4 系統(tǒng)數據流圖 產生數據 進出時間信息 錄入進出情況 進出記錄 分析數據 傳送 統(tǒng) 數據統(tǒng)計 錄入遲到情況 遲到記錄 統(tǒng) 計 錄入早退情況 計 進 早退記錄 統(tǒng) 遲 出 錄入 準備數據 錄入工作時間情況 計 到 記 考勤管理系統(tǒng) 時間記錄 早 記 錄 退 錄 統(tǒng)計信息 工作日期 放假日期 統(tǒng)計工作時間記錄 評 估 參照 已統(tǒng)計信息 職稱表 完整的考勤數據 月度考勤統(tǒng)計 圖2.2系統(tǒng)數據流程圖 登陸 員工 考勤管理系統(tǒng) 帳號和 核對密碼 查詢考勤統(tǒng)計 月度考勤統(tǒng)計 密碼 查詢日期情況 工作日期 放假日期 圖2.3 系統(tǒng)查詢數據流程圖 2.5 數據字典 (1),數據項描述 數據項 別名 類型 長度 取值范圍 取值含義 含義說明 員工編號 yno bigint 0000000至 9999999 前三位為部門編號,后四位為順序編號 唯一標識每個員工 員工姓名 yname char 3 規(guī)范化 唯一標識每個員工 員工性別 ysex char “男”或“女” 規(guī)范化 性別是區(qū)分員工的一個大致范圍 職位 yzhi bigint 標識員工工作性質 入職時間 ytime bigint 2000至 2050 日期 進入職位時間 員工年齡 yage int 20至70 員工年齡的允許范圍 唯一標識員工年齡 密碼 ysecret int 000000至999999 6位登陸密碼 唯一標識每個人的信息 表2-1 數據項描述表 (2)數據結構描述 數據結構 說明 組成 員工信息 是考勤管理子系統(tǒng)的主體數據結構,定義了一個員工的有關信息 員工編號,員工姓名,員工性別,出生日期,職位,密碼 部門信息 是考勤管理子系統(tǒng)的主體數據結構,定義了一個部門的有關信息 部門編號,部門名稱 表2-2數據結構描述 (3)數據流描述 數據流 說明 數據流來源 數據流去向 組成 平均流量 高峰期流量 核對密碼 根據不同人員相應的權限 登錄時的信息 考勤管理系統(tǒng) 管理員的帳號密碼與普通員工的帳號密碼 每天傳輸1000次 1500次 完整的考勤數據 員工的考勤數據 月度考勤統(tǒng)計 工資評估 月度考勤編號、員工編號、日期、累計正常工作時間遲到次數、早退次數、曠工次數 每月傳輸1500次 1500次 表3-3數據流描述 (4)數據存儲 數據存儲 說明 流入數據流 流出數據流 組成 數據量 存取方式 月度考勤統(tǒng)計 記錄員工每月的考勤情況 一個月的信息統(tǒng)計 統(tǒng)計好的考勤數據 月度考勤編號、員工編號、日期、正常工作時間、遲到次數、早退次數、曠工次數 每月1500次 更新,順序檢索 表3-4數據存儲 (5)處理過程 處理過程 說明 輸入數據流 輸出數據流 處理 登錄 用正確的賬號登錄 賬號和密碼 核對密碼 要求密碼正確,并且根據賬戶名來區(qū)分管理員和普通員工 錄入數據 將準備的數據依次錄入 準備的出差,請假,加班,出勤的數據 錄入正常工作,遲到早退,出勤的情況 要求數據根據其內容分別編入不同的記錄中 修改數據 根據相應的評估方法來修改數據 完整的考勤數據 修改數據單 把錯誤數據修改成正確數據 表3-5處理過程 第三章 系統(tǒng)總體設計 3.1 系統(tǒng)總體設計目標 經過調查、信息流程分析、數據收集,并結合需求分析,明確了該子系統(tǒng)的功能: (1)給員工編號,登記其基本信息。 (2)給員工配置信息,天下班時間,每天工作時間 (3)對員工的考勤數據進行登記,并進行每日和月度考勤統(tǒng)計。 (4)對員工的月度考勤統(tǒng)計的結果來核算員工工資和工作放假日期。 3.2 系統(tǒng)概念設計 3.2.1 概念模型(E-R圖) 員 工 員工號 員工姓名 職 位 密 碼 員工年齡 員工性別 圖3.1 員工屬性圖 刷 卡 機 規(guī) 格 刷卡機名稱 刷卡機號 圖3.2刷卡機屬性圖 管理員號 性 別 管理員 姓 名 年 齡 圖3.3管理員屬性圖 員工姓名 員工號 密 碼 員 工 職 位 員工性別 員工年齡 上班的時 間 m 每天工作時間 記錄 早退的次數 遲到的次數 下班的時 間 管理員號 剩余的時間 姓 名 刷卡機號 統(tǒng)計 n 管理員 刷卡機 m n 工作天數 性 別 年 齡 規(guī) 格 刷卡機名稱 圖4.4 系統(tǒng)E-R圖 3.2.2 關系模式 員工(員工號,姓名,性別,年齡,職位,密碼,入職時間) 記錄數據(員工號,刷卡機號,上班的時間,下班的時間,每天工作時間) 刷卡機(刷卡機號,刷卡機名稱,規(guī)格) 統(tǒng)計數據(員工號,刷卡機號,剩余的時間,遲到的次數,早退的次數,工作天數) 管理員(管理員號,姓名,性別,年齡) 員工表(employee) 列名 別名 類型 長度 備注 員工號 yno bigint 6 設為主碼 員工姓名 yname char 20 員工性別 ysex char 2 年齡 ygage int 3 職位 ygzhw char 6 密碼 secret int 6 入職時間 ygrzh time 8 表3-1 員工表 記錄數據表(data_record): 列名 別名 類型 長度 備注 員工號 yno bigint 6 設為主碼 刷卡機號 skno bigint 15 設為主碼 上班的時間 ondutytime datatime 4 下班的時間 offdutytime datatime 4 每天工作時間 worktime char 4 表3-2記錄數據表 刷卡機表(skj): 列名 別名 類型 長度 備注 刷卡機號 skno bigint 15 設為主碼 刷卡機名稱 skname char 8 規(guī)格 skgg char 10 表3-3刷卡機表 統(tǒng)計數據表(statistics_data): 列名 別名 類型 長度 備注 員工號 yno bigint 6 設為主碼 刷卡機號 skno bigint 15 設為主碼 剩余的時間 ljworktime char 10 遲到的次數 latetimes int 2 早退的次數 leavetimes int 2 工作天數 workday bigint 2 表3-4統(tǒng)計數據表 管理員表(Administrator) 列名 別名 類型 長度 備注 管理員號 ano bigint 6 設為主碼 姓名 aname char 20 性別 asex char 2 年齡 aage int 3 表3-5管理員表 第四章 數據庫系統(tǒng)實現 4.1 系統(tǒng)實現工具簡介 4.1.1 PowerDesigner 建模工具簡介 提高軟件質量,開發(fā)周期, 并且使軟件更能夠適應業(yè)務需求的變化,以提高投資回報率,是每個企業(yè)所面臨的、需要解決的關鍵問題。軟件建模為是提高與有效控制軟件質量的解決之道。近些年來為大家關注的主要是數據設計模型、對象模型、和業(yè)務流程模型。由于歷史原因,面向數據架構,開發(fā)以及業(yè)務分析的建模工作總是被單獨購買,彼此之間沒有集成或共享信息。但是,企業(yè)不斷需要更集成的建模套件,即集成化企業(yè)級建模工具,來支持在共享環(huán)境下,企業(yè)整個架構的不同方面的全面建模。   目前各主要的建模工具廠商如Sybase PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在加強各自建模工具的融合與集成。PowerDesigner經過近20年的發(fā)展,已經在原有的數據建模上,形成一套完整的集成化企業(yè)級建模解決方案。   PowerDesigner系列產品提供了一個完整的建模解決方案,業(yè)務或系統(tǒng)分析人員,設計人員,數據庫管理員BA和開發(fā)人員可以對其裁剪以滿足他們的特定的需要;而其模塊化的結構為購買和擴展提供了極大的靈活性,從而使開發(fā)單位可以根據其項目的規(guī)模和范圍來使用他們所需要的工具。PowerDesigner靈活的分析和設計特性允許使用一種結構化的方法有效地創(chuàng)建數據庫或數據倉庫,而不要求嚴格遵循一個特定的方法學。PowerDesigner提供了直觀的符號表示使數據庫的創(chuàng)建更加容易,并使項目組內的交流和通訊標準化,同時能更加簡單地向非技術人員展示數據庫和應用的設計。   PowerDesigner不僅加速了開發(fā)的過程,也向最終用戶提供了管理和訪問項目的信息的一個有效的結構。它允許設計人員不僅創(chuàng)建和管理數據的結構,而且開發(fā)和利用數據的結構針對領先的開發(fā)工具環(huán)境快速地生成應用對象和數據敏感的組件。開發(fā)人員可以使用同樣的物理數據模型查看數據庫的結構和整理文檔,以及生成應用對象和在開發(fā)過程中使用的組件。應用對象生成有助于在整個開發(fā)生命周期提供更多的控制和更高的生產率。   PowerDesigner是一個功能強大而使用簡單工具集,提供了一個復雜的交互環(huán)境,支持開發(fā)生命周期的所有階段,從處理流程建模到對象和組件的生成。PowerDesigner產生的模型和應用可以不斷地增長,適應并隨著你的組織的變化而變化。   PowerDesigner包含六個緊密集成的模塊,允許個人和開發(fā)組的成員以合算的方式最好地滿足他們的需要。這六個模塊是:   PowerDesigner ProcessAnalyst,用于數據發(fā)現。   PowerDesigner DataArchitect,用于雙層,交互式的數據庫設計和構造。   PowerDesigner AppModeler,用于物理建模和應用對象及數據敏感組件的生成。   PowerDesigner MetaWorks,用于高級的團隊開發(fā),信息的共享和模型的管理。 PowerDesigner WarehouseArchitect,用于數據倉庫的設計和實現。   PowerDesigner Viewer,用于以只讀的、圖形化方式訪問整個企業(yè)的模型信息。 PowerDesigner 主要包括以下幾個功能部分  ?。?) DataArchitect   這是一個強大的數據庫設計工具,使用DataArchitect 可利用實體-關系圖為一個信息系統(tǒng)   創(chuàng)建"概念數據模型"-CDM(Conceptual Data Model)。并且可根據CDM 產生基于某一特定   數據庫管理系統(tǒng)(例如:Sybase System 11)的"物理數據模型"-PDM(Physical Data Model)。   還可優(yōu)化PDM,產生為特定DBMS 創(chuàng)建數據庫的SQL 語句并可以文件形式存儲以便在其他時   刻運行這些SQL 語句創(chuàng)建數據庫。另外,DataArchitect還可根據已存在的數據庫反向生成 PDM,CDM 及創(chuàng)建數據庫的SQL腳本。   (2) ProcessAnalyst   這部分用于創(chuàng)建功能模型和數據流圖,創(chuàng)建"處理層次關系"。   (3) AppModeler   為客戶/服務器應用程序創(chuàng)建應用模型。   (4) ODBC Administrator   此部分用來管理系統(tǒng)的各種數據源。  ?。?)XML文件 可以使用工具生成相應的XML文件,或者用XML文件生成相關模型 4.1.2 SQL Server 2000簡介 SQL Server 是一個關系數據庫管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本;Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應用。在本書中介紹的是Microsoft SQL Server 以后簡稱為SQL Server SQL Server 2000 是Microsoft 公司推出的SQL Server 數據庫管理系統(tǒng)的一個版本。該版本繼承了SQL Server 7.0 版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。 SQL Server 2000 的特性Microsoft&reg; SQL Server? 2000 的特性包括: (1).Internet 集成。SQL Server 2000 數據庫引擎提供完整的XML 支持。它還具有構成最大的Web 站點的數據存儲組件所需的可伸縮性、可用性和安全功能。 (2).可伸縮性和可用性。同一個數據庫引擎可以在不同的平臺上使用,從運行 Microsoft Windows&reg; 98 的便攜式電腦,到運行 Microsoft Windows 2000 數據中心版的大型多處理器服務器。 (3).企業(yè)級數據庫功能。SQL Server 2000 關系數據庫引擎支持當今苛刻的數據處理環(huán)境所需的功能。數據庫引擎充分保護數據完整性,同時將管理上千個并發(fā)修改數據庫的用戶的開銷減到最小。 (4).易于安裝、部署和使用。 SQL Server 2000 中包括一系列管理和開發(fā)工具,這些工具可改進在多個站點上安裝、部署、管理和使用 SQL Server 的過程。SQL Server 2000 還支持基于標準的、與 Windows DNA 集成的程序設計模型,使 SQL Server 數據庫和數據倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付 SQL Server 應用程序,使客戶只需最少的安裝和管理開銷即可實現這些應用程序。 4.1.2企業(yè)考勤管理系統(tǒng)的實現 #include<stdio.h> #include<stdlib.h> #include<string.h> #include "process.h" #include <conio.h> #define MAX_COUNT 30 struct employee { 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 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 BASE_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"); fprintf(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\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; 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); 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"); exit(1); } fprintf(fp1,"\t\t\t\t 輸入員工信息\n"); printf(fp1,"\n\t\t\t\tID\t姓名\t部門\n"); for(i=0;i<COUNT;i++) { fprintf(fp1,"\t\t\t\t%d\t%s\t%s\n",person[i].id,person[i].name,person[i].department); fprintf(fp2,"%d\t%s\t%s\n",person[i].id,person[i].name,person[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"); printf("3.按ID輸出員工信息\t"); printf("4.按部門員工信息\t"); printf("5.返回主菜單\n"); printf("\n\t請選擇(1~5):\t"); start: scanf("%d",&choice); if(choice<1 || choice>5) { printf("\t輸入錯誤,請重輸:\t"); goto start; } switch(choice) { case(1): { printf("\t\t\tID\t姓名\t部門\n"); for(i=0;i<COUNT;i++) printf("\t\t\t%d\t%s\t%s\n",person[i].id,person[i].name,person[i].department); break; } case(2): { printf("\t\t\t輸入姓名:"); scanf("%s",temp); printf("\t\t\tID\t姓名\t部門\n"); for(i=0;i<COUNT;i++) if(strcmp(person[i].name,temp)==0) printf("\t\t\t%d\t%s\t%s\n",person[i].id,person[i]. name,person[i].department); break; } case(3): { printf("\t\t\t輸入ID:"); scanf("%d",&id); printf("\t\t\tID\t姓名\t部門\n"); for(i=0;i<COUNT;i++) { if(person[i].id==id) { printf("\t\t\t%d\t%s\t%s\n",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"); for(i=0;i<COUNT;i++) if(strcmp(person[i].department,temp)==0) printf("\t\t\t%d\t%s\t%s\n",person[i].id,person[i].name, person[i].department); break; } case(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--; } 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<COUNT;i++) if(person[i].id==id) break; for(j=i;j<COUNT;j++) person[j]=person[j+1]; COUNT--; write_file(); if(FLAG_pause==0) system("pause"); } void edit_employee(int id) { struct employee someone; system("cls"); FLAG_pause=1; delete_employee(id); printf("\t請輸入新的員工信息:\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 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請選擇(1~6):\t"); start: scanf("%d",&choice); if(choice<1 || choice>6) { printf("\t輸入錯誤,請重輸:\t"); goto start; } switch(choice) { case(1): { input_employee(); break; } case(2): { output_employee(); break; } case(3): { printf("\t\t\t插入新員工信息\n"); printf("\t\t\t請輸入員工的:\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; } case(4): { printf("\t\t\t修改員工信息\n"); printf("\t請輸入要修改的員工ID:\t"); scanf("%d",&id); edit_employee(id); break; } case(5): { printf("\t\t\t刪除員工信息\n"); printf("\t請輸入要刪除的員工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=someday.day-BASE_DATA.day+1; else { for(i=BASE_DATA.month+1;i<someday.month;i++) switch(i) { case 2: days=days+28; case 3: days=days+31; case 4: days=days+30; case 5: days=days+31; case 6: days=days+30; case 7: days=days+31; case 8: days=days+31; case 9: days=days+30; case 10: days=days+31; case 11: days=days+30; } days=days+someday.day; } return days; } void recorder() { 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(); printf("\n\t\t\t\t考勤記錄\n"); printf("\n\t\t日期:"); scanf("%d%d%d",&current_date.year,&current_date.month,&current_date.day); days=computer(current_date); itoa(days,filename, 10); strcat(filename,".txt"); fp=fopen(filename,"w"); fprintf(fp,"%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<COUNT;i++) { id=person[i].id; strcpy(name,person[i].name); printf("\n\t\t%d\t%s\t",id,name); 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; / 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]; char 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("cls"); printf("\t\t\t統(tǒng)計員工考勤\n"); printf("\n\t請輸入起止日期\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(end); 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) { while(!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<k;j++) { if(temp.id==stat[j].id)

注意事項

本文(數據庫系統(tǒng)課程設計企業(yè)考勤管理系統(tǒng)設計)為本站會員(仙***)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  sobing.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!