相信大部分人都有接触过这个 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("看清选项! 再给你一次机会: ");
}
}
}

学号遍历 和 清空控制台方法

下面这两个方法一个是用来进行学号遍历的,找到对应学生的学号获得该学生信息然后对该学号的学生信息进行操作

还有一个就是清空控制台的方法,这个方法在我上一篇文章中有详细的说明,想了解的可以点击该链接进行查看

链接:

IDEA清空控制台以及Java中运行cmd命令实现清屏操作


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学生管理系统(详解)的更多相关文章

  1. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  2. Java 序列化Serializable详解

    Java 序列化Serializable详解(附详细例子) Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化Serialization(序列化)是一种将对象以一连 ...

  3. Java String类详解

    Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...

  4. 最新java数组的详解

    java中HashMap详解 http://alex09.iteye.com/blog/539545 总结: 1.就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java ...

  5. Java学生管理系统项目案例

    这是一个不错的Java学生管理系统项目案例,希望能够帮到大家的学习吧. 分代码如下 package com.student.util; import java.sql.Connection; impo ...

  6. JAVA IO 类库详解

    JAVA IO类库详解 一.InputStream类 1.表示字节输入流的所有类的超类,是一个抽象类. 2.类的方法 方法 参数 功能详述 InputStream 构造方法 available 如果用 ...

  7. 转:Java HashMap实现详解

    Java HashMap实现详解 转:http://beyond99.blog.51cto.com/1469451/429789 1.    HashMap概述:    HashMap是基于哈希表的M ...

  8. 淘宝JAVA中间件Diamond详解(2)-原理介绍

    淘宝JAVA中间件Diamond详解(二)---原理介绍 大家好,通过第一篇的快速使用,大家已经对diamond有了一个基本的了解.本次为大家带来的是diamond核心原理的介绍,主要包括server ...

  9. 【转】 java中HashMap详解

    原文网址:http://blog.csdn.net/caihaijiang/article/details/6280251 java中HashMap详解 HashMap 和 HashSet 是 Jav ...

随机推荐

  1. 简单学习一下ibd数据文件解析

    来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析My ...

  2. CF708C Centroids(树形DP)

    发现变重心就是往重心上割,所以\(\text{up and down}\),一遍统计子树最大\(size\),一遍最优割子树,\(down\),\(up\)出信息,最后\(DFS\)出可行解 #inc ...

  3. BZOJ3572/Luogu3233 [Hnoi2014]世界树 (虚树) (Unfinished)

    我太弱了,这叼题先搁着把,来日方长,自有切时... ...或许吧 #include <iostream> #include <cstdio> #include <cstr ...

  4. Spring源码 09 IOC refresh方法4

    参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...

  5. 重看Java教学视频时的查漏补缺

    数据类型 1.基本数据类型:四类八种. 2.数据范围与字节数不一定相关.如float为4字节表示范围比long的8字节要大. 3.浮点数默认double类型,如要用float,需加F. 4.boole ...

  6. SecureCRT 和 Xshell 连接ENSP 教程

    前言:很多人问我说想尝试使用 CRT和Xshell连接 ENSP的某台设备,以模拟现网中的工作状态,所以出了这篇随笔. ENSP版本: Xshell 连接教程 Xshell 7 评估版(其他版本没测试 ...

  7. AtCoder Beginner Contest 265(D-E)

    D - Iroha and Haiku (New ABC Edition) 题意: 找一个最少含有三个点的区间,将区间分成三块,三块的和分别为p,q,r,问是否存在这样的区间 题解:先预处理一遍前缀和 ...

  8. BI如何实现用户身份集成自定义安全程序开发

    统一身份认证是整个 IT 架构的最基本的组成部分,而账号则是实现统一身份认证的基础.做好账号的规划和设计直接决定着企业整个信息系统建设的便利与难易程度,决定着系统能否足够敏捷和快速赋能,也决定了在数字 ...

  9. win10电脑自动连接蓝牙设备攻略

    每次在电脑上想连接蓝牙耳机,但不想手动去连接怎么办呢? 自动连接! 其实微软已经解决了这个问题,只要打开蓝牙,他就会自动匹配上次连接的设备 打开设置--->设备勾选 "显示使用&quo ...

  10. KingbaseES批量数据加载的实践技巧

    有时,KingbaseES数据库需要在单个或最少的步骤中导入大量数据,这通常称为批量数据导入.其中数据源通常是一个或多个大文件,这个过程有时可能非常慢. 造成性能不佳的原因有很多:索引.触发器.外键. ...