Java学生管理系统(详解)
相信大部分人都有接触过这个 Java 小项目——学生管理系统,下面会分享我在做这个项目时的一些方法以及程序代码供大家参考(最后附上完整的项目代码)。
首本人只是个初学Java的小白,可能项目中有许多地方使用不规范的以及代码的格式问题会引起各路大佬阅读的不适,还请 “ 手下留情 ” ,当然欢迎大家指出问题所在,然后一起进步!!!
我把整个项目分成了Student .Java、Main.Java、FunctionModule.java、Extents.Java 四个部分
学生类
首先创建学生类和构造方法
代码如下:
package com.studentmodule;
/**
* @author wenjie
*/
public class Student {
private int stuId;
private int grade;
private String name;
private int age;
private String address;
public Student() {
}
public Student(int stuId, int grade, String name, int age, String address) {
this.stuId = stuId;
this.grade = grade;
this.name = name;
this.age = age;
this.address = address;
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
main方法
接下来就从 main 方法开始 “ 运行 ” 吧!
package com.studentmodule;
import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author wenjie
*/
public class Main {
static final int COUNT = 2;
static final String MYSID = "admin";
static final String MYPASSWD = "666666";
public static void main(String[] args) throws AWTException {
interFace();
}
首界面登录
首先运行程序进入到以下首界面进行登录选择,选择 1 进入登录界面,选择 0 则退出程序,所有的选择程序都有错误判断,以下选择判断都一样,输入错误则提示重新输入。

代码如下:
public static void interFace() throws AWTException {
System.out.println(">首界面\n");
System.out.println("\t*****************************************************************");
System.out.println("\t 首界面 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 开始登录 请输入1 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 退出 请输入0 ");
System.out.println("\t*****************************************************************");
Scanner sc = new Scanner(System.in);
System.out.print("\n请输入您的选择: ");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
register();
break;
} else if (choose == 0) {
System.out.println("退出成功!");
System.exit(0);
} else {
System.out.print("看清选项! 再给你一次机会:");
}
}
}
通过键盘录入正确的用户名以及密码进行登录,你有三次输入的机会,如果三次都输入错误则程序自动退出。
代码如下:
public static void register() throws AWTException {
for (int i = COUNT; i >= 0; i--) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入您的用户名: ");
String loginSid = sc.nextLine();
System.out.print("请输入您的密码: ");
String loginPassWd = sc.nextLine();
if (loginSid.equals(MYSID) && loginPassWd.equals(MYPASSWD)) {
Extents.clearConsole();
System.out.println("欢迎登录! 用户:" + MYSID + "\n\n");
menu();
break;
} else {
if (i == 0) {
System.out.println("你是不是傻!");
System.exit(0);
}
System.out.println("错了错了, 你还有 " + i + " 次机会");
}
}
}
功能选择界面
输入正确后进入以下功能选择界面,输入对应的序号分别对学生信息进行(增、删、改、查)四个操作,另外输入 ‘ q ’ 则返回上级,输入 ’ p‘ 则退出程序。

代码如下:
public static void menu() throws AWTException {
ArrayList<Student> stu = new ArrayList<>();
while (true) {
System.out.println(">首界面>功能界面\n");
System.out.println("\t*****************************************************************");
System.out.println("\t 欢迎来到学生管理系统! ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 1.添加学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 2.删除学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 3.修改学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 4.查看学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t q:返回上级菜单 p:退出管理系统 ");
System.out.println("\t******************************************************************");
Scanner sc = new Scanner(System.in);
System.out.print("\n请输入您的选择:");
String choose = sc.nextLine();
switch (choose) {
case "1":
FunctionalBlock.addStu(stu);
break;
case "2":
Extents.clearConsole();
FunctionalBlock.deleteStu(stu);
break;
case "3":
Extents.clearConsole();
FunctionalBlock.updateStu(stu);
break;
case "4":
Extents.clearConsole();
FunctionalBlock.showStu(stu);
Extents.isShow(sc);
break;
case "q":
Extents.clearConsole();
interFace();
return;
case "p":
System.out.println("退出成功!");
System.exit(0);
default:
Extents.clearConsole();
System.out.println("这都错!看清选项再选\n\n\n");
break;
}
}
}
添加学生信息
如果还没有添加学生信息(学生数量为 0 )就进行删除、修改、查看等操作时就会提示 “ 数据为空,请添加数据后操作!” ,此时输入 1 进行添加学生,输入要添加的学生信息,输入完后会打印出来并询问是否添加,输入 1 则添加该学生,反之输入 0 则取消学生添加,添加一个学生信息后同样会打印出所有学生信息,最后可以选择继续添加或者返回上级。这里最后显示会后一个学号,因为学号每个学生都是唯一的,所以我让它每添加一个学生后进行自增 1 并不需要手动录入。

