Java实现学生管理系统(完整代码)

article/2025/9/28 10:05:45

案例需求

完成一个综合案例:学生管理系统!该系统主要功能如下:

添加学生:通过键盘录入学生信息,添加到集合中

删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除

修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改

查看学生:将集合中的学生对象信息进行展示

      退出系统:结束程序 

项目演示:

 实现步骤:

(1):定义学生类,包含以下成员变量

学生类: Student成员变量: 学号:sid

姓名:name

年龄:age

生日:birthday 构造方法:

无参构造

带四个参数的构造成员方法:

每个成员变量对应给出get/set方法

(2):主界面的代码编写

 (3):添加学生功能代码的编写

 (4):查找学生功能代码的编写

(5):删除学生功能代码的编写

 (6):修改学生功能代码的编写

 代码如下:

学生类:

package com.company;
/*学生类Alt+Insert 根据自己的需要进行选择*/public class Student {//学号private String sid;//姓名private String name;//年龄private String age;//生日private String birthday;public Student() {}public Student(String sid, String name, String age, String birthday) {this.sid = sid;this.name = name;this.age = age;this.birthday = birthday;}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 getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}
}

主函数:

package com.company;
/*学生管理系统*/import java.util.ArrayList;
import java.util.Scanner;public class Main {/*1:用输出语句完成主界面的编写2:用Scanner实现键盘录入数据3:用switch语句完成操作的选择4:用循环完成再次回到主界面*/public static void main(String[] args) {//创建集合对象,用于存储学生数据ArrayList<Student> array = new ArrayList<Student>();//用循环再次回到主界面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("删除学生");deleteStudent(array);break;case "3":
//                    System.out.println("修改学生");updateStudent(array);break;case "4"://                   System.out.println("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用");
//                    break;System.exit(0);//JVM退出,退出虚拟机}}}//定义一个方法,用于添加学生信息public static void addStudent(ArrayList<Student>array){//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息Scanner sc = new Scanner(System.in);//为了让 sid 在循环外面被访问到,我们把它定义在循环外面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.setBirthday(address);//将学生对象添加到集合中array.add(s);//给出添加成功提示System.out.println("添加学生成功");}//定义一个方法,判断学号是否被使用public static boolean isUsed(ArrayList<Student>array,String sid){//如果与集合中某一个学生学号相同,返回ture;如果不相同,返回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;}//显示表头信息//\t其实就是tab键的位置System.out.println("学号\t姓名\t\t年龄\t\t生日");//将集合中数据元素取出按照对应格式显示学生信息,年龄显示补充“岁”for (int i=0; i<array.size();i++) {Student s = array.get(i);System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getBirthday());}}//定义一个方法,用于删除学生信息public static void deleteStudent(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("删除学生成功");}//遍历集合将对应学生对象从集合中删除for (int i=0;i<array.size();i++){Student s = array.get(i);if (s.getSid().equals(sid)){array.remove(i);break;}}}//定义一个方法,用于修改学生信息public static void updateStudent(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.setBirthday(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://chatgpt.dhexx.cn/article/uGdx9Diy.shtml

相关文章

Java学生信息管理系统

一、选题设计思想 学生信息管理系统是典型的信息管理系统(MIS)&#xff0c;其开发主要包括后台数据库的建立和维护以及前端应用程序的开发。对于前者要求建立起数据一致性和完整性强、安全性高的数据库&#xff1b;对于后者则要求应用程序具有功能完备、易使用、易维护等特点。…

学生管理系统(Java实现)

一、学生信息管理程序 基本要求&#xff1a; 1&#xff0e;要求实现学生信息的使用添加、查找、删除、修改等几个功能&#xff0c;每个功能模块均能实现从模块中退出&#xff0c;从而完成一个学生管理系统所需功能。 2&#xff0e;要使用结构体来实现对学生信息的存储。 3&am…

【JAVA】学生信息管理系统

目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能 5.学生信息的查看功能 三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总结 前言 JAVA实现的学生信息管理…

Java 学生管理系统(详解)

文章目录 学生类main方法首界面登录功能选择界面添加学生信息删除学生信息修改学生信息查看学生信息 学号遍历 和 清空控制台方法附&#xff1a;学生管理系统代码Student .JavaMain.JavaFunctionModule.javaExtents.Java 总结 下面会分享我在做这个练习时的一些方法以及程序代码…

【超详细】Java实现学生信息管理系统

项目介绍&#xff1a;用java实现学生信息的管理&#xff0c;其中录入的数据包括&#xff1a;学号、姓名、年龄、居住地等&#xff0c;并且能够实现对学生信息的添加、修改、删除、查看功能。 一、创建项目 1、项目名称&#xff1a;myStudentManager 二、创建包 1、包名称&a…

基于JAVA实现的简易学生信息管理系统(附源码)

一、前言 最近在学习JAVA&#xff0c;这几天跟着网上的视频学完基础知识之后&#xff0c;做了一个学生信息管理系统&#xff0c;写的比较普通&#xff0c;没太大亮点&#xff0c;希望可以给初学者一些参考经验&#xff0c;另外&#xff0c;如有不恰当的地方还请各位指正&am…

java学生管理系统(简单版)

简单实现学生信息添加、删除&#xff0c;修改、查询功能。根据需求&#xff0c;创建一个学生类和学生管理类&#xff0c;用容器存储学生信息&#xff0c;这里用到ArrayList<E>(ArrayList类是一个可动态修改的数组&#xff0c;使用之前需要导包import java.util.ArrayList…

Keil打开工程时,解决“Loading PDSC Debug Description Failed”错误

网上搜到一个方法是&#xff0c;把Keil.STM32Lxxx_DFP.pdsc文件中&#xff0c;删除行“Message(2, "Not a genuine ST Device! Abort connection.");”&#xff0c; 这个方法属于掩耳盗铃&#xff0c;只是不让他弹出错误而已。 正确的解决方法是&#xff0c;安装与…

STM32 Keil新建工程报错“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”

在使用STM32L0xx系列和STM32L4xx系列的单片机时都遇到了打开keil工程报“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”错误的问题&#xff0c;具体现象和解决方法如下图文所示&#xff1a; 找到keil的Build Output窗口提示的File路径&#x…

解决Keil安装Pack包的“Loading PDSC Debug Description Failed”错误

vision Loading PDSC Debug Description failed for STMicroelectronics STM32F103ZE Disabling usage of PDSC Debug DescriptionSee Build Output for details. connection.");" 具体的错误信息&#xff0c;可以在Build Output中查看&#xff0c;如下图所示。这个…

Disabling usage of PDSC Debug Description

STM32 Keil新建工程报错“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx” 在使用STM32L0xx系列和STM32L4xx系列的单片机时都遇到了打开keil工程报“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”错误的问题…

Loading PDSC Debug Description failed for STMicroelectronics STM32F103ZF Disabling usage of PDSC Deb

用 STM32F103 软件仿真 &#xff0c;还需要下载安装 STM32F103 pack 文件&#xff0c;如果在 MDK 中下载较慢&#xff0c;也可以点击此处下载&#xff0c;下载后双击安装即可。 当Keil新建或者打开工程出现“ Loading PDSC Debug Description failed for STMicroelectronics S…

PD协议

最近在搞PD充电部分&#xff0c;资料记录下&#xff0c;以前搞了很多项目 也记录了很多文档资料&#xff0c;不过感觉平时喜欢乱打开网站&#xff0c;而那些word文档 经常被放在一个文件夹中&#xff0c;一放就好几年。所以开始在csdn记录自己整理的东西。 定义&#xff1a; U…

N32G45导入芯片包出现Cannot install Pack Nationstech.N32G45x_DFP.1.0.4: Cannot find PDSC file at root direct

Cannot install Pack Nationstech.N32G45x_DFP.1.0.4: Cannot find PDSC file at root directory of Pack archive 最近训练营要求用到国产芯片N32G45X系列的芯片&#xff0c;但是在keil中导入芯片包时出现了以下问题&#xff1a; Cannot install Pack Nationstech.N32G45x_DF…

SDP简介

1 概述 SDP制订的目的是描述多媒体会话&#xff0c;如会话通知、会话邀请或其他发起多媒体会话的形式。 SDP是纯粹的会话的描述格式而不是一个传输协议。它可以使用不同的传输协议&#xff0c;包括会话通知协议&#xff08;SAP&#xff09;、会话初始协议&#xff08;SIP&…

MDK5/KeiluVsion5安装报错“Download of PDSC index file failed”

一、原因一分析&#xff1a; 1.先从字面分析&#xff1a;Download of PDSC index file failed中文意思是PDSC这个索引文件下载错误。首先我们要知道&#xff0c;刚开始安装软件或当你进入Pack Installer界面时&#xff0c;软件会从Keil官网更新下载keil软件所需要的一些芯片包…

Keil5 “Loading PDSC Debug Description Failed for STMicroelectronics STM32Hxxxxxxx”解决办法

最近在学习STM32H750&#xff0c;但是在创建工程的时候就发现了一个问题&#xff0c;如图所示&#xff1a; 虽然不清楚这个问题是否会影响后面编译和烧录&#xff0c;但是感觉有这种警告还是不爽的&#xff0c;所以这里记录一下。 按照这个路径&#xff0c;找到这个pdsc后缀的…

打开Keil.STM32F4xx_DFP.2.13.0提示Cannot copy PDSC file to Download

打开Keil.STM32F4xx_DFP.2.13.0提示Cannot copy PDSC file to “Download” folder 一、问题&#xff1a; keil5安装好后直接安装添加.pack时提示Cannot copy PDSC file to “Download” folder。以为是版本问题或者keil4等在同一个盘中&#xff0c;下了好几个版本又分盘安装&…

sdp详解

SDP文件解析 一、SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议&#xff0c;包括会话通知协议&#xff08;SAP&#xff09;、会话初始协议&#xff08;SIP&#xff09;、实时流协议&#xff08;RTSP&#xff09;、MIME 扩展协…

STM32烧录错误【PDSC: Sequence Execution failed error-Debug access failed - cannot read address 0xE00FFFE】

背景&#xff1a;一开始可以正常烧录&#xff0c;由于写了个文件的代码&#xff0c;编译正常&#xff0c;但是load的时候突然报错……后来换成了本来可以正常烧录的工程发现依然没办法烧录&#xff0c;遂明白自己把板子搞坏了…… 错误提示&#xff1a; Sequence : DebugDevic…