开发团队调度软件(小项目)

该软件由以下三个模块组成:

        >com.ll.team.view模块为主控模块,负责菜单的显示和处理用户操作         >com.ll.team.service模块为实体对象(Employee及其子类如程序员等)的管理模块,         >NameListService和TeamService类分别用各自的数组来管理公司员工和开发团队成员对象 domain模块为Employee及其子类等JavaBean类所在的包

 第1步 — 创建项目基本组件

1. 完成以下工作:

        ① 创建TeamSchedule项目

        ② 按照设计要求,创建所有包

        ③ 将项目提供的几个类复制到相应的包中   

                 (view包中:TSUtility.java;   service包中:Data.java)

2. 按照设计要求,在com.ll.team.domain包中,创建Equipment接     口及其各实现子类代码

3. 按照设计要求,在com.ll.team.domain包中,创建Employee类     及其各子类代码

4. 检验代码的正确性

键盘访问的实现

项目view包中提供了TSUtility.java类,可用来方便地实现键盘访问。

该类提供了以下静态方法:

        >public static char readMenuSelection()     用途:该方法读取键盘,如果用户键入’1’-’4’中的任意字符,则方法返回。返回值为用户键入字符。

        >public static void readReturn()     用途:该方法提示并等待,直到用户按回车键后返回。

        >public static int readInt()     用途:该方法从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。

        >public static char readConfirmSelection() :     用途:从键盘读取‘Y’或’N’,并将其作为方法的返回值。

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

 说明:

        >model 表示机器的型号

        >display 表示显示器名称

        >type 表示机器的类型

根据需要提供各属性的get/set方法以及重载构造器

实现类实现接口的方法,返回各自属性的信息

Employee类及其子类的设计

说明:

        >memberId 用来记录成员加入开发团队后在团队中的ID

        >Status是项目service包下自定义的类,声明三个对象属性,分别表示成员的状态。

                FREE-空闲

                BUSY-已加入开发团队

                VOCATION-正在休假

        >equipment 表示该成员领用的设备

可根据需要为类提供各属性的get/set方法以及重载构造器

Status类

Status枚举类位于com.ll.team.service包中,封装员工的状态。其代码如下:

package com.ll.team.service;
public class Status {
    private final String NAME;
    private Status(String name) {
        this.NAME = name;
    }
    public static final Status FREE = new Status("FREE");
    public static final Status VOCATION = new Status("VOCATION");
    public static final Status BUSY = new Status("BUSY");
    public String getNAME() {
        return NAME;
    }
    @Override
    public String toString() {
        return NAME;
    }
} 

Employee类及其子类的设计

 说明:

        >bonus 表示奖金

        >stock 表示公司奖励的股票数量

可根据需要为类提供各属性的get/set方法以及重载构造器

第2步 — 实现service包中的类

1.按照设计要求编写NameListService类

2.在NameListService类中临时添加一个main方法中,作为单元测试方法。

3.在方法中创建NameListService对象,然后分别用模拟数据调用该对象的各个方法,以测试是否正确。     

注:测试应细化到包含了所有非正常的情况,以确保方法完全正确。

4.重复1-3步,完成TeamService类的开发

NameListService类的设计 

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

说明:

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

        >NameListService()构造器:

                根据项目提供的Data类构建相应大小的employees数组

                再根据Data类中的数据构建不同的对象,包括Employee、Programmer、Designer和Architect对象,以及相关联的Equipment子类的对象

                将对象存于数组中

                Data类位于com.ll.team.service包中

NameListService类的设计

说明:

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

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

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

                参数:指定员工的ID

                返回:指定员工对象

                异常:找不到指定的员工

在service子包下提供自定义异常类:TeamException

另外,可根据需要自行添加其他方法或重载构造器 

TeamService类的设计

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

说明:

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

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

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

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

TeamService类的设计

 说明:

        >getTeam()方法:返回当前团队的所有对象

                返回:包含所有成员对象的数组,数组大小与成员人数一致

        >addMember(e: Employee)方法:向团队中添加成员

                参数:待添加成员的对象

                异常:添加失败, TeamException中包含了失败原因

        >removeMember(memberId: int)方法:从团队中删除成员

                参数:待删除成员的memberId

                异常:找不到指定memberId的员工,删除失败

另外,可根据需要自行添加其他方法或重载构造器

第3步 — 实现view包中类

1.按照设计要求编写TeamView类,逐一实现各个方法,并编译

2.执行main方法中,测试软件全部功能

TeamView类的设计

 说明:

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值