基于文本界面的《项目开发团队分配管理软件》

由于代码很长所以就放在最后吧。

目录

系统功能结构

 系统流程

目标

 需求说明

软件设计结构 

代码流程

1.用户注册和登录模块

2.开发人员管理模块(domain包)

        设计结构

        domain模块中包含了所有实体类:

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

Employee类及其子类的设计

3.开发人员管理模块(NameService包)

        设计结构

 4.开发团队调度管理模块

        需求说明

3.开发团队调度管理模块

参考实现:TeamService类的设计:

 TeamView类的设计

4.开发项目管理模块

 源代码

运行效果概览


系统功能结构

基于文本界面的《项目开发团队分配管理软件》

 系统流程

基于文本界面的《项目开发团队分配管理软件》

目标

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

②熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧

主要涉及以下知识点:

         类的继承性和多态性

        对象的值传递、接口

        static和final修饰符

        特殊类的使用:包装类、抽象类、内部类

        异常处理

        Java基本语法和流程控制

        数组,ArrayList集合

 需求说明

该软件实现以下功能:

软件启动时,首先进入登录界面进行注册和登录功能。

当登陆成功后,进入菜单,首先就可以对开发人员账户和密码进行修改。

然后可以对开发人员进行增删改操作

人员添加成功后,根据菜单提示,基于现有的公司成员,组建一个开发团队以开发一个新的项目。

组建过程包括将成员插入到团队中,或从团队中删除某成员,还可以列出团队中现有成员的列表,开发团队成员包括架构师、设计师和程序员。

团队组建成功,则可以进入项目模块,添加项目,分配开发团队进行开发。

软件设计结构 

基于文本界面的《项目开发团队分配管理软件》

domain包:存放该项目所需的类

Service包:各个模块的操作方法(增删改查等等)

View包:界面展示

代码流程

1.用户注册和登录模块

定义一个LoginView类

        实现注册方法

                如果没有账户则需要注册

                如果有账号则直接进行登录

        实现登录功能

                判断用户输入的值是否正确

                如果正确则进入软件菜单

                如果错误则重新输入,限制次数只有5次,超过次数则程序停止,重新启动

        实现修改用户密码功能

                可以实现对用户名,密码,或者两者都可以进行修改即可。

2.开发人员管理模块(domain包)

        设计结构

        domain模块中包含了所有实体类:

基于文本界面的《项目开发团队分配管理软件》

         其中程序员(Programmer)及其子类,均会领用某种电子设备(Equipment)。

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

基于文本界面的《项目开发团队分配管理软件》

 说明:

        model 表示机器的型号

        display 表示显示器名称

        type 表示机器的类型

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

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

Employee类及其子类的设计

基于文本界面的《项目开发团队分配管理软件》

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

Status是项目中人员的状态,先赋值为true,当添加到团队时为false

equipment 表示该成员领用的设备

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

 

基于文本界面的《项目开发团队分配管理软件》

 说明:

bonus 表示奖金

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

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

3.开发人员管理模块(NameService包)

        在NameListService类中完成功能操作

                实现员工的添加(根据职业添加(无,程序员,设计师,架构师))

                实现员工的修改(至少修改员工的姓名,年龄,工资)

                实现员工的删除(注意员工id需要动态显示,也就是删除后,员工id需要更新)

                实现员工的查看 (显示所有数据)

        

        设计结构

基于文本界面的《项目开发团队分配管理软件》

说明:

        getAllEmployees ()方法:获取当前所有员工。 返回:包含所有员工集合

        getEmployee(id : int)方法:获取指定ID的员工对象。 参数:指定员工的ID 返回:指定员工对象

        异常:找不到指定的员工 

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

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

按照设计要求编写NameListService类

一个属性为:private ArrayList<Employee> employees

有一个代码块用作数据的填充,如图(注意不同人的身份和设备都不同)

有一个方法:getAllEmployees(),返回employees对象即可

还有一个方法:getEmployee(int id),得到指定id的员工,没有则抛出自定义的异常。

其他方法

基于文本界面的《项目开发团队分配管理软件》

 4.开发团队调度管理模块

        需求说明

                团队界面显示公司成员的列表(这些是默认值,请在开发人员管理模块中实现),如下:

基于文本界面的《项目开发团队分配管理软件》

如果添加操作因某种原因失败,将显示类似以下信息(失败原因视具体原因而不同):

1-团队列表  2-添加团队成员  3-删除团队成员 4-退出   请选择(1-4):2

———————添加成员———————

请输入要添加的员工ID:2

添加失败,原因:该员工已是某团队成员 按回车键继续…     

失败信息包含以下几种:  (需要抛出自定义异常)

成员已满,无法添加

该成员不是开发人员,无法添加

该员工已在本开发团队中

该员工已是某团队成员

团队中至多只能有一名架构师(以下判断可借用instanceof进行判断)

团队中至多只能有两名设计师

团队中至多只能有三名程序员 

当选择“添加团队成员”菜单时,将执行从列表中添加指定(通过ID)成员到开发团队的功能:

1-团队列表  2-添加团队成员  3-删除团队成员  4-退出   请选择(1-4):

2 ———————添加成员———————

请输入要添加的员工ID:2

添加成功 按回车键继续…

添加成功后,按回车键将重新显示主界面。

开发团队人员组成要求:

最多一名架构师

最多两名设计师

最多三名程序员

当选择“删除团队成员”菜单时,将执行从开发团队中删除指定(通过TeamID)成员的功能:

1-团队列表  2-添加团队成员  3-删除团队成员 4-退出   请选择(1-4):3

———————删除成员———————

请输入要删除员工的TID:1

确认是否删除(Y/N):y

删除成功

按回车键继续…

删除成功后,按回车键将重新显示主界面。

当选择“团队列表”菜单时,将列出开发团队中的现有成员,例如:

1-团队列表  2-添加团队成员  3-删除团队成员 4-退出   请选择(1-4):1

——————–团队成员列表———————

TDI/ID  姓名    年龄      工资       职位      奖金        股票

 2/4     刘强东   24      7300.0    程序员  3/2     马化腾   32      18000.0  架构师   15000.0  2000  4/6     任志强   22      6800.0    程序员  5/12   杨致远   27      600.0      设计师   4800.0

3.开发团队调度管理模块

参考实现:TeamService类的设计:

基于文本界面的《项目开发团队分配管理软件》

功能:关于开发团队成员的管理:添加、删除等(还需要自行实现)。

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

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

team数组:用来保存当前团队中的各成员对象 (也可以用一个新的集合)

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

基于文本界面的《项目开发团队分配管理软件》

说明:

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

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

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

参数:待添加成员的对象

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

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

参数:待删除成员的memberId

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

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


 TeamView类的设计

基于文本界面的《项目开发团队分配管理软件》

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

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

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

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

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

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

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


4.开发项目管理模块

在domain包中完成项目实体类Project的创建

基于文本界面的《项目开发团队分配管理软件》

在service包中完成项目操作类ProjectService的创建

基于文本界面的《项目开发团队分配管理软件》

 源代码

Package domain: 

1.Architect.java

来源:smallumbrella

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月2日
下一篇 2021年7月2日

相关推荐