服务器之家

服务器之家 > 正文

Java 实现完整功能的学生管理系统实例

时间:2022-03-10 13:49     来源/作者:执久呀

一、前言

我们前面写了通讯录管理系统,现在我们来写个学生管理系统

其实主干代码都一 不过,在学生管理系统中我添加和优化了许多功能,

如【登录密码验证,异常处理,非空判断,,防止重复添加】等。

 

二、学生管理系统主要功能

  • 增加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查找学生信息
  • 查看所有学生信息
  • 退出学生管理系统

主干总览图:

Java 实现完整功能的学生管理系统实例

我们分成了许多的方法模块,便于调用。

在学生类下

就是普通的构造方法和get和set方法,还有一个重写的toString方法

(Alt+Insert可以快速生成上述的所有)

package 学生管理系统;

public class Student {
  private String name;
  private String age;
  private String sex;
  private String number;
  private String classroom;
  public Student(){}
  public Student(String name, String age, String sex, String classroom,String number) {
      this.name = name;
      this.age = age;
      this.sex = sex;
      this.classroom = classroom;
      this.number=number;
  }
  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 getSex() {
      return sex;
  }

  public void setSex(String sex) {
      this.sex = sex;
  }

  public String getClassroom() {
      return classroom;
  }

  public void setClassroom(String classroom) {
      this.classroom = classroom;
  }

  public String getNumber() {
      return number;
  }

  public void setNumber(String number) {
      this.number = number;
  }

重写toString方法是为了让我们设置好的方式去显示:

  @Override
  public String toString() {

      return "名字:"+name+" |性别:"+sex+" |年龄:"+age+"  |学号:"+number+"  |班级:"+classroom+"\n";
  }
}

在学生总部类下:

Java 实现完整功能的学生管理系统实例

main方法:

public static void main(String[] args) {
      ArrayList<Student> arrayList=new ArrayList<Student>();
      password();//密码验证
      while(true){
          menu();//菜单
          Scanner sc=new Scanner(System.in);
          try{
              int num=sc.nextInt();
              switch(num){
                  case 1:{
                      addStudent(arrayList);break;
                  }
                  case 2:{
                      deleteStudent(arrayList);break;
                  }
                  case 3:{
                      reviseStudent(arrayList);break;
                  }
                  case 4:{
                     oneStudent(arrayList);break;
                  }
                  case 5:{
                      checkStudent(arrayList);break;
                  }
                  case 6:{
                      System.out.println("退出成功");
                      System.exit(0);
                  }
                  default:{
                      System.out.println("输入错误,输入0-6之间的数字");break;
                  }
              }}
          catch(Exception e){
              e.printStackTrace();
              System.out.println("你的输入是非数字,请输入0-6的数字");
          }
      }
  }//main方法

登录密码验证:

public static void password(){
      System.out.println("***欢迎来到学生管理系统***");
      Scanner sc=new Scanner(System.in);
      System.out.print("请输入管理员密码:");
      String s="键盘敲烂";
     int  sum=3;
     while(true){
      String ss=sc.nextLine();
      if(ss.equals(s)){
          System.out.println("验证成功!");break;
      }else{sum--;
          System.out.print("密码错误,你还有"+sum+"次机会:");
      }
      if(sum==0){
          System.out.println("输入上限,再见!");
          System.exit(0);
      }
  }}//密码验证

打印菜单:

public static void menu(){
      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("请选择:");
  }//打印菜单页

增加学生信息:

