栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java小白实践项目初体验——项目开发团队分配管理软件(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java小白实践项目初体验——项目开发团队分配管理软件(二)

​​目录

前言

一、开发团队调度管理模块

1.模块功能说明

2.模块结构

3. 模块运行效果

二、开发项目管理模块

1.模块功能说明

2.模块结构

3.模块运行效果

三、程序运行主界面类

四、完整源代码链接


前言

       这篇博客的内容是接着我的上一篇博客《Java小白实践项目初体验——项目开发团队分配管理软件(一)》。因为篇幅限制,上一篇博客只给小伙伴们分享了项目的前两个模块,这次我给大家分享下剩下的两个模块:开发团队调度管理模块、开发项目管理模块。


建议大家阅读本篇博客之前,先阅读我的上一篇博客:

《Java小白实践项目初体验——项目开发团队分配管理软件(一)》

一、开发团队调度管理模块

1.模块功能说明

① 实现添加团队功能

  • 查看当前团队成员列表子功能
  • 添加团队成员子功能(添加后该开发人员的状态要变为false)
  • 删除团队成员子功能(删除后该开发人员的状态要变为true)

② 实现查看团队功能

       列出所有的团队,当没有团队时要给出提示。

③ 实现删除团队功能

       当没有团队或用户输入的团队编号有误时给出提示;删除后该团队所有成员的状态要变为true。

    添加团队成员子功能中,包含以下几种失败信息:(需要抛出自定义异常)

  1. 成员已满,无法添加
  2. 该成员不是开发人员,无法添加
  3. 该员工已在本开发团队中
  4. 该员工已是某团队成员
  5. 团队中至多只能有一名架构师(以下判断可借用instanceof进行判断)
  6. 团队中至多只能有两名设计师
  7. 团队中至多只能有三名程序员

2.模块结构

    与开发团队调度管理模块相关的类有3个:TeamException、TeamService和TeamView。

    1)TeamException类

       本类是自定义异常类,目的是添加团队成员时可根据情况抛出自定义异常,它的代码非常简单(代码如下所示)。

package com.team.service;

public class TeamException extends Exception{
    public TeamException() {
    }

    public TeamException(String message) {
        super(message);
    }
}

    2)TeamService类结构

       TeamService类包含10个方法。首先是3个主功能实现方法:addTeam方法是实现添加团队的功能,getAllTeam方法是实现查看团队的功能,removeTeam方法是实现删除团队的功能。

       然后是添加团队主功能里的3个子功能实现方法:getTeam方法是实现查看当前团队成员列表的子功能,addMember方法是实现添加团队成员的子功能(本方法中要注意根据不同情况抛出相应的自定义异常),removeMember方法是实现删除团队成员的子功能。

       最后是私有的仅供本类addMember方法调用的4个团队成员判断方法,作用是为了判断团队成员的组成情况,以便抛出异常。isBelongTeam方法是判断待添加成员对象是否在当前团队中;isHaveArchitect方法是当待添加成员对象是架构师时,判断当前团队中是否已经有一名架构师;isHaveDesigner方法是当待添加成员对象是设计师时,判断当前团队中是否已经有两名设计师;isHaveProgrammer方法是当待添加成员对象是程序员时,判断当前团队中是否已经有三名程序员。

    3)TeamView类结构

       TeamView类包含8个方法。首先是developTeamMainMenu方法,该方法是实现开发团队调度管理主菜单。接下来是addTeamView、allTeamShow和removeTeamView方法,这三个方法分别实现添加团队、查看团队和删除团队这三个主功能的交互界面(这三个方法都是private,仅供本类developTeamMainMenu方法调用)。

       然后是teamShowView、addMemberView和removeMemberView方法,这三个方法分别实现查看团队成员列表、添加团队成员和删除团队成员这三个子功能的交互界面(这三个方法都是private,仅供本类addTeamView方法调用)。最后是teamShow方法,本方法是打印当前团队成员列表(这个方法也是private,仅供本类teamShowView、removeMemberView方法调用)。

