java面向對象之學生信息管理系統(tǒng)
通過學習的一系列知識點綜合的小案例,通過控制臺來完成一系列的增刪查改的操作。
準備工作
開發(fā)工具IDEA2019.1.4,jdk13
思路
一共三個類,一個接口
- Student類:封裝數據
- StudentManager類:用于管理增刪查改等方法體
- StudentView類:用于主界面的視圖
- StudentInterface接口:用于編寫抽象方法體,用于繼承
存放學生數據用我們學過的ArrayList,由于類是一種引用數據類型,所以我們可以將泛型指代成Student
編寫邏輯
業(yè)務層調用邏輯層,邏輯層調用數據層
知識點
面向對象,ArrayList,泛型,循環(huán),迭代,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;// 這樣會直接終止當前語句,不會執(zhí)行下面的語句了 } 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("***** 歡迎來到學生信息管理系統(tǒng) *****"); 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); }
運行截圖
關于管理系統(tǒng)的更多內容請點擊《管理系統(tǒng)專題》進行學習
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring mvc整合tiles框架的簡單入門教程(maven)
這篇文章主要給大家介紹了關于Spring mvc整合tiles框架的簡單入門教程(maven),文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友可以參考借鑒,下面來一起看看詳細的介紹吧。2017-12-12基于JAVA中Jersey處理Http協(xié)議中的Multipart的詳解
之前在基于C#開發(fā)彩信用最原始的StringBuilder拼接字符串方式處理過Multipart。現在在做一個項目的時候,由于之前的技術路線都是使用Jersey處理Http這塊,為了保持技術路線一致,研究了一下如何使用Jersey處理Http協(xié)議中的Multipart2013-05-05