学生信息管理系统(黑马程序员例题)

这是一个使用Java编程语言实现的学生信息管理系统,通过控制台操作实现录入、删除、修改和遍历学生数据的功能。系统确保每个学生ID的唯一性,并提供了详细的主函数及辅助函数来完成各项操作。

哔哩哔哩原视频

需求:

采取控制台的方法去书写学生管理系统

功能

能录入,删除,修改,遍历数据库,退出。

学生类

学生的id ,名字,住址便利,年龄。

所有功能要保证id唯一。

main函数:

 public static void main(String[]args){
        ArrayList<Student>list = new ArrayList<>();
       loop: while (true) {                         // loop 后面跳出循环时用
            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 choose = sc.next();
            switch (choose){                         //用switch选择各操作
                    case "1"-> addstudent(list);      //case 函数用加箭头可以自动跳出
                    case"2"->delstudent(list);
                    case"3"->updatestudent(list);
                    case"4"-> searchstudent(list);
                    case"5"->{
                        System.out.println("退出");
                        break loop;
                    }default -> System.out.println("无意义的选项");

            }
        }
    }

录入函数:

public static void addstudent(ArrayList<Student>list){
        Student s = new Student();           //构建一个新的对象用来录入元素,最后存到集合中
      Scanner sc  = null;
      while (true) {
          System.out.println("请输入学生的id");
          sc = new Scanner(System.in);
          String id = sc.next();
          boolean sum =judge(list,id)>=0;
          if(sum){
              System.out.println("学生id已存在,请重新输入");
          }else {
              s.setId(id);
              break;
          }
      }
      System.out.println("请输入学生的名字");
      String name = sc.next();
      s.setName(name);
      System.out.println("请输入学生的地址");
      String address = sc.next();
      s.setAddress(address);
      System.out.println("请输入学生的年龄");
      int age = sc.nextInt();
      s.setAge(age);
      System.out.println("添加成功");
      list.add(s);
  }

删除函数:

public static void delstudent(ArrayList<Student>list){
         Scanner sc = new Scanner(System.in);
      System.out.println("请输入删除学生的id");
         String id = sc.next();
         int num = judge(list,id);
        boolean sum = judge(list,id)>=0;        //若id与数据库中有相同 则为true 
        if(sum){
            list.remove(num);
        }else {
            System.out.println("该id不存在,删除失败");
        }
        return;
  }

修改函数:

public static void updatestudent(ArrayList<Student>list){
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入要修改学生的id");
      String id = sc.next();
          boolean sum = judge(list,id)>= 0;
           if(!sum){                   //值判断id不存在
              System.out.println("该学生id不存在,修改失败");
          }
       int index = judge(list,id);     // 用判断函数得到要改变的索引
       Student stu = list.get(index);  //构建一个新的对象用来接受修改以后的元素
      System.out.println("请输入要修改的名字");
       String name = sc.next();
       stu.setName(name);
      System.out.println("请输入要修改的地址");
      String address = sc.next();
      stu.setAddress(address);
      System.out.println("请输入要修改的年龄");
      int age = sc.nextInt();
      stu.setAge(age);
      System.out.println("学生信息修改成功");
  }

遍历函数:

 public static void searchstudent(ArrayList<Student>list){
      System.out.println("id\t\t名字\t地址\t年龄");
        if (list.size() == 0)
        {
            System.out.println("数据库中无信息,请添加后再查询");
        }
      for (int i = 0; i < list.size(); i++) {
           Student stu = list.get(i);
          System.out.println(stu.getId()+" "+stu.getName()+" "+stu.getAddress()+" "+stu.getAge());
      }
  }

判断函数:

public static int judge(ArrayList<Student>list,String id){
      for (int i = 0; i < list.size(); i++) {
          Student stu = list.get(i);
          String idt = stu.getId();//得到集合中各元素的id
          if(idt.equals(id))
          {
              return i;
          }
      }
      return -1;
  }
}

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值