[附源码]SSM计算机毕业设计远程教育系统JAVA

项目运行

环境配置:

Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7/8.0等版本均可;

毕设帮助,指导,本源码分享,调试部署(见文末)

3.2系统功能性需求

对功能需求的定义,一个软件系统或组件的功能,也是网页所需提供的功能和服务。本系统的功能需求按模块进行分析,主要有管理员,学生和教师三大模块。

3.2.1 功能需求

本系统的用户可分为教师模块,管理员模块和学生模块三个界面组成。一个界面用于管理员登录,管理员可以管理系统内所有功能,主要有主页,个人中心,学生管理,教师管理,教学课件管理,教学视频管理,教学资料管理,在线测试管理,试题管理,系统管理,考试管理等功能;另一界面用于教师登录,教师主要有主页,个人中心,教学课件管理,教学视频管理,教学资料管理,试题管理,在线测试管理,考试管理等功能。还有一个界面用于学生登录,学生主要有主页,个人中心,我的收藏管理,考试管理等功能。

3.2.2 系统用例

本系统有主要分为四大部分组成,有登录,教师,管理员和学生等用例。

  1. 登录模块用例中用户包括管理员,学生和教师三种角色,分别可以进行其对应的身份登录或取消登录,关闭系统。登录模块用例图如图3-1所示。

 

3-1 用户登录用例图

(2)教师模块中的用户角色是教师,教师主要包括主页,个人中心,教学课件管理,教学视频管理,教学资料管理,试题管理,在线测试管理,考试管理等功能,教师模块用例图如图3-2所示。

 

图3-2教师用例图

(3)管理员模块中的用户角色是管理员,管理员通过系统对可以实现网站系统管理,主要包括主页,个人中心,学生管理,教师管理,教学课件管理,教学视频管理,教学资料管理,在线测试管理,试题管理,系统管理,考试管理等功能。管理员模块用例图如图3-3所示。

 

图3-3 管理员用例图

(4)学生模块中的用户角色是学生,学生主要包括主页,个人中心,我的收藏管理,考试管理等功能。学生模块用例图如图3-4所示。

 

图3-4学生用例图

4.1系统总体设计

系统总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。它包括系统规划与系统功能设计等内容。

远程教育系统主要有3类用户。分别是学生模块,教师模块和管理员模块,详细规划如图4-1所示。

 

图4-1 系统规划图

4.2数据库设计

数据库是一个软件项目的根基,它决定了整个项目代码的走势,同时也决定了整个项目在后期的维护以及升级的难易程度。

4.2.1 数据库概念设计

根据远程教育系统的功能需求,对数据库进行分析,得到相应的数据,设计用户需要的各种实体,以及相互之间的关联,为逻辑结构设计铺好路。根据所实体内的各种具体信息得于实现。

 1. 学生注册信息实体

学生注册信息实体包括学号,姓名,密码,确认密码,专业,联系电话等属性。学生注册信息实体图如图4-2所示:

 

图4-2学生注册信息实体图

    2. 教学课件实体

教学课件体包括课件名称,课件编号,发布时间,教师工号,教师姓名,课程附件,课程图片,课件内容等属性;教学课件实体图如图4-3所示:

 

图4-3教学课件实体图

 3. 教学视频实体

教学视频实体包括标题,课程名称,封面,教师工号,教学视频,发布时间等属性。教学视频实体图如图4-4所示:

 

图4-4教学视频实体图

5.1功能页面实现

按照不同功能模块,在此对系统所涉及的关键页面的实现细节进行阐述,包括页面功能描述,页面涉及功能分析,介绍以及界面展示。

系统登录: 运行系统,首先进入登录界面,按照登录界面的要求填写相应的“账号”和“密码”以及用户类型,点击“登录”然后系统判断填写是否正确,若正确进入相应的界面,否则给出要求先注册信息。具体流程如图5-1所示。

 

图5-1 登录流程图

登录,通过输入用户名,密码,选择角色并点击登录进行系统登录操作,如图5-2所示。

 

图5-2登录界面图

5.2系统功能模块

远程教育系统;在系统首页可以查看首页,教学课件,教学视频,教学资料,在线测试,系统公告,个人中心,后台管理等内容进行详细操作,如图5-3所示。

 

图5-3系统首页界面图

学生注册;在学生注册页面通过填写学号,姓名,密码,确认密码,专业,联系电话等信息完成学生注册操作,如图5-4所示。

 

图5-4学生注册界面图

教学课件;在教学课件页面可以查看课件名称,课件编号,发布时间,教师工号,教师姓名,课程附件,课程图片,课件内容等详细内容,并进行评论,收藏操作,如图5-5所示。

 

图5-5教学课件界面图

教学视频;在教学视频页面可以查看标题,课程名称,封面,教师工号,教学视频,发布时间等详细内容,并进行收藏操作,如图5-6所示。

 

图5-6教学视频界面图

