学生管理系统(Java实现)

article/2025/9/28 10:15:30

一、学生信息管理程序 基本要求:
1.要求实现学生信息的使用添加、查找、删除、修改等几个功能,每个功能模块均能实现从模块中退出,从而完成一个学生管理系统所需功能。

2.要使用结构体来实现对学生信息的存储。

3.学生信息需至少包括:学号,姓名,年龄。

4.使用文件完成数据的存储与读取,要求每次运行某个功能模块时将数据读入结构体中,并给用户提供保存选项,可以将结构体中的数据保存在文件中。

1.1项目演示

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQW5pbWFs5qOu,size_19,color_FFFFFF,t_70,g_se,x_16

1.2学生管理系统实现思路

  • 定义学生类
  • 主界面的代码编写
  • 添加学生的代码编写
  • 查看学生的代码编写
  • 删除学生的代码编写
  • 修改学生的代码编写

1.3定义学生类

学生类: Student

成员变量:              学号:sid

                                姓名:name

                                年龄:age

                                成绩:  score

构造方法:无参构造、带四个参数的构造

成员方法:每个成员变量给出相应的get/set方法

package StudentManage;
public class Student {private String sid;private String name;private String age;private String score;public Student(){}public Student(String sid, String name, String age, String score) {this.sid = sid;this.name = name;this.age = age;this.score = score;}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 getScore() {return score;}public void setScore(String score) {this.score = score;}
}

1.4主界面的代码编写

思路:

  1. 用输出语句完成主界面的编写
  2. 用Scanner实现键盘录入数据
  3. 用switch语句完成操作的选择
  4. 用循环完成再次回到主界面
package StudentManage;import java.util.Scanner;public class StudentManager {public static void main(String[] args) {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 sc = new Scanner(System.in);String line = sc.nextLine();switch (line) {case "1":System.out.println("1.添加学生");break;case "2":System.out.println("2.删除学生");break;case "3":System.out.println("3.修改学生");break;case "4":System.out.println("4.查看作业学生");break;case "5":System.out.println("谢谢使用");System.exit(0);}}}
}

1.5添加学生的代码编写

  1. 用键盘录入选择添加学生
  2. 定义一个方法,用于添加学生 
  3. 调用方法
  • 2.1显示提示信息,提示要输入何种信息
  • 2.2键盘录入学生对象所需要的数据
  • 2.3创建学生对象,把键盘录入的信息赋值给学生对象的成员变量
  • 2.4将学生对象添加到集合中(保存)
  • 2.5给出添加成功提示
 public static void addStudent(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 score=sc.nextLine();Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setScore(score);array.add(s);System.out.println("添加学生成功");}

1.6查看所有学生的代码编写

思路

  1. 用键盘录入选择查看的学生信息
  2. 定义一个方法,用于查看学生信息  (1.显示表头信息 。2.将集合中数据按照对应的格式显示学生信息,年龄显示补充“岁”)
  3. 调用函数
 public static void findStudent(ArrayList<Student> array){if(array.size()==0){System.out.println("无信息,清线添加再查询");return ;}System.out.println("学号\t\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\t"+s.getAge()+"岁\t"+s.getScore());}}

1.7删除学生的代码编写

思路

  1. 用键盘录入选择删除的学生信息
  2. 定义一个方法,用于删除学生信息(1.显示提示信息。2.键盘录入要删除学生的学号。3.遍历集合将对应的学生对象从集合中删除。4.给出删除成功的提示)
  3. 调用方法
 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("删除成功");}}

1.8修改学生的代码编写

  1. 用键盘录入选择修改的学生信息
  2. 定义一个方法,用于修改学生信息(1.显示提示信息。2.键盘录入要修改学生的学号。3.键盘录入要修改学生的信息。4.遍历集合修改对应的学生信息5.给出修改成功的提示)
  3. 调用方法
 public static void updataStudent(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 score=sc.nextLine();Student s =new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setScore(score);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("修改学生信息成功");}

最终的主函数如下:

package StudentManage;import java.util.ArrayList;
import java.util.Scanner;public class StudentManager {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 sc = new Scanner(System.in);String line = sc.nextLine();switch (line) {case "1":addStudent(array);break;case "2":deleteStudent(array);break;case "3":updataStudent(array);break;case "4":findStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);}}}public static void addStudent(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 score=sc.nextLine();Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setScore(score);array.add(s);System.out.println("添加学生成功");}public static void findStudent(ArrayList<Student> array){if(array.size()==0){System.out.println("无信息,清线添加再查询");return ;}System.out.println("学号\t\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\t"+s.getAge()+"岁\t"+s.getScore());}}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("删除成功");}}public static void updataStudent(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 score=sc.nextLine();Student s =new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setScore(score);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("修改学生信息成功");}}

注:记得建立学生类

学生类如下

package StudentManage;
public class Student {private String sid;private String name;private String age;private String score;public Student(){}public Student(String sid, String name, String age, String score) {this.sid = sid;this.name = name;this.age = age;this.score = score;}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 getScore() {return score;}public void setScore(String score) {this.score = score;}
}

注:需将以上两个代码放在同一个包下才可运行

 


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

相关文章

【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…

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 这里需要更新…