JAVA学生成绩管理系统

只写了最基本的增删改查,其中可能会有一些没考虑到的地方。结尾有完整代码

首先是main方法

    public static void main(String[] args) throws Exception {
        //创建Scanner对象和ArrayList集合
        Scanner sc = new Scanner(System.in);
        ArrayList<Student> students = new ArrayList<>();
        //放入死循环能一直运行
        while (true) {
            Welcome();
            Menu(sc, students);
        }
    }

然后是菜单和欢迎页面

   //欢迎界面
    private static void Welcome() {
        System.out.println("请选择您要进行的操作:");
        System.out.println("1.录入学生信息");
        System.out.println("2.删除学生信息");
        System.out.println("3.修改学生信息");
        System.out.println("4.查询学生信息");
        System.out.println("5.展示所有学生成绩信息");
        System.out.println("0.退出系统");
    }

    //真正的菜单
    private static void Menu(Scanner sc, ArrayList<Student> students) {
        switch (sc.next()) {
            case "1" -> add(sc, students);                //添加学生信息
            case "2" -> deleteMessage(sc, students);      //删除学生信息
            case "3" -> change(sc, students);            //修改学生信息
            case "4" -> Search(sc, students);             //查询学生信息
            case "5" -> show(students);                   //列出所有学生的成绩
            case "0" -> System.exit(0);
        }
    }

1:添加学生信息

private static void add(Scanner sc, ArrayList<Student> students) {

        Student s = new Student();
        StudentMessage(sc, s);
        students.add(s);
    }

2:删除学生信息

 //"2"->删除学生信息
    private static void deleteMessage(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要删除学生的姓名");
            String next = sc.next();
            for (int i = 0; i < students.size(); i++) {
                Student student = students.get(i);
                if (student.getName().equals(next)) {
                    System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
                    showMessage(student);
                    System.out.println("确定要删除吗?Y/N");
                    if (sc.next().equalsIgnoreCase("Y")) {
                        students.remove(i);
                        System.out.println("删除成功!");
                    } else {
                        System.out.println("删除失败!退回菜单页");
                    }
                    return;
                }
            }
            System.out.println("没有找到该学生!");
        } else {
            System.out.println("操作失败!");
        }
    }

3:修改学生信息

//"3"->修改学生信息
    private static void change(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要修改信息的学生姓名");
            String n = sc.next();
            for (Student student : students) {
                if (student.getName().equals(n)) {
                    StudentMessage(sc, student);
                    return;
                }
            }
        } else {
            System.out.println("操作失败");
        }
    }

4:查询单个学生信息

 //  "4"->查询单个学生信息
    private static void Search(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要查询的学生姓名");
            String next = sc.next();
            for (Student student : students) {
                if (student.getName().equals(next)) {
                    System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
                    showMessage(student);
                    return;
                }
            }
            System.out.println("没有找到该学生的信息!");
        } else {
            System.out.println("操作失败!");
        }
    }

5:列出所有学生信息

//  "5"->列出所有学生
    private static void show(ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
            for (Student student : students) {
                showMessage(student);
            }
        } else {
            System.out.println("操作失败!");
        }
    }

用到的其他方法:

 private static void StudentMessage(Scanner sc, Student s) {
        System.out.println("请输入学生的学号:");
        s.setId(sc.next());
        System.out.println("请输入学生的姓名:");
        s.setName(sc.next());
        System.out.println("请输入学生的年龄:");
        s.setAge(sc.nextInt());
        while (true) {
            System.out.println("请输入学生的性别:");
            String next = sc.next();
            if (next.equals("女") || next.equals("男")) {
                s.setGender(next);
                break;
            } else {
                System.out.println("性别只有男女,没有你说的这个,请重新输入");
            }
        }

        while (true) {
            System.out.println("请输入学生的语文成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setChinese_score(v);
                break;
            }
        }
        while (true) {
            System.out.println("请输入学生的数学成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setMath_score(v);
                break;
            }
        }
        while (true) {
            System.out.println("请输入学生的英语成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setEnglish_score(v);
                break;
            }
        }
    }

    //根据Student对象展示单个学生的信息
    private static void showMessage(Student student) {
        System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() +
                "\t\t" + student.getAge() + "\t\t" + student.getChinese_score() + "\t\t" + student.getMath_score() +
                "\t\t" + student.getEnglish_score());
    }

    //判断系统中是否有学生信息
    private static boolean judge(ArrayList<Student> students) {
        if (students.size() == 0) {
            System.out.println("还没有学生信息呢,请添加后再进行后续操作");
            return false;
        }
        return true;
    }


    private static double scanScore(Scanner sc) {
        double v = sc.nextDouble();
        if (v > 100 || v < 0) {
            System.out.println("输入成绩不在允许范围内,请重新输入");
            return -1;
        }
        return v;
    }

完整发一下代码:

学生类:



public class Student {
    private String id;
    private String name;
    private int age;
    private String gender;
    private double Math_score;
    private double Chinese_score;
    private double English_score;

    public Student() {
    }

    public Student(String id, String name, int age, String gender, double math_score, double chinese_score, double english_score) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        Math_score = math_score;
        Chinese_score = chinese_score;
        English_score = english_score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public double getMath_score() {
        return Math_score;
    }

    public void setMath_score(double math_score) {
        Math_score = math_score;
    }

    public double getChinese_score() {
        return Chinese_score;
    }

    public void setChinese_score(double chinese_score) {
        Chinese_score = chinese_score;
    }

    public double getEnglish_score() {
        return English_score;
    }

    public void setEnglish_score(double english_score) {
        English_score = english_score;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

StudentSystem类:



import java.util.ArrayList;
import java.util.Scanner;

//学生信息管理系统
//功能:增、删、改、查
public class StudentSystem {

    public static void main(String[] args) throws Exception {
        //创建Scanner对象和ArrayList集合
        Scanner sc = new Scanner(System.in);
        ArrayList<Student> students = new ArrayList<>();
        //放入死循环能一直运行
        while (true) {
            Welcome();
            Menu(sc, students);
        }
    }

    //欢迎界面
    private static void Welcome() {
        System.out.println("请选择您要进行的操作:");
        System.out.println("1.录入学生信息");
        System.out.println("2.删除学生信息");
        System.out.println("3.修改学生信息");
        System.out.println("4.查询学生信息");
        System.out.println("5.展示所有学生成绩信息");
        System.out.println("0.退出系统");
    }

    //真正的菜单
    private static void Menu(Scanner sc, ArrayList<Student> students) {
        switch (sc.next()) {
            case "1" -> add(sc, students);                //添加学生信息
            case "2" -> deleteMessage(sc, students);      //删除学生信息
            case "3" -> change(sc, students);            //修改学生信息
            case "4" -> Search(sc, students);             //查询学生信息
            case "5" -> show(students);                   //列出所有学生的成绩
            case "0" -> System.exit(0);
        }
    }

    //  "1"->添加学生信息
    private static void add(Scanner sc, ArrayList<Student> students) {

        Student s = new Student();
        StudentMessage(sc, s);
        students.add(s);
    }

    //"2"->删除学生信息
    private static void deleteMessage(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要删除学生的姓名");
            String next = sc.next();
            for (int i = 0; i < students.size(); i++) {
                Student student = students.get(i);
                if (student.getName().equals(next)) {
                    System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
                    showMessage(student);
                    System.out.println("确定要删除吗?Y/N");
                    if (sc.next().equalsIgnoreCase("Y")) {
                        students.remove(i);
                        System.out.println("删除成功!");
                    } else {
                        System.out.println("删除失败!退回菜单页");
                    }
                    return;
                }
            }
            System.out.println("没有找到该学生!");
        } else {
            System.out.println("操作失败!");
        }
    }

    //"3"->修改学生信息
    private static void change(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要修改信息的学生姓名");
            String n = sc.next();
            for (Student student : students) {
                if (student.getName().equals(n)) {
                    StudentMessage(sc, student);
                    return;
                }
            }
        } else {
            System.out.println("操作失败");
        }
    }


    //  "4"->查询单个学生信息
    private static void Search(Scanner sc, ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("请输入要查询的学生姓名");
            String next = sc.next();
            for (Student student : students) {
                if (student.getName().equals(next)) {
                    System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
                    showMessage(student);
                    return;
                }
            }
            System.out.println("没有找到该学生的信息!");
        } else {
            System.out.println("操作失败!");
        }
    }

    //  "5"->列出所有学生
    private static void show(ArrayList<Student> students) {
        if (judge(students)) {
            System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
            for (Student student : students) {
                showMessage(student);
            }
        } else {
            System.out.println("操作失败!");
        }
    }

    private static void StudentMessage(Scanner sc, Student s) {
        System.out.println("请输入学生的学号:");
        s.setId(sc.next());
        System.out.println("请输入学生的姓名:");
        s.setName(sc.next());
        System.out.println("请输入学生的年龄:");
        s.setAge(sc.nextInt());
        while (true) {
            System.out.println("请输入学生的性别:");
            String next = sc.next();
            if (next.equals("女") || next.equals("男")) {
                s.setGender(next);
                break;
            } else {
                System.out.println("性别只有男女,没有你说的这个,请重新输入");
            }
        }

        while (true) {
            System.out.println("请输入学生的语文成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setChinese_score(v);
                break;
            }
        }
        while (true) {
            System.out.println("请输入学生的数学成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setMath_score(v);
                break;
            }
        }
        while (true) {
            System.out.println("请输入学生的英语成绩:");
            double v = scanScore(sc);
            if (v != -1) {
                s.setEnglish_score(v);
                break;
            }
        }
    }

    //根据Student对象展示单个学生的信息
    private static void showMessage(Student student) {
        System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() +
                "\t\t" + student.getAge() + "\t\t" + student.getChinese_score() + "\t\t" + student.getMath_score() +
                "\t\t" + student.getEnglish_score());
    }

    //判断系统中是否有学生信息
    private static boolean judge(ArrayList<Student> students) {
        if (students.size() == 0) {
            System.out.println("还没有学生信息呢,请添加后再进行后续操作");
            return false;
        }
        return true;
    }


    private static double scanScore(Scanner sc) {
        double v = sc.nextDouble();
        if (v > 100 || v < 0) {
            System.out.println("输入成绩不在允许范围内,请重新输入");
            return -1;
        }
        return v;
    }


}

