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