Java语言实现学生管理系统

目录

题目

代码展示

学生类

方法类

main类

运行展示​编辑


题目

学生管理
设计一个学生信息管理系统,有添加学生,查询学生,删除学生等功能.
要求:1.设计一个类学生类,学生属性有学号,姓名,性别(属性私有权限)  用来存储学生的信息
要求2:实现对学生信息的增删查操作
要求3:使用一个数组存储学生信息,数组上限定为30即可.


启动程序后输出一个菜单让用户选择操作:1.添加学生,2-删除学生,3.查询学生,4-退出
选择添加学生在控制台依次输入学号,姓名,性别等信息,将学生信息存储到一个学生对象中,并将学生对象存储到数组中,数组容量定为30.
删除时,必须输入学号,如果学号对应的学生存在,从数组中删除该学生信息
点击查询时,必须输入学号,如果学号对应的学生存在,输出学生信息即可

代码展示

学生类

package com.ffyc.javaopp.zy.zy4.T4;/*学生类,主要作用,存储学生信息*/
public class Student {private int num;private String name;private String gender;public int getNum() {return num;}public void setNum(int num) {this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Student{" +"num=" + num +", name='" + name + '\'' +", gender='" + gender + '\'' +'}';}
}

方法类

package com.ffyc.javaopp.zy.zy4.T4;import java.util.Scanner;/*学生信息管理类在此类中,可以有添加,删除,查询学生信息等功能*/
public class StudentManage {static Scanner scanner = new Scanner(System.in);Student[] students = new Student[30];//[null,null,null]int size = 0;/*管理系统主方法*/public void menu(){loop:while(true){System.out.println("用户选择操作: 1.添加学生,2-删除学生,3.查询学生,4-退出");int item = scanner.nextInt();switch (item){case 1: this.add(); break;case 2: this.delete(); break;case 3: this.search(); break;case 4:  break loop;}}}/*添加*/public void add(){if(size == students.length){System.out.println("满了");return;}else{Student student = new Student();System.out.println("输入学号");student.setNum(scanner.nextInt());System.out.println("输入姓名");student.setName(scanner.next());System.out.println("输入性别");//将学生信息存入学生数组中student.setGender(scanner.next());students[size++]=student;}}/*删除*/public void delete(){System.out.println("输入学号");int num = scanner.nextInt();//数组进行遍历int index = -1;for(int i = 0;i<size;i++){if(students[i].getNum()==num) {students[i] = null;size--;index = i;//将第index后面的学生向前移动for(int j = index;j<size;j++){students[j]=students[j+1];}}}if(index == -1){System.out.println("不存在");}}/*查询*/public void search(){System.out.println("输入学号");int num = scanner.nextInt();/*i<size:数组遍历 只需遍历到数组中已经添加入数据的部分,之后的部分无需遍历如果遍历之后没有存入数组的部分,因为没有数据,无法getNum,会报错*/for(int i=0;i<size;i++){if(students[i].getNum()==num){System.out.println(students[i].toString());return;}}System.out.println("不存在");}}

main类

package com.ffyc.javaopp.zy.zy4.T4;/*启动类*/
public class RunStudentManage {public static void main(String[] args) {/*1创建一个学生信息管理系统对象*/StudentManage studentManager = new StudentManage();studentManager.menu();}
}

运行展示

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

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

相关文章

SpringBoot:数据访问-整合 Druid 配置数据源监控

点击查看数据访问demo&#xff1a;LearnSpringBoot06DataJdbc 点击查看更多的SpringBoot教程 简介 Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。 一、添加druid-spring-boot-starter依赖 点击查询最新版 <dependency&g…

Redis高并发分布锁实战

Redis高并发分布锁实战 问题场景 场景一: 没有捕获异常 // 仅仅加锁 // 读取 stock15 Boolean ret stringRedisTemplate.opsForValue().setIfAbsent("lock_key", "1"); // jedis.setnx(k,v) // TODO 业务代码 stock-- stringRedisTemplate.delete(&quo…

第三百六十五回

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取时间戳"相关的内容&#xff0c;本章回中将介绍dio中的通用请求.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在前面章回中介绍了如何使用dio库发起网络…

项目打包提示一堆 ts 类型错误问题解决

问题 vue3 ts 项目在打包的过程中报了一大堆 ts 类型错误提示&#xff0c;如下图所示&#xff1a; 报错&#xff1a;Could not find a declaration file for module … implicitly has an ‘any’ type. 解决方法 查看 package.json 文件&#xff0c;可以看到&#xff0c;默…

物麒平台根据入耳出耳状态使能或禁止触摸按键实现方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资 料, 1 消息发送 2 消息处理 3 宏开关 4 代码 #include "app_main.h" #include &q…

代码随想录算法训练营29期Day61|LeetCode 739,496

文档讲解&#xff1a;每日温度 下一个更大元素I 739.每日温度 题目链接&#xff1a;https://leetcode.cn/problems/daily-temperatures/description/ 思路&#xff1a; 维护一个单调递减的栈就行了。 一次读取一个数组中的元素&#xff0c;将其与栈顶元素比较&#xff0c;如…

Sqli-labs靶场第11关详解[Sqli-labs-less-11]

Sqli-labs-Less-11 前言&#xff1a; SQL注入的三个条件&#xff1a; ①参数可控&#xff1b;&#xff08;从参数输入就知道参数可控&#xff09; ②参数过滤不彻底导致恶意代码被执行&#xff1b;&#xff08;需要在测试过程中判断&#xff09; ③参数带入数据库执行。&…

杀疯啦!yolov9+bytetrack的目标跟踪实现

目录 YOLOV9介绍 bytetrack介绍&#xff1a; yolov9结合bytetrack实现目标跟踪 效果展示 训练与预测 UI设计 其他功能展示 完整代码实现UI界面 此次yolov9bytetrack不论是准确率还是稳定性&#xff0c;都超越了之前的yolobytetrack系列。 YOLOV9介绍 在目标检测…

Jitsi Meet 大型视频会议调优方案

jitsi meet 大型视频会议调优方案 在举办一些大型会议的时候,比如100个人会议,为了节约宽带和节省资源,我们并不会选择传输全部的音视频资源。 举个例子,比如100个人线下会议,如果大家都说话的情况下,大家要么听不清,要么听得是声音最大的那几个人。 视频会议也可以借…

VMware的三种连接模式

桥接模式 就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下&#xff0c;类似于把物理主机虚拟为一个交换机&#xff0c;所有桥接设置的虚拟机连接到这个交换机的一个接口上&#xff0c;物理主机也同样插在这个交换机当中&#xff0c;所以所有桥接下的网…

xss靶场实战(xss-labs-master靶场)

xss-labs-master靶场链接&#xff1a;https://pan.baidu.com/s/1X_uZLF3CWw2Cmt3UnZ1bTw?pwdgk9c 提取码&#xff1a;gk9c xss-labs level 1 修改 url 地址中的name<script>alert(1)</script>&#xff0c;便可以通关 level 2 在搜索框中输入的 JS 代码无法执行 …

微服务-微服务Spring Security OAuth 2实战

1. Spring Authorization Server 是什么 Spring Authorization Server 是一个框架&#xff0c;它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。它建立在 Spring Security 之上&#xff0c;为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产…