欢迎光临散文网 会员登陆 & 注册

黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算

2023-03-12 15:26 作者:蔵原風  | 我要投稿

P197Set集合三种遍历方式的实现

----------------华丽的分界线--------------------------

P108未看视频先写的,仅供参考

P110 字符串打乱,仅供参考

P110 验证码,数字随机位置,仅供参考

P110字符串转数字后的乘积

P114通过id查找对应的用户信息,未开先写,仅供参考

P115返回小于三千的手机信息,此处自己进行了拓展,较为复杂


接下来是学生管理系统代码

JavaBean类我就不在此进行copy了

package com.itheima.studentmanagersystem;


import java.security.Provider;

import java.util.ArrayList;

import java.util.Scanner;


/**

 * @author XiangTao

 */

public class StudentManagerSystem {

  public static void main(String[] args) {

    ArrayList<Student> list = new ArrayList<>();

    Scanner sc = new Scanner(System.in);

    //添加初始化数据

    Student s1 = new Student("heima001", "张三", 23, "南京");

    Student s2 = new Student("heima002", "李四", 24, "北京");

    Student s3 = new Student("heima003", "王五", 25, "深圳");

    list.add(s1);

    list.add(s2);

    list.add(s3);


    printMenu:

    while (true) {

      printMenu();

      String choose = sc.next();

      switch (choose) {

        case "1":

          add(list);

          break;

        case "2":

          drop(list);

          break;

        case "3":

          alter(list);

          break;

        case "4":

          select(list);

          break;

        case "5":

          System.out.println("退出成功!");

          break printMenu;

        default:

          System.out.println("输入错误,请重新输入!");

          break;

      }

    }

  }



  /**

   * @注释 打印初始菜单

   */

  public static void printMenu() {

    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("请输入您的选择: ");

  }


  /**

   * @param list

   * @注释 添加学生功能

   */

  public static void add(ArrayList<Student> list) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入学生信息");

    System.out.println("请输入id: ");

    String id = sc.next();

    boolean flag = constraintID(list, id);

    if (!flag) {

      Student s = new Student();

      while (true) {

        System.out.println("请输入姓名: ");

        String name = sc.next();

        boolean result = checkName(name);

        if (!result) {

          System.out.println("姓名格式有误,请重新输入: ");

        } else {

          System.out.println("请输入年龄: ");

          int age = sc.nextInt();

          System.out.println("请输入家庭住址: ");

          String address = sc.next();


          s.setId(id);

          s.setName(name);

          s.setAge(age);

          s.setAddress(address);


          list.add(s);

          System.out.println("添加成功");

          break;

        }

      }

    } else {

      System.out.println(id + "已存在,请重新输入");

    }


  }


  private static boolean checkName(String username) {

    //1.长度在3到15之间

    int len = username.length();

    if (len < 3 || len > 15) {

      return false;

    }


    //2.必须是字母和数字的组合

    for (int i = 0; i < username.length(); i++) {

      char c = username.charAt(i);

      if (!(c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) {

        return false;

      }

    }


    //3.不能是纯数字

    int count = 0;

    for (int i = 0; i < username.length(); i++) {

      char c = username.charAt(i);

      if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {

        count++;

      }

    }

    return count > 0;

  }


  /**

   * @param list

   * @param id

   * @return

   * @注释 检查添加时id是否唯一

   */

  public static boolean constraintID(ArrayList<Student> list, String id) {

    return getIDIndex(list, id) >= 0;

  }


  /**

   * @param list

   * @param id

   * @return

   * @注释 id存在返回索引, 否则返回-1

   */

  public static int getIDIndex(ArrayList<Student> list, String id) {

    for (int i = 0; i < list.size(); i++) {

      Student stu = list.get(i);

      if (stu.getId().equals(id)) {

        return i;

      }

    }

    return -1;

  }



  /**

   * @param list

   * @注释 删除学生功能

   */

  public static void drop(ArrayList<Student> list) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入需要删除的学生ID: ");

    String id = sc.next();

    int index = getIDIndex(list, id);

    if (index != -1) {

      list.remove(index);

      System.out.println("删除成功");

    } else {

      System.out.println(id + "不存在");

    }

  }


  /**

   * @param list

   * @注释 修改学生信息功能

   */

  public static void alter(ArrayList<Student> list) {

    Scanner sc = new Scanner(System.in);

    Student s = new Student();

    System.out.println("请输入需要修改的学生id: ");

    String id = sc.next();

    int index = getIDIndex(list, id);

    if (index >= 0) {

      while (true) {

        System.out.println("请输入修改后的姓名: ");

        String name = sc.next();

        boolean result = checkName(name);

        if (!result) {

          System.out.println("姓名格式有误,请重新输入: ");

        } else {

          System.out.println("请输入修改后的年龄: ");

          int age = sc.nextInt();

          System.out.println("请输入修改后的家庭住址: ");

          String address = sc.next();


          //删除原有数据

          list.remove(index);


          s.setId(id);

          s.setName(name);

          s.setAge(age);

          s.setAddress(address);


          list.add(s);

          System.out.println("修改成功");

          break;

        }

      }

    } else {

      System.out.println(id + "不存在");

    }

  }


  /**

   * @param list

   * @注释 查询学生信息功能

   */

  public static void select(ArrayList<Student> list) {

    if (list.size() == 0) {

      System.out.println("当前无学生信息, 请添加后再查询");

    }

    System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");

    for (int i = 0; i < list.size(); i++) {

      Student s = list.get(i);

      System.out.println(s.getId() + "\t" + s.getName() + "\t" +

          s.getAge() + "\t" + s.getAddress());

    }

  }

}

P122定义工具类ArrayUtil

P122定义工具类StudentUtil

P132多态的综合练习,此处只供参考,只因未看先写,只展示person类


P143匿名内部类的具体实现

P175第一题:

P177基础查找课堂练习2

P178分块查找(无规律的数据)


黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算的评论 (共 条)

分享到微博请遵守国家法律