学生选课系统 前后端分离 vue springboot

news/2024/5/20 21:07:38/文章来源:https://blog.csdn.net/m0_46108627/article/details/127428158

学生选课系统 前后端分离 vue springboot

  • 系统描述
  • 一、系统功能
  • 二、系统截图
    • 1.网络爬虫 新闻获取代码
    • 2.pom
  • 源码


系统描述

基于spring boot vue的学生选课系统
前端:
Vue ElementUI axios
后端 springboot
持久层 mybatis Plus
会话 Spring Session +redis
日志 AOP MongoDB
数据库 MySQL
Redis:session 新闻 配置信息
MongoDB 业务日志

一、系统功能

学生 教师 管理员三种登录
利用网络爬虫 获取网站新闻信息 显示在首页
管理员登录:专业管理 班级管理 学生管理 教师管理 课程管理 选课管理 管理员管理
学生登录:选修课程 学生课程 课表查询 考试查询 成绩查询 信息维护
教师登录:授课查询 教师课表 成绩录入

二、系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.网络爬虫 新闻获取代码

代码如下(示例):

package com.mecol.select_course.manager;import com.mecol.select_course.dao.redis.SdnuNewsDAO;
import com.mecol.select_course.model.bo.SdnuNewsBO;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;@Component
public class SdnuNewsManager extends BaseManager {private static final int CRAWL_INTERVAL = 60 * 60 * 1000;private static final int CRAWL_TIMEOUT = 30 * 1000;private static final String CRAWL_TARGET_URL = "https://www.sdjtu.edu.cn/xxyw.htm";private static final String BASE_URL = "https://www.sdjtu.edu.cn/";private final SdnuNewsDAO sdnuNewsDAO;public SdnuNewsManager(SdnuNewsDAO sdnuNewsDAO) {this.sdnuNewsDAO = sdnuNewsDAO;}public List<SdnuNewsBO> getAllNews() {Map<String, String> map = sdnuNewsDAO.getAllNews();List<SdnuNewsBO> newsList = new ArrayList<>(map.size());for (String key : map.keySet()) {String value = map.get(key);// 2019/01/01http://host/pathString date = value.substring(0, 10);String url = value.substring(10);newsList.add(new SdnuNewsBO(key, date, url));}return newsList;}
//定时任务 fixedDelay参数,传入一个以毫秒为单位的时间间隔@Scheduled(fixedDelay = CRAWL_INTERVAL)public void crawlNews() {Document pageDoc = fetchPage();if (pageDoc == null) {return;}List<SdnuNewsBO> newsList = parseNews(pageDoc);sdnuNewsDAO.clear();for (SdnuNewsBO news : newsList) {sdnuNewsDAO.addNews(news.getTitle(), news.getDate() + news.getUrl());}}private Document fetchPage() {Document doc = null;try {doc = Jsoup.parse(new URL(CRAWL_TARGET_URL), CRAWL_TIMEOUT);} catch (IOException ex) {ex.printStackTrace();}return doc;}private List<SdnuNewsBO> parseNews(Document pageDoc) {/*Elements elements = pageDoc.body().getElementsByClass("TB3").get(0).getElementsByTag("table").get(0).getElementsByTag("tr");*/Elements elements=pageDoc.body().getElementsByClass("news_list").select("li");// System.out.println(elements);List<SdnuNewsBO> newsList = new ArrayList<>();for (Element element : elements) {// System.out.println(element);//if (!element.attr("id").startsWith("line")) {//     continue;// }// Element aTag = element.getElementsByTag("a").get(0);//Element dateTag = element.getElementsByTag("td").get(2);String url = BASE_URL +element.getElementsByTag("a").attr("href");String title = element.getElementsByTag("a").attr("title");String date1 = element.getElementsByClass("left_date").text();String date=date1.substring(1,date1.length()-1);// System.out.println(date);newsList.add(new SdnuNewsBO(title, date, url));}return newsList;}
}

2.pom

代码如下(示例):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mecol</groupId><artifactId>selectcourse</artifactId><version>0.0.1-SNAPSHOT</version><name>selectcourse</name><description>selectcourse</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.12.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

源码

https://pan.baidu.com/s/12rGMPHJb6E0IV2DgOzZUxw 提取码: gqx8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404078.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序设计与算法(三)C++面向对象程序设计笔记 第七周 输入输出和模板

笔记按照中国大学MOOC上北京大学郭炜老师主讲的程序设计与算法&#xff08;三&#xff09;C面向对象程序设计所作&#xff0c;B站上也有资源。原课程链接如下&#xff1a; 程序设计与算法&#xff08;三&#xff09;C面向对象程序设计 其他各章节链接如下&#xff1a; 程序设…

《CTF攻防世界web题》之我什么都不会(1)

前言 &#x1f340;作者简介&#xff1a;被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 &#x1f341;个人主页&#xff1a;被吉师散养的职业混子 &#x1fad2;文章目的&#xff1a;记录唯几我能做上的题 &#x1f342;相应专栏&#xff1a;CT…

[附源码]Java计算机毕业设计SSM高校创新学分申报管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

从初级进阶为高级程序员,需要经历什么?

“怎样才能成为一名高级程序员&#xff1f;” 对每个新人来说&#xff0c;大概都梦想着尽快实现职场进阶&#xff0c;从萌新成长为技术大佬。但媳妇熬成婆&#xff0c;世界上最难熬的就是工作经验…… 程序员具有明确的职业等级制度&#xff0c;依据工作经验和水平划分&#x…

vite+vue3+ts项目搭建之集成qiankun让其成为子应用模板,并能实现主子应用之间跳转切换(新增在线预览地址)

前言 以下操作&#xff0c;是续接之前 第四步 ——即&#xff1a;vitevue3tspiniaelement-plus项目已完成搭建好&#xff0c;可以直接业务开发了 主应用技术栈&#xff1a;vue2webpackjs 集成qiankun(微前端) 1、安装vite-plugin-qiankun npm install vite-plugin-qiankun2、…

Gradle 入门说难也不难,说简单吧也不简单~

在学习过程中最痛苦的事&#xff0c;并不是认为自己坚持不下去学不会&#xff0c;而是对某块知识点的碎片信息学习了很多&#xff0c;仍然无法窥其门径&#xff0c;处于懵懂状态。 就拿Gradle来说&#xff0c;我之前就是这种状态&#xff0c;不管怎么去查阅文档和视频&#xf…

联邦学习(Federated Learning):技术角度的理解

联邦学习&#xff08;Federated Learning&#xff09;&#xff1a;技术角度的理解 学习笔记 B站学习链接&#xff1a;https://www.bilibili.com/video/BV1YK4y1G7jw/?p7&vd_source7def3d3fc89c6921c7aeadf5e4023d35 1.背景与动机 例子 Example >> 问题&#xff1a…

AES加密解密算法设计(C++)

目 录 1&#xff0e; 背景与意义 4 2. 系统设计 5 2.1系统主要目标 5 2.2主要软件需求&#xff08;运行环境&#xff09; 5 2.3功能模块与系统结构 6 3 系统功能程序设计 8 3.1基本要求部分 8 3.1.1 字节替换 8 3.1.2行移位 9 3.1.3列混合 11 3.1.4密钥加 13 3.1.5密钥扩展 14 …

神经网络训练多少次合适,神经网络训练时间多长

1、tensorflow 训练一个神经网络 需要多长时间 基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 tensor 表示数据. 通过 变量 (Variable) 维护状态. 使用 feed 和 fetch 可以…

【附源码】计算机毕业设计SSM实验室设备明细管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【自监督论文阅读笔记】Simmim: A simple framework formasked image modeling

本文介绍了 SimMIM&#xff0c;这是一个用于 掩码图像建模 的简单框架。本文简化了最近提出的相关方法&#xff0c;无需特殊设计&#xff0c;例如通过离散 VAE 或聚类 进行 block-wise 分块级的掩码 和 tokenization。为了研究 是什么让掩码图像建模任务学习良好的表示&#xf…

nginx----(1)nginx的单机安装

文章目录Nginx卸载开源版Nginx安装默认简单安装Nginx的源码复杂安装防火墙问题nginx启停安装成系统服务Nginx卸载 步骤一&#xff1a;需要将nginx的进程关闭 ./nginx -s stop步骤二:将安装的nginx进行删除 rm -rf /usr/local/nginx步骤三:将安装包之前编译的环境清除掉 mak…

opc client 客户端软件测试工具

一、概述&#xff1a; 本软件一款OPC客户端测试工具&#xff0c;使用本软件连接到OPC server服务端&#xff0c;获取server数据&#xff0c;简单好上手&#xff0c;软件也很小巧&#xff0c;操作便利&#xff0c;也是绿色软件&#xff0c;免安装。 二、软件基础环境保证&#x…

期货交易结算信息(期货结算系统)

期货中的结算价是怎么计算出来的&#xff1f; 最近常有新手投资者问&#xff1a;为什么期货账户收盘时年持仓是盈利的&#xff0c;怎么当天结算单上却是亏损的&#xff1f; 之所以会有这个疑问&#xff0c;是因为投资者没有明白期货收盘价、结算价、成交价三者之间的关系。今天…

dockerfile编写构建镜像

文章目录一、dockerfile1、什么是dockerfile2、原理二、docker镜像的创建1、创建镜像的三种方法①基于已有镜像创建②基于本地模板创建③基于dockerfile创建三、镜像分层的原理1、docker镜像结构的分层2、bootfs内核空间3、rootfs内核空间4、AUFS与overlay/overlay2overlay结构…

【ViT 微调时关于position embedding如何插值(interpolate)的详解】

目录1. 问题描述2. positional embedding如何interpolate3. 输入的sequence length改变了ViT还能正常前向推断&#xff1f;本文适合对Vision Transformer有一定了解&#xff08;知道内部结构和一些实现细节&#xff0c;最好是精读过ViT这篇论文&#xff09;的读者阅读&#xff…

八种可以简单判断否属于过敏体质的表现,符合四条就是了

最早感知春天的不是鸭子&#xff0c;而是过敏的人&#xff0c;最近门诊荨麻疹的人数逐渐增多。近20年来&#xff0c;随着过敏性鼻炎、湿疹、荨麻疹和哮喘的发病率越来越高&#xff0c;过敏体质开始越来越出名。在西医中&#xff0c;容易患上这种过敏性疾病的人被称为过敏体质。…

JVM(九) —— 运行时数据区之堆的详细介绍(四)

JVM&#xff08;九&#xff09;—— 运行时数据区之堆的详细介绍&#xff08;四&#xff09;TLAB堆空间常用的参数设置HandlePromotionFailure逃逸分析和栈上分配代码优化栈上分配同步省略分离对象或标量替换TLAB 堆区是线程共享区域&#xff0c;任何线程都乐意访问到堆区的共…

智能钢琴-第12届蓝桥杯Scratch省赛1真题第4题

[导读]&#xff1a;超平老师计划推出Scratch蓝桥杯真题解析100讲&#xff0c;这是超平老师解读Scratch蓝桥真题系列的第52讲。 第12届蓝桥杯青少年组省赛分两次进行&#xff0c;这是2020年10月19日举行的第一次省赛考试初级组&#xff0c;形式为在线考试。Scratch分为初级组和…

java实验报告3:数组和字符串案例练习

目录 内容 利用随机1~9整数生成3*3的二维数组&#xff0c;使二维数组每行&#xff0c;每列、以及斜线上的数字之和均为15&#xff0c;并输出这个二维数组 按自然数从小到大的标准为顺序&#xff0c;对以下数组求其逆序数&#xff0c;并列出逆序对&#xff1a; 实验小结 一、…