3. 模块运行效果

    添加团队:

    添加团队成员(添加团队里的子功能):

    团队成员列表(添加团队里的子功能):

    删除团队成员(添加团队里的子功能):

    查看团队:

    删除团队:


二、开发项目管理模块 1.模块功能说明

① 实现项目的添加功能

       根据给出的参考项目添加(不能重复添加同一个项目)。

② 实现项目分配开发团队功能

       项目随机分配给一个空闲的开发团队(没有空闲团队要给成相应提示,没有添加项目也要给出相应提示)。

③ 实现项目的查看功能

       可以查看所有项目的相关信息以及项目的开发状态(没有添加项目给出相应提示)。

④ 实现项目的删除功能

       可以将未被开发的项目删除(开发中的项目不能删除)。

2.模块结构

    与开发项目管理模块相关的类有3个:Project、ProjectService和ProjectView。

    1)Project类的设计

       Project类的UML类图如下:

       小伙伴们可根据自身需要提供各属性的get/set方法以及重载构造器等其他方法。

    2)ProjectService类结构 

       ProjectService类包含6个方法。前4个是主要方法,addProject方法是实现项目的添加功能,dealingPro方法是实现项目分配开发团队功能,getPro方法是实现项目的查看功能,delPro方法是实现项目的删除功能。后2个是辅助方法, isNotDeveloped方法是判断是否有未被开发的项目,isAdded方法是判断项目是否已被添加到集合中(此方法是private,仅供本类addProject方法调用)。

    3)ProjectView类结构

       ProjectView类包含5个方法。首先是projectManageMainMenu方法,该方法是实现开发项目管理主菜单。然后是addProjectView、dealingProView、showPro和delProView方法,这四个方法分别实现项目的添加功能交互界面、项目分配开发团队交互界面、项目的查看展示和项目的删除交互界面(这四个方法都是private,仅供本类projectManageMainMenu方法调用)。

3.模块运行效果

    项目的添加: 

    项目分配开发团队:

    项目的查看:

    项目的删除:


三、程序运行主界面类

       将程序的4个模块编写完后,我们需要将4个模块连接起来,组成一个完整的程序,并且要为程序编写运行主界面,所以我们需要写一个IndexView(程序运行主界面)类。代码如下:

package com.team.view;


public class IndexView {
    private static LoginView lv = new LoginView();
    private static NameListView nlv = new NameListView();
    private static TeamView tv = new TeamView();
    private static ProjectView pv = new ProjectView();
    
    public static final String ANSI_RESET = "u001B[0m";
    public static final String ANSI_BLUE = "u001B[34m";

    public static void main(String[] args) {
        IndexView iv = new IndexView();
        lv.initMenu();
        iv.softwareMainMenu();
    }

    //软件主菜单
    private void softwareMainMenu() {
        while (true) {
            System.out.println(ANSI_RESET + ANSI_BLUE);
            System.out.println("");
            System.out.println("                                   ");
            System.out.println("             ~软件主菜单~            ");
            System.out.println("                                   ");
            System.out.println("");
            System.out.println("1. <用户信息修改>                *");
            System.out.println("2. <开发人员管理>                *");
            System.out.println("女3. <开发团队调度管理>             *");
            System.out.println("4. <开发项目管理>                *");
            System.out.println("力5. <退出软件>                    *");
            System.out.println("⬇请选择:  ");
            System.out.print(ANSI_RESET);
            switch (TSUtility.readMenuSelectionPro()) {
                case '1':
                    lv.modifyMenu();
                    break;
                case '2':
                    try {
                        TSUtility.loadSpecialEffects();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    nlv.DeveloperManageMainMenu();
                    break;
                case '3':
                    tv.developTeamMainMenu();
                    break;
                case '4':
                    pv.projectManageMainMenu();
                    break;
                case '5':
                    System.out.print("确认是否退出(Y/N):");
                    if (TSUtility.readConfirmSelection() == 'Y') {
                        System.exit(0);
                    }
                    break;
            }
        }
    }
}

    软件主菜单展示:


四、完整源代码链接

待添加~


ps:博主创作不易,喜欢这篇文章的小伙伴们,点个赞吧!(づ ̄3 ̄)づ╭❤~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号