java面向?qū)ο笾畬W(xué)生信息管理系統(tǒng)
通過學(xué)習(xí)的一系列知識(shí)點(diǎn)綜合的小案例,通過控制臺(tái)來完成一系列的增刪查改的操作。
準(zhǔn)備工作
開發(fā)工具IDEA2019.1.4,jdk13
思路
一共三個(gè)類,一個(gè)接口
- Student類:封裝數(shù)據(jù)
- StudentManager類:用于管理增刪查改等方法體
- StudentView類:用于主界面的視圖
- StudentInterface接口:用于編寫抽象方法體,用于繼承

存放學(xué)生數(shù)據(jù)用我們學(xué)過的ArrayList,由于類是一種引用數(shù)據(jù)類型,所以我們可以將泛型指代成Student
編寫邏輯
業(yè)務(wù)層調(diào)用邏輯層,邏輯層調(diào)用數(shù)據(jù)層
知識(shí)點(diǎn)
面向?qū)ο?,ArrayList,泛型,循環(huán),迭代,switch
具體代碼實(shí)現(xiàn)
Student.java
package com.zxy.bean;
public class Student {
private int id;
private String name;
private int age;
private String addr;
public Student(){
// 無參構(gòu)造方法,防止出錯(cuò)
}
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("請輸入學(xué)號(hào):");
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中沒有學(xué)生信息
System.out.println("沒有學(xué)生信息");
return;
}
findStudent(list);
System.out.println("輸入要?jiǎng)h除的學(xué)號(hào):");
// 輸入要?jiǎng)h除的學(xué)號(hào)
int id=sc.nextInt();
// 判斷要?jiǎng)h除的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("沒有學(xué)生信息");
}
// 查詢?nèi)繉W(xué)生信息
for (Student student:list){
System.out.println(student.toString());
System.out.println("信息已展示");
}
return;
}
@Override
public void changeStudent(ArrayList<Student> list) {
// 修改學(xué)生信息
Scanner sc=new Scanner(System.in);
if (list.size()==0){
System.out.println("當(dāng)前沒有學(xué)生信息");
return;// 這樣會(huì)直接終止當(dāng)前語句,不會(huì)執(zhí)行下面的語句了
}
System.out.println("輸入要修改的學(xué)生的學(xué)號(hào):");
int id=sc.nextInt();
// 判斷id是否在list中,如果在,就修改
boolean flag=false;// 如果boolean為false,那么說明沒有在這個(gè)人
for (int i=0;i<list.size();i++){
if (list.get(i).getId()==id){
// 如果存在,就輸入新的學(xué)號(hào)、姓名、年齡、地址
System.out.println("輸入新的學(xué)號(hào):");
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("沒有找到該學(xué)生呢,親");
}
}
@Override
public void findOnlyStudent(ArrayList<Student> list) {
Scanner sc=new Scanner(System.in);
System.out.println("輸入要查找的學(xué)生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();
}
// 封裝一個(gè)主菜單的方法
public static void menu(){
// 數(shù)組保存學(xué)生信息,類型使用Student類型
ArrayList<Student> list=new ArrayList<>();
StudentManager stu=new StudentManager();
boolean flag=true;
while (flag){
System.out.println("***** 歡迎來到學(xué)生信息管理系統(tǒng) *****");
System.out.println("******* 1.查詢所有學(xué)生 *********");
System.out.println("******* 2.查詢單個(gè)學(xué)生 *********");
System.out.println("******* 3.添加學(xué)生 *********");
System.out.println("******* 4.修改學(xué)生 *********");
System.out.println("******* 5.刪除學(xué)生 *********");
System.out.println("******* 6.退出 *********");
System.out.println("**********************************");
System.out.println("請輸入您要操作的序號(hào): ");
// 序號(hào)選擇
int choice=new Scanner(System.in).nextInt();
switch (choice){
case 1:
// 查詢學(xué)生
stu.findStudent(list);
break;
case 2:
// 查詢單個(gè)學(xué)生
stu.findOnlyStudent(list);
break;
case 3:
// 添加學(xué)生
stu.addStudent(list);
break;
case 4:
// 修改學(xué)生
stu.changeStudent(list);
break;
case 5:
// 刪除學(xué)生
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);
}
運(yùn)行截圖






關(guān)于管理系統(tǒng)的更多內(nèi)容請點(diǎn)擊《管理系統(tǒng)專題》進(jìn)行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea注入mapper報(bào)錯(cuò)報(bào)紅的幾種解決方案
相信大家在使用idea的時(shí)候一定會(huì)遇到這樣的問題,就是在service里注入mapper的時(shí)候,明明代碼沒有問題,也可以運(yùn)行,但是idea它就是給你報(bào)個(gè)錯(cuò),有個(gè)紅色的波浪線在下面,所以本文將給大家介紹了idea注入mapper報(bào)錯(cuò)報(bào)紅的幾種解決方案,需要的朋友可以參考下2023-12-12
Spring mvc整合tiles框架的簡單入門教程(maven)
這篇文章主要給大家介紹了關(guān)于Spring mvc整合tiles框架的簡單入門教程(maven),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來一起看看詳細(xì)的介紹吧。2017-12-12
基于JAVA中Jersey處理Http協(xié)議中的Multipart的詳解
之前在基于C#開發(fā)彩信用最原始的StringBuilder拼接字符串方式處理過Multipart?,F(xiàn)在在做一個(gè)項(xiàng)目的時(shí)候,由于之前的技術(shù)路線都是使用Jersey處理Http這塊,為了保持技術(shù)路線一致,研究了一下如何使用Jersey處理Http協(xié)議中的Multipart2013-05-05
Springboot詳解如何實(shí)現(xiàn)SQL注入過濾器過程
這篇文章主要介紹了基于springboot實(shí)現(xiàn)SQL注入過濾器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2022-06-06

