HIT Software Construction Lab3 排班管理系统

编程入门 行业动态 更新时间:2024-10-28 10:27:00

HIT Software Construction Lab3 排班<a href=https://www.elefans.com/category/jswz/34/1769858.html style=管理系统"/>

HIT Software Construction Lab3 排班管理系统

该APP考察了ADT、接口的实现和API复用。基地打好了,接下来的功能实现就容易了许多。

根据所需要的功能,为该系统设置了以下功能序号:

0.关闭排班表App

1.设定排班开始日期、结束日期(年月日)

2.增加员工(名字、职务、手机号码)

3.删除某个员工

4.向排班表增加一条排班记录(某个员工、开始时刻、结束时刻)

5.显示当前排班表

6.随机生成排班表

7.检查是否有空白

8.检查是否有重叠

功能0的实现:直接System.exit(0),退出。

功能1的实现:在客户端初始化整型变量styear=0, stmonth=0, stday=0, enyear=0, enmonth=0, enday=0,在功能0中输入保存即可。

功能2的实现:定义一个ArrayList<Employee> list,每次增加一名员工就实例化一个Employee,将姓名、职务、电话存入其中,将这个员工加入list。

功能3的实现:输入员工姓名,用迭代器遍历员工列表,若姓名匹配则用remove方法删去。

功能5的实现:为了让功能4更有目标性,我们先完成功能5,显示当前值班表。这里用一个static public void PrintDutyRoster (DutyRosterApp Schedule, int year,int month,int day, long st, long en)函数来实现,在客户端调用它。

函数的思路为:①计算出整个值班表的起止日期时间差,用一个for循环打印出每天的值班情况(“值班人:某某”或“值班人:无”)。②for循环中的代码为核心部分。用迭代器遍历员工标签,若该员工标签中的开始时刻start等于当前日期,则进入一个该员工起止时刻的for循环,打印出他的所有值班情况;若员工标签中无开始时刻与当前日期匹配,则打印出该日期“值班人:无”。

功能4的实现:先打印出当前值班表,客户通过查看哪些时间段空闲,来安排值班。输入要排班的员工姓名、开始时刻、结束时刻,用迭代器遍历员工列表,若姓名匹配则用Schedule中的insert方法,保存员工的姓名、开始时刻、结束时刻。

功能6的实现:每个员工只能有一段值班时间,因此随机化值班表就很容易了。在while循环中,每次随机一个未安排值班的最早日期(为了简便初始化为0)到最晚日期(整个值班表的起止日期时间差)中的数,将最早日期到该随机数产生的结束时刻安排给一个员工。然后将这个结束时刻加一后赋值给最早日期,继续循环。

功能7的实现:用NoBlankIntervalSet接口。

功能8的实现:用NonOverlapIntervalSet接口。

更多推荐

HIT Software Construction Lab3 排班管理系统

本文发布于:2024-02-10 20:21:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1677096.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管理系统   Software   HIT   Construction

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!