java控制臺實現(xiàn)學生信息管理系統(tǒng)(集合版)
使用java語言用集合存儲數(shù)據(jù)實現(xiàn)學生信息管理系統(tǒng),在控制臺上編譯執(zhí)行
可以實現(xiàn)基本的學生信息增加、刪除、修改、查詢功能
IO版可以參考我的另外一篇博文。
運行界面如下
歡迎界面

添加學生信息

刪除學生信息

修改學生信息

查詢學生信息

退出系統(tǒng)

系統(tǒng)模塊結(jié)構(gòu)圖

系統(tǒng)業(yè)務流程圖

代碼如下
Student類
public class Student {
private String stuNo;
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String stuNo, String name, int age) {
super();
this.stuNo = stuNo;
this.name = name;
this.age = age;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
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;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((stuNo == null) ? 0 : stuNo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (stuNo == null) {
if (other.stuNo != null)
return false;
} else if (!stuNo.equals(other.stuNo))
return false;
return true;
}
@Override
public String toString() {
return "學生:學號 " + stuNo + ", 姓名 " + name + ", 年齡 " + age ;
}
}
StudentDao類
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class StudentDAO {
static List<Student> list = new ArrayList<>();
static String ig = "1000";
Scanner sc = new Scanner(System.in);
// 增加學生信息
public void add(List<Student> list) {
int ig = Integer.parseInt(this.ig);
while (true) {
System.out.println(ig);
System.out.println("請輸入你要添加的學號為" + ig + "的學生的姓名");
String name = sc.next();
while (true) {
System.out.println("請輸入你要添加的學號為" + ig + "的學生的年齡");
Scanner sc1 = new Scanner(System.in);
if (sc1.hasNextInt()) {
int age = sc1.nextInt();
list.add(new Student(String.valueOf(ig), name, age));
break;
} else {
System.out.println("請正確輸入");
continue;
}
}
System.out.println("學號為" + ig + "的學生信息添加成功");
ig++;
this.ig = String.valueOf(ig);
System.out.println("添加信息后,學生的信息為:");
query(list);
System.out.println("是否繼續(xù)執(zhí)行添加操作(y/n)");
String result = sc.next();
if (result.equalsIgnoreCase("n") || result.equalsIgnoreCase("y")) {
if (result.equalsIgnoreCase("n")) {
break;
}
}
}
}
// 刪除學生信息
public void del(List<Student> list) {
if (list.size() != 0) {
a: while (true) {
query(list);
System.out.println("請輸出你要刪除的學生的學號");
String str = sc.next();
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student stu = it.next();
if (stu.getStuNo().equals(str)) {
it.remove();
System.out.println("刪除成功!");
System.out.println("刪除操作后,學生的信息為:");
query(list);
break a;// 跳出到指定循環(huán)外
}
}
System.out.println("查無此人……請查證后重新輸入");
}
} else {
System.out.println("還沒有添加學生信息,快去添加學生信息吧");
}
}
// 修改學生信息
public void update(List<Student> list) {
if (list.size() != 0) {
a: while (true) {
query(list);
System.out.println("請輸入要修改學生的學號:");
String stuNo = sc.next();
ListIterator<Student> lit = list.listIterator();
while (lit.hasNext()) {
Student stu = lit.next();
if (stu.getStuNo().equals(stuNo)) {
System.out.println("請輸入您要修改的學生的姓名");
String name = sc.next();
System.out.println("請輸入您要修改的學生的年齡");
if (sc.hasNextInt()) {
int age = sc.nextInt();
stu.setName(name);
stu.setAge(age);
System.out.println("修改操作后,學生的信息為:");
query(list);
break a;
} else {
System.out.println("請正確輸入年齡");
}
}
}
System.out.println("查無此人……請查證后重新輸入");
}
} else {
System.out.println("還沒有添加學生信息,快去添加學生信息吧");
}
}
// 查詢學生信息
public void query(List<Student> list) {
if (list.size() != 0) {
System.out.println("=============學生信息==============");
for (Student stu : list) {
System.out.println(stu);
}
System.out.println("=================================");
} else {
System.out.println("還沒有添加學生信息,快去添加學生信息吧");
}
}
}
StudentManager類
import java.util.Scanner;
/**
*
* 創(chuàng)建時間:2019年12月6日 上午11:40:57
*
*
*/
public class StudentManager {
public static void main(String[] args) {
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println();
System.out.println();
System.out.println("=================================");
System.out.println("=========歡迎使用學生管理系統(tǒng) =========");
System.out.println("=========請選擇您要進行的操作 =========");
System.out.println("= 1 添加學生信息 =");
System.out.println("= 2 刪除學生信息 =");
System.out.println("= 3 修改學生信息 =");
System.out.println("= 4 查詢學生信息 =");
System.out.println("= 5 退出系統(tǒng) =");
System.out.println("==================================");
System.out.println("請輸入您的選擇");
int choose;
if (sc.hasNextInt()) {
choose = sc.nextInt();
if (choose > 0 && choose < 6) {
Student st = new Student();
StudentDAO std = new StudentDAO();
switch (choose) {
case 1:
std.add(std.list);
break;
case 2:
std.del(std.list);
break;
case 3:
std.update(std.list);
break;
case 4:
std.query(std.list);
break;
case 5:
System.out.println("成功退出……");
System.out.println("歡迎下次使用");
System.exit(0);
break;
}
} else {
System.out.println("請正確輸入");
}
} else {
System.out.println("請您輸入正確的選項");
}
}
}
}
本系統(tǒng)中查詢功能不是很完善,可以實現(xiàn)功能使用查詢功能時可以選擇查詢?nèi)俊磳W號查詢、按姓名分類等不同的查詢方法。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot下實現(xiàn)session保持方式
這篇文章主要介紹了SpringBoot下實現(xiàn)session保持方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
IDEA安裝部署Alibaba Cloud Toolkit的實現(xiàn)步驟
Alibaba Cloud Toolkit是阿里云針對IDE平臺為開發(fā)者提供的一款插件,本文主要介紹了IDEA安裝部署Alibaba Cloud Toolkit的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2023-08-08
Java 多線程并發(fā)AbstractQueuedSynchronizer詳情
這篇文章主要介紹了Java 多線程并發(fā)AbstractQueuedSynchronizer詳情,文章圍繞主題展開想象的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-06-06
Java動態(tài)初始化數(shù)組,元素默認值規(guī)則詳解
動態(tài)初始化數(shù)組涉及先定義數(shù)組長度,后填充具體數(shù)據(jù),適用于數(shù)據(jù)量已知但具體值未定的情況,這種初始化方式允許程序運行過程中賦值,并會根據(jù)數(shù)據(jù)類型設(shè)定默認值,如整型為0,字符串為null,動態(tài)初始化與靜態(tài)初始化格式不能混用2024-10-10
Java實現(xiàn)精準Excel數(shù)據(jù)排序的方法詳解
在數(shù)據(jù)處理或者數(shù)據(jù)分析的場景中,需要對已有的數(shù)據(jù)進行排序,在Excel中可以通過排序功能進行整理數(shù)據(jù),而在Java中,則可以借助Excel表格插件對數(shù)據(jù)進行批量排序,下面我們就來學習一下常見的數(shù)據(jù)排序方法吧2023-10-10

