初學java-學生管理系統
- 學生管理系統
學習java有十來天了,從剛開始的一無所知到現在慢慢掌握一些基本文法。最近碰到一個設定學生系統的問題,與大家分享一下在設計過程中遇到的問題以及解決和了解的思路。當然,初學者有一些不嚴謹和錯誤的地方,希望各位大佬指出,謝謝。
學生管理系統
設計這個系統,有幾個功能:
1.能夠添加學生資訊
2.能夠檢視所有學生的資訊
3.能夠檢視指定姓名學生的資訊。
首先呢,說一下大緻的思路。看到這個系統,得建立一個學生類,還要建立一個存放學生資訊的數組類。學生類中有一些屬性,比如學生姓名,學生成績等等。剛開始,就遇到了一個開始不怎麼了解的問題,在數組類裡,需要存放學生資訊的數組。這裡首先想到的就是學生有幾個屬性,就建立幾個一維數組去儲存資訊,例如String[] name = new String[10]; int[] score=new int[10];等數組去儲存資訊,然後檢視的時候,就用數組下标輸出各個數組的對應資訊。但是這樣會麻煩一些,如果學生屬性過多,數組數量等也會變多。然後就碰到一個開始不了解的問題,用數組去儲存學生對象。在寫法上開始就不知道如何寫,後來想到,要去儲存Student類的對象,這裡就把Student看成基本資料類型,和基本資料類型一樣的定義數組。Student[] arr = new Student[10]; 隻要把Student看做一個基本資料類型,這裡就比較好了解了。寫添加學生方法的時候,就可以直接把學生對象做為參數,接下來就是寫出各個功能的方法,按照設計系統的邏輯,一步一步寫出來。最後呢,祝各位2019早生貴子。什麼?到2019了還沒找對象?那就去new一個吧~
數組類代碼
public class SuperArray {
private Student[] arr;//存放Student對象的數組
private int size;//表示數組中元素的個數
//構造方法
public SuperArray() {
arr = new Student[10];
size = 0;
}
//存放資料
public void add(Student s) {
arr[size] = s;//将Student對象存入數組中
size++; //存一個,數組中元素個數加1
//判斷如果數組資料存放滿了,就要建立新數組
if(arr.length == size) {
//建立一個數組長度為原來長度兩倍的新數組
Student[] newArr = new Student[arr.length * 2];
//将原數組中的資料複制到新數組中
for(int i = 0;i < size;i++) {
newArr[i] = arr[i];
}
//将新數組的位址值賦給原數組,原數組就會指向新數組
arr = newArr;
}
}
//輸出所有學生資訊
public void print() {
for(int i = 0;i < size;i++) {
System.out.println(arr[i]);
}
}
//檢視指定姓名的學生
public void get(String name) {
//建立學生對象
Student s = new Student();
//先周遊所有學生
for(int i = 0;i < size;i++) {
s = arr[i];//某個學生對象在數組中的位置
//判斷學生對象的姓名與輸入的姓名是否一緻
if(name.equals(s.name)) {
System.out.println(arr[i]);//如果一緻,就将該對象輸出
}
}
}
}
學生類代碼
public class Student {
public String name;
public int score;
//構造方法
public Student() {
}
public Student(String name,int score) {
this.name = name;
this.score = score;
}
public String toString() {
return "姓名:" + name + ",成績:" + score;
}
}
測試類代碼
public class Test {
public static void main(String[] args) {
Student s1 = new Student("小赤", 98);
Student s2 = new Student("小橙", 92);
SuperArray superArray = new SuperArray();
superArray.add(s1);
superArray.add(s2);
superArray.print();
System.out.println("===============");
superArray.get("小橙");
}
}