这就是所有内容了,这篇文章可用于学校作业(*^_^*),但主要学习思路,我的代码也不是最简单的,其中有很多地方还可以简化,这只是我学习Java的练手作品,请酌情观看。

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

  • 9
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
该学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩。成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库:MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、年级信息管理、班级信息管理、课程信息管理、考试信息管理,系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询、学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 年级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              
### 回答1: Java学生成绩管理系统是一个使用Java语言开发的软件系统,用于管理学生的成绩信息。它可以帮助教师和学生管理、查看、录入和分析学生的成绩信息。学生成绩管理系统可以实现以下功能: 1. 录入学生的基本信息,包括学号、姓名、性别、出生日期、专业、班级等。 2. 录入学生的成绩信息,包括学号、课程名称、课程类型、学分、成绩等。 3. 查询学生的成绩信息,可以按照学号、姓名、专业、班级等不同条件进行查询。 4. 统计学生的成绩信息,包括平均分、最高分、最低分等。 5. 分析学生的成绩信息,可以按照课程、专业、班级等不同条件进行分析。 6. 导出学生的成绩信息,可以将学生成绩信息导出到Excel或其他格式的文件中。 希望以上内容能够帮助你了解Java学生成绩管理系统的基本功能。 ### 回答2: Java学生成绩管理系统是一款基于Java语言开发的软件,旨在方便学校或教育机构对学生的学习成绩进行管理和分析。该系统可以实现以下功能: 1. 学生信息管理:包括学生的基本信息、课程信息、成绩记录等。管理员可以通过系统添加、删除、修改学生信息,保证信息的准确性和完整性。 2. 成绩录入和查询:教师可以通过该系统录入学生成绩,包括平时成绩、考试成绩等。学生和家长可以通过系统查询自己的成绩,了解自己的学业进展情况。 3. 成绩分析和统计:系统可以根据录入的成绩数据进行分析和统计,生成各种数据报表和图表,例如班级成绩排名、课程平均分、学生成绩趋势等,为教师提供决策依据。 4. 学生成绩预警:系统根据学生成绩数据,可以预测出可能存在的问题学生,例如成绩下降较大的学生,提醒教师或家长及时关注,采取相应的教学或辅导措施。 5. 学生评价和奖励:系统可以记录学生的个人评价和奖惩情况,例如学生的优秀表现、突出进步等,为学生个人评价和奖励提供依据。 总之,Java学生成绩管理系统在学校或教育机构中可以提高学生管理和成绩分析的效率,为学校和教师提供更好的学生教育管理服务,帮助学生更好地学习和成长。 ### 回答3: Java学生成绩管理系统是一种用Java语言编写的软件,旨在帮助学校或教育机构管理和记录学生的学业成绩。 该系统主要具备以下功能: 1. 学生信息管理:可以对学生的基本信息进行录入和修改,包括学生的姓名、学号、性别、年龄等,并可以存储这些信息。 2. 课程管理:可以添加、编辑和删除学生所学习的各门课程,包括课程编号、课程名称、学分等信息。 3. 成绩录入:老师可以根据学生的学号和课程编号录入学生在不同课程中的成绩,并存储到系统中。 4. 成绩查询:学生、教师或管理员可以通过学号、课程编号等查询学生在不同课程中的成绩,系统可以根据输入的条件返回相应的成绩信息。 5. 综合统计:系统可以根据学生的成绩信息进行综合统计,包括课程平均分、学生平均分、最高分、最低分等,以便对学生的学业表现进行综合评估。 6. 成绩报表:系统可以生成学生成绩报表,以便学校或教育机构进行统计和分析学生的学业成绩情况。 7. 权限管理:系统设置管理员权限,不同的用户拥有不同的操作权限,确保数据的安全性。 Java学生成绩管理系统的优点包括系统的可扩展性、稳定性和安全性高,具备较好的用户体验和友好的界面设计。此外,Java作为一种跨平台的程序设计语言,可以在不同的操作系统中运行,提高了系统的兼容性和便利性。 总之,Java学生成绩管理系统可以有效地提升学校或教育机构管理学生成绩的效率和准确性,为学生、教师和管理员提供了便利和数据支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值