蓝桥杯 Java B 组 - 第 1 周复习总结

  一、复习本周知识点

1. 主要知识点

输入输出(Scanner & BufferedReader)
条件语句(if-else)
循环语句(for & while)
数组(Array & ArrayList)
字符串处理(String & StringBuilder)
递归(Factorial, Fibonacci, 汉诺塔)
集合(ArrayList, HashMap, HashSet)

2. 易错点复习

数组索引越界(IndexOutOfBoundsException)
字符串拼接性能问题(应使用 StringBuilder)
递归基准条件未设(导致无限递归)
HashMap 访问不存在的 key(应使用 getOrDefault()


二、综合题:学生成绩管理系统

�� 目标:

  1. 输入学生姓名和成绩
  2. 存储数据(ArrayList + HashMap)
  3. 计算平均分
  4. 找出最高分、最低分
  5. 按成绩排序
  6. 按姓名查询


1. 需求分析

�� 输入:

请输入学生人数:

5

请输入学生姓名和成绩:

Alice 90

Bob 85

Charlie 78

David 92

Eve 88

输出:

平均分:86.6

最高分:92(David)

最低分:78(Charlie)

按成绩排序:

David 92

Alice 90

Eve 88

Bob 85

Charlie 78

请输入查询的学生姓名:

Bob

Bob 的成绩是:85


2. Java 代码

import java.util.*;



public class StudentManager {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        

        // 用 HashMap 存储学生信息

        HashMap<String, Integer> studentScores = new HashMap<>();

        ArrayList<Map.Entry<String, Integer>> sortedList;



        // 输入学生成绩

        System.out.println("请输入学生人数:");

        int n = scanner.nextInt();

        scanner.nextLine(); // 处理换行符



        System.out.println("请输入学生姓名和成绩:");

        for (int i = 0; i < n; i++) {

            String name = scanner.next();

            int score = scanner.nextInt();

            studentScores.put(name, score);

        }



        // 计算平均分

        int sum = 0, maxScore = Integer.MIN_VALUE, minScore = Integer.MAX_VALUE;

        String maxStudent = "", minStudent = "";



        for (Map.Entry<String, Integer> entry : studentScores.entrySet()) {

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值