代码如下:
public static void addStu(ArrayList<Student> stu) throws AWTException {
while (true) {
Extents.clearConsole();
System.out.println(">首界面>功能界面>添加学生信息\n\n");
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生班级(例:3): ");
int grade = sc.nextInt();
System.out.print("请输入学生姓名(例:张三): ");
String name = sc.next();
System.out.print("请输入学生年龄(例:18): ");
int age = sc.nextInt();
System.out.print("请输入学生地址(例:深圳): ");
String address = sc.next();
System.out.println("\n\n-----------------------------------------------------");
System.out.println("班级: " + grade + "\t\t姓名: " + name + "\t\t年龄: " + age + "\t\t地址: " + address);
System.out.print("\n\n是否添加该学生信息? [Yes(1) / No(0)] :");
Extents.isAdd(stu, sc, grade, name, age, address);
System.out.println("\n\n\n>首界面>功能界面>添加学生信息\n");
System.out.println("\t 继续添加 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.print("\n请输入您的选择:");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
public static void isAdd(ArrayList<Student> stu, Scanner sc, int grade, String name, int age, String address) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
Student s = new Student(stuId, grade, name, age, address);
stu.add(s);
stuId += 1;
Extents.clearConsole();
System.out.println("添加信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
删除学生信息
添加了学生信息后我们输入 0 返回上级菜单然后选择 2 进行删除学生操作,首先会打印出所有学生信息,然后输入你想要删除的学生信息的学号,如果该学号不存在会进行提示并重新输入,最后确认是否删除该学生信息,选择 1 删除,选择 0 则取消删除,删除后会再次打印操作后的所有学生信息,会发现此时学生数量由 3 变成了 2 ,以及刚删除的信息则不见了,你可以选择继续删除以及返回上级菜单。

代码如下:
public static void deleteStu(ArrayList<Student> stu) throws AWTException {
Scanner sc = new Scanner(System.in);
showStu(stu);
while (true) {
System.out.print("\n请输入要删除的学生学号:");
int sid = sc.nextInt();
sc.nextLine();
int flag = Extents.getFlag(stu, sid);
if (flag == -1) {
System.out.print("\n该学号不存在,请重新输入\n");
} else {
System.out.print("\n是否删除学号为:" + sid + " 的学生信息? [Yes(1) / No(0)] :");
Extents.isDlete(stu, sc, flag);
System.out.println("\n\n\n>首界面>功能界面>删除学生信息\n");
System.out.println("\t 继续删除 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ----------------------------------------------------------------");
System.out.print("\n请输入您的选择: ");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
}
public static void isDlete(ArrayList<Student> stu, Scanner sc, int flag) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
stu.remove(flag);
Extents.clearConsole();
System.out.println("删除学生信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
修改学生信息
删除完学号为 2 的学生信息后我们输入 0 返回上级菜单,然后输入 3 进行修改操作,同样先打印出所有学生信息,选择你想要修改的学生信息学号,如果学号不存在会进行提示并重新输入,然后根据提示依次输入要修改的学生信息,输入完后会打印出修改前和修改后的学生信息让你进行对比,最后输入 1 修改输入 0 则取消修改,修改完后再次打印所有学生的信息进行查看确认。

代码如下:
public static void updateStu(ArrayList<Student> stu) throws AWTException {
Scanner sc = new Scanner(System.in);
while (true) {
showStu(stu);
System.out.print("\n\n请输入要修改信息的学生学号:");
int sidUpdate = sc.nextInt();
int flag = Extents.getFlag(stu, sidUpdate);
Extents.clearConsole();
if (flag == -1) {
System.out.print("该学号不存在,请重新输入\n\n\n ");
} else {
System.out.println(">首界面>功能界面>修改学生信息\n\n");
System.out.print("请输入学生班级: ");
int grade = sc.nextInt();
System.out.print("请输入学生姓名: ");
String name = sc.next();
System.out.print("请输入学生年龄: ");
int age = sc.nextInt();
System.out.print("请输入学生地址: ");
String address = sc.next();
Extents.clearConsole();
Extents.getFlag(stu, sidUpdate);
Student s1 = stu.get(flag);
System.out.println(">首界面>功能界面>修改学生信息");
System.out.println("\n\n------------------------------------------------------------------");
System.out.println("修改前——>\n");
System.out.println("学号:" + s1.getStuId() + "\t\t班级: " + s1.getGrade() + "\t\t姓名: "
+ s1.getName() + "\t\t年龄: " + s1.getAge() + "\t\t地址: " + s1.getAddress());
System.out.println("\n\n------------------------------------------------------------------");
System.out.println("修改后——>\n");
System.out.println("学号:" + sidUpdate + "\t\t班级: " + grade + "\t\t姓名: " + name + "\t\t年龄: "
+ age + "\t\t地址: " + address);
System.out.print("\n\n是否修改该学生信息? [Yes(1) / No(0)] :");
Extents.isUpdata(stu, sc, sidUpdate, flag, grade, name, age, address);
System.out.println("\n\n\n>首界面>功能界面>修改学生信息\n");
System.out.println("\t 继续修改 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t --------------------------------------------------------------");
System.out.print("\n请输入您的选择:");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
Extents.clearConsole();
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
}
public static void isUpdata(ArrayList<Student> stu, Scanner sc, int sidUpdate, int flag, int grade, String name, int age, String address) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
Student newStu = new Student(sidUpdate, grade, name, age, address);
stu.set(flag, newStu);
Extents.clearConsole();
System.out.println("修改学生信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
查看学生信息
最后就是我们的查看学生了,其实在之前的添加、删除、修改中都有频繁的调用查找功能来打印出所有学生信息,但还是讲一下吧,输入 0 返回上级菜单后再输入 4 进行查看所有学生信息,输入 0 就可以返回上级菜单了,最后可以输入 ’ q ‘ 退出程序。

代码如下:
public static void showStu(ArrayList<Student> stu) throws AWTException {
if (stu.size() == 0) {
Extents.clearConsole();
System.out.println("数据为空,请添加数据后操作!\n\n");
Main.menu();
} else {
System.out.println(">学生信息显示\n");
System.out.println("学生个数:"+stu.size() + "人\n");
System.out.println("\t ----------------------------------------------------------------");
System.out.println("\t 学号\t\t" + " 班级\t\t" + " \t姓名\t" + "\t\t年龄" + " \t\t\t地址");
System.out.println("\t --------------------------------------------------------------");
/*for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);*/
for (Student s : stu) {
System.out.println("\t\t" + s.getStuId() + "\t\t\t" + s.getGrade() + " \t\t\t" + s.getName()
+ " \t\t\t" + s.getAge() + " \t\t\t" + s.getAddress() + "\n");
System.out.println("\t --------------------------------------------------------------");
}
}
}
public static void isShow(Scanner sc) throws AWTException {
System.out.println("\n\n\n>首界面>功能界面>查看学生信息\n\n");
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.print("\n请输入您的选择: ");
while (true) {
int choose1 = sc.nextInt();
if (choose1 == 0) {
Extents.clearConsole();
break;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
学号遍历 和 清空控制台方法
下面这两个方法一个是用来进行学号遍历的,找到对应学生的学号获得该学生信息然后对该学号的学生信息进行操作
还有一个就是清空控制台的方法,这个方法在我上一篇文章中有详细的说明,想了解的可以点击该链接进行查看
链接:
public static int getFlag(ArrayList<Student> stu, int sid) {
int flag = -1;
for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);
if (s.getStuId() == sid) {
flag = i;
break;
}
}
return flag;
}
public static void clearConsole() throws AWTException {
Robot r = new Robot();
// 按下Ctrl键
r.keyPress(KeyEvent.VK_CONTROL);
// 按下R键
r.keyPress(KeyEvent.VK_R);
// 释放R键
r.keyRelease(KeyEvent.VK_R);
// 释放Ctrl键
r.keyRelease(KeyEvent.VK_CONTROL);
r.delay(50);
}
好了,程序运行到这里也差不多完了,所有的功能都有基本介绍一遍,就是基本的 ( 增、删、改、查 ) 四个操作。
附:学生管理系统代码
最后附上完整的学生管理系统项目的代码
Student .Java
package com.studentmodule;
/**
* @author wenjie
*/
public class Student {
private int stuId;
private int grade;
private String name;
private int age;
private String address;
public Student() {
}
public Student(int stuId, int grade, String name, int age, String address) {
this.stuId = stuId;
this.grade = grade;
this.name = name;
this.age = age;
this.address = address;
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Main.Java
package com.studentmodule;
import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author wenjie
*/
public class Main {
static final int COUNT = 2;
static final String MYSID = "admin";
static final String MYPASSWD = "666666";
public static void main(String[] args) throws AWTException {
interFace();
}
public static void interFace() throws AWTException {
System.out.println(">首界面\n");
System.out.println("\t*****************************************************************");
System.out.println("\t 首界面 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 开始登录 请输入1 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 退出 请输入0 ");
System.out.println("\t*****************************************************************");
Scanner sc = new Scanner(System.in);
System.out.print("\n请输入您的选择: ");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
register();
break;
} else if (choose == 0) {
System.out.println("退出成功!");
System.exit(0);
} else {
System.out.print("看清选项! 再给你一次机会:");
}
}
}
public static void register() throws AWTException {
for (int i = COUNT; i >= 0; i--) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入您的用户名: ");
String loginSid = sc.nextLine();
System.out.print("请输入您的密码: ");
String loginPassWd = sc.nextLine();
if (loginSid.equals(MYSID) && loginPassWd.equals(MYPASSWD)) {
Extents.clearConsole();
System.out.println("欢迎登录! 用户:" + MYSID + "\n\n");
menu();
break;
} else {
if (i == 0) {
System.out.println("你是不是傻!");
System.exit(0);
}
System.out.println("错了错了, 你还有 " + i + " 次机会");
}
}
}
public static void menu() throws AWTException {
ArrayList<Student> stu = new ArrayList<>();
while (true) {
System.out.println(">首界面>功能界面\n");
System.out.println("\t*****************************************************************");
System.out.println("\t 欢迎来到学生管理系统! ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 1.添加学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 2.删除学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 3.修改学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t 4.查看学生信息 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.println("\t q:返回上级菜单 p:退出管理系统 ");
System.out.println("\t******************************************************************");
Scanner sc = new Scanner(System.in);
System.out.print("\n请输入您的选择:");
String choose = sc.nextLine();
switch (choose) {
case "1":
FunctionalBlock.addStu(stu);
break;
case "2":
Extents.clearConsole();
FunctionalBlock.deleteStu(stu);
break;
case "3":
Extents.clearConsole();
FunctionalBlock.updateStu(stu);
break;
case "4":
Extents.clearConsole();
FunctionalBlock.showStu(stu);
Extents.isShow(sc);
break;
case "q":
Extents.clearConsole();
interFace();
return;
case "p":
System.out.println("退出成功!");
System.exit(0);
default:
Extents.clearConsole();
System.out.println("这都错!看清选项再选\n\n\n");
break;
}
}
}
}
FunctionModule.java
package com.studentmodule;
import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author wenjie
*/
public class FunctionalBlock {
public static void addStu(ArrayList<Student> stu) throws AWTException {
while (true) {
Extents.clearConsole();
System.out.println(">首界面>功能界面>添加学生信息\n\n");
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生班级(例:3): ");
int grade = sc.nextInt();
System.out.print("请输入学生姓名(例:张三): ");
String name = sc.next();
System.out.print("请输入学生年龄(例:18): ");
int age = sc.nextInt();
System.out.print("请输入学生地址(例:深圳): ");
String address = sc.next();
System.out.println("\n\n-----------------------------------------------------");
System.out.println("班级: " + grade + "\t\t姓名: " + name + "\t\t年龄: " + age + "\t\t地址: " + address);
System.out.print("\n\n是否添加该学生信息? [Yes(1) / No(0)] :");
Extents.isAdd(stu, sc, grade, name, age, address);
System.out.println("\n\n\n>首界面>功能界面>添加学生信息\n");
System.out.println("\t 继续添加 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.print("\n请输入您的选择:");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
public static void deleteStu(ArrayList<Student> stu) throws AWTException {
Scanner sc = new Scanner(System.in);
showStu(stu);
while (true) {
System.out.print("\n请输入要删除的学生学号:");
int sid = sc.nextInt();
sc.nextLine();
int flag = Extents.getFlag(stu, sid);
if (flag == -1) {
System.out.print("\n该学号不存在,请重新输入\n");
} else {
System.out.print("\n是否删除学号为:" + sid + " 的学生信息? [Yes(1) / No(0)] :");
Extents.isDlete(stu, sc, flag);
System.out.println("\n\n\n>首界面>功能界面>删除学生信息\n");
System.out.println("\t 继续删除 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ----------------------------------------------------------------");
System.out.print("\n请输入您的选择: ");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
}
public static void updateStu(ArrayList<Student> stu) throws AWTException {
Scanner sc = new Scanner(System.in);
while (true) {
showStu(stu);
System.out.print("\n\n请输入要修改信息的学生学号:");
int sidUpdate = sc.nextInt();
int flag = Extents.getFlag(stu, sidUpdate);
Extents.clearConsole();
if (flag == -1) {
System.out.print("该学号不存在,请重新输入\n\n\n ");
} else {
System.out.println(">首界面>功能界面>修改学生信息\n\n");
System.out.print("请输入学生班级: ");
int grade = sc.nextInt();
System.out.print("请输入学生姓名: ");
String name = sc.next();
System.out.print("请输入学生年龄: ");
int age = sc.nextInt();
System.out.print("请输入学生地址: ");
String address = sc.next();
Extents.clearConsole();
Extents.getFlag(stu, sidUpdate);
Student s1 = stu.get(flag);
System.out.println(">首界面>功能界面>修改学生信息");
System.out.println("\n\n------------------------------------------------------------------");
System.out.println("修改前——>\n");
System.out.println("学号:" + s1.getStuId() + "\t\t班级: " + s1.getGrade() + "\t\t姓名: "
+ s1.getName() + "\t\t年龄: " + s1.getAge() + "\t\t地址: " + s1.getAddress());
System.out.println("\n\n------------------------------------------------------------------");
System.out.println("修改后——>\n");
System.out.println("学号:" + sidUpdate + "\t\t班级: " + grade + "\t\t姓名: " + name + "\t\t年龄: "
+ age + "\t\t地址: " + address);
System.out.print("\n\n是否修改该学生信息? [Yes(1) / No(0)] :");
Extents.isUpdata(stu, sc, sidUpdate, flag, grade, name, age, address);
System.out.println("\n\n\n>首界面>功能界面>修改学生信息\n");
System.out.println("\t 继续修改 请输入1 ");
System.out.println();
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t --------------------------------------------------------------");
System.out.print("\n请输入您的选择:");
while (true) {
int choose = sc.nextInt();
if (choose == 1) {
Extents.clearConsole();
break;
} else if (choose == 0) {
Extents.clearConsole();
return;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
}
}
public static void showStu(ArrayList<Student> stu) throws AWTException {
if (stu.size() == 0) {
Extents.clearConsole();
System.out.println("数据为空,请添加数据后操作!\n\n");
Main.menu();
} else {
System.out.println(">学生信息显示\n");
System.out.println("学生个数:"+stu.size() + "人\n");
System.out.println("\t ----------------------------------------------------------------");
System.out.println("\t 学号\t\t" + " 班级\t\t" + " \t姓名\t" + "\t\t年龄" + " \t\t\t地址");
System.out.println("\t --------------------------------------------------------------");
/*for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);*/
for (Student s : stu) {
System.out.println("\t\t" + s.getStuId() + "\t\t\t" + s.getGrade() + " \t\t\t" + s.getName()
+ " \t\t\t" + s.getAge() + " \t\t\t" + s.getAddress() + "\n");
System.out.println("\t --------------------------------------------------------------");
}
}
}
}
Extents.Java
package com.studentmodule;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author wenjie
*/
public class Extents {
public static int stuId = 1;
public static void isAdd(ArrayList<Student> stu, Scanner sc, int grade, String name, int age, String address) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
Student s = new Student(stuId, grade, name, age, address);
stu.add(s);
stuId += 1;
Extents.clearConsole();
System.out.println("添加信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
public static void isDlete(ArrayList<Student> stu, Scanner sc, int flag) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
stu.remove(flag);
Extents.clearConsole();
System.out.println("删除学生信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
public static void isUpdata(ArrayList<Student> stu, Scanner sc, int sidUpdate, int flag, int grade, String name, int age, String address) throws AWTException {
while (true) {
int is = sc.nextInt();
if (is == 0) {
Extents.clearConsole();
System.out.println("取消成功!");
break;
} else if (is == 1) {
Student newStu = new Student(sidUpdate, grade, name, age, address);
stu.set(flag, newStu);
Extents.clearConsole();
System.out.println("修改学生信息成功!\n\n");
FunctionalBlock.showStu(stu);
break;
}
System.out.print("\n输入错误!请重新输入:");
}
}
public static void isShow(Scanner sc) throws AWTException {
System.out.println("\n\n\n>首界面>功能界面>查看学生信息\n\n");
System.out.println("\t 返回上级 请输入0 ");
System.out.println("\t ---------------------------------------------------------------");
System.out.print("\n请输入您的选择: ");
while (true) {
int choose1 = sc.nextInt();
if (choose1 == 0) {
Extents.clearConsole();
break;
} else {
System.out.print("看清选项! 再给你一次机会: ");
}
}
}
public static int getFlag(ArrayList<Student> stu, int sid) {
int flag = -1;
for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);
if (s.getStuId() == sid) {
flag = i;
break;
}
}
return flag;
}
public static void clearConsole() throws AWTException {
Robot r = new Robot();
// 按下Ctrl键
r.keyPress(KeyEvent.VK_CONTROL);
// 按下R键
r.keyPress(KeyEvent.VK_R);
// 释放R键
r.keyRelease(KeyEvent.VK_R);
// 释放Ctrl键
r.keyRelease(KeyEvent.VK_CONTROL);
r.delay(50);
}
}
总结
以上就是整个项目的所有的代码了,因为大都是些 Java 的基本语法,选择结构和循环结构组成的所以就没有加什么注释了,相信学了 Java 前面的一些基本语法后应该都能看出个大概,剩下的可以交给百度。
Java学生管理系统(详解)的更多相关文章
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Java 序列化Serializable详解
Java 序列化Serializable详解(附详细例子) Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化Serialization(序列化)是一种将对象以一连 ...
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- 最新java数组的详解
java中HashMap详解 http://alex09.iteye.com/blog/539545 总结: 1.就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java ...
- Java学生管理系统项目案例
这是一个不错的Java学生管理系统项目案例,希望能够帮到大家的学习吧. 分代码如下 package com.student.util; import java.sql.Connection; impo ...
- JAVA IO 类库详解
JAVA IO类库详解 一.InputStream类 1.表示字节输入流的所有类的超类,是一个抽象类. 2.类的方法 方法 参数 功能详述 InputStream 构造方法 available 如果用 ...
- 转:Java HashMap实现详解
Java HashMap实现详解 转:http://beyond99.blog.51cto.com/1469451/429789 1. HashMap概述: HashMap是基于哈希表的M ...
- 淘宝JAVA中间件Diamond详解(2)-原理介绍
淘宝JAVA中间件Diamond详解(二)---原理介绍 大家好,通过第一篇的快速使用,大家已经对diamond有了一个基本的了解.本次为大家带来的是diamond核心原理的介绍,主要包括server ...
- 【转】 java中HashMap详解
原文网址:http://blog.csdn.net/caihaijiang/article/details/6280251 java中HashMap详解 HashMap 和 HashSet 是 Jav ...
随机推荐
- WPF 截图控件之绘制箭头(五)「仿微信」
前言 接着上周写的截图控件继续更新 绘制箭头. 1.WPF实现截屏「仿微信」 2.WPF 实现截屏控件之移动(二)「仿微信」 3.WPF 截图控件之伸缩(三) 「仿微信」 4.WPF 截图控件之绘制方 ...
- Apache DolphinScheduler 2.X保姆级源码解析,中国移动工程师揭秘服务调度启动全流程
2022年1月,科学技术部高新技术司副司长梅建平在"第六届中国新金融高峰论坛"上表示,当前数据量已经大大超过了处理能力的上限,若信息技术仍然是渐进式发展,则数据处理能力的提升将远远 ...
- Linux系列之链接
前言 在类Unix系统中,一个文件有可能被多个名字引用.我们使用链接来实现这一点,链接共有两种类型:硬链接和软链接,本文分别来介绍它们. 硬链接 硬链接也允许指向文件,但与符号链接的方式不同.它们是U ...
- 使用 Java 操作 Redis
Jedis 1. 概述 Jedis 是一款使用 Java 操作 Redis 的工具,有点类似于 JDBC 2. 引入依赖 <dependency> <groupId>redis ...
- IDEA Git缓慢
有的公司电脑会强制安装一些特定的杀毒软件或者监控软件. 在安装后,我们的 IDEA 可能会出现 Git 相关操作非常缓慢的情况. 虽然用 Git 命令操作不受影响,但终究没有可视化界面直观方便. 解决 ...
- java-运算符与判断
运算符: 1)算术运算符:+-*/%,++,-- 进行加.减.乘.除.取余数.自增.自减 2)关系运算符:>,<,>=,<=,==,!= boolean类型 判断两个整形 ...
- Jmeter工具使用总结
Jmeter工具使用总结 目录 Jmeter函数总结 第一章 前言 第二章 常用函数的介绍 2.1. timeShift函数 2.2. time函数 2.3. groovy函数 第三章 常用用法 3. ...
- python包合集-shutil
一.简介 shutil是 python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查看等方法,还提供了对文件以及目录的路径操作.shutil模块提供了移动 ...
- rcu的学习记录
crash> p rcu_sched_state.node[0] $13 = { lock = { raw_lock = { slock = 748760225 } }, gpnum = 211 ...
- linux之间上传下载--SCP
1.远程拷贝文件 [root@rhel8-client01 yum.repos.d]# scp root@192.168.72.149:/etc/yum.repos.d/* . (.表示拷贝到当前文件 ...