Java基础——学生成绩信息管理系统(简单实现)

avatar
作者
筋斗云
阅读量:1

需求

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方法:     @Override     public 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<Student> 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 (score<0 || score>100) {                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<Student> 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<Student> 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<Student> 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("暂不存在该学生信息,请重新输入!");                 }             }         }         else             System.out.println("您输入的操作信息有误!请重新输入");     } }

三、运行示例

1.添加学生信息:

欢迎登录学生成绩信息管理系统!  ===================== 请选择操作: ①查询信息 ②添加信息 ③删除信息 ④修改信息 ⑤退出系统 ===================== 1 暂无数据!  ===================== 请选择操作: ①查询信息 ②添加信息 ③删除信息 ④修改信息 ⑤退出系统 ===================== 2 请输入学生姓名: 张三 请输入学生成绩: 85 是否继续录入?Y/N Y 请输入学生姓名: 李四 请输入学生成绩: 90 是否继续录入?Y/N Y 请输入学生姓名: 王五 请输入学生成绩: 70 是否继续录入?Y/N N

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 已退出学生成绩信息管理系统!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!