Java技能大赛试题

摘要

本文将介绍Java技能大赛试题,并提供代码示例。我们将使用Markdown语法标识代码示例,以及使用Mermaid语法绘制甘特图和关系图。通过阅读本文,您将了解如何应对Java技能大赛试题,提高自己的Java编程技能。

导言

Java技能大赛是一项旨在测试Java开发者的技能和知识的比赛。参赛者需要解决一系列的编程问题,涵盖了Java核心概念和常见编程任务。本文将介绍其中的一道试题,并提供相应的代码示例和解答思路。

试题描述

试题要求参赛者实现一个简单的学生信息管理系统,包括学生信息的录入、查询和删除功能。具体要求如下:

  1. 学生信息包括学号、姓名、年龄和成绩。
  2. 系统需要提供以下功能:
    • 录入学生信息
    • 查询学生信息
    • 删除学生信息

代码示例

以下是一个简单的实现示例:

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类和对象的理解,以及基本的输入输出操作。解决这道题目需要注意以下几点:

  1. 创建一个StudentManagementSystem类,用于管理学生信息。这个类需要实现学生信息的录入、查询和删除功能,可以使用HashMap来存储学生信息。
  2. 创建一个Student类,用于表示学生对象。这个类包含学号、姓名、年龄和成绩这几个属性,以及相应的getter和toString方法。
  3. main方法中,使用一个循环来接收用户的输入,