当前位置: 首页 > news >正文

哪里有南宁网站建设天河区建设和水务局网站

哪里有南宁网站建设,天河区建设和水务局网站,百度查重,高密做网站文章目录 1. 项目需求分析2. 项目设计3. 代码分析4. 运行示例5. 今日学习总结6. 今日生词 今日学习计划 1. 项目需求分析 功能要求: (1)存储学生信息: 使用 HashMap 存储学生信息(学号作为键,Student 对象作为值)。 …

文章目录

  • 1. 项目需求分析
  • 2. 项目设计
  • 3. 代码分析
  • 4. 运行示例
  • 5. 今日学习总结
  • 6. 今日生词

今日学习计划
在这里插入图片描述

1. 项目需求分析

功能要求:
(1)存储学生信息:

  • 使用 HashMap 存储学生信息(学号作为键,Student 对象作为值)。
    (2)操作学生数据:
  • 添加学生(姓名、学号、成绩)。
  • 删除学生(按学号删除)。
  • 查询学生(按学号查询)。
  • 显示所有学生信息。
    (3)异常处理:
  • 防止重复添加(如果学号已存在,抛出异常)。
  • 查询/删除不存在的学号(抛出异常)。
  • 输入格式错误(如非数字学号,捕获 NumberFormatException)。
  • 无效成绩范围(自定义异常 InvalidScoreException)。

2. 项目设计

(1) 学生类(Student)
包含:学号、姓名、成绩,并提供构造方法和 toString() 便于显示。

class Student {private String id;private String name;private int score;public Student(String id, String name, int score) {this.id = id;this.name = name;this.score = score;}public String getId() { return id; }public String getName() { return name; }public int getScore() { return score; }@Overridepublic String toString() {return "学号:" + id + ", 姓名:" + name + ", 成绩:" + score;}
}

(2) 自定义异常类(InvalidScoreException)
当成绩不在 0~100 之间时抛出异常

class InvalidScoreException extends Exception {public InvalidScoreException(String message) {super(message);}
}

(3) 学生管理类(StudentManager)
使用 HashMap<String, Student> 存储学生数据。
提供增删查改方法,加入异常处理。

import java.util.HashMap;
import java.util.Scanner;class StudentManager {private HashMap<String, Student> studentMap = new HashMap<>();// 添加学生public void addStudent(String id, String name, int score) throws InvalidScoreException {if (studentMap.containsKey(id)) {throw new IllegalArgumentException("学号 " + id + " 已存在!");}if (score < 0 || score > 100) {throw new InvalidScoreException("成绩必须在 0 到 100 之间!");}studentMap.put(id, new Student(id, name, score));System.out.println("学生添加成功!");}// 删除学生public void removeStudent(String id) {if (!studentMap.containsKey(id)) {throw new IllegalArgumentException("学号 " + id + " 不存在!");}studentMap.remove(id);System.out.println("学生删除成功!");}// 查询学生public void searchStudent(String id) {if (!studentMap.containsKey(id)) {throw new IllegalArgumentException("学号 " + id + " 不存在!");}System.out.println(studentMap.get(id));}// 显示所有学生public void displayAllStudents() {if (studentMap.isEmpty()) {System.out.println("当前没有学生数据!");} else {studentMap.values().forEach(System.out::println);}}
}

(4) 交互逻辑(主类 Main)
提供菜单交互。
异常处理,防止用户输入错误。

import java.util.Scanner;public class Main {public static void main(String[] args) {StudentManager manager = new StudentManager();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("\n=== 学生信息管理系统 ===");System.out.println("1. 添加学生");System.out.println("2. 删除学生");System.out.println("3. 查询学生");System.out.println("4. 显示所有学生");System.out.println("5. 退出");System.out.print("请选择操作: ");try {int choice = Integer.parseInt(scanner.nextLine());switch (choice) {case 1:System.out.print("输入学号: ");String id = scanner.nextLine();System.out.print("输入姓名: ");String name = scanner.nextLine();System.out.print("输入成绩: ");int score = Integer.parseInt(scanner.nextLine());manager.addStudent(id, name, score);break;case 2:System.out.print("输入要删除的学号: ");manager.removeStudent(scanner.nextLine());break;case 3:System.out.print("输入要查询的学号: ");manager.searchStudent(scanner.nextLine());break;case 4:manager.displayAllStudents();break;case 5:System.out.println("程序退出!");return;default:System.out.println("无效输入,请重新选择!");}} catch (NumberFormatException e) {System.out.println("输入格式错误,请输入正确的数字!");} catch (InvalidScoreException e) {System.out.println("错误:" + e.getMessage());} catch (IllegalArgumentException e) {System.out.println("错误:" + e.getMessage());}}}
}

