1. 程式人生 > 程式設計 >java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

通過學習的一系列知識點綜合的小案例,通過控制檯來完成一系列的增刪查改的操作。

準備工作

開發工具IDEA2019.1.4,jdk13

思路

一共三個類,一個介面

  • Student類:封裝資料
  • StudentManager類:用於管理增刪查改等方法體
  • StudentView類:用於主介面的檢視
  • StudentInterface介面:用於編寫抽象方法體,用於繼承

java面向物件之學生資訊管理系統

存放學生資料用我們學過的ArrayList,由於類是一種引用資料型別,所以我們可以將泛型指代成Student

編寫邏輯

業務層呼叫邏輯層,邏輯層呼叫資料層

知識點

面向物件,ArrayList,泛型,迴圈,迭代,switch

具體程式碼實現

Student.java

package com.zxy.bean;

public class Student {
 private int id;
 private String name;
 private int age;
 private String addr;

 public Student(){
 // 無參構造方法,防止出錯
 }
 public Student(int id,String name,int age,String addr){
 this.id=id;
 this.name=name;
 this.age=age;
 this.addr=addr;
 }

 public int getId() {
 return id;
 }

 public void setId(int id) {
 this.id = id;
 }

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public int getAge() {
 return age;
 }

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

 public String getAddr() {
 return addr;
 }

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

 @Override
 public String toString() {
 return "{ID: "+this.id+",name: "+this.name+",age: "+this.age+",addr: "+this.addr+"}";
 }
}

StudentManager.java

package com.zxy.bean;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManager implements StudentInterface {
 @Override
 public void addStudent(ArrayList<Student> list) {
 Scanner sc=new Scanner(System.in);
 System.out.println("請輸入學號:");
 int id=sc.nextInt();

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

 System.out.println("請輸入年齡:");
 int age=sc.nextInt();

 System.out.println("請輸入地址:");
 String addr=sc.next();

 list.add(new Student(id,name,age,addr));

 System.out.println("新增完成");
 }

 @Override
 public void delStudent(ArrayList<Student> list) {
 // 首先刪除之前還是要判斷一下有沒有資訊
 Scanner sc=new Scanner(System.in);

 if (list.size()==0){
  // 如果為0,則說明list中沒有學生資訊
  System.out.println("沒有學生資訊");
  return;
 }
 findStudent(list);
 System.out.println("輸入要刪除的學號:");
 // 輸入要刪除的學號
 int id=sc.nextInt();

 // 判斷要刪除的id是不是在list中
 for (int i=0;i<list.size();i++){
  if (list.get(i).getId()==id){
  Object string = list.remove(i);
  System.out.println("刪除成功,你刪除的是:"+string);
  }
 }
 }

 @Override
 public void findStudent(ArrayList<Student> list) {
 if (list.size()==0){
  System.out.println("沒有學生資訊");
 }
 // 查詢全部學生資訊
 for (Student student:list){
  System.out.println(student.toString());
  System.out.println("資訊已展示");
 }
 return;
 }

 @Override
 public void changeStudent(ArrayList<Student> list) {
 // 修改學生資訊
 Scanner sc=new Scanner(System.in);

 if (list.size()==0){
  System.out.println("當前沒有學生資訊");
  return;// 這樣會直接終止當前語句,不會執行下面的語句了
 }
 System.out.println("輸入要修改的學生的學號:");
 int id=sc.nextInt();

 // 判斷id是否在list中,如果在,就修改
 boolean flag=false;// 如果boolean為false,那麼說明沒有在這個人
 for (int i=0;i<list.size();i++){
  if (list.get(i).getId()==id){
  // 如果存在,就輸入新的學號、姓名、年齡、地址
  System.out.println("輸入新的學號:");
  int idNew=sc.nextInt();

  System.out.println("輸入新的姓名:");
  String nameNew=sc.next();

  System.out.println("輸入新的年齡:");
  int ageNew=sc.nextInt();

  System.out.println("輸入新的地址:");
  String addrNew=sc.next();

  list.set(i,new Student(idNew,nameNew,ageNew,addrNew));

  System.out.println("修改成功");
  return;
  }
 }
 if (flag==false){
  System.out.println("沒有找到該學生呢,親");
 }
 }

 @Override
 public void findOnlyStudent(ArrayList<Student> list) {
 Scanner sc=new Scanner(System.in);
 System.out.println("輸入要查詢的學生id:");
 int id=sc.nextInt();

 for (Student stu:list){
  if (stu.getId()==id){
  System.out.println(stu.toString());
  }else {
  System.out.println("你輸入的id不存在");
  return;
  }
 }
 }
}

StudentView.java

package com.zxy.bean;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentView {


 public static void main(String[] args) {

 menu();
 }
 // 封裝一個主選單的方法
 public static void menu(){
 // 陣列儲存學生資訊,型別使用Student型別
 ArrayList<Student> list=new ArrayList<>();
 StudentManager stu=new StudentManager();
 boolean flag=true;
 while (flag){
 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("**********************************");
 System.out.println("請輸入您要操作的序號: ");
 // 序號選擇
 int choice=new Scanner(System.in).nextInt();
  switch (choice){
  case 1:
   // 查詢學生
   stu.findStudent(list);
   break;
  case 2:
   // 查詢單個學生
   stu.findOnlyStudent(list);
   break;
  case 3:
   // 新增學生
   stu.addStudent(list);
   break;
  case 4:
   // 修改學生
   stu.changeStudent(list);
   break;
  case 5:
   // 刪除學生
   stu.delStudent(list);
   break;
  case 6:
   // 退出程式
   flag=false;
   System.out.println("程式退出成功,歡迎下次使用");
   break;
  }
 }
 }
}

StudentInterface.java

package com.zxy.bean;

import java.util.ArrayList;

public interface StudentInterface {
 void addStudent(ArrayList<Student> list);
 void delStudent(ArrayList<Student> list);
 void findStudent(ArrayList<Student> list);
 void changeStudent(ArrayList<Student> list);
 void findOnlyStudent(ArrayList<Student> list);
}

執行截圖

java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

java面向物件之學生資訊管理系統

關於管理系統的更多內容請點選《管理系統專題》進行學習

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