教学资料;在教学资料页面可以查看标题,课程名称,图片,附件,教师工号,教师姓名,发布时间,内容等详细内容,并进行评论,收藏操作,如图5-7所示。

 

图5-7教学资料界面图

个人中心;在个人中心页面通过填写学号,姓名,密码,性别,专业,联系电话等信息进行更新操作,还可以对考试记录,错题本,我的收藏进行相应操作,如图5-8所示。

 

图5-8个人中心界面图

5.3管理员功能模块

管理员登录系统后,可以对主页,个人中心,学生管理,教师管理,教学课件管理,教学视频管理,教学资料管理,在线测试管理,试题管理,系统管理,考试管理等功能进行相应操作,如图5-9所示。

 

图5-9管理员功能界面图

学生管理;在学生管理页面可以对学号,姓名,性别,专业,联系电话等内容进行查看,修改或删除等操作,如图5-10所示。

 

图5-10学生管理界面图

教师管理;在教师管理页面可以对教师工号,教师姓名,性别,职称,联系电话等内容进行查看,修改或删除等操作,如图5-11所示。

 

图5-11教师管理界面图

教学课件管理;在教学课件管理页面可以对课件编号,课件名称,课程图片,课程附件,发布时间,教师工号,教师姓名等内容进行查看,查看评论,修改或删除等操作,如图5-12所示。

 

图5-12教学课件管理界面图

在线测试管理;在在线测试管理页面可以对在线测试名称,考试时长(分钟),在线测试状态等内容进行查看,修改或删除等操作,如图5-13所示。

 

图5-13在线测试管理界面图

试题管理;在试题管理页面可以对在线测试,试题,类型,答案,分数等内容进行修改或删除等操作,如图5-14所示。

 

图5-14试题管理界面图

系统管理;在系统公告页面可以对标题,简介,图片等内容进行查看,修改或删除等操作,还可对轮播图管理进行详细操作,如图5-15所示。

 

图5-15系统管理界面图

JAVA毕设帮助,指导,源码分享,调试部署

