用Java实现学生管理系统(附项目详细的介绍和源代码)

article/2025/9/28 10:08:13

前言:最近练习了用Java语言实现简单的学生管理系统小项目,分享一下。

Ps:原创不易,请多多支持!

摘要分析如下:

实现的主要功能:

1,添加学生信息。

2,查询学生信息(实现了单个学生信息查询 & 所有学生信息查询)。

3,修改学生信息。

4,删除学生信息(实现了单个学生信息删除 & 所有学生信息删除)。

5,退出管理系统。

项目说明:

cn.yunhe.bean包:

Student:代表“学生实体类”。

cn.yunhe.utils包:

StudentTools:代表“工具类”。Scanner键盘录入工具类。

cn.yunhe.view包:

StudentFunction:代表“增、删、改、查功能”。

StudentView:代表“项目视图功能”。

源代码如下:

cn.yunhe.bean包:

package cn.yunhe.bean;/*** @Auther: xydsr* @Date: 2023/4/3 16:58* @Desc:   学生管理系统*          创建学生类,定义私有成员变量,*          并定义构造方法和get、set方法**/public class Student {//定义私有成员属性private int id;private  String name;private  double score;//创建构造方法(无参和有参构造)public Student() {}public Student(int id, String name, double score) {this.id = id;this.name = name;this.score = score;}//创建set、get方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}

cn.yunhe.utils包:

package cn.yunhe.utils;import java.util.Scanner;/*** @Auther: xydsr* @Date: 2023/4/4 17:26* @Desc:**/public class StudentTools {public static int ScannerId() {// System.out.println("请输入学生的学号:");Scanner sc = new Scanner(System.in);return sc.nextInt();}public static String ScannerName() {// System.out.println("请输入学生的姓名:");Scanner sc = new Scanner(System.in);return sc.nextLine();}public static double ScannerScore() {// System.out.println("请输入学生的成绩:");Scanner sc = new Scanner(System.in);return sc.nextDouble();}
}

cn.yunhe.view包:

package cn.yunhe.view;import cn.yunhe.bean.Student;
import cn.yunhe.utils.StudentTools;import java.util.ArrayList;/*** @Auther: xydsr* @Date: 2023/4/4 16:06* @Desc: 学生管理系统功能模块**/public class StudentFunction {//创建集合对象,用于存储学生信息private static ArrayList<Student> arrayList = new ArrayList<>();/*** 1、添加学生信息模块功能实现*/public static void addStudent() {System.out.println();System.out.println("------------1、添加学生信息------------");int id;// 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student stu = new Student();// 添加学生学号,并判断是否已存在while (true) {System.out.print("请输入需要添加的学生学号:");id = StudentTools.ScannerId();boolean flag = isUsed(id);if (flag) {System.out.println("对不起,你输入的学号已存在,请重新输入:");} else {break;}}stu.setId(id);// 添加学生姓名System.out.print("请输入需要添加的学生姓名:");String name = StudentTools.ScannerName();stu.setName(name);// 添加学生成绩while (true) {System.out.print("请输入需要添加的学生成绩:");double score = StudentTools.ScannerScore();// 判断输入的成绩是否符合规范if (score <= 100 && score >= 0) {stu.setScore(score);break;} else {System.out.println("你输入的成绩不符合规范,请重新输入:");}}System.out.println();// 将学生对象添加到集合中(保存)arrayList.add(stu);// 添加成功提示System.out.println("添加成功!");}// 定义判断学号是否被占用的方法public static boolean isUsed(int id) {// 如果与集合中的某一个学生学号相同,返回true 如果都不相同,返回falseboolean flag = false;for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == id) {flag = true;break;}}return flag;}/*** 2、查询学生信息模块功能实现*/public static void searchStudent() {System.out.println();System.out.println("------------2、查询学生信息------------");System.out.println("请输入序号选择查询的方式(1,按照学号查询;2,查询所有信息):");// 调用键盘录入对象方法,输入序号选择查询的方式int fun = StudentTools.ScannerId();while (true) {// 调用查询学生信息的方法if (fun == 1) {searchSingle(); // 调用查询单个学生信息的方法} else if (fun == 2) {searchAll();  // 调用查询所有学生信息的方法} else {System.out.println("你输入的序号功能暂未开发,请重新输入:");}return;}}// 定义查询单个学生信息的方法public static void searchSingle() {// 输入学生学号System.out.print("请输入需要查询的学生学号:");// 调用键盘录入对象方法int stuId = StudentTools.ScannerId();System.out.println();System.out.println("------------学生信息查询结果------------");for (Student student : arrayList) {if (student.getId() == (stuId)) {System.out.println("学号" + "              " + "姓名" + "              " + "成绩");System.out.println(student.getId() + "              " + student.getName() + "              " + student.getScore());return;}}System.out.println();System.out.println("对不起,你输入的学号不存在,请重新输入:");System.out.println();}// 定义查询所有学生信息的方法public static void searchAll() {System.out.println();System.out.println("------------学生信息查询结果------------");System.out.println("学号" + "              " + "姓名" + "              " + "成绩");for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);System.out.println(s.getId() + "              " +s.getName() + "              " + s.getScore());}}/*** 3、修改学生信息模块功能实现*/public static void updateStudent() {System.out.println();System.out.println("------------3、修改学生信息------------");int id;System.out.println("请输入你想修改的学生的学号:");id = StudentTools.ScannerId();// 输入学生学号,判断学号是否存在boolean upId = isExited(id);if (upId) {for (int i = 0; i < arrayList.size(); i++) {Student student = arrayList.get(i);if (student.getId() == (id)) {// 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student stu = new Student();// 键盘录入要修改的学生信息System.out.println("请输入修改后的学生的学号:");int updateId = StudentTools.ScannerId();stu.setId(updateId);System.out.println("请输入修改后的学生的姓名:");String updateName = StudentTools.ScannerName();stu.setName(updateName);System.out.println("请输入修改后的学生的成绩:");double updateScore = StudentTools.ScannerScore();// 判断输入的成绩是否符合规范if (updateScore <= 100 && updateScore >= 0) {student.setScore(updateScore);} else {System.out.println("你输入需要修改的成绩不符合规范,请重新输入:");}stu.setScore(updateScore);// 将修改的学生成绩到集合中(修改)arrayList.set(i, stu);// 给出修改成功提示System.out.println("修改成功!");System.out.println();break;}}} else {System.out.println("对不起,你输入的学号不存在,请重新输入:");}}// 定义判断需要修改的学生学号是否存在public static boolean isExited(int id) {boolean updateId = false;for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == (id)) {updateId = true;break;}}return updateId;}/*** 4、删除学生信息模块功能实现*/public static void deleteStudent() {System.out.println();System.out.println("------------4、删除学生信息------------");System.out.println("请输入序号选择删除的方式(1,按照学号删除;2,删除所有信息):");int delete = StudentTools.ScannerId();while (true) {if (delete == 1) {deleteSingle();  // 1,按照学号删除} else if (delete == 2) {deleteAll();   // 2,删除所有信息} else {System.out.println("你输入的序号功能暂未开发,请重新选择输入:");}break;}return;}// 定义单个删除的方法public static void deleteSingle() {// 判断需要删除的学生信息是否存在System.out.println("请输入需要删除的学生学号:");int id = StudentTools.ScannerId();int index = -1;// 遍历集合将对应学生对象从集合中删除for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == (id)) {index = i;break;}}while (true) {if (index == -1) {System.out.println("对不起,你输入的学号不存在,请重新输入:");} else {arrayList.remove(index);System.out.println("删除学生信息成功!");}break;}}// 定义全部删除的方法public static void deleteAll() {arrayList.clear();System.out.println("删除所有信息成功!");}/*** 5、退出系统模块功能实现*/public static void exitSystem() {System.out.println();System.err.println("退出成功,欢迎再次访问!");System.exit(0);}
}
package cn.yunhe.view;import cn.yunhe.utils.StudentTools;/*** @Auther: xydsr* @Date: 2023/4/3 16:58* @Desc: 学生管理系统实现需求:* 1、添加学生信息* 2、查询学生信息* 3、修改学生信息* 4、删除学生信息* 5、退出管理系统**/public class StudentView {public static void main(String[] args) {//用循环完成回到系统主界面功能while (true) {//系统主界面菜单模块System.out.println("------欢迎来到-xydsr-学生管理系统------");System.out.println("|-----------1、添加学生信息-----------|");System.out.println("|-----------2、查询学生信息-----------|");System.out.println("|-----------3、修改学生信息-----------|");System.out.println("|-----------4、删除学生信息-----------|");System.out.println("|-----------5、退出管理系统-----------|");//添加一个空格行,为了输出控制台布局美观、不拥挤(下同)。System.out.println();System.out.println("请选择功能序号:");int str = StudentTools.ScannerId();// 用switch循环完成系统主界面功能模块的切换操作switch (str) {case 1:// System.out.println("1、添加学生信息");StudentFunction.addStudent();break;case 2:// System.out.println("2、查询学生信息");StudentFunction.searchStudent();break;case 3:// System.out.println("3、修改学生信息");StudentFunction.updateStudent();break;case 4:// System.out.println("4、删除学生信息");StudentFunction.deleteStudent();break;case 5:// System.out.println("5、退出系统");StudentFunction.exitSystem();break;default:System.out.println("对不起,你选择的功能序号有误,请重新输入:");}//添加一个空格行,为了输出控制台布局美观、不拥挤。System.out.println();}}}

项目演示:

 

 

 


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

相关文章

Java设计学生成绩管理系统

1.1 题目与要求 设计一个学生成绩排名系统 实现以下功能&#xff1a; (1) 具备对成绩的管理功能&#xff08;添加、删除、排序&#xff09;&#xff1b; (2) 具备对成绩的统计功能&#xff08;最高分&#xff0c;最低分&#xff0c;平均分&#xff0c;及格率等&#xff09;…

Java 学生成绩管理系统

教学管理系统很适合初学者对于所学语言的练习。本文是javaSE 中用文件流写的&#xff0c;这个也可以用数据库写。 分析 这个项目有 1.学生 2.老师 3.教务人员 4.管理员四个角色分别担任不同的任务。 1.学生 有属性 id, 密码&#xff0c;性别&#xff0c;年龄&#xff0c;和一…

Java基础——学生管理系统

用内存存储学生信息。(采用集合的方式&#xff09; 步骤&#xff1a; A. 定义学生类 B. 学生管理系统的主界面的代码编写 C. 学生管理系统的查看所有学生的代码编写 D. 学生管理系统的添加学生的代码编写 E. 学生管理系统的删除学生的代码编写 F. 学生管理系统的修改学生的代码…

学生管理系统(Java版)

学生管理系统&#xff08;Java版&#xff09; 前言&#xff1a;这个是大二做的课设&#xff08;还是学生管理系统…&#xff09;&#xff0c;理论上虽然是4个人一组一起做的&#xff0c;但是&#xff0c;注意这个“但是”&#xff0c;还是我一个人承担了所有…代码和文档基本都…

Java 版学生成绩管理系统,附源码

前言 对于计算机专业的学生来讲&#xff0c;一定对于学生成绩管理系统课程设计十分印象深刻。设计、上机、编码、写报告、答辩等一系列流程&#xff0c;虽然很简单&#xff0c;但也可以综合运用我们所学的一些知识了。 今天就来复习以下这个课题&#xff0c;用 Java SE 来实现…

用Java实现一个学生管理系统(附源码)

目录 一、题目要求 二、设计思路 &#xff08;2&#xff09;代表课程的类——Course类 &#xff08;3&#xff09;具体功能实现类——Function类 &#xff08;4&#xff09;测试类——Test类 三、代码实现 &#xff08;1&#xff09;Student.java文件 &#xff08;2&…

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

案例需求 完成一个综合案例&#xff1a;学生管理系统&#xff01;该系统主要功能如下&#xff1a; 添加学生&#xff1a;通过键盘录入学生信息&#xff0c;添加到集合中 删除学生&#xff1a;通过键盘录入要删除学生的学号&#xff0c;将该学生对象从集合中删除 修改学生&…

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…