天天看點

Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

目錄

  • 定義學生類
  • 主界面
  • 添加學生
  • 檢視學生
  • 删除學生
  • 修改學生
  • 兩個注意事項

定義學生類

  1. 定義成員變量
private String id;//學号
 private String name;//姓名
 private String age;//年齡
 private String gender;//性别
 private String addr;//居住位址

           
  1. 定義構造方法

(1)一個無參構造方法

public Student() {
    }
           

(2)帶四個參數的構造方法

public Student(String id, String name, String age, String gender, String addr) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.addr = addr;
    }
           
  1. 定義成員方法

    每個成員變量對應給出get/set方法

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

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

    public String getGender() {
        return gender;
    }

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

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
           

主界面

  1. 輸出語句完成主界面的編寫
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. 用Scanner實作鍵盤錄入資料
//鍵盤輸入
	Scanner sc = new Scanner(System.in);
	String line = sc.nextLine();
           
  1. 用switch完成功能選擇操作
//用switch完成選擇判斷
	switch (line) {
		case "1":
        	System.out.println("添加學生");
            break;
        case "2":
            System.out.println("删除學生");
            break;
        case "3":
            System.out.println("修改學生");
            break;
        case "4":
            System.out.println("檢視所有學生");
            break;
        case "5":
            System.out.println("謝謝使用");
            //break;
            System.exit(0);//JVM退出
     }
           
  1. 循環再次回到主界面
while (true) {
 ……
 }
           
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

添加學生

  1. 鍵盤錄入選擇添加學生
case "1":
        	System.out.println("添加學生");
            break;
           
  1. 定義方法用于添加學生

    (1)顯示提示輸入何種資訊,鍵盤輸入要添加的學生資訊

Scanner sc = new Scanner(System.in);
    System.out.println("請輸入學生學号:");
    String id = sc.nextLine();

    System.out.println("請輸入學生姓名:");
    String name = sc.nextLine();

    System.out.println("請輸入學生年齡:");
    String age = sc.nextLine();

    System.out.println("請輸入學生性别:");
    String gender = sc.nextLine();

    System.out.println("請輸入學生居住位址:");
    String addr = sc.nextLine();
           

(2)建立學生對象,把鍵盤輸入的資料指派

//建立學生對象
    Student s = new Student();
    s.setId(id);
    s.setName(name);
    s.setAge(age);
    s.setGender(gender);
    s.setAddr(addr);
           

(3)将學生對象添加到集合中

//将學生對象添加到集合中
    array.add(s);
           

(4)給出添加成功提示

//提示添加成功
    System.out.println("學生添加成功");
           
  1. 方法調用
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

檢視學生

  1. 鍵盤錄入選擇檢視學生
case "4":
	//System.out.println("檢視所有學生");
	findAllStudent(array);
	break;
           
  1. 定義檢視學生方法

(1)判斷集合中是否有資料,若沒有給出提示資訊

//判斷集合中是否有資料,若沒有顯示提示資訊
        if (array.size() == 0) {
            System.out.println("無資訊,請添加資訊");
            return;
        }
           

(2)顯示表頭資訊

//顯示表頭資訊
        System.out.println("學号\t姓名\t性别\t年齡\t居住位址");
           

(3)将集合中對應資訊顯示出來,年齡補充“歲”

/顯示集合中的資料
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getId() + "\t\t" + s.getName() + "\t" + s.getGender() + "\t\t" + s.getAge() + "歲\t" + s.getAddr());
        }
           
  1. 方法調用
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

删除學生

  1. 鍵盤錄入選擇删除學生
case "2":
	 //System.out.println("删除學生");
	deleteStudent(array);
	break;
           
  1. 定義删除學生方法

    (1)顯示提示資訊,鍵盤輸入要删除學生的學号

//鍵盤錄入需要删除學生的學号
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入需要删除學生的學号:");
        String id = sc.nextLine();
           

(2)周遊集合将對應學生資訊删除

//周遊集合将對應學生對象從集合中删除
        for(int i=0; i<array.size(); i++) {
            Student s = array.get(i);
            if(s.getSid().equals(sid)) {
                array.remove(i);
                break;
            }
        }
           

(3)給出删除成功的提示

//給出删除成功提示
        System.out.println("删除學生成功");
           
  1. 方法調用
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

修改學生

  1. 鍵盤錄入選擇删除學生
case "3":
                    //System.out.println("修改學生");
                    updateStudent(array);
                    break;
           
  1. 定義修改學生資訊方法

    (1)鍵盤錄入需修改學生的學号,顯示提示資訊

//鍵盤錄入需修改的學生學号
        Scanner sc = new Scanner(System.in);

        System.out.println("請輸入需修改學生的學号:");
        String id = sc.nextLine();
           

(2)鍵盤錄入需修改的學生資訊

//給出修改的提示
        System.out.println("請輸入學生的新姓名:");
        String name = sc.nextLine();
        System.out.println("請輸入學生的新年齡:");
        String age = sc.nextLine();
        System.out.println("請輸入學生的新性别:");
        String gender = sc.nextLine();
        System.out.println("請輸入學生的新位址:");
        String addr = sc.nextLine();
           

(3)建立學生對象

//建立學生對象
        Student s = new Student();
        s.setId(id);
        s.setName(name);
        s.setGender(gender);
        s.setAge(age);
        s.setAddr(addr);
           

(4)周遊集合修改對應學生資訊

//周遊集合修改對應的學生資訊
        for (int i = 0; i < array.size(); i++) {
            Student student = array.get(i);
            if (student.getId().equals(id)) {
                array.set(i, s);
                break;
            }
        }
           

(5) 給出修改成功提示

//給出修改成功提示
        System.out.println("修改學生成功");
           
  1. 方法調用
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

兩個注意事項

  1. 學号不存在問題

    在删除/修改學生資訊之前,對學号進行判斷,如果不存在,給出提示資訊,如果存在,則執行相應操作

    改進代碼如下:

//删除學生
    public static void deleteStudent(ArrayList<Student> array) {
        //鍵盤錄入需要删除學生的學号
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入需要删除學生的學号:");
        String id = sc.nextLine();

        //周遊集合,選中對應學生将其删除
        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getId().equals(id)) {
                index = i;
                //array.remove(i);
                break;
            }
        }
        if (index == -1) {
            System.out.println("該學生資訊不存在,請重新輸入:");
        } else {
            array.remove(index);
            System.out.println("删除成功");
        }
        //System.out.println("删除成功");
    }
           
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項
  1. 學号重複問題

    在添加學生資訊的過程中,若添加了已存在的學生學号,給出提示資訊,若沒有,則繼續執行該操作。

檢視學号是否重複代碼:

//檢視學号是否重複
    public static boolean isUsed(ArrayList<Student> array, String id) {
        //如果與集合中的某一個學生學号相同,傳回true;如果都不相同,傳回false
        boolean flag = false;

        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getId().equals(id)) {
                flag = true;
                break;
            }
        }

        return flag;
    }
           

添加學生代碼改進:

String id;

        while (true) {
            System.out.println("請輸入學生學号:");
            id = sc.nextLine();

            boolean flag = isUsed(array, id);
            if (flag) {
                System.out.println("你輸入的學号已經被使用,請重新輸入");
            } else {
                break;
            }
        }
           
Java——實作一個小型的學生資訊管理系統定義學生類主界面添加學生檢視學生删除學生修改學生兩個注意事項

至此,一個小型的學生資訊管理系統初步實作。