package cn.com.edu.view.frame; import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.JToolBar; import org.jvnet.substance.SubstanceLookAndFeel; import org.jvnet.substance.skin.FindingNemoSkin; import cn.com.edu.action.JMenuItemAction; import cn.com.edu.action.MainFrameAction; import cn.com.edu.util.GBC; import cn.com.edu.view.panel.AddStudentInfoPanel; import cn.com.edu.view.panel.FindStudentInfoPanel; /** * 教务管理系统主界面 * * @author Administrator * */ public class MainFrame extends JFrame { private static MainFrame instance; private JMenuBar bar;// 菜单条 private JMenu studentJMenu;// 菜单 private JMenu teacherJMenu;// 菜单 private JPanel center = new JPanel();// 中心面板用来放置卡片 private CardLayout card = new CardLayout();// 卡片布局 private JPanel west;// 西边面板 private JSplitPane split;// 分割面板 private JToolBar tool;// 工具条 private MainFrameAction action = new MainFrameAction(this);// 按钮事件对象 private JMenuItemAction menuItemAction = new JMenuItemAction(this);// 菜单事件对象 private SystemTray tray;// 系统托盘 private TrayIcon trayIcon;// 设置系统托盘的图片 /** * 使用单子设计模式主界面对象 * */ private MainFrame() { init(); } public static MainFrame getInstance() { if (instance == null) { instance = new MainFrame(); } return instance; } /** * 初始化主界面 * */ public void init() { // 设置标题 this.setTitle("教务管理系统"); // 设置标题图片 ImageIcon icon = new ImageIcon("img/switchuser.png"); this.setIconImage(icon.getImage()); // 得到屏幕对象 Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); // 设置主界面大小 this.setSize(size.width, size.height - 20); // 设置居中 this.setLocationRelativeTo(null); // 添加工具条 this.add(createTool(), BorderLayout.NORTH); // 将菜单添加到主界面 this.setJMenuBar(createJMenuBar()); // 将卡片添加到主界面 center.setLayout(card); addCardPanel(center); this.add(createSplit()); // 设置关闭主界面 this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE); //创建系统托盘 createSystemTray(); //关闭窗口事件 closeWindow(this); // 设置显示主界面 this.setVisible(true); } public JMenuBar createJMenuBar() { if (bar == null) { bar = new JMenuBar(); studentJMenu = createJMenu("学生管理"); teacherJMenu = createJMenu("老师管理"); addJMenuItem(studentJMenu, "添加学生信息"); addJMenuItem(studentJMenu, "查询学生信息"); addJMenuItem(studentJMenu, "修改学生信息"); addJMenuItem(studentJMenu, "删除学生信息"); studentJMenu.addSeparator(); addJMenuItem(studentJMenu, "退出"); bar.add(studentJMenu); bar.add(teacherJMenu); } return bar; } /** * 创建菜单 * * @param name * @return */ private JMenu createJMenu(String name) { JMenu menu = new JMenu(name); return menu; } /** * 将创建的菜单项添加到菜单 * * @param menu * @param name */ private void addJMenuItem(JMenu menu, String name) { JMenuItem item = new JMenuItem(name); item.addActionListener(menuItemAction); menu.add(item); } /** * 用于添加卡片 * * @param center */ public void addCardPanel(JPanel center) { JPanel jp2 = new JPanel(); JPanel jp3 = new JPanel(); JPanel jp4 = new JPanel(); jp2.add(new JButton("卡片2")); jp3.add(new JButton("卡片3")); jp4.add(new JButton("卡片4")); center.add(new AddStudentInfoPanel(), "添加学生信息"); center.add(new FindStudentInfoPanel(), "查询学生信息"); center.add(jp3, "修改学生信息"); center.add(jp4, "删除学生信息"); } /** * 创建西边面板,用添加选项按钮 * * @return */ public JPanel createWestPanel() { if (west == null) { west = new JPanel(); west.setLayout(new GridBagLayout()); west.add(createButton("添加学生信息", "img/switchuser.png"), new GBC(0, 0).setInset(10)); west.add(createButton("查询学生信息", "img/switchuser.png"), new GBC(0, 1).setInset(10)); west.add(createButton("修改学生信息", "img/switchuser.png"), new GBC(0, 2).setInset(10)); west.add(createButton("删除学生信息", "img/switchuser.png"), new GBC(0, 3).setInset(10)); } return west; } /** * 创建按钮方法 * * @param name * @return */ public JButton createButton(String name, String icon) { JButton button = new JButton(name); button.setIcon(new ImageIcon(icon)); button.addActionListener(action); return button; } public CardLayout getCard() { return card; } public JPanel getCenter() { return center; } /** * 分割面板 * * @return */ public JSplitPane createSplit() { if (split == null) { split = new JSplitPane(); split.setOneTouchExpandable(true); split.setLeftComponent(createWestPanel()); split.setRightComponent(center); } return split; } /** * 创建工具条 * * @return */ public JToolBar createTool() { if (tool == null) { tool = new JToolBar(); tool.add("添加学生信息", createButton("添加学生信息", "img/switchuser.png")); tool.add("查询学生信息", createButton("查询学生信息", "img/switchuser.png")); tool.add("修改学生信息", createButton("修改学生信息", "img/switchuser.png")); tool.add("删除学生信息", createButton("删除学生信息", "img/switchuser.png")); tool.add("帮助", createButton("帮助", "img/syssetup.png")); } return tool; } ///////////////////////////系统托盘设置///////////////////////////////////// /** * 窗口事件 * * @param jframe */ public void closeWindow(MainFrame jframe) { jframe.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { int show = JOptionPane.showConfirmDialog(null, "是否确定关闭?", "确认关闭系统", JOptionPane.YES_NO_OPTION); if (show == JOptionPane.YES_OPTION) { System.exit(0); } } public void windowIconified(WindowEvent e) { if (getState() == 1) {// 最小化 try { tray.add(trayIcon); } catch (AWTException e1) { e1.printStackTrace(); } setVisible(false); } } }); } /** * 创建系统托盘 * */ public void createSystemTray() { // 得到当前系统的托盘对象 tray = SystemTray.getSystemTray(); ImageIcon icon = new ImageIcon("img/2.png"); // 添加鼠标右键 弹出菜单 PopupMenu menu = new PopupMenu(); MenuItem show = new MenuItem("显示窗体"); MenuItem exit = new MenuItem("退出窗体"); trayIcon = new TrayIcon(icon.getImage(), "学生管理系统", menu); trayIcon.addMouseListener(new MouseAdapter() { /** * 鼠标点击事件 */ public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) {// 鼠标双击 tray.remove(trayIcon); setVisible(true); // 设置窗口全屏 setExtendedState(JFrame.MAXIMIZED_BOTH); } } }); /** *鼠标右键显示窗体 */ show.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); setVisible(true); // 设置窗口全屏 setExtendedState(JFrame.MAXIMIZED_BOTH); } }); /** * 鼠标右键关闭窗体 */ exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int show = JOptionPane.showConfirmDialog(null, "是否确定关闭?", "确认关闭系统", JOptionPane.YES_NO_OPTION); if (show == JOptionPane.YES_OPTION) { System.exit(0); } } }); menu.add(show); menu.add(exit); } /** * @param args */ public static void main(String[] args) { SubstanceLookAndFeel.setSkin(new FindingNemoSkin()); // 蓝色幽灵 // SubstanceLookAndFeel.setSkin(new OfficeBlue2007Skin()); // 麦田风光 // SubstanceLookAndFeel.setSkin(new FieldOfWheatSkin()); // 默认皮肤 // SubstanceLookAndFeel.setSkin(new BusinessSkin()); // 朦胧风格 // SubstanceLookAndFeel.setSkin(new MistAquaSkin()); MainFrame.getInstance(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值