java:学生管理系统

一、介绍

该功能是实现学生信息的添加,查看,修改,删除以及退出系统的简单操作。

二、代码实现

public class Student {private String sid;//学号private String name;//姓名private String age;//年龄private String address;//地址public Student() {}public Student(String sid, String name, String age, String address) {this.sid = sid;this.name = name;this.age = age;this.address = address;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

public class StudentManage {/** 1.用输出语句完成界面的编写* 2.用Scanner实现键盘录入* 3.用switch语句完成操作的选择* 4.用循环完成再次回到主界面** */public static void main(String[] args) {//创建集合对象,用于存储学生数据ArrayList<Student> array = new ArrayList<>();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实现键盘录入Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作选择switch (line) {case "1":
//                    System.out.println("添加学生");addStudent(array);break;case "2":
//                    System.out.println("删除学生");delectStudent(array);break;case "3":
//                    System.out.println("修改学生");updataStudent(array);break;case "4":
//                    System.out.println("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用!");return;//这里使用return或者是System.exit(0)(这句代码表示java虚拟机(jvm)退出)}}}//定义一个方法,用于添加学生信息public static void addStudent(ArrayList<Student> array) {//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息Scanner sc = new Scanner(System.in);//为了让程序在while循环外面被访问到,我们就把它定义在外面String sid;//为了让程序能够回到这里,我们使用循环实现while (true) {System.out.println("请输入学生学号:");sid = sc.nextLine();boolean flag = isUsed(array, sid);if (flag) {System.out.println("你输入的学号已经被使用,请重新输入!");} else {break;}}System.out.println("请输入学生姓名:");String name = sc.nextLine();System.out.println("请输入学生年龄:");String age = sc.nextLine();System.out.println("请输入学生居住地:");String address = sc.nextLine();//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//将学生对象添加到集合中array.add(s);//给出添加成功的提示System.out.println("添加学生成功!");}//定义一个方法,判断学号是否被调用public static boolean isUsed(ArrayList<Student> array, String sid) {//如果与集合中的某一个学号相同,返回true;如果都不同,返回falseboolean flag = false;for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getSid().equals(sid)) {flag = true;break;}}return flag;}//定义一个方法,用于查看学生信息public static void findAllStudent(ArrayList<Student> array) {//判断集合中是否有数据,如果没有显示提示信息if (array.size() == 0) {System.out.println("无信息,请先添加信息再查询!");return;//为了让程序不在往下执行。给出return}//显示表头信息//\t其实是tab键的位置System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");//将集合中数据取出按照对应格式显示学生信息,年纪显示补充”岁“for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());}}//定义一个方法,用于删除学生信息
//    public static void delectStudent(ArrayList<Student> array) {
//        //键盘录入要删除的学生学号,显示提示信息
//        Scanner sc = new Scanner(System.in);
//
//        System.out.println("请输入你要删除的学生学号:");
//        String sid = sc.nextLine();
//
//        //遍历集合将对应学生对象从集合中删除
//        for (int i = 0; i < array.size(); i++) {
//            Student s = array.get(i);
//            if (s.getSid().equals(sid)) {
//                array.remove(i);
//                break;
//            }
//        }
//        //给出删除成功提示
//        System.out.println("删除学生成功!");
//    }//定义一个方法,用于删除学生信息public static void delectStudent(ArrayList<Student> array) {//键盘录入要删除的学生学号,显示提示信息Scanner sc = new Scanner(System.in);System.out.println("请输入你要删除的学生学号:");String sid = sc.nextLine();int index = -1;for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getSid().equals(sid)) {index = i;break;}}if (index == -1) {System.out.println("该信息不存在,请重新输入!!");} else {array.remove(index);//给出删除成功的提示System.out.println("删除学生成功!");}}//定义一个方法,用于修改学生信息public static void updataStudent(ArrayList<Student> array) {//键盘录入要修改的学生学号,显示提示信息Scanner sc = new Scanner(System.in);System.out.println("请输入你要修改的学生的学号:");String sid = sc.nextLine();//键盘录入要修改的学生信息System.out.println("请输入学生新姓名:");String name = sc.nextLine();System.out.println("请输入学生新年龄:");String age = sc.nextLine();System.out.println("请输入学生新地址:");String address = sc.nextLine();//创建学生对象Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应的学生信息for (int i = 0; i < array.size(); i++) {Student student = array.get(i);if (student.getSid().equals(sid)) {array.set(i, s);break;}}//给出修改成功的提示System.out.println("修改学生信息成功!");}}

运行结果

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

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

相关文章

通过NFS 实现windows共享linux目录

一、配置WIndows 1.进入程序和功能 2.勾选NFS服务&#xff0c;安装客户端 二、安装NFS Service 在ubuntu 1.查看apt源是否存在nfs服务端安装包 sudo apt-cache madison nfs-kernel-server 2. 安装nfs-kernel-server sudo apt install nfs-kernel-server 3.建立共享目录&…

Compose UI 之 BottomAppBar 底部应用栏

BottomAppBar 底部应用栏 BottomAppBar 是一个在 Jetpack Compose 中用于创建底部应用栏的组件。它提供了一个高度可定制且功能丰富的底部导航解决方案。 它的使用方式与 TopAppBar 类似。下面的图是 BottomAppBar 的基本样式图。 常见使用场景 BottomAppBar 在应用中常用于…

代码随想录算法训练营第22天 | 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 题目链接 235. 二叉搜索树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; 思路 因为二叉搜索树是有序的&#xff0c;那么就可以向二分法一样去有向的搜索。 //---------------------------递归法---------------------------// cl…

人工智能课题、模型源码

人工智能研究生毕业&#xff5e;深度学习、计算机视觉、时间序列预测&#xff08;LSTM、GRU、informer系列&#xff09;、python、人工智能项目代做和指导&#xff0c;各种opencv图像处理、图像分类模型&#xff08;vgg、resnet、mobilenet、efficientnet等&#xff09;、人脸检…

ESD静电测试闸机-筑成电子厂防静电管理的第一道防线

ESD静电测试闸机是一种用于防止静电对电子产品和设备造成损害的重要设备。在电子厂等对静电敏感的场所&#xff0c;ESD静电测试闸机扮演着防静电管理的第一道防线的角色&#xff0c;确保生产环境的安全和产品质量的稳定。本文将从静电监测和消除、刷卡/身份证认证、指纹/人脸识…

Tengine编译安装

首先下载源码 可以去官网&#xff1a;The Tengine Web Server 当前最新版地址&#xff1a;https://tengine.taobao.org/download/tengine-3.1.0.tar.gz 安装编译依赖 yum -y install gcc pcre-devel zlib-devel openssl-devel libxml2-devel \libxslt-devel gd-devel GeoIP…

Java的锁机制,线程池机制在项目中应用

Java的锁机制是Java多线程编程中用于保护共享资源的一种机制。Java提供了多种类型的锁&#xff0c;包括synchronized关键字和Lock接口。 synchronized关键字&#xff1a;synchronized关键字可以用于方法或代码块级别的同步。当一个线程进入synchronized块时&#xff0c;它将获得…

一款前端开发工具Hbuilder

背景&#xff1a;最近日在接触前同事留下的一个VUE项目&#xff08;只有前端代码&#xff0c;后台服务压根没写真不知道以前是怎么糊弄过去的&#xff09;时&#xff0c;发现一款可以快速开发前端的软件&#xff1b;今日分享一下。 当我打开项目时发现&#xff0c;有个app.vue…

【Cookie和Session辨析】

1.cookie 1.1什么是cookie Cookie 是一种在客户端&#xff08;通常是 Web 浏览器&#xff09;和服务器之间传递信息的机制&#xff0c;用于在客户端存储少量的数据。它由服务器发送到客户端浏览器&#xff0c;然后浏览器会将这些数据存储在本地&#xff0c;并在后续的请求中将…

WPF 触发器

触发器 WPF的 Trigger 是一种用于定义和管理 XAML 资源的触发器&#xff0c;它可以根据不同的条件或事件来改变控件的属性或行为。 以下是触发器的类型 基本触发器(Trigger): 这种触发器是根据控件自身的依赖属性的值来触发的&#xff0c;例如&#xff0c;当鼠标移动到按钮上…

什么是API签名认证?

什么是API签名认证 一种用于验证API请求合法性的安全机制&#xff0c;它通过使用密钥和算法为每个请求生成一个唯一的签名值来确保数据的安全传输和访问控制。 以下是API签名认证的一些关键点&#xff1a; AppKey分配&#xff1a;为客户端或用户分配一个独特的AppKey&#x…

解决安装PyMuPDF(也被称为fitz库)的问题(可成功安装且使用)

解决安装PyMuPDF&#xff08;也被称为fitz库&#xff09;的问题&#xff08;可成功安装且使用&#xff09; 安装方法&#xff1a;一些安装时报错的原因解析&#xff1a;报错1&#xff1a;报错2&#xff1a;报错3-无效的分发包警告&#xff1a;报错4&#xff1a; 使用实例 在使用…

SpringBoot异常:Unsatisfied dependency expressed through field ‘mapper‘解决办法

在创建SpringBoot项目时&#xff0c;项目页面报错&#xff0c;显示Bean错误时&#xff0c;原因是底层原因无法找到Mapper文件的依赖关系&#xff0c;导致Spring无法自动装配 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean …

电子学会 2023.03 Python 3级(yanpuxin)

十进制数111转换成二进制数是&#xff1f; 1、十进制数111转换成二进制数是&#xff1f;&#xff08; &#xff09; A 111 B 1111011 C 101111 D 1101111 正确答案:D 试题解析: 十进制转二进制&#xff0c;采用除二倒取余数&#xff0c;直到商为0为止。 2、某班有36人…

YOLO v8:目标检测的最新王者

本文来自公众号“AI大道理” —————— Yolov8是Yolo系列模型的最新王者&#xff0c;各种指标全面超越现有目标检测模型。 Yolov8借鉴了Yolov5、Yolov6、YoloX等模型的设计优点&#xff0c;全面改进了Yolov5模型结构&#xff0c;同时保持了Yolov5工程化简洁易用的优势。 …

hex文件格式解析

本文框架 1. hex文件格式1.1 数据长度1.2 地址域1.3 数据类型1.4 数据域1.5 CRC校验域 本文对hex文件格式进行解析&#xff0c;介绍各部分组成及其含义&#xff0c;在此mark下&#xff0c;方便后续开发脚本对hex文件进行操作。 1. hex文件格式 Intel HEX文件是由一行行符合Int…

Vue3调用钉钉api,内嵌H5微应用单点登录对接

钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…

揭秘阿里巴巴中国站1688商品详情API的奥秘:如何高效获取数据?

阿里巴巴中国站1688并没有公开的商品详情API供普通开发者使用。其API主要服务于官方应用、合作伙伴和内部使用。对于普通的第三方开发者或商家&#xff0c;获取1688的商品详情数据通常需要通过爬虫技术或官方的数据服务接口&#xff08;如果有的话&#xff09;。 但请注意&…

使用vscode+clangd+bear+publickeyssh远程开发Linux程序

目录 配置ssh密钥远程登录登录远程Linux主机安装必要软件安装vscode插件1.安装remote-ssh插件2.通过vscode远程连接到linux机器3.在远程安装插件clangd4.关闭C/C Intellense engine 使用vscodeclangdbear1.修改Makefile2.编译内核3.结果 配置ssh密钥远程登录 一定要配置成密钥…

MyBatis 之四:结果映射和关联映射

结果映射 当查询的 SQL 中&#xff0c;出现了表字段名和实体类属性名不一致情况时&#xff0c;需要指定映射关系 常见方式&#xff1a; 使用 SQL 的 AS 别名方式ResultMap 方式 普通属性映射配置 第一步&#xff1a;编写结果映射 <resultMap id"empMap" type&qu…