java项目开发团队分配软件

java项目开发团队分配软件

项目目标

该软件实现的功能

  1. 启动软件时,首先进入登录界面进行登录和注册。
  2. 登录成功后,进入菜单,首先可以对开发人员账户和密码进行修改。
  3. 然后可以对开发人员进行增删改等操作。 人员添加成功后,根据菜单提示,基于现有的公司成员,组建一个开发团队以开发一个新的项目。
  4. 组建过程中包括将成员插入到团队中,或从当前团队中删除成员,并且能列出当前团队中的现有成员,开发团队包括架构师、设计师和程序员,一个团队最多5人。
  5. 团队组建成功后,进入项目模块,添加项目,分配团队进行项目的开发。

我们需要用到的知识点大概有下面几点
在这里插入图片描述
系统功能结构图
在这里插入图片描述
系统流程图
在这里插入图片描述
软件设计结构

主要是由三个模块组成
在这里插入图片描述
com.team.view 模块为主控模快,负责菜单的显示和处理用户操作
com.team.service 模块为实体对象的管理模块
com.team.domain 模块为Employee及其子类等类所在的包

各模块的实际内容和注意事项

用户注册和登录模块
在这里插入图片描述
注意事项:
这个模块主要需要注意的是登录时的判断和注册时是否有该账户名,和密码输入错误时的判断登录次数。
判断登录代码

for (int i=0;i<array.size();i++) {
                    if (username.equals(array.get(i).getUsername()) && password.equals(array.get(i).getPassword())) {
                        TSUtility.loadSpecialEffects();
                        System.out.println("登陆成功!欢迎您:" + username);
                        this.username = username;
                        this.password = password;
                        flag = false;
                        break;
                    } else if (count == 0) {
                        System.out.println("登录次数已用完,退出!");
                        return false;
                    } else if (username.equals(array.get(i).getUsername()) || password.equals(array.get(i).getPassword())) {
                        count--;
                        if (count != 0) {
                            System.out.println("登录失败!用户名或密码不匹配!");
                            System.out.println("登录次数还剩" + count + "次,请重新输入:");
                        }
                    }
                }

开发人员管理模块

1.domain模块中创建实体类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.在NameLIstService类中完成功能操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意: 主要注意添加员工时的ID需要自动更新,用集合时需要注意用静态static来修饰,才能进行数据共享

private static ArrayList<Employee> employees =new ArrayList<Employee>();

开发团队调度模块

TeamService类的设计
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TeamView类的设计
在这里插入图片描述
在这里插入图片描述
注意: 删除成员和删除团队时的空指针异常,不然一不注意就会导致程序异常结束
删除时可用try…catch处理,也可以直接用throw抛出异常然后结束回到调用方法处输出,这里代码就是用的throw来解决的

 System.out.print("请输入要删除团队员工的TID:");
            int tid = TSUtility.readInt();
            System.out.println("请确认是否删除(Y/N)");
            char select = TSUtility.readConfirmSelection();
            if (select=='Y'){
                try {
                    teamSvc.removeMember(tid);
                    System.out.println("删除成功");
                } catch (TeamException e) {
                    System.out.println("删除失败,原因:" + e.getMessage());
                }
            }
 public void removeMember(int memberId) throws TeamException {
        int j,i;
        if (total==0){//判断空指针异常
                throw new TeamException("现团队里还没有成员,无法删除!");

        }
        else {
            for (i=0;i<team.length;i++){
                if (team[i].getMemberId()==memberId){
                    team[i].setStatus(true);
//                j=i;
                    for (j=i+1;j<team.length;j++){
                        if (team[j]!=null){
                            counter=team[j].getMemberId();
                            team[j].setMemberId(--counter);
                            team[j-1]=team[j];
                        }
                        else {
                            break;
                        }
                    }
                    counter++;
                    total--;
                    break;
                }
            }
            if (i==team.length){
                throw new TeamException("该团队中没有该成员!");
            }
        }

    }

开发项目管理模块

domain包中完成项目实体类的创建
在这里插入图片描述
service包中创建项目操作类ProjectService
在这里插入图片描述
注意: 主要注意添加项目时项目名称相同不可以以重复添加,并且删除项目时也要注意空指针异常,并且正在被开发的项目不能被删除

ublic void delProject(int id){
        boolean fagl=false;
        int num=1;
        for (int i=0;i<project.size();i++){
            if (id==project.get(i).getProId()){
                if (project.get(i).getStatus()){
                    try{
                        num=0;
                        fagl=true;
                        throw new TeamException("删除失败!当前项目正在被开发中!");
                    }catch (TeamException e){
                        System.out.println(e.getMessage());
                    }
                }else {
                    project.remove(i);
                    for (i=id-1;i<project.size();i++){
                        project.get(i).setProId(project.get(i).getProId()-1);
                    }
                    fagl=true;
                }
            }
        }
        if (fagl&&num==1){
            System.out.println("删除成功!");
            count--;
        }
        else if (num==1){
            try {
                throw new TeamException("该项目不存在!");
            } catch (TeamException e) {
                System.out.println(e.getMessage());
            }
        }
    }

IndexView类的设计
IndexView只要是项目的运行主界面,将前面几个模块的内容装在一起,并运行软件,操作基本功能,调试bug,最后开发完成。

完成以上所有步骤后我们的包内应该有如下的类
在这里插入图片描述
当我们编写项目时尽量一个模块做完后先进性调试,最后在将所有模块联系起来然后在进行整个程序的调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值