学生管理系统(Java简单实现)
目录
制作思路
建立学生类
建立测试类
页面导航设计
添加学生设计
设计修改学生
设计删除学生
设计查询学生
运行
制作思路


建立学生类
首先在IDE中建立的一个包,然后在包下建立学生类:

在学生类中,定义(这里我们用的private定义,也可以用public)学生的姓名,年龄,学号,家庭地址:
private String name;
private String sid;
private String age;
private String address;
然后添加构造方法(有参无参):
public StudentMagement() {
}
public StudentMagement(String name, String sid, String age, String address) {
this.name = name;
this.sid = sid;
this.age = age;
this.address = address;
}
下一步添加set/get方法:
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
注:在IDEA(本人用的IDE为IDEA)中,添加构造函数以及set/get方法可以通过快捷键Alt+Insert实现:

1为添加有参无参构造方法,2为添加set,get方法。
学生类完整代码如下:
public class StudentMagement {
private String name;
private String sid;
private String age;
private String address;
public StudentMagement() {
}
public StudentMagement(String name, String sid, String age, String address) {
this.name = name;
this.sid = sid;
this.age = age;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
建立测试类
注:在测试类中用到了ArrayList集合以及Scanner方法,使用前需要创建对象
页面导航设计
首先页面中应该包括用户选项:

可以通过输出语句实现:
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看所有学生");
System.out.println("5 退出");
System.out.println("--------------------------------");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
注意代码中用到了Scanner语句,使用前记得导包。
选项有了以后,丰富选项下的内容:
switch(line){
case "1":
System.out.println("添加学生");
break;
case "2":
System.out.println("删除学生");
break;
case "3":
System.out.println("修改学生");
break;
case "4":
System.out.println("查看所有学生");
break;
case "5":
System.out.println("欢迎下次使用");
System.exit(0);
}
在case "5"中用到了System.exit(0)语句(jvm退出),保证用户在选择5选项的时候系统退出。

想要实现系统的重复使用,外加一个while循环:
while (true){
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1 添加学生");
System.out.println("2 查看学生");
System.out.println("3 修改学生");
System.out.println("4 删除学生");
System.out.println("5 退出系统");
System.out.println("--------------------------------");
System.out.println("请输入你的选择:");
String line = sc.nextLine();
switch(line){
case "1":
System.out.println("添加学生");
break;
case "2":
System.out.println("删除学生");
break;
case "3":
System.out.println("修改学生");
break;
case "4":
System.out.println("查看所有学生");
break;
case "5":
System.out.println("欢迎下次使用");
System.exit(0);
}
}
添加学生设计
(这里是在测试类中新建的方法,然后在main方法中进行调用,以下设计同样原理)
建立方法addStudent:
public static void addStudent(ArrayList<StudentMagement> array) {
Scanner sc = new Scanner(System.in);
/*
输入学生基本信息:
*/
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
System.out.println("请输入学生家庭地址:");
String address = sc.nextLine();
/*
创建对象,将键盘输入数据赋值给学生对象的成员变量:
*/
StudentMagement s = new StudentMagement();
s.setName(name);
s.setSid(sid);
s.setAge(age);
s.setAddress(address);
//将数据保存在集合(Array)中:
array.add(s);
System.out.println("添加成功");
}
这里用到了ArrayList集合,所以在前面main方法中(页面导航设计)先创建ArrayList集合对象:

设计修改学生
建立修改学生方法updateStudent:
通过学号(在数据库中为Student的主键)进行索引,然后进行学生信息修改:
public static void updataStudent(ArrayList<StudentMagement> array){
StudentMagement s = new StudentMagement(); //创建学生对象
Scanner sc = new Scanner(System.in);
/*
输入修改学生的学号
*/
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
System.out.println("请输入新学生的姓名:");
String name = sc.nextLine();
System.out.println("请输入新学生的年龄:");
String age = sc.nextLine();
System.out.println("请输入新学生的家庭住址:");
String address = sc.nextLine();
//建立学生对象,存储在一个对象集合中
s.setAge(age);
s.setAddress(address);
s.setSid(sid);
s.setName(name);
//进行遍历
for(int i = 0;i< array.size();i++){
StudentMagement student = array.get(i);
if(student.getSid().equals(sid)){
array.set(i,s);
}
}
System.out.println("操作完成");
}
代码中用到了字符串的比较
,因为在定义学生类中,学号等信息是String类,比较需要用到equals方法。
设计删除学生
建立删除学生方法removeStudent:
/*
进行删除学生的操作:
*/
public static void removeStudent(ArrayList<StudentMagement> array) {
StudentMagement s = new StudentMagement(); //使用前先建一个对象
Scanner sc = new Scanner(System.in);
/*
输入需要删除的学生的学号:
*/
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
//进行动态数组的遍历,查找符合学号的对应学生信息
for (int i = 0; i < array.size(); i++) {
s = array.get(i); //整个学生信息存储在i中
if (s.getSid().equals(sid)) {
array.remove(i); //直接删除存储学生信息的元素i
System.out.println("操作成功");
break;
} else {
System.out.println("不存在该学生,请稍后再试.");
}
}
}
ArrayList集合中,集合长度应该用size表示,而不是length,进行遍历查找,然后删除对应操作,应注意没有信息录入的情况下,应该提示录入信息。
设计查询学生
建立方法showStudent
/*
进行查询学生信息操作:
*/
public static void ShowStudent(ArrayList<StudentMagement> array) {
StudentMagement s = new StudentMagement();
/*
遍历学生信息
*/
if (array.size() == 0) {
System.out.println("表内无信息,请先输入");
} else {
System.out.println("姓名\t\t\t\t学号\t\t\t 年龄\t\t居住地");
for (int i = 0; i < array.size(); i++) {
s = array.get(i);
System.out.println(s.getName() + "\t\t" + s.getSid() + "\t\t" + s.getAge() + "\t\t" + s.getAddress() + "\t");
}
}
}
\t表示间隔,运用\t来保证显示的美感:

运行
最后,在main方法中调用方法:
public static void main(String[] args) {
//创建集合
ArrayList<StudentMagement> array = new ArrayList<>();
while (true) {
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看所有学生");
System.out.println("5 退出");
System.out.println("--------------------------------");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
//System.out.println("添加学生");
addStudent(array);
break;
case "2":
//System.out.println("删除学生");
removeStudent(array);
break;
case "3":
//System.out.println("修改学生");
updataStudent(array);
break;
case "4":
//System.out.println("查看所有学生");
ShowStudent(array);
break;
case "5":
System.out.println("谢谢使用");
System.exit(0);
}
}
运行结果:





测试类完整代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Studenttext {
public static void main(String[] args) {
//创建集合
ArrayList<StudentMagement> array = new ArrayList<>();
while (true) {
System.out.println("--------欢迎来到学生管理系统--------");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看所有学生");
System.out.println("5 退出");
System.out.println("--------------------------------");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
//System.out.println("添加学生");
addStudent(array);
break;
case "2":
//System.out.println("删除学生");
removeStudent(array);
break;
case "3":
//System.out.println("修改学生");
updataStudent(array);
break;
case "4":
//System.out.println("查看所有学生");
ShowStudent(array);
break;
case "5":
System.out.println("谢谢使用");
System.exit(0);
}
}
}
/*
进行添加学生的操作:
*/
public static void addStudent(ArrayList<StudentMagement> array) {
Scanner sc = new Scanner(System.in);
/*
输入学生基本信息:
*/
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
System.out.println("请输入学生家庭地址:");
String address = sc.nextLine();
/*
创建对象,将键盘输入数据赋值给学生对象的成员变量:
*/
StudentMagement s = new StudentMagement();
s.setName(name);
s.setSid(sid);
s.setAge(age);
s.setAddress(address);
//将数据保存在集合(Array)中:
array.add(s);
System.out.println("添加成功");
}
/*
进行查询学生信息操作:
*/
public static void ShowStudent(ArrayList<StudentMagement> array) {
StudentMagement s = new StudentMagement();
/*
遍历学生信息
*/
if (array.size() == 0) {
System.out.println("表内无信息,请先输入");
} else {
System.out.println("姓名\t\t\t\t学号\t\t\t 年龄\t\t居住地");
for (int i = 0; i < array.size(); i++) {
s = array.get(i);
System.out.println(s.getName() + "\t\t" + s.getSid() + "\t\t" + s.getAge() + "\t\t" + s.getAddress() + "\t");
}
}
}
/*
进行删除学生的操作:
*/
public static void removeStudent(ArrayList<StudentMagement> array) {
StudentMagement s = new StudentMagement(); //使用前先建一个对象
Scanner sc = new Scanner(System.in);
/*
输入需要删除的学生的学号:
*/
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
//进行动态数组的遍历,查找符合学号的对应学生信息
for (int i = 0; i < array.size(); i++) {
s = array.get(i); //整个学生信息存储在i中
if (s.getSid().equals(sid)) {
array.remove(i); //直接删除存储学生信息的元素i
System.out.println("操作成功");
break;
} else {
System.out.println("不存在该学生,请稍后再试.");
}
}
}
/*
进行修改学生信息操作:
*/
public static void updataStudent(ArrayList<StudentMagement> array){
StudentMagement s = new StudentMagement(); //创建学生对象
Scanner sc = new Scanner(System.in);
/*
输入修改学生的学号
*/
System.out.println("请输入学生学号:");
String sid = sc.nextLine();
System.out.println("请输入新学生的姓名:");
String name = sc.nextLine();
System.out.println("请输入新学生的年龄:");
String age = sc.nextLine();
System.out.println("请输入新学生的家庭住址:");
String address = sc.nextLine();
//建立学生对象,存储在一个对象集合中
s.setAge(age);
s.setAddress(address);
s.setSid(sid);
s.setName(name);
//进行遍历
for(int i = 0;i< array.size();i++){
StudentMagement student = array.get(i);
if(student.getSid().equals(sid)){
array.set(i,s);
}
}
System.out.println("操作完成");
}
}
