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

一、前言    

       最近在学习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://www.mzph.cn/news/578613.shtml

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

相关文章

浅谈智能型电动机保护器在也门化工行业的应用

1.背景信息Background 现代化工工业中&#xff0c;电动机作为一种拖动机械&#xff0c;成为所有动力机械基础&#xff0c;科学技术不断进步和工艺控制不断完善&#xff0c;尤其是自动化生产要求&#xff0c;迫切需要开发和完善电动机控制和保护设备&#xff0c;实现对生产过程…

卫星接收LNBs的专用电路

都具有FET偏置控制器电路的卫星接收器LNB电路 芯片的描述&#xff1a;D3211是一-块用于卫星接收LNBs的专用电路&#xff0c;具有极化电压检测切换、22KHz脉冲检测切换和提供高放、本振级GaAs或HEMT FET晶体管工作点偏置等功能。D321 1内部的22K检测及切换控制由22K有源滤波器、…

一文带你深入浅出Web的自动化测试工具Selenium【建议收藏】

文章目录 前言发现宝藏第01节 Selenium概述第02节 安装浏览器驱动&#xff08;以Google为例&#xff09;第03节 定位页面元素1. 打开指定页面2. id 定位3. name 定位4. class 定位5. tag 定位6. xpath 定位7. css 选择器8. link 定位9. 示例 有道翻译 第04节 浏览器控制1. 修改…

重装系统后桌面图标没有了,“此电脑”怎么添加?

重装电脑系统对于使用电脑的用户来说是一种很常见的操作。但是有时在重装系统之后&#xff0c;我们会发现电脑桌面图标不见了&#xff0c;那么这时该怎么办呢&#xff1f;“此电脑”该怎么添加呢&#xff1f; 解决方法&#xff1a; 1.在桌面空白处单击鼠标右键&#xff0c;选择…

绝地反击,不做背锅侠!

那么作为运维人员&#xff0c;如何摆脱以上背黑锅的尴尬局面呢&#xff1f;堡垒机当然是破解此局面的绝杀大招。 1.统一登录入口 提供统一入口&#xff0c;集中管理和分配账户密码、所有运维人员只能登录堡垒机才能访问服务器&#xff0c;梳理“人与服务器”之间的关系&#…

C++设计模式 #7 工厂方法(Factory Method)

“对象创建”模式 通过“对象创建”模式绕开new&#xff0c;来避免对象创建&#xff08;new&#xff09;过程中所导致的紧耦合&#xff08;依赖具体类&#xff09;&#xff0c;从而支持创建的稳定。它是接口抽象之后的第一步工作。 动机 在软件系统中&#xff0c;经常面临着创…

全球市场拓展指南:出海企业品牌力觉醒与长期主义引领

近年来&#xff0c;随着全球化的深入推进&#xff0c;越来越多的企业纷纷踏上了出海之路&#xff0c;希望在国际市场中寻找新的增长点。然而&#xff0c;仅仅依靠产品和服务的优势已经不能满足出海企业在激烈的国际市场竞争中立于不败之地。在这个背景下&#xff0c;企业们慢慢…

英特尔A770显卡介绍与解读

基础介绍 英特尔A770显卡。这是英特尔推出的一款高性能显卡&#xff0c;属于他们的Arc系列。这个系列的显卡主要面向游戏玩家和专业内容创作者&#xff0c;提供高性能图形处理能力。 A770显卡配备了先进的特性&#xff0c;例如支持硬件级光线追踪、AI加速技术&#xff0c;以及…

【实用干货】通过PMP认证考试的心得分享

要知道&#xff0c;PMP备考考试只是暂时的&#xff0c;但通过获得PMP证书和能力将是持久的。 参加PMP认证考试的整个过程不仅让我获得了PMP培训结业证书和PMP认证证书&#xff0c;更重要的是让我学到了大量项目管理知识&#xff0c;为我提供了全新的思维模式。 一、备考期间需…

jquery Tab切换,CSS3制作发光字

jquery Tab切换&#xff0c;CSS3制作发光字 代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta ht…

Three.js起步案例(画线)

Three.js官网 <template><div id"webgl"></div> </template><script setup> import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js;const scene new THREE.Scene();// 画线 // 材…

springboot参数校验常用注解及分组校验

一、使用方式添加Validated 二、常见注解 Null 被注解的元素必须为null NotNull 被注解的元素必须不为null NotBlank 只能作用在接收的 String 类型上&#xff0c;注意是只能&#xff0c;不能为 null&#xff0c;而且调用 trim() 后&#xff0c;长度必须大于 0即&#xff…

2015年第四届数学建模国际赛小美赛C题科学能解决恐怖主义吗解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 C题 科学能解决恐怖主义吗 原题再现&#xff1a; 为什么人们转向恐怖主义&#xff0c;特别是自杀性恐怖主义&#xff1f;主要原因是什么&#xff1f;这通常是大问题和小问题的结合&#xff0c;或者是一些人所说的“推拉”因素。更大的问题包…

【JavaScript】复制文本到剪切板

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

tvbox最新接口配置

TVBox是在Github的开源项目&#xff0c;本身是一个空壳软件&#xff0c;可免费使用及再开发。安装后需要配置接口才能正常使用。 TVBox&#xff0c;也被称为网络电视盒子&#xff0c;是一种可以连接到电视的设备&#xff0c;使电视具有智能电视的功能。TVBox的主要功能是通过网…

免费高清无水印视频素材在哪里下?

剪辑是一门创意工作&#xff0c;但很多初学者常常感到困惑&#xff0c;原因并不是因为他们不懂剪辑&#xff0c;而是因为他们不知道从哪里找到合适的素材。今天&#xff0c;我们将为大家盘点一些超全的剪辑素材资源&#xff0c;包括视频素材、音乐素材和图片素材等&#xff0c;…

WAVE SUMMIT迎来第十届,文心一言将有最新披露!

10句话2分钟&#xff0c;挑战成功说服宿管阿姨开门&#xff0c;这个人群中的“显眼包”是一个接入文心大模型4.0游戏里的NPC&#xff0c;妥妥 “工具人”实锤&#xff5e; 尝试用AI一键自动识别好坏咖啡豆&#xff0c;看一眼便知好坏&#xff0c;真正“颜值即正义”&#xff0…

初识Nginx默认配置文件

说起配置Nginx确实是一件让人头疼的事&#xff0c;开始时对Nginx配置不熟悉&#xff0c;为了满足需求在网上查找了很多相关配置的博客&#xff0c;也是天花乱坠不知道谁对谁错。就不停反复尝试最终在不懈的努力下中终于成功了。那时就觉得是时候好好整理一下Nginx的相关配置了。…

一个基于多接口的业务自动化测试框架!

这是一个成熟的框架&#xff0c;不是要让别人当小白鼠&#xff0c;它已经先后在两家公司的5条业务线进行了推广应用&#xff0c;用例条数到了几千条以上&#xff0c;并且从2018年开始每天都在CI/CD流程中被调用执行。 已有那么多接口测试框架&#xff0c;为什么重复造轮子&…

北亚服务器数据恢复-服务器断电导致raid5故障的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器有一组由12块硬盘组建的raid5阵列。 服务器故障&分析&#xff1a; 机房供电不稳导致服务器意外断电&#xff0c;工作人员重启服务器后发现服务器无法正常使用。 根据故障情况&#xff0c;北亚企安数据恢复工程师初步判断服务器故障原…