JAVA 学生成绩管理系统

在文章开始之前,先声明,不是可以白嫖的!所有代码均为本人书写(虽然代码写的垃圾,但是能跑,能满足要求),大神不用看,话不多说,看要求:

编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、其中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能:

  1. 列出某个学生的所有成绩;
  2. 列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分;
  3. 分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。

 

没错,这是郑州某大学的java期末大作业,30号之前完成,由于口罩原因,小编匆忙完成了(急着回家)

运行效果图:(小编这里有两种)

第一种:(无图形化)

更多的想法功能,小编会在30号之前一一添加。

第二种:(图形化)

 

 第二种,页面看着不错,但是功能欠缺(小编上课不听,这里都是摸索的),后续会根据自己能力添加功能。

这里放出部分代码:(第一种)


import utils.Utility;

/**
 * 创建系统菜单
 * 1——创建学生集合(学生相关信息可以从键盘录入也可以直接初始化)
 * 2——查询学生信息
 * 3——列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分
 * 4——分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等
 * 根据用户输入的选项,调用功能类相关操作。
 */
public class View {
    private boolean loop = true; //控制显示菜单
    private char key = ' '; //接收用户选择

    //显示主菜单
    public void mainMenu() {
        do {
            Method.DefaultInformationAdd();//初始化录入信息
            System.out.println("\n=============学生成绩管理系统============");
            System.out.println("\t\t\t1 录入学生信息");
            System.out.println("\t\t\t2 查询学生信息");
            System.out.println("\t\t\t3 查询某门课程每个学生总评成绩及平均分");
            System.out.println("\t\t\t4 查询某门课程学生成绩区段");
            System.out.println("\t\t\t5 删除学生信息");
            System.out.println("\t\t\t6 退出系统");
            System.out.print("请输入你的选择(1-6): ");
            key = Utility.readChar();
            switch (key) {
                case '1':

                    Method.addMessage();
                    break;
                case '2':
                    Method.messageSearch();
                    break;
                case '3':
                    Method.sumScore();
                    break;
                case '4':
                    Method.scoreSection();
                    break;
                case '5':
                    Method.delMessage();
                    break;
                case '6':
                    Method.exit();
                    break;
            }
        } while (loop);
    }
}

这是主页面,当然,肯定运行不成功,因为Method类,我没放出来,里面用的都是静态方法,类加载时,就已经初始化了,所以没有创建对象。

(第二种界面)


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.Spring;
import javax.swing.SpringLayout;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingConstants;
import java.awt.FlowLayout;
import java.awt.Font;

//登录界面
public class Login extends JFrame implements ActionListener{


    private static final long serialVersionUID = 1L;//序列化用到



    //定义控件
    JPanel jp1;
    JLabel id,pw,title;
    JButton login,restart;
    JTextField id_t;
    JPasswordField pw_t;
    SpringLayout springLayout = new SpringLayout();

    public Login() {
        init();
        this.setVisible(true);
        //窗口大小不可变
        setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private void init() {
        id = new JLabel("账号:");
        pw = new JLabel("密码:");
        title = new JLabel("学生成绩管理系统");
        jp1 = new JPanel(springLayout);
        id_t = new JTextField(15);
        pw_t = new JPasswordField(15);
        login = new JButton("登录");
        restart = new JButton("重置");
        //监听jb1按钮
        login.addActionListener(this);
        restart.addActionListener(this);

        //获取内容面板
        Container contentPane = getContentPane();
        id_t.setPreferredSize(new Dimension(200,30));
        pw_t.setPreferredSize(new Dimension(200,30));
        //jpanel.add(title,jpanel.CENTER_ALIGNMENT);
        jp1.add(id);
        id.setPreferredSize(new Dimension(200,30));
        jp1.add(id_t);
        jp1.add(pw);
        pw_t.setPreferredSize(new Dimension(200,30));
        jp1.add(pw_t);
        jp1.add(login);
        jp1.add(restart);
        jp1.add(title);

        id.setFont(new Font("微软雅黑",Font.PLAIN,18));
        pw.setFont(new Font("微软雅黑",Font.PLAIN,18));
        title.setFont(new Font("微软雅黑",Font.PLAIN,28));

        springLayout.putConstraint(springLayout.WEST, id, -100, springLayout.HORIZONTAL_CENTER, jp1);
        springLayout.putConstraint(springLayout.NORTH, id, -200, springLayout.HORIZONTAL_CENTER, jp1);


        springLayout.putConstraint(springLayout.WEST, id_t, -150, springLayout.EAST, id);
        springLayout.putConstraint(springLayout.NORTH, id_t, 0, springLayout.NORTH, id);

        springLayout.putConstraint(springLayout.WEST, pw_t, 0, springLayout.WEST, id_t);
        springLayout.putConstraint(springLayout.NORTH, pw_t, 0, springLayout.NORTH, pw);
        springLayout.putConstraint(springLayout.WEST, pw, -100, springLayout.HORIZONTAL_CENTER, jp1);
        springLayout.putConstraint(springLayout.NORTH, pw, -140, springLayout.HORIZONTAL_CENTER, jp1);
        //放置button,相对于中心
        springLayout.putConstraint(springLayout.EAST, login, 10, springLayout.HORIZONTAL_CENTER, jp1);
        springLayout.putConstraint(springLayout.NORTH, login, 40, springLayout.SOUTH, pw);
        springLayout.putConstraint(springLayout.WEST, restart, 40, springLayout.HORIZONTAL_CENTER, jp1);
        springLayout.putConstraint(springLayout.NORTH, restart, 40, springLayout.SOUTH, pw);
        //放置title
        springLayout.putConstraint(springLayout.WEST, title, -5, springLayout.WEST, id);
        springLayout.putConstraint(springLayout.SOUTH, title, -40, springLayout.NORTH, id);
        //将中间容器放入内容面板
        contentPane.add(jp1,BorderLayout.CENTER);

    }

    //事件监听
    @Override
    public void actionPerformed(ActionEvent e) {
        String ad = "12345";
        String psw = "12345";
        //登录
        if (e.getSource() == login) {
            String id_s = id_t.getText();
            String pw_s = pw_t.getText();

            if (id_s.equals(ad)) {
                if(pw_s.equals(psw)) {
                    WindowOfStudent win = new WindowOfStudent();
                    win.setBounds(200,200,600,400);
                    win.setTitle("学生成绩管理系统");
                    this.dispose();
                }else {
                    JOptionPane.showMessageDialog(login, "密码错误!!!");
                }
            } else {
                JOptionPane.showMessageDialog(login, "用户名错误!!!");
            }
        }
        //重置
        if (e.getSource() == restart) {
            id_t.setText("");
            pw_t.setText("");
        }

    }
}

这里是登录界面的,里面的监听函数啥的,以及相关按钮设置啥的,借鉴了网上部分代码(小编能力有限。嘴下留情)

其实java作为一门强大的语言,主要写后端,像前端界面不是其优势,开发中也基本不用java写前端界面(这里是小编为自己菜鸡而找的借口)

好了,说了这么废话,主要是小编快封疯了(),所以说话前一句后一句的

 现在还不加上代码获取资源链接,看各位想要同学的评论了,没有评论就不发了,有评论就看看是否公开

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
该学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统;管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库:MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、年级信息管理、班级信息管理、课程信息管理、考试信息管理,系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询、学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 年级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值