Java学习--学生管理系统(残破版)

代码

Main.java

import java.util.ArrayList;
import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();loop:while (true) {System.out.println("-----欢迎来到阿宝院校学生管理系统-----");System.out.println("1.添加学生");System.out.println("2.删除学生");System.out.println("3.修改学生");System.out.println("4.查询学生");System.out.println("5.退出系统");System.out.println("请输入您的选择:");Scanner sc = new Scanner(System.in);String choose = sc.next();switch (choose) {case "1" -> AddStudent(list);case "2" -> DeleteStudent(list);case "3" -> UpdateStudent(list);case "4" -> LookStudent(list);case "5" -> {System.out.println("退出!");break loop;}default -> System.out.println("没有这个选项!");}}}// 添加学生public static void AddStudent(ArrayList<Student> list) {System.out.println("添加学生!");Student s = new Student();Scanner sc = new Scanner(System.in);System.out.println("请录入id:");while (true) {String id = sc.next();boolean soleIds = soleId(list, id);if (soleIds) {System.out.println("该id已经存在!");} else {s.setId(id);break;}}System.out.println("请输入姓名:");String name = sc.next();s.setName(name);System.out.println("请输入年龄:");int age = sc.nextInt();s.setAge(age);System.out.println("请输入家庭住址:");String address = sc.next();s.setAddress(address);list.add(s);}//删除学生的信息public static void DeleteStudent(ArrayList<Student> list) {System.out.println("请输入要删除的学生id:");Scanner sc = new Scanner(System.in);String id = sc.next();// 查询有没有这个学生int indexValue = getIndex(list, id);if (indexValue >= 0) {list.remove(indexValue);System.out.println("删除成功!");} else {System.out.println("该id不存在!");}}//修改学生的信息public static void UpdateStudent(ArrayList<Student> list) {System.out.println("请输入要修改的学生id:");Scanner sc = new Scanner(System.in);String id = sc.next();// 查询有没有这个学生Boolean values = soleId(list, id);int indexValue = getIndex(list, id);if (values) {Student stu = list.get(indexValue);System.out.println("请输入要修改的姓名:");String name = sc.next();stu.setName(name);System.out.println("请输入要修改的年龄:");int age = sc.nextInt();stu.setAge(age);System.out.println("请输入要修改的家庭住址:");String address = sc.next();stu.setAddress(address);System.out.println("修改成功!");} else {System.out.println("该id不存在!");}}//查询学生的信息public static void LookStudent(ArrayList<Student> list) {//如果没有学生if (list.isEmpty()) {System.out.println("当前暂无学生,请先添加后再查询!");return;}System.out.println("id\t姓名\t年龄\t家庭住址");for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());}}//判断id是否唯一public static Boolean soleId(ArrayList<Student> list, String id) {for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);String ids = stu.getId();if (ids.equals(id)) {return true;}}return false;}//获取集合中的索引public static int getIndex(ArrayList<Student> list, String id) {for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);String ids = stu.getId();if (ids.equals(id)) {return i;}}return -1;}
}

Student.java

public class Student {private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}/*** 获取* @return address*/public String getAddress() {return address;}/*** 设置* @param address*/public void setAddress(String address) {this.address = address;}}

效果图

主界面

增加和查询

删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化图文报表

Apache Echarts介绍 Apache Echarts是一款基于Javascript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网&#xff1a;Apache ECharts 入门案例&#xff1a; <!DOCTYPE html> <html>…

flutter build ipa 打包比 xcode archive 打出的ipa包大

为什么 flutter build ipa 打包比 xcode archive 打出的ipa包大&#xff1f; 如果你用Flutter构建的.ipa文件比通过Xcode Archive构建的.ipa文件要大&#xff0c;这可能是因为Flutter构建了一个包含了多平台的二进制文件的通用包。这意味着在Flutter构建的.ipa中包含了所有的C…

C#,弗洛伊德-瑞文斯特(Floyd-Rivest)算法与源代码

Robert W. Floyd 1 Floyd-Rivest 算法 Floyd-Rivest 算法是一种选择算法&#xff0c;用于在不同元素的数组中找到第k个最小元素。它类似于快速选择算法&#xff0c;但在实际运行中有更好的运行时间。 和 QuickSelect 一样&#xff0c;该算法基于分区的思想工作。对数组进行分…

济南适宜地提取

