学生管理项目概要
通过创建学生类和集合<学生类型>来实现添加学生、删除学生、修改学生信息、查看所有学生信息等功能,从而完成对学生数据的管理。
1.思维导图
- 首先我们需要构建Student类,以满足实例化学生的要求
- 创建StudentManager类,从而实现系统初始化页面设计和学生管理系统的基本功能;
2.程序大致实现流程
- 进入系统时需要出现一个系统界面,且附带有提示信息
- 通过键盘输入提示信息,使程序进入相应的函数方法从而对学生集合进行管理;
- 并同时创建学生类
2.1流程图
2.2 学生类的创建
采用标准格式创建Student类
public class Student {
private String sid;
private String name;
private String age;
private String address;
public Student() {
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
}
3.学生管理类中先从方法实现入手
3.1 addStudent();方法实现
3.1.1 流程图
3.1.2 addStudent();代码
public static void addStudent(ArrayList<Student> arr) {
String sid = new String();
Scanner sc = new Scanner(System.in);
Student student = new Student();
System.out.println("新增学生学号:");
sid = sc.next();
while (isSameSid(arr,sid)){
System.out.println("此学号已存在请重新输入学号:");
sid = sc.next();
}
student.setSid(sid);
System.out.println("新增学生姓名:");
String name = sc.next();
student.setName(name);
System.out.println("新增学生年龄:");
String age = sc.next();
student.setAge(age);
System.out.println("新增学生家庭地址:");
String address = sc.next();
student.setAddress(address);
arr.add(student);
3.2 deleteStudent();方法实现
3.2.1 流程图
3.2.2 deleteStudent();代码
public static void deleteStudent(ArrayList<Student> arr) {
int a = 0; //创建循环中间变量用于判断循环是否检测到与输入相同的学号
Scanner sc = new Scanner(System.in);
System.out.println("请输入删除学生的学号:");
String str = sc.next();
for (int i = 0; i < arr.size(); i++) {
Student stu = arr.get(i);
if (stu.getSid().equals(str)) {
arr.remove(i);
a += 1;
System.out.println("删除完毕");
}
}
if (a == 0) { //中间变量为0,说明没有检测到该学号
System.out.println("未查询到此学号信息!");
}
}
3.3 updateStudent();方法实现
3.3.1 流程图
3.3.2 updateStudent();代码
public static void updateStudent(ArrayList<Student> arr) {
int i = 0; //创建循环中间变量用于判断循环是否检测到与输入相同的学号
Scanner sc = new Scanner(System.in);
System.out.println("输入需要修改信息的学生学号");
String str = sc.next();
for (Student stu : arr) { //使用foreach循环来遍历
if (stu.getSid().equals(str)) {
System.out.println("输入学生的新姓名:");
String name = sc.next();
stu.setName(name);
System.out.println("输入学生的新年龄:");
String age = sc.next();
stu.setAge(age);
System.out.println("输入学生的新地址:");
String address = sc.next();
stu.setAddress(address);
i += 1;
System.out.println("更新完毕");
}
}
if (i == 0) { //中间变量为0,说明没有检测到该学号
System.out.println("未查询到此学号信息!");
}
}
3.4findAllStudent();方法实现
3.4.1 流程图
3.4.2 findAllStudent();代码
public static void findAllStudent(ArrayList<Student> arr) {
if (arr.size() == 0) {
System.out.println("学生信息为空!请输入学生信息后再查询哦!");
//return表示直接返回,不再向下执行
return;
}
System.out.println("学号\t\t" + "姓名\t\t" + "年龄\t\t" + "居住地");
for (int i = 0; i < arr.size(); i++) {
Student student = arr.get(i);
System.out.println(student.getSid() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "\t\t" + student.getAddress());
}
}
3.5 isSameStudent();方法实现
3.5.1 流程图
3.5.2 isSameStudent();代码
public static boolean isSameSid(ArrayList<Student> arr, String id){
//判断是否有相同的学号
boolean flag = false;
for (Student student : arr){
if (student.getSid().equals(id)){
flag = true;
break;
}
}
return flag;
}
3.6 管理系统界面设置
public static int UI() {
Scanner sc = new Scanner(System.in);
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("请输入您的选择:");
int str0 = sc.nextInt();
return str0;
}
4.程序入口
现在只需要通过if分支语句判断键盘输入的数字即可选择性的进入不同的方法。
- 首先创建用于收集学生类的集合;
- 通过在while循环内调用UI();方法,可以反复的读取用户需求;
代码
public class StudentManager {
public static void main(String[] args) {
//创建集合用于存放Student对象
ArrayList<Student> array = new ArrayList<Student>();
while (true) {
int str = UI();
if (str == 1) {
addStudent(array);
System.out.println("添加完毕");
} else if (str == 2) {
deleteStudent(array);
} else if (str == 3) {
updateStudent(array);
} else if (str == 4) {
findAllStudent(array);
} else {
System.out.println("谢谢使用!");
break;
}
}
}
//添加管理学生各类方法;
}