天天看點

第十一天:學生管理系統

作者:無聊看這

day11

學習目标:

  • 掌握添加學生功能的編寫
  • 掌握查詢學生功能的編寫
  • 掌握修改學生功能的編寫
  • 掌握删除學生功能的編寫

1.學生類

public class Student {
    private String id;      //學号
    private String name;    //姓名
    private String gender;  //性别
    private int age;        //年齡
    private String birthday;//生日

    public Student() {
    }

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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
}
           

2.學生管理系統

import com.itheima.domain.Student;

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

public class StudentManagerSystem {
    public static void main(String[] args) {
        //建立集合容器,用來存儲學生對象
        ArrayList<Student> list = new ArrayList<>();
        //鍵盤錄入
        Scanner sc = new Scanner(System.in);
        //主界面的編寫
        wc:
        while (true) {
            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("請輸入您的選擇:");
            int num = sc.nextInt();
            switch (num) {
                case 1:
                    //System.out.println("1 添加學生");
                    addStudent(list, sc);
                    break;
                case 2:
//                    System.out.println("2 删除學生");
                    removeStudent(list,sc);
                    break;
                case 3:
//                    System.out.println("3 修改學生");
                    updateStudent(list,sc);
                    break;
                case 4:
//                    System.out.println("4 檢視學生");
                    showStudents(list);
                    break;
                case 5:
                    System.out.println("5 退出");
//                    break wc;
                    System.exit(0);
                default:
                    System.out.println("您的輸入有誤,請重新選擇!");
            }
        }

    }
    //修改學生資訊
    private static void updateStudent(ArrayList<Student> list, Scanner sc) {
        //判斷集合是否為空
        if (list.isEmpty()){
            System.out.println("無資訊,請添加後在操作!");
            return;
        }
        //修改學生資訊
        System.out.println("請輸入學生的學号:");
        String updateId = sc.next();
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            if (student.getId().equals(updateId)){
                //修改學生資訊
               /* System.out.println("請輸入你要修改的學生的姓名:");
                String name = sc.next();
                System.out.println("請輸入你要修改的學生的性别:");
                String gender = sc.next();
                System.out.println("請輸入你要修改的學生的年齡:");
                int age = sc.nextInt();
                System.out.println("請輸入你要修改的學生的生日:");
                String birthday = sc.next();
                student.setName(name);
                student.setGender(gender);
                student.setAge(age);
                student.setBirthday(birthday);*/

                Student stu = getStudent(sc, updateId);
                list.set(i,stu);

                System.out.println("修改成功!");
            }else {
                System.out.println("學号不存在,請檢查後,在操作");
            }
        }

    }

    //删除學生 根據學生學号删除學生
    private static void removeStudent(ArrayList<Student> list, Scanner sc) {
        //判斷集合是否為空
        if (list.isEmpty()){
            System.out.println("無資訊,請添加後在操作!");
            return;
        }
        //輸入學生學号
        System.out.println("請輸入你要删除的學生的學号:");
        String deleteId = sc.next();
        /*
            定義判斷學号是否存在的方法
                參數:集合 學号
                傳回值:int index
         */
        int index = isExistingStudentID(list,deleteId);
        if (index !=-1){
            list.remove(index);
            System.out.println("删除成功");
        }else {
            System.out.println("您輸入的學号不存在,請檢查後,在操作!");
        }
    }
    //判斷學号是否在集合中存在,如果存在傳回索引,如果不存在傳回 -1
    private static int isExistingStudentID(ArrayList<Student> list, String deleteId) {
        //周遊集合
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            if (student.getId().equals(deleteId)){
                return i;
            }
        }
        return -1;
    }

    //檢視學生資訊
    private static void showStudents(ArrayList<Student> list) {
        if (list.isEmpty()) {
            System.out.println("無資訊,請添加後查詢!");
            return;
        }
        System.out.println("學号\t\t姓名\t\t性别\t\t年齡\t\t生日");
        //周遊集合
        for (int i = 0; i < list.size(); i++) {
            Student student = list.get(i);
            System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() + "\t\t" + student.getAge() + "\t\t" + student.getBirthday()
            );
        }

    }

    //1 添加學生
    private static void addStudent(ArrayList<Student> list, Scanner sc) {
        /*String id = null;
        while (true) {
            System.out.println("請輸入你要添加的學生的學号:");
            id = sc.next();
            boolean flag = true;
            for (int i = 0; i < list.size(); i++) {
                Student stu = list.get(i);
                if (stu.getId().equals(id)) {
                    flag = false;
                }
            }
            if (flag) {
                break;
            } else {
                System.out.println("學号已經被占用,請從新輸入!");
            }
        }*/
        String id = null;
        while (true) {
            System.out.println("請輸入你要添加的學生的學号:");
            id = sc.next();
            int index = isExistingStudentID(list, id);
            if (index == -1){
                //System.out.println("學号不存在,可以使用");
                break;
            }else {
                System.out.println("學号已經被占用,請從新輸入!");
            }
        }


        Student student = getStudent(sc, id);
        list.add(student);
        System.out.println("添加成功!");

    }
    //輸入學生資訊  已知學号存在
    private static Student getStudent(Scanner sc, String id) {
        System.out.println("請輸入你要添加的學生的姓名:");
        String name = sc.next();
        System.out.println("請輸入你要添加的學生的性别:");
        String gender = sc.next();
        System.out.println("請輸入你要添加的學生的年齡:");
        int age = sc.nextInt();
        System.out.println("請輸入你要添加的學生的生日:");
        String birthday = sc.next();
        Student student = new Student(id, name, gender, age, birthday);
        return student;
    }
}
           

繼續閱讀