Twinkling 发表于 2021-11-15 00:06

学生管理系统!!我的练习

      已经练了三遍了,第一遍写了仨小时,第二遍写了俩小时,第三遍写了不到俩小时,我的老师让我半个小时写出来,我的天哪,明天再继续练一练!
      纯属记录我的学习代码,发在这里是因为这里的大佬很多,可以让我受益匪浅,代码有什么问题直说,在这里先谢谢您!
这是main方法的代码......
package studentSYS03;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
//      不咋会用方法>所以有挺多重复的代码
//      本文没对姓名年龄啥的做判断,可能是不会,也可能是懒癌患者哈哈哈哈毕竟没做过
      Scanner sc = new Scanner(System.in);
      ArrayList<Student> studentArray = new ArrayList<Student>();
//      初始化 给集合里添加几个学生对象初始化
      student(studentArray);
//      初始化 id
      int id = 105;
      while (true) {
            System.out.println("欢迎进入妈见打学生管理系统: ");
            System.out.println("1.添加2.删除3.修改4.查找5.退出");
            String next = sc.next();
            switch (next) {
//                添加
                case "1":
                  addStudent(id++, sc, studentArray);
                  break;
//                删除
                case "2":
                  removeStudent(sc, studentArray);
                  break;
//                修改
                case "3":
                  setStudent(sc, studentArray);
                  break;
//                查找
                case "4":
                  getStudent(studentArray);
                  break;
//                退出
                case "5":
                  System.out.println("拜拜了您嘞!!");
                  System.exit(0);
                  break;
//                否则
                default:
                  System.out.println("你的输入有误,请重新输入!");
            }
      }

    }

    private static void student(ArrayList<Student> studentArray) {

      Student stu1 = new Student();
      stu1.setId(101);
      stu1.setName("张三");
      stu1.setAge(22);
      stu1.setSex("男");
      studentArray.add(stu1);

      Student stu2 = new Student();
      stu2.setId(102);
      stu2.setName("李四");
      stu2.setAge(23);
      stu2.setSex("男");
      studentArray.add(stu2);

      Student stu3 = new Student();
      stu3.setId(103);
      stu3.setName("王五");
      stu3.setAge(23);
      stu3.setSex("女");
      studentArray.add(stu3);

      Student stu4 = new Student();
      stu4.setId(104);
      stu4.setName("赵六");
      stu4.setAge(24);
      stu4.setSex("男");
      studentArray.add(stu4);
    }

    private static void getStudent(ArrayList<Student> studentArray) {
      System.out.println("学号\t\t姓名\t\t年龄\t\t性别");
      if (studentArray.size() > 0) {
            for (int i = 0; i < studentArray.size(); i++) {
                Student stu = studentArray.get(i);

                System.out.println(stu.getId() + "\t\t" + stu.getName() + "\t\t" + stu.getAge() + "\t\t" + stu.getSex());
            }
      } else {
            System.out.println("【失败】无数据请添加!");
      }
    }

    private static void setStudent(Scanner sc, ArrayList<Student> studentArray) {
      System.out.println("请输入你要修改的学生的 学号:");
      int id = sc.nextInt();
//      遍历数组
      for (int i = 0; i < studentArray.size(); i++) {
            Student stu = studentArray.get(i);
//            判断下学生类里的学号   是否等于输入的学号
            if (stu.getId() == id) {
                //                相等的话      打印出来开头
                System.out.println("学号\t\t姓名\t\t年龄\t\t性别");
                System.out.println(stu.getId() + "\t\t" + stu.getName() + "\t\t" + stu.getAge() + "\t\t" + stu.getSex());
                System.out.println();
                System.out.println("请输入新的 姓名输入 0 不修改此选项");
                String newName = sc.next();
                System.out.println("请输入新的 姓名输入 0 不修改此选项");
                int newAge = sc.nextInt();
                System.out.println("请输入新的 姓名输入 0 不修改此选项");
                String newSex = sc.next();
//                判断是否等于零 等于的话就不修改
                if (!("0".equals(newName))) {
//                  把新的值在付给对象
                  stu.setName(newName);
                }
                if (newAge != 0) {
//                  把新的值在付给对象
                  stu.setAge(newAge);
                }
                if (!("0".equals(newSex))) {
//                  把新的值在付给对象
                  stu.setSex(newSex);
                }
//                  提示下成功
                System.out.println("【成功】已成功修改!");
//                返回退出方法
                return;
            }
      }
//      提示下找不到
      System.out.println("【失败】请重新输入!");
    }

    private static void removeStudent(Scanner sc, ArrayList<Student> studentArray) {
      System.out.println("请输入你要删除的学生的 学号:");
      int id = sc.nextInt();
//      遍历集合
      for (int i = 0; i < studentArray.size(); i++) {
//          学生类    stu   =      集合里的 i 索引位置的元素
            Student stu = studentArray.get(i);
//            判断下学生类里的学号   是否等于输入的学号
            if (stu.getId() == id) {
//                相等的话      打印出来开头
                System.out.println("学号\t\t姓名\t\t年龄\t\t性别");
                System.out.println(stu.getId() + "\t\t" + stu.getName() + "\t\t" + stu.getAge() + "\t\t" + stu.getSex());
                System.out.println();
                System.out.println("确定要删除学号为: " + id + " 的学生吗?y/n");
                String rem = sc.next();
//                判断下是否相等 输入的
                if ("y".equalsIgnoreCase(rem)) {
                  studentArray.remove(i);
                  System.out.println("【成功】已成功删除!");
                  System.out.println("--------------------------------");
                  return;
                } else {
                  System.out.println("已返回!!!!");
                }

            }
      }
      System.out.println("【失败】请重新输入!");
    }

    private static void addStudent(int id, Scanner sc, ArrayList<Student> studentArray) {
      System.out.println("请输入你要添加学生的 姓名:");
      String name = sc.next();
      System.out.println("请输入你要添加学生的 年龄:");
      int age = sc.nextInt();
      System.out.println("请输入你要添加学生的 性别:");
      String sex = sc.next();
//      把 收来的信息放进对象里
      Student stu = new Student();
      stu.setId(id);
      stu.setName(name);
      stu.setAge(age);
      stu.setSex(sex);
//      把对象放在集合里
      studentArray.add(stu);
//      返回下成功
      if (studentArray.size() > 0) {
            System.out.println("【成功】已成功存入!");
            System.out.println("--------------------------------");
      } else {
            System.out.println("【失败】请重新输入!");
      }
    }
}


