Java 学生信息管理系统-窗体程序 有详细设计文档和报告

今天为大家分享一个java语言编写的学生信息管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档

主要功能

开发背景

随着高校的扩招,需要处理的学生信息日趋加大,不仅花费大量的教师资源,处理的效率还十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息,成为管理高校中必不可少的管理工具。

主要功能

本次课程设计开发一个学生管理系统,系统中分两类系统管理员和普通学生。系统管理员能对系统中的学生进行查询,增加,删除,修改,分页显示,Excel导出学生信息等。

运行效果

1 用户登陆

2 主界面

3 添加学生界面

4 学生信息查询

5 学生查询结果展示

6 关于系统

7 导出Excel

核心代码

/*
 * 登陆成功后主界面
 */
public class MainMenu extends JFrame implements ActionListener{
    private JFrame mainmenu;
    private JTextArea text;
    private JMenu menuFile1, menuFile2, menuFile3;
    private JMenuBar menuBar1;
    private JMenuItem addStudentInfo,queryStudentInfo, modifyPassword,Exit;
    private JMenuItem importExcel,importTxt, outputExcel,outputTxt;
    private JMenuItem aboutSystem,help;
    public MainMenu() {

        mainmenu();
    }

    public void mainmenu() {
        // TODO Auto-generated method stub
        text = new JTextArea("欢迎使用");
        text.setEditable(true);
        mainmenu = new JFrame("欢迎使用学生信息管理系统 - 欢迎" + "用户" );
        mainmenu.setSize(1265, 856);

        mainmenu.getContentPane().add(new JScrollPane(text));


        //====================>基本操作
        menuFile1 = new JMenu("基本操作(0)");
        Font font = new Font("楷体",Font.BOLD,16);
        menuFile1.setFont(font);
        menuFile1.setIcon(new ImageIcon("src/images/icons/base1.png"));
        menuFile1.setMnemonic('O');
        //menuFile.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.ALT_MASK));

        add(menuFile1);

        menuBar1 = new JMenuBar();

        addStudentInfo = new JMenuItem("增加",new ImageIcon("src/images/icons/add.png"));
        addStudentInfo.setMnemonic('H');
        addStudentInfo.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile1.add(addStudentInfo);

        queryStudentInfo = new JMenuItem("查询",new ImageIcon("src/images/icons/query.png"));
        queryStudentInfo.setMnemonic('Q');
        queryStudentInfo.setAccelerator(KeyStroke.getKeyStroke('Q',java.awt.Event.CTRL_MASK));
        menuFile1.add(queryStudentInfo);

        modifyPassword = new JMenuItem("密码修改",new ImageIcon("src/images/icons/modifyPassword.png"));
        modifyPassword.setMnemonic('M');
        modifyPassword.setAccelerator(KeyStroke.getKeyStroke('M',java.awt.Event.CTRL_MASK));
        menuFile1.add(modifyPassword);

        Exit = new JMenuItem("退出",new ImageIcon("src/images/icons/exit.png"));
        Exit.setMnemonic('E');
        Exit.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK));
        menuFile1.add(Exit);

        menuBar1.add(menuFile1);

        //====================>导入导出
        menuFile2 = new JMenu("导入导出(0)");
        menuFile2.setFont(font);
        menuFile2.setIcon(new ImageIcon("src/images/icons/base2.png"));
        menuFile2.setMnemonic('O');
        //menuFile.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.ALT_MASK));
        importExcel = new JMenuItem("从excel导入",new ImageIcon("src/images/icons/import.png"));
        importExcel.setMnemonic('H');
        importExcel.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile2.add(importExcel);

        importTxt = new JMenuItem("从txt导入",new ImageIcon("src/images/icons/output.png"));
        importTxt.setMnemonic('H');
        importTxt.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile2.add(importTxt);

        outputExcel = new JMenuItem("从excel导出",new ImageIcon("src/images/icons/import1.png"));
        outputExcel.setMnemonic('H');
        outputExcel.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile2.add(outputExcel);

        outputTxt = new JMenuItem("从txt导出",new ImageIcon("src/images/icons/output1.png"));
        outputTxt.setMnemonic('H');
        outputTxt.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile2.add(outputTxt);


        menuBar1.add(menuFile2);

        //====================>帮助
        menuFile3 = new JMenu("帮助(0)");
        menuFile3.setFont(font);
        menuFile3.setIcon(new ImageIcon("src/images/icons/base3.png"));
        menuFile3.setMnemonic('O');
        //menuFile.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.ALT_MASK));
        aboutSystem = new JMenuItem("关于本系统",new ImageIcon("src/images/icons/about.png"));
        aboutSystem.setMnemonic('H');
        aboutSystem.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile3.add(aboutSystem);

        help = new JMenuItem("系统帮助",new ImageIcon("src/images/icons/help.png"));
        help.setMnemonic('H');
        help.setAccelerator(KeyStroke.getKeyStroke('H',java.awt.Event.CTRL_MASK));
        menuFile3.add(help);

        menuBar1.add(menuFile3);




        addStudentInfo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘添加学生信息’菜单项");
                AddStudentInfo addStudentInfo = new AddStudentInfo();
            }
        });


        queryStudentInfo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘查询学生信息’菜单项");
                QueryStudentInfo queryStudentInfo = new QueryStudentInfo();
            }
        });

        modifyPassword.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘修改密码’菜单项");
                ModifyPasswordInfo modifyPasswordInfo = new ModifyPasswordInfo();
            }
        });


        Exit.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘退出’菜单项");
                System.exit(1);
            }
        });

        importExcel.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘导入到excel’菜单项");
                ImportExcel importExcel =new ImportExcel();

            }
        });
        importTxt.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘导入到txt’菜单项");
                ImportTxt importTxt = new ImportTxt();
            }
        });
        outputExcel.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘导出到excel’菜单项");
                OutputExcel outputExcel = new OutputExcel();
            }
        });
        outputTxt.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘导出到txt’菜单项");
                OutputTxt outputTxt = new OutputTxt();
            }
        });
        aboutSystem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘关于系统’菜单项");
                AboutSystem aboutSystem = new AboutSystem();
            }
        });
        help.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("=======>用户选择了‘帮助’菜单项");
                Help help = new Help();
            }
        });


        mainmenu.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent arg0) {
                System.exit(1);
            }
        });

        mainmenu.setJMenuBar(menuBar1);
        mainmenu.setVisible(true);
        mainmenu.setLocation(250, 50);
        addStudentInfo.addActionListener(this);
        queryStudentInfo.addActionListener(this);
        modifyPassword.addActionListener(this);
        Exit.addActionListener(this);
        importExcel.addActionListener(this);
        importTxt.addActionListener(this);
        outputExcel.addActionListener(this);
        outputTxt.addActionListener(this);
        aboutSystem.addActionListener(this);
        help.addActionListener(this);
    }



    public static void main(String[] args) {
        new MainMenu();

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {


    }

}

项目总结

当查询学生信息的时候,符合条件的学生记录数据有多条的时候,分页技术是一个难点,分页技术的主要实现步骤有以下几个步骤 :

1 根据符合的条件到数据库中查询,利用count(*)函数统计出符合条件的函数

2 根据每页5条件,根据总记录数,计算出符合条件的页面数量。计算公式为

(int) Math.ceil(totalrecord/5.0);

3 把查询出来的list记录传递到页面的前台进行显示

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次项目设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。