文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-10-20 19:37

关注

需求

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 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 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("暂不存在该学生信息,请重新输入!");                }            }        }        else            System.out.println("您输入的操作信息有误!请重新输入");    }}

三、运行示例

添加学生信息:

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

查询信息:

=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='张三', score=85}Student{name='李四', score=90}Student{name='王五', score=70}

删除信息

=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================3请输入想要删除信息的学生姓名:王五删除成功!=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='张三', score=85}Student{name='李四', score=90}

修改信息:

4请输入想要修改的学生信息(输入 姓名/成绩): 1、姓名 2、成绩 姓名请输入将要修改姓名信息的同学:张三请输入修改后的姓名:小明修改成功!已修改的学生信息:Student{name='小明', score=85}=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================4请输入想要修改的学生信息(输入 姓名/成绩): 1、姓名 2、成绩 成绩请输入将要修改成绩信息的同学姓名:小明请输入修改后的成绩:100修改成功!已修改的学生信息:Student{name='小明', score=100}

退出系统:

=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================1已添加的学生信息:Student{name='小明', score=100}Student{name='李四', score=90}=====================请选择操作:①查询信息②添加信息③删除信息④修改信息⑤退出系统=====================5已退出学生成绩信息管理系统!

来源地址:https://blog.csdn.net/weixin_69332171/article/details/130297352

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