學生信息管理系統(JAVA)
一、目的
設計開發一套完整的學生信息管理系統---
(能夠對學生的信息進行管理,包括對學生信息的添加,修改,刪除,查看以及系統的關閉退出等)
二、整體框架與思路
學生類:(將學生的個人信息全部封裝起來)
main方法:
實現界面的初始化
能夠從鍵盤錄入數據
選擇相應的模塊能夠調用相應的方法
程序能夠終止
添加學生的方法
查看學生的方法
刪除學生的方法
程序退出
三、本系統重難點
- 添加、刪除、查看、修改四個方法的書寫
四、程序完整代碼
package Pattern;
import java.util.ArrayList;
import java.util.Scanner;
public class T15 {
public static void main(String[] args) {
//定義一個ArrayList用來存放學生信息
ArrayList<Student> arrayList = new ArrayList<>();
//使用一個循環控制系統能夠持續執行
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("請輸入你的選擇:");
//從鍵盤讀取數字,得到用戶想要進行的操作
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
//通過對數字的判斷來進行相應的增刪查改
switch (i) {
case 1:
addStudent(arrayList);
break;
case 2:
findStudent(arrayList);
break;
case 3:
deleteStudent(arrayList);
break;
case 4:
updateStudent(arrayList);
break;
case 5:
System.out.println("退出通訊錄成功!");
System.exit(0);//當選擇了5時,直接關閉JVM,整個系統結束
}
}
}
//增加學生信息
public static void addStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入學生學號:");
int num = scanner.nextInt();
System.out.println("請輸入學生QQ:");
int qq = scanner.nextInt();
System.out.println("請輸入學生電話:");
int phone = scanner.nextInt();
//因為ArrayList傳入的數據需要是對象,所以new出來一個封裝好的學生對象
//對象里面的數據就是從鍵盤錄入的,通過set方法將數據傳入
Student s1 = new Student();
s1.setNum(num);
s1.setQq(qq);
s1.setPhone(phone);
//把學生對象add進ArrayList
array.add(s1);
System.out.println("添加成功!");
}
//通過遍歷ArrayList來實現查看功能
public static void findStudent(ArrayList<Student> array) {
//需要先判斷ArrayList是否為空
if (array.size() == 0) {
System.out.println("通訊錄為空,請先錄入數據");
return;//為空的話,退出當前方法
}
//不為空向下執行,遍歷輸出
System.out.println("學號\tQQ\t\t電話");
for (int i = 0; i < array.size(); i++) {
//獲取array的每一位,然后調用get方法得到數據
Student s = array.get(i);
System.out.println(s.getNum() + "\t\t" + s.getQq() + "\t\t" + s.getPhone());
}
}
//通過輸入得到的學號與集合里面對象的num進行比較,如果相同,就新new一個Student
//來替換原先的對象(這邊有一個小瑕疵,如果學號不存在的情況還沒有考慮)
public static void updateStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入你要修改的同學學號:");
int snum = scanner.nextInt();
System.out.println("請輸入新學號:");
int newnum = scanner.nextInt();
System.out.println("請輸入新QQ:");
int newqq = scanner.nextInt();
System.out.println("請輸入新電話:");
int newphone = scanner.nextInt();
Student s = new Student();
s.setQq(newqq);
s.setNum(newnum);
s.setPhone(newphone);
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getNum() == snum) {
array.set(i, s);
break;
}
}
System.out.println("修改成功!");
}
//刪除學生信息,比對集合中是否存在該學號的數據,若存在則刪除
public static void deleteStudent(ArrayList<Student> array) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入需要刪除的同學的學號:");
int num = scanner.nextInt();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getNum() == num){
index = i;
break;
}
}
if (index == -1){
System.out.println("你輸入的信息不存在,請重新輸入");
}else {
array.remove(index);
System.out.println("刪除成功!");
}
}
}
class Student {
private int num;
private int qq;
private int phone;
public Student() {
}
public Student(int num, int qq, int phone) {
this.num = num;
this.qq = qq;
this.phone = phone;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getQq() {
return qq;
}
public void setQq(int qq) {
this.qq = qq;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
}
五、系統總結
這個系統的書寫還是很經典的,通過這個系統可以讓我對ArrayList集合的遍歷,以及對象封裝之后作為元素存儲在集合里,怎么通過get方法獲取到對象里面的數據然后進行比對。如果有必要,需要在次把代碼全部刪除,從頭開始重新書寫練習一遍。