首頁 > 軟體

java實現簡單的學生管理系統

2022-02-24 19:02:10

用Java如何實現一個用陣列作為儲存結構的簡易的學生管理系統?

首先,我們定義一個student類,在其中新增私有化的成員變數,通過getter和setter方法進行呼叫

public class Students {
    // 學號,姓名,性別,年齡,成績
    private String stuNo = " ";
    private String stuName = " ";
    private String gender = " ";
    private int age;
    private int num;

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    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 int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String toString() {
        return "[" + stuNo + "t|" + stuName + "t|" + gender + "t|" + age + "t|" + num + "]";
    }

}

隨後,我們新建一個類,直接在main方法中寫學生管理系統.學生資訊管理系統一般要具有增刪改查四個功能,我們可以分別用方法進行實現,然後在主選單switch中進行呼叫。

package com.baidu.HomeWork.Stusys;

import java.util.Scanner;

public class Main {
    static int num = 0;
    static boolean tag = true;
    static boolean tag_1 = true;
    static Students[] stu = new Students[100];
    static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {

        while (tag) { // 主選單
            System.out.println("1.增加學生資料");
            System.out.println("2.刪除學生資料");
            System.out.println("3.修改學生資料");
            System.out.println("4.查詢學生資料");
            System.out.println("5.退出學生管理系統");

            int scan_num = scan.nextInt();
            switch (scan_num) { // 主選單選擇
            case 1:
                add();
                break;
            case 2:
                delete();
                break;
            case 3:
                gai();
                break;
            case 4:
                cha();
                break;
            case 5:
                tag = false;
                break;
            default:
                break;
            }

        }
    }

    static void add() { // 增加學生資訊
        while (tag_1) {
            stu[num] = new Students();
            System.out.println("請依次輸入學號,姓名,性別,年齡,成績");
            stu[num].setStuNo(scan.next());
            stu[num].setStuName(scan.next());
            stu[num].setGender(scan.next());
            stu[num].setAge(scan.nextInt());
            stu[num].setNum(scan.nextInt());
            num++;
            System.out.println("繼續輸入請輸入true,否則輸入false");
            tag_1 = scan.nextBoolean();

        }
        paixu();
        cha();
    }

    static void paixu() { // 對學生資訊進行排序,該方法選單中不可選擇,但會在其他方法中呼叫
        int l = num - 1;
        int temp;
        for (int j = 0; j < l; j++) {
            for (int i = 0; i < l - j; i++) {
                // 依次比較相鄰的兩個元素,使較大的那個向後移
                if (stu[i].getNum() > stu[i + 1].getNum()) {
                    temp = stu[i].getNum();
                    stu[i].setNum(stu[i + 1].getNum());
                    stu[i + 1].setNum(temp);
                }
            }
        }
    }

    static boolean kai = false;

    static void delete() { // 刪除學生資訊
        System.out.println("請輸入你要刪除的學號");
        String xuehao = scan.next();
        int i;
        for (i = 0; i < num; i++) {
            if (xuehao.equals(stu[i].getStuNo())) {
                kai = true;
                break;
            }
        }
        if (kai) {
            for (; i < num; i++) {
                stu[i].setStuNo(stu[i + 1].getStuNo());
                stu[i].setStuName(stu[i + 1].getStuName());
                stu[i].setGender(stu[i + 1].getGender());
                stu[i].setAge(stu[i + 1].getAge());
                stu[i].setNum(stu[i + 1].getNum());
            }
        } else {
            System.out.println("查無此人");
        }
        num--;
    }

    static boolean gai = false;

    static void gai() {                   // 修改學生資訊
        System.out.println("請輸入你要修改的學號");
        String xuehao = scan.next();
        int i;
        for (i = 0; i < num; i++) {
            if (xuehao.equals(stu[i].getStuNo())) {
                gai = true;
                break;
            }
        }
        if (gai) {
            System.out.println("請依次輸入資訊");
            stu[i].setStuNo(scan.next());
            stu[i].setStuName(scan.next());
            stu[i].setGender(scan.next());
            stu[i].setAge(scan.nextInt());
            stu[i].setNum(scan.nextInt());
        } else {
            System.out.println("查無此人");
        }
        paixu();
        cha();

    }

    static void cha() {                  // 遍歷學生資訊並列印,取代了逐一查詢學生資訊
        System.out.println("[學號t|姓名 t|性別 t|年齡t|成績]");
        for (int i = 0; i < num; i++) {
            System.out.println(stu[i]);
        }

    }

}

這樣一個簡單的用陣列實現的學生系資訊管理系統就做好了,還可以向其中新增其他的方法豐富這個系統或者為這個系統做一個介面。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com