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

article/2025/9/28 10:33:22

一、前言    

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

        学生信息管理系统主要包括:显示学生信息;添加学生信息;查找学生信息;删除学生信息;修改学生信息;按照成绩排序;统计学生总数。其中录入学生的信息包括学号、姓名、性别、年龄、出生日期、学院、成绩。

二、系统主要功能

        学生信息管理系统主要包括:

                1、显示学生信息;

                2、添加学生信息;

                3、查找学生信息;

                4、删除学生信息;

                5、修改学生信息;

                6、按照成绩排序;

                7、统计学生总数;

三、系统主要功能实现

        下面开始介绍代码,主要的代码处都给出了详细注释,如若有不懂的地方,请在评论区留言。

  • 学生信息管理系统功能菜单

        主界面函数代码部分,此函数主要将学生信息管理系统的功能键选择的提示信息打印出来组成了一个简易的登录界面。

实现方法具体如下:

static void show1(){System.out.println("********************************************************");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("**************        6.按照成绩排序        **************");System.out.println("**************        7.统计学生信息        **************");System.out.println("**************        0.退出系统           **************");System.out.println("********************************************************");System.out.print("请选择其功能:");}

实现效果如图所示:

  • 显示学生信息

        此函数是将初始存储的学生信息全部显示出来。

实现方法具体如下:

static void show(){                     //显示学生信息System.out.println("******************************************学生信息表************************************************");System.out.println("序号\t\t\t学号\t\t\t姓名\t\t\t\t性别\t\t\t年龄\t\t\t出生日期\t\t\t学院\t\t\t\t成绩");for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);System.out.println(i + 1 + "\t\t" + student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+student.getAge() + "\t\t\t" +student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());}System.out.println("**************************************************************************************************");}

实现效果如图所示:

  • 添加学生信息

实现方法具体如下:

static void add(){                      //增加学生信息System.out.print("请输入您要添加学生的个数:");int s = sc.nextInt();for (int i = 0; i < s; i++) {System.out.print("请输入您要添加的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {System.out.println("已有此人!");break;}count++;}if (count == students.size()){System.out.print("姓名:");String str1 = sc.next();System.out.print("性别:");String str2 = sc.next();System.out.print("年龄:");String str3 = sc.next();System.out.print("出生日期(yyyy-mm-dd):");String str4 = sc.next();System.out.print("学院:");String str5 = sc.next();System.out.print("成绩:");int str6 = sc.nextInt();Student student = new Student(str,str1,str2,str3,str4,str5,str6);students.add(student);System.out.println("添加成功!");}}}

实现效果如图所示:

  • 查找学生信息

        此函数主要功能是查询时分为按学号查询,若查无此人则输出提示信息。

实现方法具体如下:

static void search(){                          //查找学生信息System.out.print("请输入您要查找的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+ student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());break;}count++;}if (count == students.size()){System.out.println("查无此人!");}}

实现效果如图所示:

  • 删除学生信息

        此函数主要功能是执行删除操作,输入学号进行查找,查找到学生信息之后,对学生信息进行删除。

实现方法具体如下:

static void delete(){                       //删除学生信息System.out.print("请输入您要删除的学号:");String str = sc.next();int a = students.size();int count = 0;for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);if (student.getId().equals(str)){students.remove(i);System.out.println("删除成功!");break;}count++;}if (count == a){System.out.println("查无此人!");}}

实现效果如图所示:

  • 修改学生信息

        此函数的主要功能是对学生信息进行修改,当输入学号后,查询到学生信息之后,对学生信息进行修改。

实现方法具体如下:

static void modify() {                          //修改学生信息System.out.print("请输入您要修改的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {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("**********      6.成绩       *********");System.out.println("**************************************");System.out.print("请输入您要修改的选项:");int a = sc.nextInt();if (a == 1 || a == 2 || a == 3 || a == 4 || a == 5 || a == 6) {System.out.print("修改为:");String str0 = sc.next();switch (a) {case 1 -> student.setName(str0);case 2 -> student.setSex(str0);case 3 -> student.setBirthday(str0);case 4 -> student.setAge(str0);case 5 -> student.setCollege(str0);case 6 -> student.setGrade(Integer.parseInt(str0));}System.out.println("修改成功!");break;} else {System.out.println("请输入正确的序号!");}}break;}count++;}if (count == students.size()){System.out.println("查无此人!");}}

实现效果如图所示:

  • 按照成绩排序

        此函数主要是根据学生成绩按照降序排序。

实现方法具体如下:

static void sort(){                         //按照成绩排序int [][]grade = new int[students.size()][2];for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);grade[i][0] = student.getGrade();grade[i][1] = i;}for (int i = 0; i < students.size(); i++) {for (int j = 1; j < students.size() - i; j++) {if (grade[j - 1][0] > grade[j][0]){int a = grade[j][0];grade[j][0] = grade[j - 1][0];grade[j - 1][0] = a;int c = grade[j][1];grade[j][1] = grade[j - 1][1];grade[j - 1][1] = c;}}}for (int i = students.size() - 1; i >= 0; i--) {final Student student = students.get(grade[i][1]);System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+ student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());}}

实现效果如图所示:

  • 统计学生总数

实现方法具体如下: 

static void count(){                        //统计学生总数System.out.println("学生总人数为:" + students.size());}

实现效果如图所示:

完整代码:

Student.java

public class Student {private String id;                          //学号private String name;                        //姓名private String sex;                         //性别private String age;                         //年龄private String birthday;                    //出生日期private String college;                     //学院private int grade;                          //成绩public Student() {}public Student(String id, String name, String sex, String age, String birthday, String college, int grade) {this.id = id;this.name = name;this.sex = sex;this.age = age;this.birthday = birthday;this.college = college;this.grade = grade;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}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;}public String getCollege() {return college;}public void setCollege(String college) {this.college = college;}public int getGrade() {return grade;}public void setGrade(int grade) {this.grade = grade;}
}

test.java

import java.util.ArrayList;
import java.util.Scanner;public class test {static ArrayList<Student> students = new ArrayList<>();                 //定义学生集合static Scanner sc = new Scanner(System.in);public static void main(String[] args) {show0();while (true) {show1();int a = sc.nextInt();if (a == 0){break;}switch (a) {case 1 -> show();case 2 -> add();case 3 -> delete();case 4 -> modify();case 5 -> search();case 6 -> sort();case 7 -> count();default -> System.out.println("请输入正确序号!");}}}static void show0(){                    //录入初始学生信息Student student = new Student("54213460501","许雅静","男","45","2002-01-24","软件学院",98);Student student1 = new Student("54213460502","段清堂","女","25","2002-07-24","通信学院",78);Student student2 = new Student("54213460503","曲双红","男","36","2002-04-14","外语学院",69);Student student3 = new Student("54213460504","伍四六","女","29","2001-09-21","国教学院",97);Student student4 = new Student("54213460505","葛瑞格","男","45","2002-01-24","艺设学院",82);students.add(student);students.add(student1);students.add(student2);students.add(student3);students.add(student4);}static void show1(){System.out.println("********************************************************");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("**************        6.按照成绩排序        **************");System.out.println("**************        7.统计学生信息        **************");System.out.println("**************        0.退出系统           **************");System.out.println("********************************************************");System.out.print("请选择其功能:");}static void show(){                     //显示学生信息System.out.println("******************************************学生信息表************************************************");System.out.println("序号\t\t\t学号\t\t\t姓名\t\t\t\t性别\t\t\t年龄\t\t\t出生日期\t\t\t学院\t\t\t\t成绩");for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);System.out.println(i + 1 + "\t\t" + student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+student.getAge() + "\t\t\t" +student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());}System.out.println("**************************************************************************************************");}static void add(){                      //增加学生信息System.out.print("请输入您要添加学生的个数:");int s = sc.nextInt();for (int i = 0; i < s; i++) {System.out.print("请输入您要添加的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {System.out.println("已有此人!");break;}count++;}if (count == students.size()){System.out.print("姓名:");String str1 = sc.next();System.out.print("性别:");String str2 = sc.next();System.out.print("年龄:");String str3 = sc.next();System.out.print("出生日期(yyyy-mm-dd):");String str4 = sc.next();System.out.print("学院:");String str5 = sc.next();System.out.print("成绩:");int str6 = sc.nextInt();Student student = new Student(str,str1,str2,str3,str4,str5,str6);students.add(student);System.out.println("添加成功!");}}}static void delete(){                       //删除学生信息System.out.print("请输入您要删除的学号:");String str = sc.next();int a = students.size();int count = 0;for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);if (student.getId().equals(str)){students.remove(i);System.out.println("删除成功!");break;}count++;}if (count == a){System.out.println("查无此人!");}}static void modify() {                          //修改学生信息System.out.print("请输入您要修改的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {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("**********      6.成绩       *********");System.out.println("**************************************");System.out.print("请输入您要修改的选项:");int a = sc.nextInt();if (a == 1 || a == 2 || a == 3 || a == 4 || a == 5 || a == 6) {System.out.print("修改为:");String str0 = sc.next();switch (a) {case 1 -> student.setName(str0);case 2 -> student.setSex(str0);case 3 -> student.setBirthday(str0);case 4 -> student.setAge(str0);case 5 -> student.setCollege(str0);case 6 -> student.setGrade(Integer.parseInt(str0));}System.out.println("修改成功!");break;} else {System.out.println("请输入正确的序号!");}}break;}count++;}if (count == students.size()){System.out.println("查无此人!");}}static void search(){                          //查找学生信息System.out.print("请输入您要查找的学号:");String str = sc.next();int count = 0;for (final Student student : students) {if (student.getId().equals(str)) {System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+ student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());break;}count++;}if (count == students.size()){System.out.println("查无此人!");}}static void sort(){                         //按照成绩排序int [][]grade = new int[students.size()][2];for (int i = 0; i < students.size(); i++) {final Student student = students.get(i);grade[i][0] = student.getGrade();grade[i][1] = i;}for (int i = 0; i < students.size(); i++) {for (int j = 1; j < students.size() - i; j++) {if (grade[j - 1][0] > grade[j][0]){int a = grade[j][0];grade[j][0] = grade[j - 1][0];grade[j - 1][0] = a;int c = grade[j][1];grade[j][1] = grade[j - 1][1];grade[j - 1][1] = c;}}}for (int i = students.size() - 1; i >= 0; i--) {final Student student = students.get(grade[i][1]);System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"+ student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + student.getCollege() + "\t\t\t" + student.getGrade());}}static void count(){                        //统计学生总数System.out.println("学生总人数为:" + students.size());}
}

四、总结

        以上就是我实现学生信息管理系统的方案,本文仅仅介绍了实现方案及制作流程,仅供参考,若有问题请帮忙留言指出,欢迎交流学习。


http://chatgpt.dhexx.cn/article/xmGAo7gE.shtml

相关文章

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…

STM32踩坑:Keil 安装好后创建项目 Loading PDSC Debug Description failed for...

Keil 安装好后创建项目警告 Loading PDSC Debug Description failed for… 昨天重新装了一下系统&#xff0c;重新安装了一次 Keil&#xff0c;新建项目的时候报了一个错&#xff0c;如下图&#xff1a; 点击确定后&#xff0c;在下方输出框中可见下图&#xff1a; 按照第一…

STM32Cube安装固件库出现 invalid zip file or missing expected pdsc file within pack root directory

意思是压缩包无效或者缺少pdsc文件 再下一次压缩包&#xff0c;是否压缩包出现问题 还是这样就看看这里 看这里软件可安装固件库版本&#xff0c;假设我要安装 1.27.0版本就会出现 invalid zip file or missing expected pdsc file within pack root directory 这里需要更新…

PDSCH 相关

1 PDSCH信道处理过程 见PDSCH 处理流程整理https://blog.csdn.net/fanzy_edu/article/details/122469006 在5GNR中&#xff0c;MAC层最多向物理层传输2个TB传输块&#xff0c;且2个TB块只适用于空分复用超过4层的情况。若当前空分复用不超过4层&#xff08;含4层&#xff09;&…

打开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;下了好几个版本又分盘安装…

KEIL出现Loading PDSC Debug Description failed解决办法

症状 解决办法 一、找到对应库路径 二、取消PDSC文件只读属性 三、查找“Message(2,“Not a genuine ST Device! Abort connection”);”并删除&#xff0c;保存 四、恢复只读属性 完~~~

问题记录:MDK提示 Loading PDSC Debug Descriptionfailed 解决方法

在使用野火STM32F429挑战者_V2开发板时&#xff0c;&#xff0c;使用MDK打开工程后&#xff0c;每次打开都会弹出错误提示。 在浏览网上资料后&#xff0c;在这位兄弟的博文中找到了解决方法。 在Keil ARM的安装目录下找到D:\Keil_v5\ARM\Pack\Keil\STM32F4xx_DFP\2.14.0此路径…