Java技能大赛试题
摘要
本文将介绍Java技能大赛试题,并提供代码示例。我们将使用Markdown语法标识代码示例,以及使用Mermaid语法绘制甘特图和关系图。通过阅读本文,您将了解如何应对Java技能大赛试题,提高自己的Java编程技能。
导言
Java技能大赛是一项旨在测试Java开发者的技能和知识的比赛。参赛者需要解决一系列的编程问题,涵盖了Java核心概念和常见编程任务。本文将介绍其中的一道试题,并提供相应的代码示例和解答思路。
试题描述
试题要求参赛者实现一个简单的学生信息管理系统,包括学生信息的录入、查询和删除功能。具体要求如下:
- 学生信息包括学号、姓名、年龄和成绩。
- 系统需要提供以下功能:
- 录入学生信息
- 查询学生信息
- 删除学生信息
代码示例
以下是一个简单的实现示例:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class StudentManagementSystem {
private Map<Integer, Student> students;
public StudentManagementSystem() {
students = new HashMap<>();
}
public void addStudent(Student student) {
students.put(student.getId(), student);
}
public Student getStudent(int id) {
return students.get(id);
}
public void deleteStudent(int id) {
students.remove(id);
}
public static void main(String[] args) {
StudentManagementSystem sms = new StudentManagementSystem();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 录入学生信息");
System.out.println("2. 查询学生信息");
System.out.println("3. 删除学生信息");
System.out.println("0. 退出");
int choice = scanner.nextInt();
if (choice == 0) {
break;
}
switch (choice) {
case 1:
System.out.println("请输入学号:");
int id = scanner.nextInt();
System.out.println("请输入姓名:");
String name = scanner.next();
System.out.println("请输入年龄:");
int age = scanner.nextInt();
System.out.println("请输入成绩:");
int score = scanner.nextInt();
Student student = new Student(id, name, age, score);
sms.addStudent(student);
break;
case 2:
System.out.println("请输入学号:");
int queryId = scanner.nextInt();
Student queryStudent = sms.getStudent(queryId);
if (queryStudent != null) {
System.out.println(queryStudent);
} else {
System.out.println("学生不存在");
}
break;
case 3:
System.out.println("请输入学号:");
int deleteId = scanner.nextInt();
sms.deleteStudent(deleteId);
break;
default:
System.out.println("无效的选择");
break;
}
}
}
}
class Student {
private int id;
private String name;
private int age;
private int score;
public Student(int id, String name, int age, int score) {
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getScore() {
return score;
}
@Override
public String toString() {
return "学号:" + id + ",姓名:" + name + ",年龄:" + age + ",成绩:" + score;
}
}
解答思路
这道试题主要考察参赛者对Java类和对象的理解,以及基本的输入输出操作。解决这道题目需要注意以下几点:
- 创建一个
StudentManagementSystem
类,用于管理学生信息。这个类需要实现学生信息的录入、查询和删除功能,可以使用HashMap
来存储学生信息。 - 创建一个
Student
类,用于表示学生对象。这个类包含学号、姓名、年龄和成绩这几个属性,以及相应的getter和toString方法。 - 在
main
方法中,使用一个循环来接收用户的输入,