需求
1、 定义一个学生类 Student,包含姓名、成绩信息;2、使用 ArrayList集合存储学生对象;3、 对集合中的元素进行增删查改的操作。
一、定义学生类
学生类可以包含姓名、成绩、学号、年龄等等,这里只包含了前两项学生类属性。
public class Student {//封装学生类型:private String name;//姓名private int score;//成绩public Student() {}public Student(String name, int score) {this.name = name;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}//重写toString方法:@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", score=" + score +'}';}}
二、定义学生成绩信息管理类
在该类中定义了简单的增、删、查、改的方法。
其中,遍历集合元素使用到了for…each循环以及使用迭代器这两种常见的方式,
添加学生信息create方法使用了try..catch语句处理异常。
import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class StudentScoreManagement {public static void main(String[] args) {System.out.println("欢迎登录学生成绩信息管理系统!");while(true) {System.out.println();System.out.println("=====================");System.out.println("请选择操作:");System.out.println("①查询信息\n②添加信息\n③删除信息\n④修改信息\n⑤退出系统");System.out.println("=====================");Scanner stu = new Scanner(System.in);int n = stu.nextInt();//接收控制台输入if (n == 1) {//查询StudentScoreManagement.read();} else if (n == 2) {//添加while (true){//使用 try...catch 捕获异常:try {StudentScoreManagement.create();break;} catch (Exception e) {//throw new RuntimeException(e.toString());//抛出异常,程序结束System.out.println("输入了不合理的成绩,请重新输入!"); //程序继续执行}}} else if (n == 3) {//删除StudentScoreManagement.delete();} else if (n == 4) {//修改StudentScoreManagement.update();} else if (n == 5) {//退出System.out.println("已退出学生成绩信息管理系统!");break;} else {System.out.println("暂无该项指令,请重新输入!");}}}//使用ArrayList集合存放学生信息数据static List studentList = new ArrayList();/**增*/public static void create() throws Exception{ //声明异常/*输入成绩*/String goon = "Y";while ("Y".equals(goon)) {Scanner sc = new Scanner(System.in);System.out.println("请输入学生姓名:");String name = sc.next();System.out.println("请输入学生成绩:");int score = sc.nextInt();//抛出异常:if (score100) { throw new Exception("输入的成绩不合理!");}Student stu = new Student(name,score);studentList.add(stu);System.out.println("是否继续录入?Y/N");goon = sc.next();}}/**删*/public static void delete(){Scanner sc = new Scanner(System.in);System.out.println("请输入想要删除信息的学生姓名:");String dname = sc.next();//使用迭代器遍历集合元素Iterator it = studentList.iterator();while (it.hasNext()){Student st=it.next();if(st.getName().equals(dname)){it.remove();System.out.println("删除成功!");}else if (st.getName().equals(dname) == true) {System.out.println("暂不存在该学生信息,请重新输入!");}}}/**查*/public static void read(){if (studentList.isEmpty() == true){System.out.println("暂无数据!");}else {System.out.println("已添加的学生信息:");//使用for...each循环语句遍历集合元素for (Student stu : studentList) {System.out.println(stu);}}}/**改*/public static void update(){Scanner sc = new Scanner(System.in);System.out.println("请输入想要修改的学生信息(输入 姓名/成绩): 1、姓名 2、成绩 ");String data = sc.next(); //输入想要修改的信息if (data.equals("姓名")) {System.out.println("请输入将要修改姓名信息的同学:");Scanner scanner = new Scanner(System.in);String name = scanner.next();//使用迭代器遍历集合元素Iterator it = studentList.iterator();while (it.hasNext()){Student st = it.next();if(st.getName().equals(name)){System.out.println("请输入修改后的姓名:");String newname = scanner.next();st.setName(newname);System.out.println("修改成功!\n已修改的学生信息:");System.out.println(st);}else if (st.getName().equals(name) == true) {System.out.println("暂不存在该学生信息,请重新输入!");}}}else if (data.equals("成绩")){System.out.println("请输入将要修改成绩信息的同学姓名:");Scanner scanner = new Scanner(System.in);String name = scanner.next();//使用迭代器遍历集合元素Iterator it = studentList.iterator();while (it.hasNext()){Student st = it.next();if(st.getName().equals(name)){System.out.println("请输入修改后的成绩:");int newscore = sc.nextInt(); //修改后的成绩st.setScore(newscore);System.out.println("修改成功!\n已修改的学生信息:");System.out.println(st);}else if (st.getName().equals(name) == true) {System.out.println("暂不存在该学生信息,请重新输入!");}}}elseSystem.out.println("您输入的操作信息有误!请重新输入");}}
三、运行示例
1.添加学生信息:
欢迎登录学生成绩信息管理系统!=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1暂无数据!=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================2请输入学生姓名:张三请输入学生成绩:85是否继续录入?Y/NY请输入学生姓名:李四请输入学生成绩:90是否继续录入?Y/NY请输入学生姓名:王五请输入学生成绩:70是否继续录入?Y/NN
2.查询信息:
=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='张三', score=85}Student{name='李四', score=90}Student{name='王五', score=70}
3.删除信息
=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================3请输入想要删除信息的学生姓名:王五删除成功!=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='张三', score=85}Student{name='李四', score=90}
3.修改信息:
4请输入想要修改的学生信息(输入 姓名/成绩): 1、姓名 2、成绩 姓名请输入将要修改姓名信息的同学:张三请输入修改后的姓名:小明修改成功!已修改的学生信息:Student{name='小明', score=85}=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================4请输入想要修改的学生信息(输入 姓名/成绩): 1、姓名 2、成绩 成绩请输入将要修改成绩信息的同学姓名:小明请输入修改后的成绩:100修改成功!已修改的学生信息:Student{name='小明', score=100}
4.退出系统:
=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='小明', score=100}Student{name='李四', score=90}=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================5已退出学生成绩信息管理系统!