学生成绩管理系统

一个终端的学生管理系统,终端界面。根据大一实训要求写的,界面可能会有一点点难看,可供参考

 

package test;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
import java.util.function.Predicate;

/*
 * 实现学生成绩管理系统功能
 */
public class BookManager {
    static class Student {
        private String stuNo;//学号
        private String names;//姓名
        private double java;//java成绩数组
        private double html;//html成绩数组
        private double computer;//计算机成绩数组
        private double average;//平均分

        public String getStuNo() {
            return stuNo;
        }

        public void setStuNo(String stuNo) {
            this.stuNo = stuNo;
        }

        public String getNames() {
            return names;
        }

        public void setNames(String names) {
            this.names = names;
        }

        public double getJava() {
            return java;
        }

        public void setJava(double java) {
            this.java = java;
        }

        public double getHtml() {
            return html;
        }

        public void setHtml(double html) {
            this.html = html;
        }

        public double getComputer() {
            return computer;
        }

        public void setComputer(double computer) {
            this.computer = computer;
        }

        public double getAverage() {
            return average;
        }

        public void setAverage(double average) {
            this.average = average;
        }
    }

    //定义数组存储学生信息
    public static ArrayList<Student> students = new ArrayList<>();
    public static int stuNum; //用来记录数组中实际学生个数
    public static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        loginAdmin();
    }

    //进入系统登录验证界面自定义方法
    public static void loginAdmin() {
        Scanner sc = new Scanner(System.in);
        System.out.println("用户名:");
        String name = sc.next();
        System.out.println("密码:");
        String pwd = sc.next();
        if (validLogin(name, pwd)) {
        // System.out.println("用户名、密码正确,进入管理员主菜单");
            mainMenu();
        } else {
            System.out.println("用户名、密码错误!"); //提示错误之后使用循环保证可以重新输入3次用户名、密码,超过3次就不再允许输入
        }
    }

    //系统管理员登录验证自定义方法
    public static boolean validLogin(String userName, String usePwd) {
        String name = "root";//可以更具自己需求更改账号密码
        String pwd = "123456";
        if (userName.equals(name) && usePwd.equals(pwd)) {
            return true;
        } else {
            return false;
        }
    }

    //系统主菜单界面自定义方法
    public static void mainMenu() {
        System.out.println("*************************************");
        System.out.println("*\t\t\t学生成绩管理系统\t\t\t*");
        System.out.println("*\t\t\t1:录入学生信息\t\t\t*");
        System.out.println("*\t\t\t2:添加学生信息\t\t\t*");
        System.out.println("*\t\t\t3:查找学生信息\t\t\t*");
        System.out.println("*\t\t\t4:删除学生信息\t\t\t*");
        System.out.println("*\t\t\t5:学生成绩排序\t\t\t*");
        System.out.println("*\t\t\t6:插入学生信息\t\t\t*");
        System.out.println("*\t\t\t7:查看所有信息\t\t\t*");
        System.out.println("*\t\t\t0:退出系统\t\t\t\t*");
        System.out.println("*************************************");
        System.out.println("请输入你的选择(0---7):");
        int choose = sc.nextInt();
        switch (choose) {
            case 1:
                //1、录入学生信息
                inputStuInfo();
                mainMenu();
                break;
            case 2:
                //2、添加学生信息
                inputStuInfo();

                mainMenu();
                break;
            case 3:
                //3、查找学生信息
                lookupinformation();

                mainMenu();
                break;
            case 4:
                //4、删除学生信息
                removeinformation();

                mainMenu();
                break;
            case 5:
                //5、学生成绩排序
                sortinformation();
                mainMenu();
                break;
            case 6:
                //6、插入学生信息
                inputStuInfo();
                mainMenu();
                break;
            case 7:
                //7、查看所有学生信息
                allinformation();

                mainMenu();
                break;
            default:
                System.out.println("选择有误!");
                break;
        }
    }
    //查看所有学生信息
    private static void allinformation() {
        if (students.size()==0){
            System.out.println("没有学生数据");
            return;
        }
        for (Student student : students) {
            System.out.println("*************************************");
            System.out.printf("*\t\t\t学生学号:%s  \t\t\t\t*\n", student.getStuNo());
            System.out.printf("*\t\t\t学生姓名:%s  \t\t\t\t*\n", student.getNames());
            System.out.printf("*\t\t\tjava成绩:%.2f\t\t\t*\n", student.getJava());
            System.out.printf("*\t\t\thtml成绩:%.2f\t\t\t*\n", student.getHtml());
            System.out.printf("*\t\t\t计算机成绩:%.2f\t\t\t*\n", student.getComputer());
            System.out.printf("*\t\t\t平均成绩:%.2f\t\t\t*\n", student.getAverage());
            System.out.println("*************************************");
        }
    }

    //学生信息排序
    private static void sortinformation() {
        students.sort(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return (int)(o2.getAverage()-o1.getAverage());
            }
        });
        allinformation();
    }

    //删除学生信息
    private static void removeinformation() {
        allinformation();
        System.out.print("请输入你要删除信息的学号:");
        String stuNo = sc.next();
        //删除学生信息
        students.removeIf(new Predicate<Student>() {
            @Override
            public boolean test(Student student) {
                if (student.getStuNo().equals(stuNo)){
                    return true;
                }
                return false;
            }
        });
    }

    //查找学生信息
    private static void lookupinformation() {
        System.out.println("*************************************");
        System.out.println("*\t\t\t学生成绩管理系统\t\t\t*");
        System.out.println("*\t\t\t1:按学生学号查找\t\t\t*");
        System.out.println("*\t\t\t2:按学生姓名查找\t\t\t*");
        System.out.println("*\t\t\t3:退出\t\t\t*");
        System.out.println("*************************************");
        System.out.print("请输入序号(1-3):");
        int choose = sc.nextInt();
        switch (choose) {
            case 1:
                System.out.println("请输入学生学号");
                String stuNo = sc.next();
                for (Student student : students) {
                    if (student.getStuNo().equals(stuNo)) {
                        System.out.println("*************************************");
                        System.out.printf("*\t\t\t学生学号:%s\t\t\t*", student.getStuNo());
                        System.out.printf("*\t\t\t学生姓名:%s\t\t\t*", student.getNames());
                        System.out.printf("*\t\t\tjava成绩:%f\t\t\t*", student.getJava());
                        System.out.printf("*\t\t\thtml成绩:%f\t\t\t*", student.getHtml());
                        System.out.printf("*\t\t\t计算机成绩:%f\t\t\t*", student.getComputer());
                        System.out.printf("*\t\t\t平均成绩:%f\t\t\t*", student.getAverage());
                        System.out.println("*************************************");
                    }
                }
                break;
            case 2:
                System.out.println("请输入学生姓名:");
                String stuName = sc.next();
                for (Student student : students) {
                    if (student.getNames().equals(stuName)) {
                        System.out.println("*************************************");
                        System.out.printf("*\t\t\t学生学号:%s\t\t\t*", student.getStuNo());
                        System.out.printf("*\t\t\t学生姓名:%s\t\t\t*", student.getNames());
                        System.out.printf("*\t\t\tjava成绩:%f\t\t\t*", student.getJava());
                        System.out.printf("*\t\t\thtml成绩:%f\t\t\t*", student.getHtml());
                        System.out.printf("*\t\t\t计算机成绩:%f\t\t\t*", student.getComputer());
                        System.out.printf("*\t\t\t平均成绩:%f\t\t\t*", student.getAverage());
                        System.out.println("*************************************");
                    }
                }
                break;
            case 3:
                break;
            default:
                System.out.println("输入信息错误请重新输入");
                lookupinformation();
                break;
        }
    }

    //1、录入学生信息自定义方法
    public static void inputStuInfo() {
        //姓名、学号、3门课成绩、平均分
        Scanner sc = new Scanner(System.in);
        System.out.print("输入您要录入学生的个数:");
        stuNum = sc.nextInt();
        for (int i = 0; i < stuNum; i++) {
            Student stu = new Student();
            System.out.print("学号(0-99):");
            stu.setStuNo(sc.next());
            System.out.print("姓名:");
            stu.setNames(sc.next());
            System.out.println("请输入三门课的成绩:");
            System.out.print("java成绩:");
            stu.setJava(sc.nextDouble());
            System.out.print("html成绩:");
            stu.setHtml(sc.nextDouble());
            System.out.print("计算机成绩:");
            stu.setComputer(sc.nextDouble());
            stu.setAverage((stu.getHtml() + stu.getJava() + stu.getComputer()) / 3.0);
            students.add(stu);
            System.out.println("以存在" + students.size() + "个学生");
            System.out.println("**************************************");
        }
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值