小王不太会╭ε 2022-05-22 12:14 采纳率: 100%
浏览 75
已结题

录入学生成绩/显示统计数据/查找学生成绩/修改学生成绩/删除学生成绩(这程序该怎么做哇。)

import java.util.Scanner;

public class work4_2 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("学生的成绩是:"); //输入学生的成绩
int grade = scanner.nextInt();
if (grade >= 90 && grade <=100) { //成绩大于等于90且小于100
System.out.println("成绩优秀");
} else if (grade >= 80&& grade < 90) { //成绩大于等于80且小于90
System.out.println("成绩良好");
} else if (grade >= 60&& grade < 80) { //成绩大于等于60且小于80
System.out.println("成绩及格");
} else if (grade >= 0&& grade < 60) { //成绩大于等于0且小于60
System.out.println("成绩不及格");
}else {
System.out.println("输入信息错误!");
}
}
}

  • 写回答

1条回答 默认 最新

  • 程序喵正在路上 后端领域新星创作者 2022-05-22 12:57
    关注

    你可以参考一下

    img

    /*
        学生类:Student
     */
    public class Student {
        private String id;      //学号
        private String name;    //姓名
        private int grade;      //成绩
    
        //无参构造方法
        public Student() {
        }
    
        //有参构造方法
        public Student(String id, String name, int grade) {
            this.id = id;
            this.name = name;
            this.grade = grade;
        }
    
        //学号
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        //姓名
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        //成绩
        public int getGrade() {
            return grade;
        }
    
        public void setGrade(int grade) {
            this.grade = grade;
        }
    
    }
    
    /*
        学生管理类:StudentManage
     */
    
    import java.util.*;
    
    public class StudentManage {
        public static void main(String[] args) {
            //创建学生对象集合,用于存储学生对象
            ArrayList<Student> array = new ArrayList<>();
    
            //用循环使系统不断运行
            while (true) {
                //用输出语句完成主界面的编写
                System.out.println("请选择操作:");
                System.out.println("1-输入学生信息\t2-按成绩从低到高显示全部学生信息\t3-查询学生信息\t4-退出\t5-删除学生\t6-修改成绩");
    
                //用Scanner实现键盘录入数据
                Scanner sc = new Scanner(System.in);
                String input = sc.nextLine();
    
                //用switch语句完成操作的选择
                switch (input) {
                    case "1":
                        addStudent(array);
                        break;
                    case "2":
                        showStudent(array);
                        break;
                    case "3":
                        queryStudent(array);
                        break;
                    case "4":
                        System.out.println("感谢您的使用,祝您生活愉快!");
                        System.exit(0);
                    case "5":
                        deleteStudent(array);
                        break;
                    case "6":
                        modifyStudent(array);
                        break;
                    default:
                        System.out.println("你的输入有误,请重新输入!");
                }
            }
        }
    
        //输入学生信息
        public static void addStudent(ArrayList<Student> array) {
            //接受用户输入
            Scanner sc = new Scanner(System.in);
    
            //录入要添加的学号
            System.out.print("请输入学号:");
            String id = sc.nextLine();
    
            //学号是否已经在集合中的标记,true表示不存在,反之
            boolean flag = true;
    
            //判断用户输入的学号是否已经存在
            for (int i = 0; i < array.size(); i++) {
                //获取集合中的学生信息
                Student s1 = array.get(i);
    
                //判断用户输入的学号是否和集合中的一致
                if (s1.getId().equals(id)) {
                    flag = false;
                    System.out.println("该学生已存在,请输入正确的学号");
                    break;
                }
            }
    
            //学号不存在,进行添加操作
            if (flag) {
                System.out.print("请输入姓名:");
                String name = sc.nextLine();
    
                System.out.print("请输入成绩:");
                int grade = sc.nextInt();
    
                //创建新的学生对象
                Student s = new Student(id, name, grade);
    
                //将学生对象添加到集合中
                array.add(s);
            }
    
        }
    
        //按成绩从低到高显示全部学生信息
        public static void showStudent(ArrayList<Student> array) {
    
            if (array.size() != 0) {
                //使用Lambda表达式
                System.out.println("学号\t\t姓名\t\t成绩");
                array.sort(Comparator.comparingInt(Student::getGrade));
                array.forEach(e -> System.out.println(String.format("%-8s%-8s%-3d", e.getId(), e.getName(), e.getGrade())));
            } else {
                System.out.println("没找到任何学生的信息!");
            }
        }
    
        //通过学号查询学生信息
        public static void queryStudent(ArrayList<Student> array) {
            //判断集合中是否有数据,如果没有显示提示信息
            if (array.size() == 0) {
                System.out.println("无学生信息,请先添加后再查询");
                //return让程序不再往下执行
                return;
            }
    
            //集合中有数据,让用户输入学号
            System.out.print("请输入学号:");
            Scanner sc = new Scanner(System.in);
            String id = sc.nextLine();
    
            //在集合中查询是否有输入的学号
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                if (s.getId().equals(id)) {
                    System.out.println("学号\t\t姓名\t\t成绩");
                    System.out.println(String.format("%-8s%-8s%-3d", s.getId(), s.getName(), s.getGrade()));
                    return;
                }
            }
    
            //找不到该学生
            System.out.println("没有找到该学生的信息!");
        }
    
        //通过学号删除学生信息
        public static void deleteStudent(ArrayList<Student> array) {
            Scanner sc = new Scanner(System.in);
    
            if (array.size() == 0) {
                System.out.println("无学生信息,请添加后再操作");
            } else {
                //键盘录入要删除的学生学号
                System.out.print("请输入学号:");
                String id = sc.nextLine();
    
                //遍历集合将对应学生对象从集合中删除
                for (int i = 0; i < array.size(); i++) {
                    Student s = array.get(i);
                    if (s.getId().equals(id)) {
                        array.remove(i);
    
                        //给出删除成功提示
                        System.out.println("删除成功");
                        return;
                    }
                }
    
                //找不到该学生
                System.out.println("你输入的学号有误,请重新输入!");
            }
        }
    
        //通过学号修改学生成绩
        public static void modifyStudent(ArrayList<Student> array) {
            Scanner sc = new Scanner(System.in);
    
            if (array.size() == 0) {
                System.out.println("无学生信息,请添加后再操作");
            } else {
                //键盘录入要修改成绩的学生学号
                System.out.print("请输入学号:");
                String id = sc.nextLine();
    
                //遍历集合找到该学生
                for (int i = 0; i < array.size(); i++) {
                    Student s = array.get(i);
                    if (s.getId().equals(id)) {
                        System.out.print("请输入新成绩:");
                        int grade = sc.nextInt();
    
                        s.setGrade(grade);
    
                        //给出修改成功提示
                        System.out.println("修改成功");
                        return;
                    }
                }
    
                //找不到该学生
                System.out.println("你输入的学号有误,请重新输入!");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月22日

悬赏问题

  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据