以下为本人大一java专业课的实验作业题,均为本人原创,分享给大家。如有不足之处欢迎指出。
目录
ArrayList集合综合实验【学生管理系统】
实验题目要求:
学生管理系统
1.案例需求
针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
添加学生:通过键盘录入学生信息,添加到集合中
删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
查看学生:将集合中的学生对象信息进行展示
退出系统:结束程序
2.实现步骤
定义学生类
Student成员变量:
学号:stuNum
姓名:name
年龄:age
生日:birNum
private String stuNum;
private String name;
private int age;
private int birNum;
每个成员变量对应给出get/set方法
public String getStuNum() {
return stuNum;
}
public void setStuNum(String stuNum) {
this.stuNum = stuNum;
}
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 int getBirNum() {
return birNum;
}
public void setBirNum(int birNum) {
this.birNum = birNum;
}
注:(若使用idea编译器可使用快捷键Alt+(Fn)+Insert自动生成get和set方法)
学生管理系统主界面的搭建步骤
2.1 用输出语句完成主界面的编写
2.2 用Scanner实现键盘录入数据
2.3 用switch语句完成操作的选择
2.4 用循环完成再次回到主界面
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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
switch (input) {
case 1:
addStu(sc, students);
break;
case 2:
deleteStu(sc, students);
break;
case 3:
changeStu(sc, students);
break;
case 4:
viewStu(students);
break;
case 5:
System.out.println("感谢您的使用,再见!");
System.exit(0);
default:
System.out.println("输入异常,请重新输入。");
break;
}
}
}
学生管理系统的添加学生功能实现步骤
3.1 用键盘录入选择添加学生
3.2 定义一个方法,用于添加学生
显示提示信息,提示要输入何种信息
键盘录入学生对象所需要的数据
创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
将学生对象添加到集合中(保存)
给出添加成功提示
/**
* 添加学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void addStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------添加学生---------------");
Student s = new Student();
OUT:
while (true) {
System.out.println("请输入学号:");
// 20200502123 11位
String stuNum = sc.next();
if (stuNum.matches("\\d{11}")) {
if (students.isEmpty()) {
// 集合 null 或 []
s.setStuNum(stuNum);
break;
} else {
for (Student student : students) {
if (stuNum.equals(student.getStuNum())) {
System.out.println("已录入该学生,请重新输入学号。");
} else {
s.setStuNum(stuNum);
break OUT;
}
}
}
} else System.out.println("学号必须为11位数字,请重新输入。");
}
System.out.println("请输入姓名:");
s.setName(sc.next());
System.out.println("请输入年龄:");
s.setAge(sc.nextInt());
System.out.println("请输入生日:");
System.out.println("[如:2003年6月11日,则输入20030611]");
s.setBirNum(sc.nextInt());
students.add(s);
System.out.println("添加成功!");
}
3.3 调用方法
学生管理系统的查看学生功能实现步骤
4.1 用键盘录入选择查看所有学生信息
4.2 定义一个方法,用于查看学生信息
显示表头信息
将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
/**
* 查看学生
*
* @param students 学生集合
*/
private static void viewStu(ArrayList<Student> students) {
System.out.println("---------------查看学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行查看操作。");
return;
}
System.out.println("学号\t\t\t姓名\t\t年龄\t\t生日");
for (Student s : students) {
System.out.print(s.getStuNum() + "\t");
System.out.print(s.getName() + "\t");
System.out.print(s.getAge() + "岁\t");
System.out.println(s.getBirNum() + "\t");
}
}
4.3 调用方法
学生管理系统的删除学生功能实现步骤
5.1 用键盘录入选择删除学生信息
5.2 定义一个方法,用于删除学生信息
显示提示信息
键盘录入要删除的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,调用remove方法删除并提示删除成功
/**
* 删除学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void deleteStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------删除学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行删除操作。");
return;
}
System.out.println("请输入需要删除的学生的学号:");
String stuNum = sc.next();
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);// 得到索引返回该索引对应的学生对象
if (stuNum.equals(s.getStuNum())) {
students.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("学号不对应,删除失败!");
}
5.3 调用方法
学生管理系统的修改学生功能实现步骤
6.1 用键盘录入选择修改学生信息
6.2 定义一个方法,用于修改学生信息
显示提示信息
键盘录入要修改的学生学号
调用getIndex方法,查找该学号在集合的索引
如果索引为-1,提示信息不存在
如果索引不是-1,键盘录入要修改的学生信息
集合修改对应的学生信息
给出修改成功提示
/**
* 修改学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void changeStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------修改学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行修改操作。");
return;
}
System.out.println("请输入需要修改的学生的学号:");
String stuNum = sc.next();
// 得到索引返回该索引对应的学生对象
for (Student s : students) {
if (stuNum.equals(s.getStuNum())) {
OUT:
while (true) {
System.out.println("请选择需要修改的学生信息:");
System.out.println("1 学号");
System.out.println("2 姓名");
System.out.println("3 年龄");
System.out.println("4 生日");
System.out.println("# 若修改完成,请输入其他数字");
System.out.println("请输入选择的数字:");
int in = sc.nextInt();
switch (in) {
case 1:
System.out.println("将学号修改为:");
s.setStuNum(sc.next());
break;
case 2:
System.out.println("将姓名修改为:");
s.setName(sc.next());
break;
case 3:
System.out.println("将年龄修改为:");
s.setAge(sc.nextInt());
break;
case 4:
System.out.println("将生日修改为:");
s.setBirNum(sc.nextInt());
break;
default:
break OUT;
}
}
System.out.println("修改成功!");
return;
}
}
System.out.println("学号不对应,修改失败!");
}
3.完整代码
- 测试类
package homework13;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<Student> students = 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("请输入您的选择:");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
switch (input) {
case 1:
addStu(sc, students);
break;
case 2:
deleteStu(sc, students);
break;
case 3:
changeStu(sc, students);
break;
case 4:
viewStu(students);
break;
case 5:
System.out.println("感谢您的使用,再见!");
System.exit(0);
default:
System.out.println("输入异常,请重新输入。");
break;
}
}
}
/**
* 查看学生
*
* @param students 学生集合
*/
private static void viewStu(ArrayList<Student> students) {
System.out.println("---------------查看学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行查看操作。");
return;
}
System.out.println("学号\t\t\t姓名\t\t年龄\t\t生日");
for (Student s : students) {
System.out.print(s.getStuNum() + "\t");
System.out.print(s.getName() + "\t");
System.out.print(s.getAge() + "\t");
System.out.println(s.getBirNum() + "\t");
}
}
/**
* 修改学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void changeStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------修改学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行修改操作。");
return;
}
System.out.println("请输入需要修改的学生的学号:");
String stuNum = sc.next();
// 得到索引返回该索引对应的学生对象
for (Student s : students) {
if (stuNum.equals(s.getStuNum())) {
OUT:
while (true) {
System.out.println("请选择需要修改的学生信息:");
System.out.println("1 学号");
System.out.println("2 姓名");
System.out.println("3 年龄");
System.out.println("4 生日");
System.out.println("# 若修改完成,请输入其他数字");
System.out.println("请输入选择的数字:");
int in = sc.nextInt();
switch (in) {
case 1:
System.out.println("将学号修改为:");
s.setStuNum(sc.next());
break;
case 2:
System.out.println("将姓名修改为:");
s.setName(sc.next());
break;
case 3:
System.out.println("将年龄修改为:");
s.setAge(sc.nextInt());
break;
case 4:
System.out.println("将生日修改为:");
s.setBirNum(sc.nextInt());
break;
default:
break OUT;
}
}
System.out.println("修改成功!");
return;
}
}
System.out.println("学号不对应,修改失败!");
}
/**
* 删除学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void deleteStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------删除学生---------------");
if (students.isEmpty()) {
System.out.println("对不起,您还没有添加学生,无法进行删除操作。");
return;
}
System.out.println("请输入需要删除的学生的学号:");
String stuNum = sc.next();
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);// 得到索引返回该索引对应的学生对象
if (stuNum.equals(s.getStuNum())) {
students.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("学号不对应,删除失败!");
}
/**
* 添加学生
*
* @param sc 扫描器
* @param students 学生集合
*/
private static void addStu(Scanner sc, ArrayList<Student> students) {
System.out.println("---------------添加学生---------------");
Student s = new Student();
OUT:
while (true) {
System.out.println("请输入学号:");
// 20210802113 11位
String stuNum = sc.next();
if (stuNum.matches("\\d{11}")) {
if (students.isEmpty()) {
// 集合 null 或 []
s.setStuNum(stuNum);
break;
} else {
for (Student student : students) {
if (stuNum.equals(student.getStuNum())) {
System.out.println("已录入该学生,请重新输入学号。");
} else {
s.setStuNum(stuNum);
break OUT;
}
}
}
} else System.out.println("学号必须为11位数字,请重新输入。");
}
System.out.println("请输入姓名:");
s.setName(sc.next());
System.out.println("请输入年龄:");
s.setAge(sc.nextInt());
System.out.println("请输入生日:");
System.out.println("[如:2003年6月11日,则输入20030611]");
s.setBirNum(sc.nextInt());
students.add(s);
System.out.println("添加成功!");
}
}
- 学生类
package homework13; public class Student { private String stuNum; private String name; private int age; private int birNum; public String getStuNum() { return stuNum; } public void setStuNum(String stuNum) { this.stuNum = stuNum; } 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 int getBirNum() { return birNum; } public void setBirNum(int birNum) { this.birNum = birNum; } }
java作业题不定期更新,有需要可以点击以下链接:https://blog.csdn.net/weixin_60897770/category_11846582.html?spm=1001.2014.3001.5482
如有帮助可以帮忙点个赞嘛……谢谢啦!