栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学生管理系统(Java+MySQL+GUI)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学生管理系统(Java+MySQL+GUI)

1,需求

设计一个Student类,其中包括以下内容:

1.)学生信息:学号,姓名,年龄,语文成绩,数学成绩,总分,平均分

2.)通过键盘输入学生的学号,姓名,年龄,语文成绩,数学成绩

3.)计算出总分和平均分

4.)连接数据库,库中建立学生表和用户表

5.)实现用户的登录,注册页面

6.)登录成功后,可对学生信息进行增删改查

2.效果图(要求使用图形化界面 GUI)(部分)

主页面: 

注册页面: 

 

登录界面: 

 

开始界面: 

 

 3.代码(部分):

查询,排序代码: 

package student.main;

import studentManage.dao.Model;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class Select extends Box {
    final int WIDTH=850;
    final int HEIGHT=600;

    private JTable table;
    private Vector titles;
    private Vector tableData;
    private TableModel tableModel;
    private Model sm = null;
    private JScrollPane jsp = null;
    private JTable resultTb = null;

    //垂直布局
    public Select(){
        super(BoxLayout.Y_AXIS);
        //组装视图

        JPanel btnPanel = new JPanel();
        Color color = new Color(203,220,217);
        btnPanel.setBackground(color);
        btnPanel.setMaximumSize(new Dimension(WIDTH,80));
        btnPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));

        JLabel jLabel = new JLabel("请输入姓名:");
        JTextField jTextField = new JTextField(5);
        JButton jButton = new JButton("查询");
        JButton jButton1 = new JButton("全部");
        JLabel jLabel1 = new JLabel("按");
        Choice select = new Choice();
        select.add("学号");
        select.add("年龄");
        select.add("总分");
        select.add("语文成绩");
        select.add("数学成绩");
        JButton jButton2 = new JButton("排序");

        btnPanel.add(jLabel);
        btnPanel.add(jTextField);
        btnPanel.add(jButton);
        btnPanel.add(jButton1);
        btnPanel.add(jLabel1);
        btnPanel.add(select);
        btnPanel.add(jButton2);
        this.add(btnPanel);

        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //查询
                //获取输入学生的姓名
                String name = jTextField.getText().trim();
                if(name.length() != 0) {
                    //姓名输入有效时,执行查询
                    //定义参数
                    String sql = "select * from stu where stuName like ?";
                    String []paras = {"%"+name+"%"};
                    //更新模型
                    jtableUpdate(sql, paras);
                } else {
                    //姓名为空时,设置提醒
                    JOptionPane.showMessageDialog(new Menu().jframe, "姓名输入不能为空");
                }
            }
        });

        jButton1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //全部显示
                String sql = "select * from stu";
                jtableUpdate(sql, null);
            }
        });
        jButton2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //排序
                String paiXu = select.getSelectedItem();
                if(paiXu.equals("学号")) {
                    //定义参数
                    String sql = "select * from stu order by stuId desc";
                    String []paras = {};
                    //更新模型
                    jtableUpdate(sql, paras);
                } else if(paiXu.equals("总分")){
                    String sql = "select * from stu order by stuCount desc";
                    String []paras = {};
                    jtableUpdate(sql,paras);
                } else if(paiXu.equals("年龄")){
                    String sql = "select * from stu order by stuAge desc";
                    String []paras = {};
                    jtableUpdate(sql,paras);
                } else if(paiXu.equals("语文成绩")){
                    String sql = "select * from stu order by stuChinese desc";
                    String []paras = {};
                    jtableUpdate(sql,paras);
                }else if(paiXu.equals("数学成绩")){
                    String sql = "select * from stu order by stuMath desc";
                    String []paras = {};
                    jtableUpdate(sql,paras);
                }
            }
        });
        sm = new Model();
        String sql = "select * from stu";
        sm.queryStu(sql, null);
        resultTb = new JTable(sm);
        jsp = new JScrollPane(resultTb);
        this.add(jsp);
    }


    //更新JTable内数据
    public void jtableUpdate(String sql, String[] paras)
    {
        //创建模型
        sm = new Model();
        sm.queryStu(sql, paras);
        //更新显示
        resultTb.setModel(sm);
    }

}

注册界面代码:

package student.main;

import student.background.SignBackGround;
import student.main.Login;
import student.tishi.TiShi;
import student.tishi.Yanzhencode;
import student.utils.baseDao;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

public class Sign{//注册页面