这是封装的代码
package studentSYS03;

public class Student {
    private int id;
    private String name;
    private int age;
    private String sex;

    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 int getAge() {
      return age;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public String getSex() {
      return sex;
    }

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

    public Student(int id, String name, int age, String sex) {
      this.id = id;
      this.name = name;
      this.age = age;
      this.sex = sex;
    }

    public Student() {
    }
}

lostmilkyway 发表于 2021-11-15 10:08

本帖最后由 lostmilkyway 于 2021-11-15 10:17 编辑

我还以为是B/S的学生管理系统,大一?多背单词多练算法,这个其实意义不大,另外你这个关闭后数据就全部丢失了,你这相当于只写了个前端出来,不考虑一些前后端交互细节处理的话,尝试跟数据库连接下,或者干脆写到本地文件(自己设计个数据库玩玩{:1_905:})

wushaominkk 发表于 2021-11-15 09:09

速度快10分钟可以写完,有些代码可以一键生成,加油

xiaoshu1688 发表于 2021-11-15 09:14

主要管理功能有哪些呢。

cr0624 发表于 2021-11-15 09:24

很努力,然而我看不懂

Pwaerm 发表于 2021-11-15 09:30

加油,非常好。

王星星 发表于 2021-11-15 09:37

Do_zh 发表于 2021-11-15 09:39

复制粘贴。快得很。

houxiaobai 发表于 2021-11-15 09:40

我刚开始学,感谢大佬,这对我帮助很大

Twinkling 发表于 2021-11-15 09:40

wushaominkk 发表于 2021-11-15 09:09
速度快10分钟可以写完,有些代码可以一键生成,加油

我觉得我已经尽力了,每次敲的时候还要想想该咋写哈哈哈还是敲的少了

Twinkling 发表于 2021-11-15 09:41

Do_zh 发表于 2021-11-15 09:39
复制粘贴。快得很。

这个还是的自己来,毕竟复制粘贴不能让我通过面试
页: [1] 2 3 4 5 6
查看完整版本: 学生管理系统!!我的练习