3. 代码分析

功能关键实现异常处理
存储学生信息HashMap<String, Student>-
添加学生addStudent()1. 学号重复 → IllegalArgumentException 2. 成绩范围错误 → InvalidScoreException
删除学生removeStudent()学号不存在 → IllegalArgumentException
查询学生searchStudent()学号不存在 → IllegalArgumentException
防止输入错误try-catch 捕获 NumberFormatException-

4. 运行示例

=== 学生信息管理系统 ===
1. 添加学生
2. 删除学生
3. 查询学生
4. 显示所有学生
5. 退出
请选择操作: 1
输入学号: 1001
输入姓名: 张三
输入成绩: 105
错误:成绩必须在 0 到 100 之间!请选择操作: 1
输入学号: 1001
输入姓名: 张三
输入成绩: 90
学生添加成功!请选择操作: 3
输入要查询的学号: 1001
学号:1001, 姓名:张三, 成绩:90请选择操作: 2
输入要删除的学号: 1002
错误:学号 1002 不存在!

5. 今日学习总结

  • 集合框架

    • 使用 HashMap<String, Student> 存储学生信息。
    • (List 和 Set 可用于扩展功能(如 ArrayList 存储多个成绩)。
  • 异常处理

    • 输入异常:NumberFormatException(防止用户输入非数字)。
    • 自定义异常:InvalidScoreException(确保成绩合法)。
    • 逻辑异常:IllegalArgumentException(防止重复或无效学号)。
  • 面向对象设计

    • Student 类 代表学生信息。
    • StudentManager 类 负责学生数据管理。

6. 今日生词

1.advanced 2.decisions 3.snippet 4.hesitating 5.lightspeed

http://www.dtcms.com/a/406579.html

相关文章:

  • Cadence Allegro 电子设计 快问快答--03.OrCAD颜色在哪里设置?
  • 自己做的网站怎么上排行榜设计广告专业制作
  • 网站页面下沉的特效代码山西seo推广系统
  • S7-200 SMART GET/PUT 指令深度解析:从参数到故障排查(S7 协议的客户端 - 服务器通信)下
  • 做国外网站翻译中国小说赚钱外贸推广软件有哪些
  • 二次封装科技风大屏element-ui弹窗
  • 【JavaScript 性能优化实战】第六篇:性能监控与自动化优化
  • 沃地泰双奖加冕2025农机大奖,以创新科技赋能智慧农业
  • Spring + Spring MVC + MyBatis
  • 酒店 深圳 网站制作如何找外包网站来做
  • 雪碧图动画实例
  • 总结之webpack
  • 义乌市建设局网站河南建设工程信息网官网洛阳至信阳省道
  • 实时云渲染云推流平台配置Redis、MySQL端口,解决中间件端口冲突
  • 网站建设会议记录增城住房和建设局网站
  • shell编程:sed - 流编辑器(6)
  • Kubernetes ConfigMap 深度解析:配置管理的核心实践Kubernetes Secret 深度解析:敏感配置的安全管理实践
  • 如何实现多人协同文档编辑器
  • 备案ip 查询网站wordpress 分类全文
  • 桂林市建设局网站网站建设招聘
  • 5G x 工业应用:探索德承工控机在5G工业应用中所扮演的关键角色
  • 队列+宽搜(BFS)-662.二叉树最大宽度-力扣(LeetCode)
  • 【C++实战㊷】C++ 原型模式实战:从概念到高效应用
  • MCP 安全“体检” | AI 驱动的 MCP 安全扫描系统
  • 股票跟单网站开发长沙网站建设推广服务
  • 谷城网站制作wordpress给用户推送消息
  • (16)ASP.NET Core2.2 通用主机(HostBuilder)
  • .NET Core报错解决【无废话上操作】
  • python+springboot+uniapp基于微信小程序的农村事务管理与交流系统
  • React 进阶优化概念(6 个)——从能写组件到写好组件(下)| 葡萄城技术团队