在此项目中,您需要使用 Java Department, Employee and Project (DEP)。 该系统帮助公司管理员工和项目。
您的程序应至少包含以下 DEP 类
在包含私有数据成员的源文件 Department.java 中定义类 Department:
在文件 Department.java 中实现 Java 方法,其中包括:
在包含私有数据成员的源文件 Employee.java 中定义一个类 Employee:
在文件 Employee.java 中实现java方法,其中包括:
为所有数据成员赋值的参数化构造函数
返回雇员编号的公共方法getNumber
返回所有私有数据成员的字符串值的公共方法toString
在包含私有数据的源文件 Project.java 中定义一个类 Project成员:
在文件 Project.java 中实现 Java 方法,其中包括:
在包含私有数据成员的源文件 WorksOn.java 中定义一个类 WorksOn:
在文件 WorksOn.java 中实现 Java 方法,其中包括:
▪ 所有数据成员赋值的参数化构造函数
▪ 所有私有数据成员的字符串值的公共方法toString。
在包含私有数据成员的源文件 DEP.java 中定义一个类 DEP:
在文件 DEP.java 中实现 Java 方法,其中包括:
为所有数据成员初始化值的默认构造函数
1 显示所有部门
2 显示所有员工
3 显示所有项目
4 显示从事项目的员工的信息
5 为从事项目工作的员工添加记录
6 退出
Java 程序获取菜单的输入编号并处理该项目所需的方法,直到输入 0。
选择项目1时,该方法显示所有部门信息
测试数据
部门、员工和项目的数据如下
编译和测试
使用 javac 命令编译您的程序
javac DEP.java
使用 java 命令处理您的程序
Java DEP
针对所有项目测试您的程序。 请参阅下面的处理结果示例
更多细节
加工实例
下面给出应用程序处理的示例。 用户的输入是
以红色突出显示
可交付成果
(1) UML类图(2分):使用UMLet应用工具绘制类
图表。 类图应
使用选项 File->Export as.. 将类图导出为 BMP 格式的文件
不要删除导出的文件。 您将使用它作为您的任务的解决方案之一
将 BMP 文件插入到 Word 文件 DEP.docx 中
(2)实现(6分):根据UML类实现DEP系统
上面的图表和实现描述。 该计划应
看了一天头昏昏,这个uml图是真难搞懂
UML图的制作确实需要一定的技能和经验,但是通过不断的学习和练习,你可以掌握这项技能。以下是一些可能有助于您制作UML图的技巧和建议:
确定要绘制的UML图的类型和目的。不同类型的UML图适用于不同的目的,例如,类图用于描述类和它们之间的关系,时序图用于描述对象之间的交互。确保您清楚了解要绘制的图的类型和目的,这样您才能选择正确的图表来绘制。
在绘制UML图之前,确保您已经完成了详细的系统分析和设计。您需要了解系统的要求、功能、架构等,这样才能准确地描述系统。
使用正确的工具。有很多建模工具可用于绘制UML图,例如Visio、Enterprise Architect、Astah等。选择一个你熟悉的和适合你的需要的工具。
学习UML的语法和标记。UML图使用特定的语法和标记来表示不同的概念和关系,例如类、接口、关联、继承等。学习这些语法和标记,并确保您正确地使用它们。
在绘制UML图之前,先设计好草图或者草图板。这样您可以更好的了解您所要绘制的UML图的内容,并且可以避免在后期修改图的时候带来麻烦。
与其他人进行交流并获得反馈。在绘制UML图的过程中,需要与其他开发人员、系统分析人员等进行交流,以确保您正确地理解和描述系统。获得反馈和建议,这将有助于您改进UML图的质量和精度。
总之,制作UML图确实需要一些技能和经验,但是通过不断学习和练习,您可以逐渐提高您的技能和经验。务必保持耐心,练习和提高您的技能是必要的。
该回答引用于gpt与OKX安生共同编写:
回答如下:
Department.java
public class Department {
private int number;
private String name;
private String manager;
public Department(int number, String name, String manager) {
this.number = number;
this.name = name;
this.manager = manager;
}
public String toString() {
return "Department Number: " + number + "\nDepartment Name: " + name + "\nManager: " + manager + "\n";
}
}
Employee.java
public class Employee {
private int number;
private String lastName;
private String firstName;
private String jobTitle;
private int salary;
private int departmentNumber;
public Employee(int number, String lastName, String firstName, String jobTitle, int salary, int departmentNumber) {
this.number = number;
this.lastName = lastName;
this.firstName = firstName;
this.jobTitle = jobTitle;
this.salary = salary;
this.departmentNumber = departmentNumber;
}
public int getNumber() {
return number;
}
public String toString() {
return "Employee Number: " + number + "\nLast Name: " + lastName + "\nFirst Name: " + firstName + "\nJob Title: " + jobTitle + "\nSalary: " + salary + "\nDepartment Number: " + departmentNumber + "\n";
}
}
Project.java
public class Project {
private int number;
private String name;
private int departmentNumber;
private int budget;
public Project(int number, String name, int departmentNumber, int budget) {
this.number = number;
this.name = name;
this.departmentNumber = departmentNumber;
this.budget = budget;
}
public int getNumber() {
return number;
}
public String toString() {
return "Project Number: " + number + "\nProject Name: " + name + "\nDepartment Number: " + departmentNumber + "\nBudget: " + budget + "\n";
}
}
WorksOn.java
public class WorksOn {
private Project project;
private Employee employee;
private int hours;
public WorksOn(Project project, Employee employee, int hours) {
this.project = project;
this.employee = employee;
this.hours = hours;
}
public String toString() {
return "Project: " + project.getNumber() + "\nEmployee: " + employee.getNumber() + "\nHours: " + hours + "\n";
}
}
DEP.java
import java.util.ArrayList;
import java.util.Scanner;
public class DEP {
private ArrayList<Department> depts;
private ArrayList<Employee> emps;
private ArrayList<Project> projs;
private ArrayList<WorksOn> works;
public DEP() {
depts = new ArrayList<Department>();
emps = new ArrayList<Employee>();
projs = new ArrayList<Project>();
works = new ArrayList<WorksOn>();
// Add Departments
depts.add(new Department(1, "Sales", "John Smith"));
depts.add(new Department(2, "Engineering", "Jane Doe"));
depts.add(new Department(3, "Marketing", "Bill Johnson"));
// Add Employees
emps.add(new Employee(001, "Smith", "John", "Manager", 80000, 1));
emps.add(new Employee(002, "Doe", "Jane", "Engineer", 60000, 2));
emps.add(new Employee(003, "Johnson", "Bill", "Marketer", 50000, 3));
// Add Projects
projs.add(new Project(100, "Project 1", 1, 100000));
projs.add(new Project(200, "Project 2", 2, 150000));
projs.add(new Project(300, "Project 3", 3, 120000));
}
public void showDepartments() {
for (Department dept : depts) {
System.out.println(dept.toString());
}
}
public void showEmployees() {
for (Employee emp : emps) {
System.out.println(emp.toString());
}
}
public void showProjects() {
for (Project proj : projs) {
System.out.println(proj.toString());
}
}
public void showWorksOn() {
for (WorksOn work : works) {
System.out.println(work.toString());
}
}
public void addWorksOn() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter Employee Number: ");
int empNumber = scanner.nextInt();
Employee employee = null;
for (Employee emp : emps) {
if (emp.getNumber() == empNumber) {
employee = emp;
break;
}
}
if (employee == null) {
System.out.println("Employee does not exist.");
return;
}
System.out.print("Enter Project Number: ");
int projNumber = scanner.nextInt();
Project project = null;
for (Project proj : projs) {
if (proj.getNumber() == projNumber) {
project = proj;
break;
}
}
if (project == null) {
System.out.println("Project does not exist.");
return;
}
WorksOn work = new WorksOn(project, employee, 0);
works.add(work);
System.out.print("Enter Total Working Hours: ");
int hours = scanner.nextInt();
work.hours = hours;
}
public static void main(String[] args) {
DEP dep = new DEP();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("DEP Menu");
System.out.println("1. Show All Departments");
System.out.println("2. Show All Employees");
System.out.println("3. Show All Projects");
System.out.println("4. Show Information of Employees Working on a Project");
System.out.println("5. Add Record for Employee Working on a Project");
System.out.println("6. Quit");
System.out.print("Enter Your Choice: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
dep.showDepartments();
break;
case 2:
dep.showEmployees();
break;
case 3:
dep.showProjects();
break;
case 4:
dep.showWorksOn();
break;
case 5:
dep.addWorksOn();
break;
case 6:
System.exit(0);
break;
default:
System.out.println("Invalid Choice.");
break;
}
}
}
}
题目要求UML画类图算简单的了,活动图、时序图什么的更复杂,类图画出类的属性以及类之间的关系就行。
首先理清楚Department 、Employee和Project 的关系,Employee中有一个Department ID与Department 关联,表示是哪个部门的员工,Project 中有一个Department ID表示是哪个部门的项目 。
其次类图的基本格式是:
第一层是类的名称,第二层是类的属性,第三层是类的方法,+表示public,-表示private;#表示protected。
再次绘制类之间的关系,题目中类之间的关系是关联关系,使用实心的箭头就行了: