我正在构建一个员工和项目管理应用程序,由于剩下 1 个错误,我无法运行该应用程序。错误位于第 147 行(在我的 switch 语句“string role =”sample role”的情况 3 中)我有一个局部变量角色错误,有人可以帮我解决这个问题吗?我对编码很陌生,所以如果出现这种情况,我深表歉意这是一个简单的错误
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
class Employee {
private static int employeeIDCounter = 1;
private int employeeID;
private String firstName;
private String lastName;
private String department;
private String role;
public Employee(String firstName, String lastName, String department, String role) {
this.employeeID = employeeIDCounter++;
this.firstName = firstName;
this.lastName = lastName;
this.department = department;
this.role = role;
}
// Getters for Employee properties
public int getEmployeeID() {
return employeeID;
}
public String getFullName() {
return firstName + " " + lastName;
}
public String getRole() {
return role;
}
public String getDepartment() {
return department;
}
}
class Project {
private static int projectIDCounter = 1;
private int projectID;
private String projectName;
private String projectDescription;
private String startDate;
private String endDate;
private Map<Employee, String> assignedTeam;
public Project(String projectName, String projectDescription, String startDate, String endDate) {
this.projectID = projectIDCounter++;
this.projectName = projectName;
this.projectDescription = projectDescription;
this.startDate = startDate;
this.endDate = endDate;
this.assignedTeam = new HashMap<>();
}
// Getters for Project properties
public int getProjectID() {
return projectID;
}
public String getProjectName() {
return projectName;
}
public String getProjectDescription() {
return projectDescription;
}
public String getStartDate() {
return startDate;
}
public String getEndDate() {
return endDate;
}
public Map<Employee, String> getAssignedTeam() {
return assignedTeam;
}
public void assignEmployee(Employee employee, String role) {
assignedTeam.put(employee, role);
}
}
public class ProjectEmployeeManagement {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
List<Project> projects = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("Choose operation:");
System.out.println("1. Add Project");
System.out.println("2. Add Employee");
System.out.println("3. Assign Employee to Project");
System.out.println("4. Display Projects and Team Members");
System.out.println("5. Search Employees for Project");
System.out.println("6. Search Projects for Employee");
System.out.println("7. Update Project or Employee");
System.out.println("8. Delete Project");
System.out.println("9. Exit");
int choice = scanner.nextInt();
scanner.nextLine(); // Consume the newline character
switch (choice) {
case 1:
// Add Project
System.out.println("Enter project details:");
System.out.print("Project Name:");
String projectName = scanner.nextLine();
System.out.print("project Description: ");
String projectDescription = scanner.nextLine();
System.out.print("Start Date: ");
String startDate = scanner.nextLine ();
System.out.print(" End Date: ");
String endDate = scanner.nextLine();
Project newProject = new Project(projectName, projectDescription, startDate, endDate);
projects.add(newProject);
break;
case 2:
// Add Employee
System.out.println("Enter employee details:");
System.out.print("First Name: ");
String firstName = scanner.nextLine();
System.out.print("Last Name: ");
String lastName = scanner.nextLine();
System.out.print("Department: ");
String department = scanner.nextLine();
System.out.print("Role: ");
String role = scanner.nextLine();
Employee newEmployee = new Employee(firstName, lastName, department, role);
employees.add(newEmployee);
break;
case 3:
// Assign Employee to Project
System.out.println("Enter Project ID: ");
int projectID = scanner.nextInt();
System.out.println("Enter Employee ID: ");
int employeeID = scanner.nextInt();
scanner.nextLine();
String role = "Sample Role"; // Replace with actual role input
Project projectToAssign = null;
Employee employeeToAssign = null;
// Find the project and employee objects
for (Project project : projects) {
if (project.getProjectID() == projectID) {
projectToAssign = project;
break;
}
}
for (Employee employee : employees) {
if (employee.getEmployeeID() == employeeID) {
employeeToAssign = employee;
break;
}
}
// Assign the employee to the project with the specified role
if (projectToAssign != null && employeeToAssign != null) {
projectToAssign.assignEmployee(employeeToAssign, role);
} else {
System.out.println("Project or Employee not found.");
}
break;
case 4:
// Display Projects and Team Members
for (Project project : projects) {
System.out.println("Project ID: " + project.getProjectID());
System.out.println("Project Name: " + project.getProjectName());
System.out.println("Project Description: " + project.getProjectDescription());
System.out.println("Start Date: " + project.getStartDate());
System.out.println("End Date: " + project.getEndDate());
System.out.println("Assigned Team Members:");
for (Map.Entry<Employee, String> entry : project.getAssignedTeam().entrySet()) {
System.out.println("Employee ID: " + entry.getKey().getEmployeeID());
System.out.println("Employee Name: " + entry.getKey().getFullName());
System.out.println("Role: " + entry.getValue());
}
}
break;
case 5:
// Search Employees for Project
System.out.println("Enter Project ID: ");
int searchProjectID = scanner.nextInt();
Project searchProject = null;
// Find the project object
for (Project project : projects) {
if (project.getProjectID() == searchProjectID) {
searchProject = project;
break;
}
}
if (searchProject != null) {
System.out.println("Assigned Team Members for Project " + searchProjectID + ":");
for (Map.Entry<Employee, String> entry : searchProject.getAssignedTeam().entrySet()) {
System.out.println("Employee ID: " + entry.getKey().getEmployeeID());
System.out.println("Employee Name: " + entry.getKey().getFullName());
System.out.println("Role: " + entry.getValue());
}
} else {
System.out.println("Project not found.");
}
break;
case 6:
// Search Projects for Employee
System.out.println("Enter Employee ID: ");
int searchEmployeeID = scanner.nextInt();
Employee searchEmployee = null;
// Find the employee object
for (Employee employee : employees) {
if (employee.getEmployeeID() == searchEmployeeID) {
searchEmployee = employee;
break;
}
}
if (searchEmployee != null) {
System.out.println("Projects assigned to Employee " + searchEmployeeID + ":");
for (Project project : projects) {
for (Map.Entry<Employee, String> entry : project.getAssignedTeam().entrySet()) {
if (entry.getKey().getEmployeeID() == searchEmployeeID) {
System.out.println("Project ID: " + project.getProjectID());
System.out.println("Project Name: " + project.getProjectName());
System.out.println("Role: " + entry.getValue());
}
}
}
} else {
System.out.println("Employee not found.");
}
break;
case 7:
// Update Project or Employee
System.out.println("Enter 'P' to update a Project or 'E' to update an Employee: ");
String updateChoice = scanner.nextLine();
if (updateChoice.equalsIgnoreCase("P")) {
// Update Project
System.out.println("Enter Project ID to update: ");
int projectIDToUpdate = scanner.nextInt();
Project projectToUpdate = null;
// Find the project object
for (Project project : projects) {
if (project.getProjectID() == projectIDToUpdate) {
projectToUpdate = project;
break;
}
}
if (projectToUpdate != null) {
// Here you can implement the logic to update project details
// You can ask for new project details (name, description, dates, etc.)
System.out.println("Project updated successfully.");
} else {
System.out.println("Project not found.");
}
} else if (updateChoice.equalsIgnoreCase("E")) {
// Update Employee
System.out.println("Enter Employee ID to update: ");
int employeeIDToUpdate = scanner.nextInt();
Employee employeeToUpdate = null;
// Find the employee object
for (Employee employee : employees) {
if (employee.getEmployeeID() == employeeIDToUpdate) {
employeeToUpdate = employee;
break;
}
}
if (employeeToUpdate != null) {
// Here you can implement the logic to update employee details
// You can ask for new employee details (first name, last name, department, role, etc.)
System.out.println("Employee updated successfully.");
} else {
System.out.println("Employee not found.");
}
} else {
System.out.println("Invalid choice.");
}
break;
case 8:
// Delete Project
System.out.println("Enter Project ID to delete: ");
int projectIDToDelete = scanner.nextInt();
Project projectToDelete = null;
// Find the project object
for (Project project : projects) {
if (project.getProjectID() == projectIDToDelete) {
projectToDelete = project;
break;
}
}
if (projectToDelete != null) {
projects.remove(projectToDelete);
System.out.println("Project deleted successfully.");
} else {
System.out.println("Project not found.");
}
break;
case 9:
// Exit the application
System.out.println("Exiting the application.");
System.exit(0);
break;
default:
System.out.println("Invalid choice. Please choose a valid operation.");
}
}
}
}
您在 case2 中定义了 var 角色(第 135 行)
String role = scanner.nextLine();
所以你可以在其他情况下定义。 最好的方法(我认为)。您应该在 switch 块之外定义 var 角色并在 case 块内使用它