项目开发团队管理软件设计

本文档详细介绍了《项目开发团队分配管理软件》的设计和实现,包括系统功能结构图、流程图、设计目标及各模块的具体实现。软件提供用户注册登录、开发人员管理、团队调度管理、项目管理等功能,并针对登录验证、开发人员增删改操作的实时反馈、异常处理等问题提出了改进方案。
摘要由CSDN通过智能技术生成

项目开发人员管理效果展示

系统功能结构图

系统流程图

设计目标

模拟实现一个基于文本界面的《项目开发团队分配管理软件》

软件实现功能

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

软件设计结构

分布实现系统模块

1、用户注册登录模块

定义一个LoginView类
实现注册方法
如果没有账户则需要注册
如果有账号则直接进行登录
实现登录功能
判断用户输入的值是否正确
如果正确则进入软件菜单
如果错误则重新输入,限制次数只有5次,超过次数则程序停止,重新启动
实现修改用户密码功能
可以实现对用户名,密码,或者两者都可以进行修改即可。

LoginView类

public class LoginView {
    //首先给定属性:登录用户和密码
    private String userName = "";
    private String password = "";

    //注册功能
    public void regist() throws InterruptedException {
        TSUtility.loadSpecialEffects();
        System.out.println("开始注册:");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的注册账户名称:");
        String userName = TSUtility.readKeyBoard(4, false);
        this.userName = userName;
        System.out.println("请输入你的注册密码:");
        String password = TSUtility.readKeyBoard(8, false);
        this.password = password;
        System.out.println("注册成功!请登录!");

    }

    //登录功能
    public void login() throws InterruptedException {
        //登录失败的次数限制
        int count = 5;
        boolean flag = true;
        while (flag) {
            System.out.println("********************🐱");
            System.out.println("***   <登录界面>   ***");
            System.out.println("***     (:      ***🐱");
            System.out.println("********************🐱");

            System.out.println("请输入你的登录账户名称:");
            String userName = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入你的登录密码:");
            String password = TSUtility.readKeyBoard(8, false);
            //未注册
            if (this.userName.length() == 0 || this.password.length() == 0) {
                System.out.println("未检测到您的账号,请您先注册!");
                regist();

            }
            //已注册
            //正常登录
            else if (this.userName.equals(userName) && this.password.equals(password)) {
                TSUtility.loadSpecialEffects();
                System.out.println("登陆成功!欢迎您:" + userName);
                flag = false;
            } else {
                if (count <= 0) {
                    System.out.println("登录次数不足!退出!");
                    return;
                } else {
                    count--;
                    System.out.println("登录失败!用户名或密码不匹配!");
                    System.out.println("登录次数还剩" + count + "次,请重新输入:");

                }
            }
        }

    }

    //修改功能
    public void update() throws InterruptedException {
        boolean flag = true;
        while (flag) {
            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(不修改,退出)");
            Scanner sc = new Scanner(System.in);
            String options = sc.next();
            if (options.equals("1")) {
                System.out.println("请输入你的修改的账户名称:");
                String userName = TSUtility.readKeyBoard(4, false);
                this.userName = userName;
                System.out.println("修改成功!");
            } else if (options.equals("2")) {
                System.out.println("请输入你的修改密码:");
                String password = TSUtility.readKeyBoard(8, false);
                this.password = password;
                System.out.println("修改成功!");
            } else if (options.equals("3")) {
                System.out.println("请输入你的修改的账户名称:");
                String userName = TSUtility.readKeyBoard(4, false);
                this.userName = userName;
                System.out.println("请输入你的修改密码:");
                String password = TSUtility.readKeyBoard(8, false);
                this.password = password;
                System.out.println("修改成功!");
            }
            else if (options.equals("4")) {
                System.out.println("退出中");
                TSUtility.loadSpecialEffects();
                flag = false;
            }
            else  {
                System.out.println("输入错误!请输入“1”或者“2”或者“3”或者“4”:");
            }
        }
    }


}

2、开发人员管理模块

在domain包中完成各个类的实体创建

NameListService类

package com.team.service;

import com.team.domain.*;
import com.team.view.TSUtility;

import java.util.ArrayList;

public class NameListService {
    //用来装员工的数据集合
    private ArrayList<Employee> employees = new ArrayList<>();

    //添加员工的id
    private int count = 1;

    //初始化默认值
    {
        employees.add(new Employee(count, "马云 ", 22, 3000));
        employees.add(new Architect(++count, "马化腾", 32, 18000, new NoteBook("联想T4", 6000), 60000, 5000));
        employees.add(new Programmer(++count, "李彦宏", 23, 7000, new PC("戴尔", "NEC 17寸")));
        employees.add(new Programmer(++count, "刘强东", 24, 7300, new PC("戴尔", "三星 17寸")));
        employees.add(new Designer(++count, "雷军 ", 50, 10000, new Printer("激光", "佳能2900"), 5000));
        employees.add(new Programmer(++count, "任志强", 30, 16800, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "柳传志", 45, 35500, new PC("华硕", "三星 17寸"), 8000));
        employees.add(new Architect(++count, "杨元庆", 35, 6500, new Printer("针式", "爱普生20k"), 15500, 1200));
        employees.add(new Designer(++count, "史玉柱", 27, 7800, new NoteBook("惠普m6", 5800), 1500));
        employees.add(new Programmer(++count, "丁磊 ", 26, 6600, new PC("戴尔", "NEC17寸")));
        employees.add(new Programmer(++count, "张朝阳 ", 35, 7100, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "杨致远", 38, 9600, new NoteBook("惠普m6", 5800), 3000));
    }

    //得到所有员工数据集合
    public ArrayList<Employee> getAllEmployees() {

        return employees;
    }

    //得到当前员工
    public Employee getEmployee(int id) throws TeamException {

        for (int i = 0; i < employees.size(); i++) {

            if (employees.get(i).getId() == id) {
                return employees.get(i);
            }
        }
        throw new TeamException("该员工不存在");
    }

    //员工的增加
    public void addEmployee() throws InterruptedException {
        System.out.println("请输入需要添加的雇员的职位:");
        System.out.println("1(无职位)");
        System.out.println("2(程序员)");
        System.out.println("3(设计师)");
        System.out.println("4(架构师)");
        String c = String.valueOf(TSUtility.readMenuSelection());
        if (c.equals("1")) {
            //无职位 new Employee(count++,"马云 ",22,3000)
            System.out.println("`当前雇员职位分配为:无`");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            Employee employee = new Employee(++count, name, age, salary);
            employee
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值