Java面向对象实践--开发团队调度软件(一)

简介: Java面向对象实践--开发团队调度软件(一)

前言



这几天又把Java基础部分给复习了一遍,尝试跟着视频做了一个开发团队调度软件。

感觉Java基础还是不够扎实,还要继续努力学习,不断的实践才行!!!


开发团队调度软件


一、需求说明



1.添加成员


当选择**“添加团队成员”**菜单时,将执行从列表中添加指定(通过ID)成员到开发团队的功能:


1-团队列表2-添加团队成员3-删除团队成员4-退出请选择(1-4) : 2

--------------------添加成员---------------------------------
请输入要添加的员工ID: 2
添加成功
按回车键继续...


2.开发团队人员组成要求


最多一名架构师


最多两名设计师


最多三名程序员


3.添加失败显示原因


如果添加操作因某种原因失败,将显示类似以下信息(失败原因视具体原因而不同) :


1-团队列表2-添加团队成员3-删除团队成员4-退出请选择(1-4): 2


----------------添加成员------------------
请输入要添加的员工ID: 2
添加失败,原因:该员工已是某团队成员
按回车键继续...


失败信息包含以下几种:


成员已满,无法添加


该成员不是开发人员,无法添加


该员工已在本开发团队中


该员工已是某团队成员


该员正在休假,无法添加


团队中至多只能有一 名架构师


团队中至多只能有两名设计师


团队中至多只能有三名程序员


二、软件设计架构



image.png

TeamView模块为主控模块


TeamService模块为实体对象(Employee及其子类如程序员等)的管理模块


NameListService和TeamService类分别用各自的数组来管理公司员工和开发团队成员对象


domain模块为Employee及其子类等JavaBean类所在的包


team.domain模块中包含了所有实体类


image.png


其中程序员(Programmer)及其子类,均会领用某种电子设备(Equipment)


Equipment接口及其实现子类的设计


image.png


Employee类及其子类的设计


image.png


Status类

用来封装员工的状态,busy和free


NameListService类的设计

employees用来保存公司所有员工对象


功能:负责将Data中的数据封装到Employee[]数组中,同时提供相关操作Employee[]的方法。


说明:


getAllEmployees ()方法:获取当前所有员工。


返回:包含所有员工对象的数组


getEmployee(id : int)方法:获取指定ID的员工对象。


参数:指定员工的ID


返回:指定员工对象


异常:找不到指定的员工


TeamService类的设计


image.png


功能:关于开发团队成员的管理:添加、删除等。


counter为静态变量,用来为开发团队新增成员自动生成团队中的唯一ID,即memberId。(提示:应使用增1的方式)


MAX_MEMBER:表示开发团队最大成员数


team数组:用来保存当前团队中的各成员对象


total:记录团队成员的实际人数


TeamView类的设计

listSvc和teamSvc属性:供类中的方法使用


enterMainMenu ()方法:主界面显示及控制方法。


以下方法仅供enterMainMenu()方法调用:


listAllEmployees ()方法:以表格形式列出公司所有成员


getTeam()方法:显示团队成员列表操作


addMember ()方法:实现添加成员操作


deleteMember ()方法:实现删除成员操作

相关文章
|
6天前
|
前端开发 Java 关系型数据库
Java中的电子商务网站开发实战
Java中的电子商务网站开发实战
|
6天前
|
Java 数据挖掘 Linux
Java中的跨平台桌面应用开发实践
Java中的跨平台桌面应用开发实践
|
10天前
|
NoSQL Java Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
|
10天前
|
监控 安全 Java
Java中的线程调度与性能优化技巧
Java中的线程调度与性能优化技巧
|
4天前
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
10 0
|
5天前
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
11 0
|
7天前
|
Java 调度 Spring
Java中的定时任务调度与管理
Java中的定时任务调度与管理
|
7天前
|
Java Linux API
深入理解Java中的多线程调度策略
深入理解Java中的多线程调度策略
|
7天前
|
监控 Java 调度
使用Java实现高性能的定时任务调度
使用Java实现高性能的定时任务调度
|
10天前
|
消息中间件 存储 SpringCloudAlibaba
会员系统01----基于Java开发的 | BTC,完整的SpringClound微服务包含内容
会员系统01----基于Java开发的货币交易所 | BTC,完整的SpringClound微服务包含内容