學生管理系統(ArrayList集合增刪改查、數組排序、字符串比較)


1、管理系統概述

  • 利用了集合ArrayList存儲學生數據,實現了對學生的增刪改查
  • 利用數組中的方法實現分數排序
  • String類的equals實現登錄功能的字符串比較

2、代碼分析

(1)管理員類:

package data;

public class Manger {
    private String Manname;
    private String Manpassword;

    public Manger(String Manname, String Manpassword) {
        this.Manname = Manname;
        this.Manpassword = Manpassword;
    }

    public String getManname() {
        return Manname;
    }

    public void setManname(String manname) {
        Manname = manname;
    }

    public String getManpassword() {
        return Manpassword;
    }

    public void setManpassword(String manpassword) {
        Manpassword = manpassword;
    }

    @Override
    public String toString() {
        return "Manger [Manname=" + Manname + ", Manpassword=" + Manpassword
                + "]";
    }
    
}

定義管理員的屬性和方法。

(2)學生類:

package data;

public class Student {
    private String name;
    private String stuno;
    private String classno;
    private double point;
    int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getStuno() {
        return stuno;
    }
    public void setStuno(String stuno) {
        this.stuno = stuno;
    }
    public String getClassno() {
        return classno;
    }
    public void setClassno(String classno) {
        this.classno = classno;
    }
    public double getPoint() {
        return point;
    }
    public void setPoint(double point) {
        this.point = point;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [name=" + name + ", stuno=" + stuno + ", classno="
                + classno + ", point=" + point + ", age=" + age + "]";
    }
    

}

定義學生的屬性和方法。

(3)方法類:

package Way;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import data.Student;
import data.Manger;

public class Stuway {
    ArrayList<Student> array = new ArrayList<Student>();

    // ******************************登錄************************
    public void mainMenu() {
        System.out.println();
        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("6:退出");
        System.out.println("請您輸入要操作的功能序號:");
    }

    // ***************************功能選擇*********************
    public int chooseFunction() {
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
    }

    // ****************************信息初始化*************************
    public void init(ArrayList<Student> array) {
        Student s1 = new Student();
        s1.setName("張彬彬");
        s1.setStuno("20171509");
        s1.setClassno("計科191");
        s1.setPoint(345.0);
        s1.setAge(23);
        array.add(s1);

        Student s2 = new Student();
        s2.setName("劉冰冰");
        s2.setStuno("20181234");
        s2.setClassno("通信181");
        s2.setPoint(567);
        s2.setAge(20);
        array.add(s2);
        
        Student s3 = new Student();
        s3.setName("張明敏");
        s3.setStuno("20181904");
        s3.setClassno("計科191");
        s3.setPoint(432);
        s3.setAge(13);
        array.add(s3);
    }

    // ***************************學生信息顯示**************************
    public void showStudents(ArrayList<Student> array) {
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s);// 運行的是類中的toString
        }
    }

    // **************************增加學生信息**************************
    public void addStudents(ArrayList<Student> array) {
        System.out.println("請輸入要添加的學生的信息");
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入學生的姓名:");
        String name = sc.nextLine();
        System.out.println("請輸入學生的學號");
        String stuno = sc.next();
        System.out.println("請輸入學生的班級");
        String classno = sc.next();
        System.out.println("請輸入學生的分數");
        double point = sc.nextDouble();
        System.out.println("請輸入學生的年齡");
        int age = sc.nextInt();
        Student s = new Student();
        s.setName(name);
        s.setStuno(stuno);
        s.setClassno(classno);
        s.setPoint(point);
        s.setAge(age);
        array.add(s);
        System.out.println("添加學生信息成功");
    }

    // ****************************刪除學生信息***********************
    public void delectStudents(ArrayList<Student> array) {
        System.out.println("選擇的是刪除功能");
        System.out.println("請輸入學生的學號");
        Scanner sc = new Scanner(System.in);
        String stuno = sc.next();
        for (int i = 0; i < array.size(); i++) {// 遍歷集合
            Student s = array.get(i);
            if (s.getStuno().equals(stuno)) {
                array.remove(i); // 集合的方法remove實現
                System.out.println("刪除成功");
                return;
            }
        }
        System.out.println("你輸入的編號不存在");
    }

    // ****************************修改學生信息************************
    public void updataStudents(ArrayList<Student> array) {
        System.out.println("選擇的是修改功能");
        System.out.println("請輸入學生的的學號");
        Scanner sc = new Scanner(System.in);
        String stuno = sc.next();
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getStuno().equals(stuno)) {
                System.out.println("輸入新的學生姓名");
                s.setStuno(sc.next());
                System.out.println("輸入新的學生學號");
                s.setName(sc.next());
                System.out.println("輸入新的學生班級");
                s.setClassno(sc.nextLine());
                System.out.println("輸入新的學生分數");
                s.setPoint(sc.nextDouble());
                System.out.println("輸入新的學生年齡");
                s.setAge(sc.nextInt());
                System.out.println("學生信息修改成功");
                return;
            }
        }
    }

    // *****************************分數排序***********************
    public void scoreSort(ArrayList<Student> array) {
        double[] score = new double[10];
        System.out.println("選擇的是排序功能");
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            score[i] = s.getPoint();
            Arrays.sort(score);
            
        }
        for (int j = 0; j < score.length; j++) {
            for (int i = 0; i < array.size(); i++) {
                if (score[j] == array.get(i).getPoint()){
                    System.out.println(array.get(i));
                }
                    
            }
        }
    }

    // ***************************用戶登錄************************
    public boolean Log() {
        while (true) {
            Manger Man = new Manger("manger", "123");
            System.out.println("***********歡迎進入學生管理系統**********");
            System.out.println("請輸入用戶名");// manger
            Scanner sc = new Scanner(System.in);
            String manger = sc.nextLine();
            System.out.println("請輸入密碼");
            String password = sc.next();

            if ((Man.getManname().equals(manger))
                    && (Man.getManpassword().equals(password))) {
                System.out.println("登錄成功");
                return true;
            } else {
                System.out.println("登錄失敗");
                return false;

            }
        }

    }

}

該類是此學生管理系統的核心:

用戶首先輸入數字,然后利用switch...case語句來判斷用戶選擇的功能。

初始化函數是先向集合中插入數據,確保剛登錄系統的時候查詢結果不為空。

添加學生信息是向集合中插入數據。

刪除學生信息:遍歷集合中學生的數據並根據學生的學號確定是否是要刪除的學生的信息。

修改學生信息:遍歷集合中學生的信息的同時確定要修改的學生的學號。

分數排序:將每一位學生的分數放到數組中,對數組中的分數進行排序,然后遍歷數組,根據數組中的分數確定集合的學生信息進行學生信息的打印。

(4)測試類:

package main;

import java.util.ArrayList;
import Way.Stuway;
import data.Student;

public class Test {
    public static void main(String[] args) {
    ArrayList<Student> array = new ArrayList<Student>();    
    Stuway way = new Stuway(); 
    way.init(array);
    boolean a=way.Log();
    while(a){
        way.mainMenu();
        int choose = way.chooseFunction();
        
        switch (choose) {
        case 1:
            way.showStudents(array);
        break;
        case 2:
            way.addStudents(array);
            break;
        case 3:
            way.delectStudents(array);
            break;
        case 4:
            way.updataStudents(array);
            break;
        case 5:
            way.scoreSort(array);
            break;
        default:
            System.out.println("輸入有誤");
            break;
        }
    
}
    
    
    
}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM