目录
1.目标
- 模拟实现一个基于文本界面的《开发团队调度软件》
- 熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧
- 主要涉及以下知识点:
- 类的继承性和多态性
- 向下转型、instacnceof关键字使用
- 对象的值传递、接口
- static和final修饰符
- 特殊类的使用:包装类、抽象类、内部类
- 异常处理,自定义异常类
2.项目细节
2.1功能
- 该软件实现以下功能:
- 软件启动时,根据给定的数据创建公司部分成员列表(数组)
- 根据菜单提示,基于现有的公司成员,组建一个开发团队以开发一个新的项目
- 组建过程包括将成员插入到团队中,或从团队中删除某成员,还可以列出团队中现有成员的列表
- 开发团队成员包括架构师、设计师和程序员
2.2主界面显示
根据项目提供数据生成员工信息表。
2.3功能展示
2.3.1团队列表
刚开始团队没有人的状态!
添加成员之后!
2.3.2添加团队成员
添加成功时!
添加失败时:
失败信息包含以下几种:
- 成员已满,无法添加
- 该成员不是开发人员,无法添加
- 该员工已在本开发团队中
- 该员工已是某团队成员
- 该员正在休假,无法添加
- 团队中至多只能有一名架构师
- 团队中至多只能有两名设计师
- 团队中至多只能有三名程序员
失败原因需要使用自定义异常来提示!
2.3.3删除团队成员
当队伍中有此成员时:
当队伍中不含此成员时:
2.3.4退出
3.项目包和类的说明,软件设计结构
4.各个类的实现
4.1.domain包下的类
Equipment接口及其子类设计要求
4.1.1interface Equipment
package com.zyd.team.domain;
public interface Equipment {
public abstract String getDescription();
}
4.1.2.Class PC
package com.zyd.team.domain;
public class PC implements Equipment{
private String model; //机器型号
private String display;//显示器名称
public PC() {
super();
}
public PC(String model, String display) {
this.model = model;
this.display = display;
}
public String getDescription() {
return model + "(" + display + ")";
}
public String getDisplay() {
return display;
}
public void setDisplay(String display) {
this.display = display;
}
public void setModel(String model) {
this.model = model;
}
public String getModel() {
return this.model;
}
}
4.1.3.Class NoteBook
package com.zyd.team.domain;
public class NoteBook implements Equipment{
private String model;//机器型号
private double price;//机器价格
public NoteBook() {
super();
}
public NoteBook(String model, double price) {
this.model = model;
this.price = price;
}
public String getDescription() {
return model + "(" + price + ")";
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public double getPrince() {
return price;
}
public void setPrince(double price) {
this.price = price;
}
}
4.1.4.Class Pinter
package com.zyd.team.domain;
public class Printer implements Equipment{
private String name;//机器名字
private String type;//机器类型
public Printer() {
super();
}
public Printer(String name, String type) {
this.name = name;
this.type = type;
}
public String getDescription(){
return name + "(" + type + ")";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}