m0_56843581 2021-12-27 22:00 采纳率: 100%
浏览 51
已结题

Java学生管理程序

CSDN专家-sinjack 实现一个学生管理程序,要求如下:
1.每个学生具有学号,姓名,年龄,成绩等信息
2.用户可以通过学号和姓名查询学生信息
3.该程序可以计算所有学生成绩的平均值、最大值、最小值,以及按照 学号或成绩升序和降序打印所有学生的信息;@
4.学生的信息须本地保存(即关闭该程序后,下次使用时还能读取上次 建立的学生信息)
5.不要求实现用户界面,在命令行下运行即可 ,运行结果截图中须包含所有功能以及情况的展示

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-12-28 10:43
    关注
    import java.util.*;
    public class Student {
        private String name;
        private String sno;
        private Integer age;
        private double score;
        public Student(){
        }
        public void setScore(double score) {
            this.score = score;
        }
        public double getScore() {
            return score;
        }
        public Student(String name, String sno, Integer age) {
            this.name = name;
            this.sno = sno;
            this.age = age;
        }
        public static void display(List<Student> list){
            double sum=0;
            double max=list.get(0).getScore(),min=list.get(0).getScore();
            for(Student stu:list){
                sum+=stu.getScore();
                if(max<stu.getScore()){
                    max=stu.getScore();
                }
                if(min>stu.getScore()){
                    min=stu.getScore();
                }
            }
            System.out.println("最高分为:"+max);
            System.out.println("最低分为:"+min);
            System.out.println("平均分为:"+sum/list.size());
        }
    
        public static void show(List<Student> stus){
            Collections.sort(stus, new Comparator<Student>() {
                @Override
                public int compare(Student o1, Student o2) {
                    // 根据属性进行排序
                    if (o1.getScore()>o2.getScore()) {
                        return 1;
                    }
                    if (o1.getScore()==o2.getScore()) {
                        return 0;
                    }
                    return -1;
                }
            });
            for (Student student: stus) {
                System.out.println(student);
            }
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", sno='" + sno + '\'' +
                    ", age=" + age +
                    ", score=" + score +
                    '}';
        }
    
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入学生人数:");
            int n=sc.nextInt();
            List<Student> list=new ArrayList<Student>();
            for(int i=0;i<n;i++){
                System.out.println("请分别输入第"+(i+1)+"个学生的姓名、学号、年龄、成绩:");
                String name=sc.next();
                String sno=sc.next();
                int age=sc.nextInt();
                double score=sc.nextDouble();
                Student stu=new Student(name, sno, age);
                stu.setScore(score);
                list.add(stu);
            }
            display(list);
            System.out.println("学生信息如下:");
            show(list);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了