public static void addStudent(ArrayList<Student> arrayList){
      Scanner sc1=new Scanner(System.in);
      System.out.print("请输入姓名:");
      String name=sc1.nextLine();
      System.out.print("请输入年龄:");
      String age=sc1.nextLine();
      System.out.print("请输入性别:");
      String sex=sc1.nextLine();
      System.out.print("请输入学号:");
      String number=sc1.nextLine();
      System.out.print("请输入班级:");
      String classroom=sc1.nextLine();
      Student stu=new Student();
      stu.setAge(age);
      stu.setClassroom(classroom);
      stu.setName(name);
      stu.setSex(sex);
      stu.setNumber(number);
       int kong=0;//用来定义是否已经存在的学号
      for (int i=0;i<arrayList.size();i++){
          Student s=arrayList.get(i);
          if((arrayList.size())>1&&(s.getNumber().equals(number))&&(s.getClassroom().equals(classroom))){
              System.out.println("添加失败,你输入的学号在同一班级已存在");kong++;//存在就加一
              arrayList.remove(stu);
          }
      }
          if(name.length()==0||age.length()==0||sex.length()==0||classroom.length()==0||number.length()==0||kong!=0){
              System.out.println("有某项为空或学号在同一班已存在,添加失败");
              arrayList.remove(stu);//移除该项
          } else{
              arrayList.add(stu);
              System.out.println("添加成功");}
  }//加信息

查看学生信息:

public static void checkStudent(ArrayList<Student> array){

      if(array.isEmpty()){
          System.out.println("这里没有任何信息,请添加后查看!");
      }else{
          System.out.println(array);}
  }//查信息

删除学生信息:

public static void deleteStudent(ArrayList<Student> array){
      if(array.isEmpty()){
          System.out.println("这里没有任何信息,请添加后在进行操作!");
      }else{
          Scanner sc=new Scanner(System.in);
          System.out.println("请输入你要删除信息的名字");
          String str=sc.nextLine();
          int sum=0;
          for(int i=0;i<array.size();i++){
              Student s = array.get(i);
              if(s.getName().equals(str)){
                  array.remove(i);sum++;
                  System.out.println("删除成功");
              }
          }if(sum==0){
              System.out.println("没有该信息,删除失败!");
          }
      }
  }//删信息

修改学生信息:

public static void reviseStudent(ArrayList<Student> arrayList){
      if(arrayList.isEmpty()){
          System.out.println("没有任何信息,请输入后在进行操作!");
      }else {
          int sum=0;
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入你要换信息的名字");
          String name=sc.nextLine();
      for(int i=0;i<arrayList.size();i++){
         Student s1=arrayList.get(i);
          if(s1.getName().equals(name)){
             sum++;
         }
     }
         if(sum!=0){
             Scanner sc1=new Scanner(System.in);
             System.out.print("请输入姓名:");
             String name1=sc1.nextLine();
             System.out.print("请输入年龄:");
             String age=sc1.nextLine();
             System.out.print("请输入性别:");
             String sex=sc1.nextLine();
             System.out.print("请输入学号:");
             String number=sc1.nextLine();
             System.out.print("请输入班级:");
             String classroom=sc1.nextLine();
             Student stu=new Student();
             stu.setAge(age);
             stu.setClassroom(classroom);
             stu.setName(name1);
             stu.setSex(sex);
             stu.setNumber(number);
             for (int i = 0; i < arrayList.size(); i++) {
              Student stu1 = arrayList.get(i);
              if (stu1.getName().equals(name)) {
                  arrayList.set(i, stu);
                  System.out.println("修改成功");break;
              }
          }}if(sum==0){
              System.out.println("修改失败,没有找到对应的名字");
          }
      } }//改信息

查找学生信息:

public static void oneStudent(ArrayList<Student> arrayList){
      if (arrayList.isEmpty()){
          System.out.println("没有学生信息,请添加后再查找");
      }else{
          Scanner sc=new Scanner(System.in);
          System.out.print("请输入你要查找学生的名字:");
          String name=sc.nextLine();
          int sum=0;
          for(int i=0;i<arrayList.size();i++){
              Student stu=arrayList.get(i);
              if(stu.getName().equals(name)){sum++;
                 System.out.println("姓名:"+stu.getName()+"  年龄:"+stu.getAge()+"  性 
  别:"+stu.getSex()+"  班级:"+stu.getClassroom()+"  学号:"+stu.getNumber());
              }
          }if(sum==0){
              System.out.println("你查找的学生不存在");
          }
      }
  }//找信息

代码效果演示图:

Java 实现完整功能的学生管理系统实例

到此这篇关于Java 实现完整功能的学生管理系统实例的文章就介绍到这了,更多相关Java 学生管理系统内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_60719453/article/details/121128918

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部