欢迎访问有用文档网!

当前位置: 有用文档网 > 心得体会 >

员工考勤信息管理设计和实现

| 浏览次数:

  员工考勤信息管理的设计和实现

 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 心得和体会 本次试验的主要目的的编写员工考勤管理系统,由于情况较为复杂,因此将其功能拆分为员工基本信息管理和员工考勤信息管理,在员工基本信息管理中实现了员工信息的输入,输出,插入,删除.在考勤管理系统中实现员工考勤的查询功能. 由于功能较多较为复杂,因此代码编写也较为困难,在查阅大量资料和在同学帮助下完成这次试验,,在程序中实现程序的循环连续的操作,文件的读写操作,让我有了很大的进步,还有数据结构中线性表的插入、删除操作等知识的应用有了很大的提高。相信这次试验对于我以后的学习有很大好处.

推荐访问:信息管理 考勤 员工

热门排行Top Ranking

新时代青年的奋斗精神心得体会5篇

新时代青年的奋斗精神心得体会5篇新时代青年的奋斗精神心得体会篇1为进一步弘扬爱国奋斗奉献精神,激励党

坚持总体国家安全观心得体会250字8篇

坚持总体国家安全观心得体会250字8篇坚持总体国家安全观心得体会250字篇1“安而不忘危,存而不忘亡

宣传部部长心得体会15篇

宣传部部长心得体会15篇宣传部部长心得体会篇1首先,感谢领导给我这次评选优秀员工的机会,也感谢您能在

管理信息系统案例

第一章 信息系统与管理 案例((或实例) 得讨论题及点评((或回答)) [实例]利润计划工作中得反复

大学生体育课心得体会1500字5篇

大学生体育课心得体会1500字5篇大学生体育课心得体会1500字篇1不知不觉,进入大学第一个学期的体

餐饮单位疫情防控工作汇报

餐饮单位疫情防控工作汇报根据省、市、区疫情防控指挥部统一部署,严格落实《省市场监督管理局关于进一步加

党支部党建工作年度台账-基层党建工作台账

党支部党建工作年度台账::基层党建工作台账 党支部党建工作年度台账说明为抓好党建工作,根据《党章》《

党员的时代楷模心得体会12篇

党员的时代楷模心得体会12篇党员的时代楷模心得体会篇1@党员干部“打工攻略”请查收一年一度的“双十一

公文格式国家标准

公文格式国家标准 1范围 本标准规定了党政机关公文通用的纸张要求、排版和印制装订要求、公文格式各要素

内勤辅警先进事迹材料

内勤辅警先进事迹材料3篇 内勤辅警先进事迹材料1 办公室工作室一项既辛苦、又清苦的脑力劳动,他没有惊

傅雷家书阅读心得及感悟10篇

傅雷家书阅读心得及感悟10篇傅雷家书阅读心得及感悟篇1一连几天,我都沉浸在《傅雷家书》这本书中,感受

学校留观室设置及工作方案

学校留观室设置及工作方案 根据省、市、区疫情防控要求,为确保开学后切实保障师生生命安全和身体健康,特