那给你一个题目:勤务管理系统。某公司,上下班刷IC卡,刷卡的数据被保存到一个excle文件中。现要求做一个系统,有一下功能:
1,从刷卡数据中算出每个人的上下班时间。
2,计算每个人的工作时间,加班时间。判断是否迟到早退等。上面只是核心。具体运用是还需要很多别的功能,我写几个,别的要你自己来想。
1,公司可能实行浮动上下班体制,比方说规定,上午8:30开始10:30为止为上班开始时间,总工作时间为8小时,中午1小时休息,就此可以推算出可以下班时间。比方说,8:55刷卡,那么按规定,15分钟为一个时间段,就算他9:00上班,那么18:00后他他可以下班。如果,10:30以后刷卡算迟到;刚才那个例子18:00以后没有刷卡记录的话,说明他早退。
浮动上下班体制的具体时间变化,每天上班的核心时间,可能发生变化,所以不能程序写死。2,从刷卡数据中算出每个人的上下班时间,允许个人人工调整。因为,从算出上下班时间没有那么容易。比方说,有人加班到晚上2点,然后回家,那么他的入门记录可能是有一条1点多的(当时他去厕所回来刷的?),这个1点多的记录,不能被当成当天的上班记录。同样,如果当天最后一条是23:50的出门记录,那么这个23:50未必就是当天的下班时间,有可能他去厕所了,0:05又回来继续加班。所以,从原始数据如何抽出上下班的时间,你要好好想一想,必要时需要提供一个画面,让个人自己填写。3,这个项目现在使用excle文件作为输入文件,但是也许你的项目被做成产品,卖到别的公司去,别的公司未必用excle文件,也许oracle数据库中有考勤时间,也许有个FTP服务器上放着一个csv文件,要本系统自己去取。也就是说,输入文件的形式,方式方法可能非常不同。你做的如果是产品当然要考虑到这种变化,本系统的核心在不同公司不用改变,只是增加符合自己设计的interface的实装。具体有点像jdbc的factory设计模式。4,输出的内容有上下班时间,迟到早退与否,那么如果和人事系统相连,取到个人的级别,可以算出迟到早退扣多少钱,加班费该给多少。算出这些后又可以和财务系统相连。总之,和哪些外部系统可能可以联系的接口要留出,才是好的solution。5,还有很多很多,你可以发挥你的想象。我再随便举个例子:如果当天没有记录,那么可以判断他没有上班。那么如果公司有workflow,请假的话,会向上级发申请并得到承认的记录会留在某个系统中,那么本系统可以和那个系统相连,得到当天未上班是合理的请假?还是旷工?考勤系统麻雀虽小,五脏俱全,可以和很多系统串连起来,发挥你的想象,好好设计实现这个系统吧。

解决方案 »

  1.   

    权限管理系统,建议你看看
    http://www.blogjava.net/amigoxie/archive/2007/09/29/149509.html
      

  2.   

    学课本只是学习理论的,不实践一点用处都没有。
    目前JAVA主要方向是J2EE,建议先做1、2个纯JAVA的小程序。
    然后按顺序学习一下struts、hibernate、spring。SSH结合是目前比较主流的开发模式。
      

  3.   


    保存在Excel当中?为啥不保存在数据库当中?拿这个做练习,光是搞定Excel就要N长时间