IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java小白实践项目初体验——项目开发团队分配管理软件(二) -> 正文阅读

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

??目录

前言

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

1.模块功能说明

2.模块结构

3. 模块运行效果

二、开发项目管理模块

1.模块功能说明

2.模块结构

3.模块运行效果

三、程序运行主界面类

四、完整源代码链接


前言

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


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

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

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

1.模块功能说明

① 实现添加团队功能

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

② 实现查看团队功能

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

③ 实现删除团队功能

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

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

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

2.模块结构

? ? 与开发团队调度管理模块相关的类有3个:TeamExceptionTeamServiceTeamView

? ? 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个:ProjectProjectServiceProjectView

? ? 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;

/*
  软件主界面类(将4个模块衔接在一起)
 */
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 ̄)づ╭?~

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:41:08  更:2021-10-01 16:42:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:26:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码