# `CSP_J_2021` 第一轮认证题
发布人:shili8
发布时间:2025-02-12 21:50
阅读次数:0
**第一轮认证题目**
**题目描述**
在一个虚拟的世界中,存在着许多不同的角色,每个角色都有自己的特点和能力。我们需要设计一个系统来管理这些角色,并且能够根据不同条件进行相应的处理。
**题目要求**
1. 设计一个类似于 Java 的面向对象编程语言的系统,能够支持以下功能:
* 定义角色类(Role),包含属性:名称(Name)、年龄(Age)和技能(Skills)。
* 定义一个管理角色类(RoleManager),负责创建、删除和更新角色。
* 实现一个方法来计算角色的总技能值。
2. 编写 Java代码实现上述功能,并且能够正确运行。
**系统设计**
### 角色类(Role)
javapublic class Role { private String name; private int age; private Listskills; public Role(String name, int age) { this.name = name; this.age = age; this.skills = new ArrayList<>(); } public void addSkill(String skill) { this.skills.add(skill); } public int getAge() { return age; } public List getSkills() { return skills; } }
### 角色管理类(RoleManager)
javaimport java.util.ArrayList; public class RoleManager { private ArrayListroles; public RoleManager() { this.roles = new ArrayList<>(); } public void createRole(Role role) { this.roles.add(role); } public void deleteRole(String name) { for (int i =0; i < this.roles.size(); i++) { if (this.roles.get(i).getName().equals(name)) { this.roles.remove(i); break; } } } public Role getRole(String name) { for (Role role : this.roles) { if (role.getName().equals(name)) { return role; } } return null; } public int calculateTotalSkills() { int total =0; for (Role role : this.roles) { total += role.getSkills().size(); } return total; } }
### 主类
javapublic class Main { public static void main(String[] args) { RoleManager manager = new RoleManager(); // 创建角色 Role role1 = new Role("张三",25); role1.addSkill("Java"); role1.addSkill("Python"); Role role2 = new Role("李四",30); role2.addSkill("C++"); role2.addSkill("JavaScript"); manager.createRole(role1); manager.createRole(role2); // 删除角色 manager.deleteRole("张三"); // 计算总技能值 System.out.println("总技能值:" + manager.calculateTotalSkills()); } }
**注释**
* 在这个系统中,我们定义了一个 `Role` 类来代表角色,每个角色都有自己的名称、年龄和技能。
* 我们还定义了一个 `RoleManager` 类来管理角色,负责创建、删除和更新角色。
* 在 `RoleManager` 类中,我们实现了一个方法来计算角色的总技能值。
* 在主类中,我们创建两个角色,并且使用 `RoleManager` 类来管理它们。