今天为大家分享一个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 stubtext = 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() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘添加学生信息’菜单项");AddStudentInfo addStudentInfo = new AddStudentInfo();}});queryStudentInfo.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘查询学生信息’菜单项");QueryStudentInfo queryStudentInfo = new QueryStudentInfo();}});modifyPassword.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘修改密码’菜单项");ModifyPasswordInfo modifyPasswordInfo = new ModifyPasswordInfo();}});Exit.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘退出’菜单项");System.exit(1);}});importExcel.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘导入到excel’菜单项");ImportExcel importExcel =new ImportExcel();}});importTxt.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘导入到txt’菜单项");ImportTxt importTxt = new ImportTxt();}});outputExcel.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘导出到excel’菜单项");OutputExcel outputExcel = new OutputExcel();}});outputTxt.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘导出到txt’菜单项");OutputTxt outputTxt = new OutputTxt();}});aboutSystem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("=======>用户选择了‘关于系统’菜单项");AboutSystem aboutSystem = new AboutSystem();}});help.addActionListener(new ActionListener() {@Overridepublic 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();}@Overridepublic void actionPerformed(ActionEvent arg0) {}}

项目总结

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

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

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

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

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

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