        //组装视图
        public Sign() throws Exception {
            Jframe jframe = new Jframe("注册");
            final int WIDTH=500;//设置窗口的宽
            final int HEIGHT=450;//设置窗口的高
            //设置窗口相关属性
            jframe.setBounds(500,100,WIDTH,HEIGHT);
            jframe.setResizable(false);
            //设置窗口图标
            jframe.setIconImage(ImageIO.read(new File("D:\yuandaima\shishuo\src\studentManage\img\注册.png")));
            //设置背景图片
            SignBackGround bg = new SignBackGround();
            //用户名
            Box uBox = Box.createHorizontalBox();
            JLabel jLabel = new JLabel("     用户名:");
            JTextField jTextField = new JTextField(15);
            jTextField.addFocusListener(new TiShi(jTextField, "请输入用户名"));
            uBox.add(jLabel);
            uBox.add(Box.createHorizontalStrut(20));
            uBox.add(jTextField);
            //密码
            Box pBox = Box.createHorizontalBox();
            JLabel jLabel1 = new JLabel("     密    码:");
            JTextField jTextField1 = new JTextField(15);
            jTextField1.addFocusListener(new TiShi(jTextField1, "请输入密码"));
            pBox.add(jLabel1);
            pBox.add(Box.createHorizontalStrut(20));
            pBox.add(jTextField1);
            //手机号
            Box rpBox = Box.createHorizontalBox();
            JLabel jLabel2 = new JLabel("确认密码:");
            JTextField jTextField2 = new JTextField(15);
            jTextField2.addFocusListener(new TiShi(jTextField2, "请确认密码"));
            rpBox.add(jLabel2);
            rpBox.add(Box.createHorizontalStrut(20));
            rpBox.add(jTextField2);
            //性别
            Box sBox = Box.createHorizontalBox();
            JLabel jLabel3 = new JLabel(" 性    别:");
            ButtonGroup sex = new ButtonGroup();
            JRadioButton male = new JRadioButton("男",true);
            JRadioButton female = new JRadioButton("女");
            sex.add(male);
            sex.add(female);
            sBox.add(jLabel3);
            sBox.add(Box.createHorizontalStrut(20));
            sBox.add(male);
            sBox.add(Box.createHorizontalStrut(100));
            sBox.add(female);
            //院系
            Box yBox = Box.createHorizontalBox();
            JLabel jLabel4 = new JLabel("   年    龄:");
            //年份下拉框
            Choice year = new Choice();
            year.add("1999年");
            year.add("2000年");
            year.add("2001年");
            year.add("2002年");
            year.add("2003年");
            year.add("2004年");
            year.add("2005年");
            //月份下拉框
            Choice month = new Choice();
            month.add("1月");
            month.add("2月");
            month.add("3月");
            month.add("4月");
            month.add("5月");
            month.add("6月");
            month.add("7月");
            month.add("8月");
            month.add("9月");
            month.add("10月");
            month.add("11月");
            month.add("12月");
            //日期下拉框
            Choice day = new Choice();
            day.add("1日");
            day.add("2日");
            day.add("3日");
            day.add("4日");
            day.add("5日");
            day.add("6日");
            day.add("7日");
            day.add("8日");
            day.add("9日");
            day.add("10日");
            day.add("11日");
            day.add("12日");
            day.add("13日");
            day.add("14日");
            day.add("15日");
            yBox.add(jLabel4);
            yBox.add(Box.createHorizontalStrut(20));
            yBox.add(year);
            yBox.add(Box.createHorizontalStrut(8));
            yBox.add(month);
            yBox.add(Box.createHorizontalStrut(8));
            yBox.add(day);

            //验证码
            Box yzmBox = Box.createHorizontalBox();
            JTextField jTextField3 = new JTextField();
            jTextField3.addFocusListener(new TiShi(jTextField3, "请输入验证码"));
            Yanzhencode yzm = new Yanzhencode();
            yzmBox.add(jTextField3);
            yzmBox.add(Box.createHorizontalStrut(10));
            yzmBox.add(yzm);
            //设置登录,注册按钮
            Box butBox = Box.createHorizontalBox();
            Button b1 = new Button("注册");
            Button b2 = new Button("返回主页面");
            butBox.add(b1);
            butBox.add(Box.createHorizontalStrut(100));
            butBox.add(b2);



            b1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                        //获取用户输入的信息
                        String username = jTextField.getText().trim();
                        String password = jTextField1.getText().trim();
                        String repassword = jTextField2.getText().trim();
                        String sex = "";
                        for (Component c : sBox.getComponents()) {
                            if (c instanceof JRadioButton) {
                                if (((JRadioButton) c).isSelected()) {
                                    sex = ((JRadioButton) c).getText();
                                }
                            }
                        }
                        String birthday = year.getSelectedItem() + month.getSelectedItem() + day.getSelectedItem();
                        //进行数据库添加
                        if (repassword.equals(password)) {
                            if (jTextField3.getText().equals(yzm.getCode())) {
                                baseDao baseDao = new baseDao();
                                baseDao.sign(username, password, sex, birthday);
                                try {
                                    JOptionPane.showMessageDialog(jframe, "注册成功,即将返回主页面");
                                    jframe.dispose();
                                    new Login();
                                    jframe.dispose();

                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                }
                            } else {
                                try {
                               JOptionPane.showMessageDialog(jframe,"验证码输入错误");

                                } catch (Exception ex) {
                                    ex.printStackTrace();
                                }
                            }
                        } else {
                            try {
                                JOptionPane.showMessageDialog(jframe, "两次输入密码不一致");

                            } catch (Exception ex) {
                                ex.printStackTrace();
                            }
                        }
                    }
            });

            b2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    //跳转到主页面
                    try {
                        jframe.dispose();
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                    try {
                        new Login();
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }
            });
            Box vBox = Box.createVerticalBox();
            vBox.add(Box.createVerticalStrut(50));
            vBox.add(uBox);
            vBox.add(Box.createVerticalStrut(20));
            vBox.add(pBox);
            vBox.add(Box.createVerticalStrut(20));
            vBox.add(rpBox);
            vBox.add(Box.createVerticalStrut(20));
            vBox.add(sBox);
            vBox.add(Box.createVerticalStrut(20));
            vBox.add(yBox);
            vBox.add(Box.createVerticalStrut(20));
            vBox.add(yzmBox);
            vBox.add(Box.createVerticalStrut(40));
            vBox.add(butBox);


            bg.add(vBox);
            jframe.add(bg);
            jframe.setVisible(true);
        }

        //客户端程序的入口
        public static void main(String[] args) throws Exception {
           new Sign();
        }
    }

全部代码:

百度网盘:

https://pan.baidu.com/s/1YYatbNiYaaMVjufeJ9kanQ

提取码:ss27;

小结:

如有问题,私聊博主。

代码小白,谢谢关注!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/671242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号