員工考勤信息管理的設計和實現
1. 系統描述
1.1 問題說明 本試驗要求是設計員工考勤管理系統,,本系統作用是用于企業員工管理,解決人 工考勤面對龐大數據量的弊病.該系統側重于員工考勤信息管理和員工考勤信息的登記與查詢。本系統使用的開發工具是開發程序,通過已編制好的程序,完 成對員工信息的輸入、輸出、插入、刪除操作,以及員工遲到、早退考勤信息 的登記和查詢,完善企業管理現代化,方便管理人員統計,考核員工出勤情況, 方便員工管理部門查詢,考核員工的出勤率,準確地掌握員工出勤情況和相關 資料,有效管理、掌握員工各項情況. 1.2 功能需求 本試驗要求實實現員工考勤管理系統,本系統包括的基本功能有: 1.2.1 員工信息的管理 1.2.2 員工信息的統計 1.2.3 員工考勤信息的管理和查詢 1.3 數據需求 本系統為完成所要求功能需要的數據包括 : 1.3.1 員工,姓名,部門 1.3.2 員工遲到,早退情況 1.3.3 在一定期間里員工遲到,早退次數 2. 系統設計
2.1 內存數據結構設計 系統各實體可用以下關系表示:
員工(,姓名,部門)
考勤(,姓名,遲到,早退,日期)
統計(,姓名,遲到次數,早退次數,期間 2.2 數據文件設計 2.2.1.存儲員工信息的文件 :
文件名:1 文件內容:
日期 姓名 部門 …. ….. ….. 例:
2010 3
1 姓名
部門
11 張三 安保部
12 李四 安保部 2.2.2.存儲員工考勤信息的文件 :
文件名:由日期經過變換后得到。變換方式:
(1)給整個系統設置一個基準日期 基準日期:一段時期內的起始日期,通常規定為一個月的 1 號,考勤所記錄的是基準日期之后的考勤信息. (2)考勤記錄的日期與基準日期相差的天數加 1。由以上變換可得:基準日期的考勤的文件名為“1”。
2.2.3.存儲考勤一段時期的統計信息的文件 :
文件名:管理員自己輸入。文件內容:
起始日期 終止日期 姓名 遲到次數 早退次數 … …. … … 例如:
2010 4 1 2010 6 30
姓名 遲到次數 早退次數
11 張三 1
2 12 李四 2
0 各文件之間的關系:
考勤文件是按照當天的員工信息文件的順序依次記錄。在此把請假等排除在外不考慮。
2.3 代碼設計 設計代碼主要包括: () 第一次輸入員工信息 ()
專門用于讀取存儲員工信息的文件的函數()
專門用于向存儲員工信息的文件中寫函數() 輸出員工信息 ( ) 添加員工信息 ( ) 刪除員工信息 () 管理員工信息總函數
( ) 計算日期對應的文件名 () 記錄每天每個員工的考勤情況 () 統計所有員工某段時間的考勤情況,把統計結果輸入文件中 () 查詢某一天的考勤情況 () 查詢一段連續時間的考勤情況 () 查詢的總函數 () 考勤管理的總函數 2.4 程序代碼 "" <> <> <> "" <> 30
最大員工數員工信息結構體 { ; [20]; [20]; }; 日期結構體 { ; ; ; }; 考勤結構體 { ; ; ; [20]; ; }; 統計表結構體 { ; ; ; [20]; }; 0; 記錄員工的人數
1; 涉及插入,輸出函數的聯合操作時某些位置是否調用(“”) []; {2012,1,1}; 基準日期 () 第一次輸入員工信息,相當于初始化 { (""); *1,*2; ; 1("1","w"); 2("2","w"); ("\t\t\t\t 員 工 信 息 \n"); ("\n\t\t\t\\t 姓名\t 部門\n\t\t\t\t"); (1,"\t\t\t\t
輸入員工信息\n"); (1,"\n\t\t\t\\t 姓名\t 部門\n"); (""); (0) { []; (""); ;
} (1); (2); } (1,"\t\t\t\\\\n"); (2,"\\\n"); ("\t\t\t\t"); (""); () 專門用于讀存儲員工信息的文件的函數 { *; 0; ((("2","r"))) {
(,""[][], []);
} (()) {
} ; (" \n"); (1);
;
(); } 專門用于向存儲員工信息的文件中寫函數 () { i; *1,*2; 1("1",""); 2("2",""); (1 2) { (" \n"); (1); } (1,"\t\t\t\t 輸入員工信息\n"); ("\n\t\t\t\\t 姓名\t 部門\n"); (0<) {
} (1); (2); } (1,"\t\t\t\\\\n"[i][i][i]); (2,"\\\n"[i][i][i]); 輸出員工信息 () { i; ; ; [20]; (""); (); 讀員工信息文件("\n\t\t\t\t\t 輸出員工信息\n"); ("\n\t1.輸出全體員工信息\t"); ("2.按姓名輸出員工信息\t"); ("3.按輸出員工信息\t"); ("4.按部門員工信息\t"); ("5.返回主菜單\n"); ("\n\t 請選擇(1~5):\t"); : (""); (<1 >5) {
("\t 輸入錯誤,請重輸:\t"); ; } () { (1): { ("\t\t\\t 姓名\t 部門\n"); (0<) ("\t\t\\\\n"[i][i][i]);
} (2): { ;
("\t\t\t 輸入姓名:"); (""); ("\t\t\\t 姓名\t 部門\n"); (0<)
[i]);
; } (3): { (([i])0) ("\t\t\\\\n"[i][i]. ("\t\t\t 輸入:"); (""); ("\t\t\\t 姓名\t 部門\n"); (0<) {
[i]);
} ; } (4): { ([i]) {
}
("\t\t\\\\n"[i][i],
; ("\t\t\t 輸入部門:"); (""); ("\t\t\\t 姓名\t 部門\n");
[i]);
}
} (5):
} (""); (0<)
;
;
(([i])0)
("\t\t\\\\n"[i][i], 添加員工信息 ( ) 有新員工加入時,插入 { i; (""); (); 讀文件 ; ([i]>) {
} [i]; ; (); (0)
} [i][1]; ;
(""); 刪除員工信息 ( ) 員工辭職,退休等時,刪除員工信息,數組方式存儲的線性表的刪除操作 { i; j; (); 讀文件 (""); (0<)
(<)
; (); (0) ([i]) ;
[j][1];
(""); }
() 管理員工信息總函數 { ; ; ; ("\n\t\t\t\t\t 員工信息管理\n"); ("\n\t1.輸入員工信息\t"); ("2.輸出員工信息\t"); ("3.插入員工信息\t"); ("4.刪除員工\t"); ("5.返回主菜單\n"); ("\n\t 請選擇(1~5):\t"); : (""); (<1 >6) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): {
} (2): {
} (3): {
} (); ;
(); ;
("\t\t\t 插入新員工信息\n"); ("\t\t\t 請輸入員工的:\n\t\t\\t 姓名\t 部門\n"); ("\t\t\t"); (""); (); ;
(4): {
} (5):
} }
("\t\t\t
刪除員工信息\n"); ("\t 請輸入要刪除的員工:\t"); (""); (); ;
; 計算日期對應的文件名,相當于哈希函數,以一年內為界,一年以天計算 ( ) { i; 0; () 1;
{ (1<)
(i) {
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
28;
31;
30;
31;
30;
31;
31;
30;
31;
30; } ; } ; } 記錄每天每個員工的考勤情況 () { i; ; ; ; ; [20]; [40]; 零時存放某一天的考勤文件的文件名 *; 指向某一天的考勤文件的指針 ; (""); (); ("\n\t\t\t\t 考勤記錄\n"); ("\n\t\t 日期:"); (""); (); (, 10); 轉換成 (,""); (,"w"); (,"\\\n"); ("\n\t\\t 姓名\t 遲到\t 早退\n"); (,"\t 姓名\t 遲到\t 早退\n"); (0<) 對所有的員工打考勤,并寫入對應的文件中 { [i]; ([i]); ("\n\t\\\t"); (""); (,"\\\\n"); } (,"\n"); (); (""); } 統計所有員工某段時間的考勤情況,把統計結果輸入文件中 ()
{ i; j; 0; 0; 標識,用于判斷一個從文件中讀入的新記錄是否在存中存在, 如果不存在則新分配內存,否則追加在已有的記錄上 ; ; ; 判斷是否保存 [40]; 零時存放某一天的考勤文件的文件 ; ; ; [20]; [20]; [20]; [20]; *; 指向某一天的考勤文件的指針 ; 統計的起始日期,最終日期,只能統計連續一段時間的考勤 ; ; 存儲零時的 [30]; 存儲每個員工的遲到,早退次數的信息 (0<30) {
} (""); [i]0; [i]0; ("\t\t\t 統計員工考勤\n"); ("\n\t 請輸入起止日期\n"); ("\n\t\t 起始日期:"); (""); ("\n\t\t 終止日期:"); (""); (); (); (<) { (, 10); 轉換成 (,""); (,"r"); (,""); () {
(,""[k][k][k][k]);
} (()) {
; } ;
{ (()) {
);
(0<) {
(,"",
([j]) {
} ("\n"); } (); }
} (0) {
} 0;
}
[k]; ([k]); [k]; [k]; ; 1; (1)
(1)
;
[j];
[j]; ("\n\t\t 考勤統計\n"); ("\\t 姓名\t 遲到次數\t 早退次數\n"); (0<) ("\\\\t\\n"[j][j][j][j]); ("\t\t\t 是否保存():\t");
(); ("y") {
("請輸入文件名;\t"); (""); (,"w"); (,"\t 考勤統計\n"); (,"\t 姓名\t 遲到次數\t 早退次數\n"); (0<)
[j][j]);
}
} ("");
(); (,"\\\t\\n"[j][j], 查詢某一天的考勤情況 () {
; *; ("");
; ; 0; 判斷記錄是否為空 ; ; [20]; [20]; [20]; [20]; [20]; ; ("\t\t\t 查詢某一天的考勤\n"); ("\n\t 請輸入日期:\t"); (""); (); (, 10); 轉換成 (,""); (,"r"); (,""); ("\n\t1.查詢全體員工考勤\t"); ("2.按查詢\t"); ("3.按姓名查詢\t"); ("4.返回主菜單\n");
("\n\t 請選擇(1~4):\t"); : (""); (<1 >4) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): { ("\t\t\\t 姓名\t 遲到\t 早退\n"); (()) {
} ; } (2): { (,""); ("\t\t\\\\\n"); ("\t 請輸入:\t"); (""); ("\t\t\\t 姓名\t 遲到\t 早退\n"); (()) {
);
} (0) (,""); () { 1;
; }
("\t\t\\\\\n",
; } (3): { ("\t 對不起,沒有此 的員工,謝謝!\n"); ("\t 請輸入姓名:\t"); ("");
("\t\t\\t 姓名\t 遲到\t 早退\n"); (()) {
);
} (0) { (,""); (()0) {
; }
1; ("\t\t\\\\\n",
} (); (""); }
} ; } (4): ; ("\t 對不起,沒有此姓名的員工,謝謝!\n"); 查詢一段連續時間的考勤情況 () { ; i; k; 0; ; ;
; *; (""); [20]; [20]; [20]; [20]; [20]; ; ("\t\t\t\t\t 查詢某一段時間的考勤\n"); ("\n\t 請輸入起止日期\n");
("\n\t\t 起始日期:"); (""); ("\n\t\t 終止日期:"); (""); (); (); ("\n\t1.查詢全體員工考勤\t"); ("2.按查詢\t"); ("3.按姓名查詢\t"); ("4.返回主菜單\n"); ("\n\t 請選擇(1~4):\t"); : (""); (<1 >4) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): { (<) {
);
);
(, 10); 轉換成 (,""); (,"r"); (,"",
("\t\t\\\\n\t\t\\\\\n",
); ("\t\t\\\\\n", );
} ; } (2): { (()) {
} ();
(,"",
("\n\t 請輸入:\t"); (""); ("\t\t\\t 姓名\t 遲到\t 早退\n"); (<) { (, 10); 轉換成 (,""); (,"r"); (,"\", ); (()) {
("\t\t\\\\\n", ); (,""); () { 1;
} }
} (3): {
} (0)
; ();
("\t 對不起,沒有此的員工,謝謝!\n"); ("\n\t 請輸入姓名:\t"); (""); ("\t\t\\t 姓名\t 遲到\t 早退\n"); (<) { (, 10); 轉換成 (,""); (,"r"); (,"", ); 存放每個文件開頭的相同信息 (()) { (,"");
(()0) { 1;
("\t\t\\\\\n", );
} (0)
} } ();
} (""); }
; } (4): ; ("\t 對不起,沒有此姓名的員工,謝謝!\n"); 查詢的總函數 () { ; (""); ("\t\t\t\t\t 查詢員工考勤\n"); ("\n\t1.查詢某一天的考勤\t"); ("\t2.查詢一段時間的考勤\t"); ("\t3.返回主菜單\n"); ("\n\t 請選擇(1~3):\t"); : (""); (<1 >3) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): {
} (2): {
} (); ;
(); ;
(3): { ; } } } 考勤管理的總函數 () { ; ("\n\t\t\t\t\t 考勤信息管理\n"); ("\n\t1.考勤記錄\t"); ("2.考勤統計\t"); ("3.考勤查詢\t"); ("4.返回主菜單\n"); ("\n\t 請選擇(1~4):\t"); : (""); (<1 >4) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): {
} (2): {
} (3): {
} (4):
} } (); ;
(); ;
(); ;
;
主函數 () { ; ; : (""); ("\n\t\t\t 歡迎使用員工考勤管理系統\n"); ("\t 菜單:\n"); ("\t\t1.員工信息管理\t\t"); ("2.考勤管理\t"); ("3.退出系統\n"); ("\n\t 請輸入菜單選項(1~3):\t"); (""); (<1 >3) { ("\t 輸入錯誤,請重輸:\t"); ; } () { (1): { (""); (); ;
} (2): { ;
(""); (); ;
} (3): { ;
(""); ("\n\t\t\t\t 你真的要退出嗎()?\t"); (); ("y") { ("\n\t\t\t\t 感謝使用本系統!\n\n\t\t\t\t 再見!\n"); (1);
}
; } } 0; } 3. 系統測試
進入員工考勤管理系統界面為 : 進入員工信息管理模塊:
進入輸入員工信息模塊,要分別輸入員工的,姓名,部門等基本信息
輸入員工信息,并將其存儲
進入輸出員工模塊,會按要求輸出員工的基本信息
輸出已有的員工信息
按姓名輸出員工信息
按員工輸出員工信息
按部門輸出員工信息
插入員工信息
插入員工后,輸出變更后的員工信息
進入員工考勤管理界面 :
進入員工考勤記錄模塊,可記錄員工考勤情況
進入員工考勤統計模塊,可統計在一定時間內員工的考勤狀況
進入員工考勤查詢模塊,可查詢員工考勤情況
4. 設計的體會和心得
4.1 設計的不足 程序沒有對輸入的所有信息進行檢查,比如日期的月份要在 1-12 之間,每
月的天數;還有遲到、早退只能用 1 或者 0 表示,而不能是其它數據,只有正確的輸入才能使程序正確運行. 對于考勤信息只能查詢某一天或者某一段連續的期間的考勤,而不能隨機查詢不連續的記錄.在程序的編寫過程中由于水平有限,因此雖然實現了如下功能:1.員工基本信息管理;2.員工考勤信息管理。但由于代碼不夠優化,導致程序運行過慢,操作界面也不夠人性化 . 4.2 心得和體會 本次試驗的主要目的的編寫員工考勤管理系統,由于情況較為復雜,因此將其功能拆分為員工基本信息管理和員工考勤信息管理,在員工基本信息管理中實現了員工信息的輸入,輸出,插入,刪除.在考勤管理系統中實現員工考勤的查詢功能. 由于功能較多較為復雜,因此代碼編寫也較為困難,在查閱大量資料和在同學幫助下完成這次試驗,,在程序中實現程序的循環連續的操作,文件的讀寫操作,讓我有了很大的進步,還有數據結構中線性表的插入、刪除操作等知識的應用有了很大的提高。相信這次試驗對于我以后的學習有很大好處.
推薦訪問: 信息管理 考勤 員工上一篇:父親節送給老公祝福短信
下一篇:管理信息系統案例
在偉大祖國73華誕之際,我參加了單位組織的“光影鑄魂”主題黨日活動,集中觀看了抗美援朝題材影片《長津湖》,再一次重溫這段悲壯歷史,再一次深刻感悟偉大抗美援朝精神。1950年10月,新中國剛剛成立一年,
根據省局黨組《關于舉辦習近平談治國理政(第四卷)讀書班的通知》要求,我中心通過專題學習、專題研討以及交流分享等形式,系統的對《習近平談治國理政》(第四卷)進行了深入的學習與交流,下面我就來談一談我個人
《習近平談治國理政》(第四卷)是在百年變局和世紀疫情相互疊加的大背景下,對以習近平同志為核心的黨中央治國理政重大戰略部署、重大理論創造、重大思想引領的系統呈現。它生動記錄了新一代黨中央領導集體統籌兩個
《真抓實干做好新發展階段“三農工作”》是《習近平談治國理政》第四卷中的文章,這是習近平總書記在2020年12月28日中央農村工作會議上的集體學習時的講話。文章指出,我常講,領導干部要胸懷黨和國家工作大
在《習近平談治國理政》第四卷中,習近平總書記強調,江山就是人民,人民就是江山,打江山、守江山,守的是人民的心。從嘉興南湖中駛出的小小紅船,到世界上最大的執政黨,在中國共產黨的字典里,“人民”一詞從來都
黨的十八大以來,習近平總書記以馬克思主義戰略家的博大胸襟和深謀遠慮,在治國理政和推動全球治理中牢固樹立戰略意識,在不同場合多次圍繞戰略策略的重要性,戰略和策略的關系,提高戰略思維、堅定戰略自信、強化戰
《習近平談治國理政》第四卷集中展示了以習近平同志為核心的黨中央在百年變局和世紀疫情相互疊加背景下,如何更好地堅持和發展中國特色社會主義而進行的生動實踐與理論探索;對于新時代堅持和發展什么樣的中國特色社
在黨組織的關懷下,我有幸參加了區委組織部組織的入黨積極分子培訓班。為期一周的學習,學習形式多樣,課程內容豐富,各位專家的講解細致精彩,對于我加深對黨的創新理論的認識、對黨的歷史的深入了解、對中共黨員的
《習近平談治國理政》第四卷《共建網上美好精神家園》一文中指出:網絡玩命是新形勢下社會文明的重要內容,是建設網絡強國的重要領域。截至2021年12月,我國網民規模達10 32億,較2020年12月增長4
剛剛召開的中國共產黨第十九屆中央委員會第七次全體會議上討論并通過了黨的十九屆中央委員會向中國共產黨第二十次全國代表大會的報告、黨的十九屆中央紀律檢查委員會向中國共產黨第二十次全國代表大會的工作報告和《