题目: 网上下载中国的DEM、土地利用地图(1980、2000、2015年的)和一张最新济南市行政区划 图(要求:莱芜市并入济南后的区划图); 2.网上下载中国2015年年平均降水空间插值数据;3..网上下载中国2015年年平均气温空间插值数据; (注:以上数据可到资源环境科学与数据中心下载http…

51单片机 串口

一、串口基本认知概念 串口是一种用于在计算机或其他设备之间进行数据传输的通信接口。串口传输是通过发送和接收数据位来进行的&#xff0c;通常是一个字节一个字节地传输。串口通常有多种参数设置&#xff0c;比如波特率、数据位、校验位和停止位等&#xff0c;这些参数需要…

服务器感染了.Elbie勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 今天将和大家分享一个备受关注的话题&#xff1a;Elbie勒索病毒。它不仅是数字世界中的恶梦&#xff0c;更是我们数据安全的宿敌。但是&#xff0c;别担心&#xff0c;我将为你揭开它的面纱&#xff0c;并提供如何挽救被它锁定的数据以及预防的方法。如果您正…

【Docker】安装及相关的命令

目录 一 Docker简介 1.1 是什么 1.2 优缺点 1.3 应用场景 1.4 安装 二 命令 2.1 Docker基本命令 2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介 1.1 是什么 Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言实现&#xff0c;并利用操作系统本身已有的…

【QT+QGIS跨平台编译】之五十四:【QGIS_CORE跨平台编译】—【qgssqlstatementlexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

电机控制----电机极对数的作用

电机控制----电机极对数的作用 1. 电机极对数的概念和含义 电机的极对数是指电机运动部件磁场南、北极之间相邻的个数。简单来说&#xff0c;电机极对数就是电机磁极的数量。一般情况下&#xff0c;电机极对数越多&#xff0c;电机的转速越慢&#xff0c;但是转矩越大&#xf…

状态机2——————

1.原理 2.代码 2.1 complex_fsm.v module complex_fsm(input wire sys_clk ,input wire sys_rst_n ,input wire pi_money_half ,input wire pi_money_one ,output reg po_cola ,output reg po_money );parameter IDLE 5b00001,HALF 5b00010,ONE 5b00100…

算法竞赛实用板子

一、声明 自用版参考acwing&#xff0c;致力于实用、好用&#xff0c;板子中有个人理解&#xff0c;持续更新。 二、开板 1.快排 void quick_sort(int q[],int l,int r) {if(l>r)return; //出口int il-1,jr1,xq[lr>>1]; //分治方法while(i<j){do i;w…

k8s(6)

目录 一.kubectl 命令行管理K8S 陈述式资源管理方式&#xff08;可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作&#xff09; service的4的基本类型&#xff1a; service的端口 应用发布策略&#xff1a; 声明式资源管理方式&#xff08;可理解成使用…

spring boot 自定义注解封装(@RequestLimit注解)

描述&#xff1a; RequestLimit(time3)防重复点击&#xff0c;限制单个会话的请求频率。但是 RequestLimit注解中的参数不能传常量。 例如&#xff1a;不能通过获取application.yml文件中的配置信息&#xff0c;去动态配置限制时间&#xff0c;所以就对RequestLimit注解封装。 …

Go语言反射(reflect)

反射是应用程序检查其所拥有的结构&#xff0c;尤其是类型的一种能。每种语言的反射模型都不同&#xff0c;并且有些语言根本不支持反射。Go语言实现了反射&#xff0c;反射机制就是在运行时动态调用对象的方法和属性&#xff0c;即可从运行时态的示例对象反求其编码阶段的定义…

LeetCode_21_简单_合并两个有序链表

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 递归2.2 迭代 1. 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a; l 1 [ 1 , 2 , 4 ] , l 2 [ 1 , 3 …

MongoDB聚合运算符:$cmp

文章目录 语法用法举例 $cmp聚合运算符返回连个值的比较结果。 语法 { $cmp: [ <expression1>, <expression2> ] }表达式可以是任何类型&#xff0c;使用标准的BSON比较顺序对不同类型的值进行比较。 用法 $cmp对两个值进行比较&#xff0c;返回&#xff1a; …

SQL注入漏洞解析-less-8(布尔盲注)

我们来看一下第八关 当我们进行尝试时&#xff0c;他只有You are in...........或者没有显示。 他只有对和错显示&#xff0c;那我们只能用对或者错误来猜他这个数据库 ?id1%27%20and%20ascii(substr(database(),1,1))>114-- ?id1%27%20and%20ascii(substr(database(),1,…

[WebUI Forge]ForgeUI的安装与使用 | 相比较于Auto1111 webui 6G显存速度提升60-75%

ForgeUI的github主页地址:https://github.com/lllyasviel/stable-diffusion-webui-forge Stable Diffusion WebUI Forge 是一个基于Stable Diffusion WebUI(基于Gradio)的平台,可简化开发、优化资源管理并加快推理速度。 “Forge”这个名字的灵感来自于“Minecraft Forge”…

Spring MVC HandlerMapping原理解析

在Spring MVC框架中&#xff0c;HandlerMapping是一个核心组件&#xff0c;负责将客户端的请求映射到相应的处理器&#xff08;Handler&#xff09;。理解HandlerMapping的原理对于掌握Spring MVC的请求处理机制至关重要。本文将对HandlerMapping的原理进行详细分析&#xff0c…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本 (2)

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下&#xff1a; mysql> select * from emp; ----------------------------…