还没走出新手村,今天勉勉强强完成了一个简单的小项目,虽然成功了,但是感觉代码还可以再优化优化,写这博客首先是记录一下,其次看以后能不能在学习的过程中再优化一下。

需要完成的只有五个功能。

javaee学生管理系统 java的学生管理系统_jvm


实现代码具体如下:哪里可以优化的大家也可以给出建议。

import java.util.ArrayList;
import java.util.Scanner;
/**
 * 学生管理系统代码思路
 * 1.需要定义学生类成员属性:学生学号,学生姓名,学生年龄,学生地址
 * 2.容器(ArrayList) 定义学生对象集合 存入学生对象
 * 3.对学生对象集合实现增删改查
 *
 * 备注:学生的学号 存入在集合中是不允许重复的
 */
/**
 * 学生管理系统类
 */
public class StudentManage {

    /**
     * 学生对象集合
     */
    private static ArrayList<Student> stu = new ArrayList<Student>();//下面方法是static的  这里也要加static关键字
    private static boolean isRun=true;//系统退出的方式一


    public static void main(String[] args) {
        //1.开发主页面
        while (isRun) {
            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("请选择【1-5】");
            Scanner sc = new Scanner(System.in);
            int number = sc.nextInt();
            switch (number) {
                case 1:
                    System.out.println("新增学生");
                    addStudent();
                    break;
                case 2:
                    System.out.println("修改学生");
                    updateStudent();
                    break;
                case 3:
                    System.out.println("删除学生");
                    deleteStudent();
                    break;
                case 4:
                    System.out.println("查询学生");
                    showStudent();
                    break;
                case 5:
//                    System.exit(0);系统退出方式三
                    isRun=false;
                    System.out.println("退出系统");
                    break;
                    //return;系统退出方式二

            }
        }
    }
    /**
     * 新增学生
     */
    static void addStudent(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生的学号:");
        String stuID = sc.nextLine();
        Student student = getByStuID(stuID);
        if (student!=null){
            System.out.println("该学号已经被"+student.getName()+"重复,请重新输入!!!");
            addStudent();
            return;
        }
        System.out.println("请输入学生的姓名:");
        String stuName = sc.nextLine();
        System.out.println("请输入学生的年龄:");
        Integer stuAge = sc.nextInt();
        System.out.println("请输入学生居住的地址:");
        String stuAddress = sc.next();

        //将信息存入集合中
        stu.add(new Student(stuID, stuName, stuAge, stuAddress));
        System.out.println("新增完成!");
    }

    /**
     * 封装提供方法 根据学号查询 学生对象集合中学生信息
     * 如果能查询到 则返回
     */
    static Student getByStuID(String stuID){
        for (int i = 0; i < stu.size(); i++) {
            Student student = stu.get(i);//获取到集合中的学生对象
            if (student.getStuID().equals(stuID)){
                return student;//返回学生对象
            }
        }
        return null;
    }
    static void showStudent(){
        if (stu.size()==0){
            System.out.println("该集合中没有存入任何学生对象");
            return;//程序不向下执行
        }
        System.out.println("学号\t姓名\t年龄\t居住地");//用\t制表符
        for (int i = 0; i < stu.size(); i++) {
            Student student = stu.get(i);
            System.out.println(student.getStuID()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getAddress());
        }
    }
    /**
     * 删除学生信息
     */
    public static void deleteStudent(){
        //删除学生 学号是唯一不重复 根据学号删除
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需删除的学生学号:");
        String sId = sc.nextLine();
        //需要根据该学号查找集合中 是否存在该对象 如果存在该对象 再调用
        for (int i = 0; i < stu.size(); i++) {
            Student student = stu.get(i);//获取学生对象
            if (student.getStuID().equals(sId)){
                stu.remove(i);//根据index下标删除
                System.out.println("删除成功");
            }else{
                System.out.println("该学号不存在,请重新输入:");
                deleteStudent();
                return;
            }

        }
    }
    /**
     * 修改学生信息
     */
    static void updateStudent(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需修改的学生学号:");
        String sId = sc.nextLine();
        //根据学号查找学生对象
        Student student = getByStuID(sId);
        if (student==null){
            System.out.println("根据该学号没有查找需要修改的学生对象");
            return;//实际开发中多用
        }
        System.out.println("请输入学生新的姓名:");
        String newStuName = sc.nextLine();
        System.out.println("请输入学生新的年龄:");
        Integer newStuAge = sc.nextInt();
        System.out.println("请输入学生新的居住地址:");
        String newStuAddress = sc.next();
        student.setName(newStuName);
        student.setAge(newStuAge);
        student.setAddress(newStuAddress);
        System.out.println("修改成功");
    }
}

还有Student类

package com.duixiang.day18.studentmanger;

public class Student {
    /**
     *学生学号 不允许重复
     */
    private String stuID;
    /*
    学生姓名
     */
    private String name;
    /**
     * 都是使用引用类型  int 默认为0  Integer 默认值为null
     * 学生年龄
     */
    private Integer age;
    /**
     * 学生地址
     */
    private String address;

    public String getStuID() {
        return stuID;
    }

    public void setStuID(String stuID) {
        this.stuID = stuID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Student(String stuID, String name, Integer age, String address) {
        this.stuID = stuID;
        this.name = name;
        this.age = age;
        this.address = address;
    }
}