基于JSP的毕业设计选题系统的设计与实现

基于JSP的毕业设计选题系统的设计与实现

(源代码+论文)
selectSystem

A. 项目简介

毕业设计选题系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理,邮件通知等功能,并能提供题目保存、题目查询等功能,该系统同时拥有最开放的题库管理系统和最灵活的选题系统,能够自动进行权限的判断,对用户进行冻结。

本系统要求实现网络选题系统的各项基本功能,从安全性和易维护性考虑,选择了Web实现技术。简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护。
服务器端程序选用了JSP作为主要实现手段(配合Java Servlet,HTML等),JSP作为一种Web实现技术,它的效率是很高的。

关键词

审核 ; 权限; 多级角色管理;
JSP,IDEA,B/S结构,MySQL,TOMCAT

B. 资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
包含内容:整套源码+完整论文

C. 开发工具

  • 应用服务器: TOMCAT 8.5.98

  • 数据库: MySQL 8.0.30

  • JAVA : JDK 1.8.0_77

  • IDEA : IntelliJ IDEA 2021.2.2 (Community Edition)

  • Maven : 3.6.3

  • MySQL Workbench : 8.0.31

D. 项目设计及展示

功能需求分析

作为高校毕业生的一个毕业设计选题系统,它就面对着许多用户的操作,而这些用户对系统的操作应该有所不同,所以我们在设计时必须要对不同的用户设立不同的的权限。在本系统中,我考虑了4种权限(管理员,系主任,指导教师,学生)。管理员可以添加的用户系主任,而系主任能添加的用户为指导教师和学生。
同时,我们为了使本系统更加的符合我们的实际,教师能在线出题,但是所出的题目必须经过系主任的审核后学生才能进行选择。在学生的选题中,在实现选题的基础上,也要考虑学生选择志愿的顺序,所以在学生的选择过程中,要设立多个志愿,但是在教师的审核过程中,我们必须根据学生的志愿依次进行审核。也就是说在学生的第一志愿未被审核的时候,第二志愿的老师不能对该生的第二志愿进行审核。

数据库需求

该系统主要涉及到几种信息的存储,首先是毕业班学生的信息,论文的题目信息,学校指导教师和系主任的信息,所以每个信息保存在一张表中,在对表的操作中可以对任意一个表独立操作,也可以对几个表关联操作。

项目展示

系统登陆

为了保证用户信息的一致性、用户操作的方便性以及方便系统的安全模块升级和维护,该系统采用单点登陆的模式。
系统主页:
系统主页

页面功能:
1通知信息
点击页面下方的“关于网上报毕业设计题目的通知”可以查看网上毕业论文选题信息的相关信息。
2系统用户登陆
a).正确的选择用户类型、输入用户名和密码就可以进入系统用户管理信息界面。
b).当输入系统不存在的帐号进行登陆时,系统将提示拒绝登陆并提示用户登陆帐号不存在。
c).如果用户为学生类别,当他选择用户类型为非学生类型的其他类型时系统拒绝其登陆并显示登陆帐号和用户类型不匹配。
d).当用户选择的类型正确,帐号也正确但密码错误系统将提示用户使用帐号密码错误,请核对信息后重新登陆。

系统用户管理

只有系统管理员和系主任具有对用户信息的操作权限,其他人员没有操作权限。
增加用户:
增加用户
增加用户操作只有两种权限拥有,一个为系统管理员,一个为系主任。管理员负责添加系主任的信息而系主任负责添加指导教师和学生的信息,当系主任添加用户时会多出一个指导学生人数选项,它是限定老师所带的学生的人数。添加成功后信息通过电子邮件的形式发送给用户,并且由系统随机生成密码。

个人信息维护

当用户进入系统后可以通过点击“个人信息维护”对自己的个人信息进行修改,可以修改密码,邮箱联系方式等个人资料:
个人信息维护

教师题库管理

教师作为系统的一个用户,进入系统后能进行题目的录入及修改,能对学生的选题进行审核,以及修改自己的个人信息等功能。
教师录入论文题目:
录入题目

教师审核题目是学生选择了老师的题目后,老师根据学生所选择的志愿的先后顺序来进行审核的,也就是说学生的第一志愿在未经审核或审核通过后,第二志愿的老师不能进行审核操作。
审核功能

学生在线选题

学生在本系统中,可以对毕业设计题目进行增加,修改以及查看历史信息和修改个人信息等操作。
在线选题

页面功能:
⑴查询:可以查看学生自己已经选择的论文题目。
⑵增加:可以增加自己的论文题目,但必须是在自己所选的题目未被老师审核的情况下。
⑶删除:可以删除未被老师审核的论文题目。
⑷修改:可以修改自己的论文题目以及志愿信息。

进入增加页面:
论文选择界面

技术难点分析

本系统采用MVC的架构,它可以解决完全由JSP或完全由servlet实现的应用程序中的固有的问题。也就是解决了用JSP很难将内容同内容的显示分开和很容易将Java代码同HTML混在一起的问题。这样做出来的系统易于维护。

在数据处理上选用DAO的数据处理模式,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。把对数据库的操作全部封装在DAO里面,这样便于以后系统数据库的升级。

本系统要求实现管理员、院系领导、指导教师和学生的不同操作,所以控制好用户的权限操作是我们本系统重点中的重点。

E. 资源获取

项目源码:
代码截图

获取项目源码资源 »

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C# OpenCvSharp DNN Yolov8-OBB 旋转目标检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN Yolov8-OBB 旋转目标检测 效果 模型信息 Model Properties ------------------------- date:2024-02-26T08:38:44.171849 description:Ultralytics YOLOv8s-obb model trained on runs/DOT…

有适合短视频剪辑软件的吗?分享4款热门软件!

在数字时代,短视频已成为人们获取信息、娱乐消遣的重要形式。随着短视频行业的蓬勃发展,市场上涌现出众多短视频剪辑软件,它们功能各异,各具特色。本文将为您详细介绍几款热门短视频剪辑软件,助您轻松掌握短视频剪辑技…

BIO实战、NIO编程与直接内存、零拷贝深入辨析

BIO实战、NIO编程与直接内存、零拷贝深入辨析 长连接、短连接 长连接 socket连接后不管是否使用都会保持连接状态多用于操作频繁,点对点的通讯,避免频繁socket创建造成资源浪费,比如TCP 短连接 socket连接后发送完数据后就断开早期的http服…

phpldapadmin This base cannot be created with PLA

phpldapadmin This base cannot be created with PLA 1、问题描述2、问题分析3、解决方法:创建根节点 1、问题描述 安装phpldapadmin参考链接: https://blog.csdn.net/OceanWaves1993/article/details/136048686?spm1001.2014.3001.5501 刚安装完成phpldapadmin&…

MyCAT从入门到实战(MyCAT2注释配置)

重置配置 /* mycat:resetConfig{} */; 用户相关 创建用户 /* mycat:createUser{ "username":"user", "password":"", "ip":"127.0.0.1", "transactionType":"xa"} */; 删除用户 /* myc…

软件License授权原理

软件License授权原理 你知道License是如何防止别人破解的吗?本文将介绍License的生成原理,理解了License的授权原理你不但可以防止别人破解你的License,你甚至可以研究别人的License找到它们的漏洞。喜欢本文的朋友建议收藏关注,…

Maya笔记 设置工作目录

Maya会把素材场景等自动保存在工作目录里,我们可以自己定义工作目录 步骤1 创建workspace.mel文件 文件/设置项目 ——>选择一个文件夹,点击设置——>创建默认工作区 这一个后,可以在文件夹里看到.mel文件 步骤2 自动创建文件夹…

华为OD机试真题-靠谱的车-2023年OD统一考试(C卷)---Python3-开源

题目: 考察内容: 思维转化,进制转化,9进制转为10进制,在4的位置1,需要判断是否大于4 代码: """ 题目分析: 9进制转化为10进制23-25 39-50 399-500输入&#xff1a…

Qt的QThread、QRunnable和QThreadPool的使用

1.相关描述 随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。 2.相关界面 3.相关代码 widget.cpp #include "widget…

安防视频汇聚EasyCVR视频云存储平台GB28181设备全部离线是什么原因?

众所周知,安防视频汇聚平台EasyCVR不仅可支持的接入协议非常多(包括:国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等&a…

日更【系统架构设计师知识总结3】存储系统

【原创精华总结】自己一点点手打、总结的脑图,把散落在课本以及老师讲授的知识点合并汇总,反复提炼语言,形成知识框架。希望能给同样在学习的伙伴一点帮助!

Nginx——安装和反向代理

Nginx安装与应用 1.1 Nginx介绍 Nginx 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强 Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合…

CentOS 7全系列免费

CentOS 7 全系列免费:桌面版、工作站版、服务器版等等………… 上文,关于CentOS 7这句话,被忽略了。 注意版本:知识产权、网络安全。

嵌入式学习第二十二天!(继续学习线程)

线程相关函数接口: 1. 线程分离属性: 线程结束后,自动回收线程空间 1. pthread_attr_init: int pthread_attr_init(pthread_attr_t *attr); 功能:线程属性初始化 2. pthread_attr_destroy: int pthread_…

【Godot4自学手册】第十七节主人公的攻击和敌人的受伤

本节主要学习主人公是如何向敌人发起进攻的,敌人是如何受伤的,受伤时候动画显示,击退效果等。其原理和上一节内容相同,不过有许多细节需要关注和完善。 一、修改Bug 在本节学习之前,我将要对上一节的代码进行完善&am…

【C语言】while循环语句

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

蓝桥杯备战刷题two(自用)

1.杨辉三角形 #include<iostream> using namespace std; #define ll long long const int N2e510; int a[N]; //1 0 0 0 0 0 0 //1 1 0 0 0 0 0 //1 2 1 0 0 0 0 //1 3 3 1 0 0 0 //1 4 6 4 1 0 0 //1 5 10 10 5 1 //前缀和思想 //第一列全为1,第二列为从0开始递增1的序…

汇总版!美团搜索推荐算法面试题10道(含答案)

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂同学、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 今天我整…

【算法训练营】:周测5

需要详细的实现代码实现请私信博主 考题10-5 题目描述 平面固定有一些全等的圆角矩形&#xff0c;不同的圆角矩形具有不同的位置和倾斜角。这些圆角矩形都通过将以原本四个直角处距离两条直角边均为 r&#xfffd; 的位置为圆心&#xff0c;半径为 r&#xfffd; 且与两条直…

【蓝桥杯】青蛙跳杯子(BFS)

一.题目描述 二.输入描述 输入为 2 行&#xff0c;2 个串&#xff0c;表示初始局面和目标局面。我们约定&#xff0c;输入的串的长度不超过 15。 三.输出描述 输出要求为一个整数&#xff0c;表示至少需要多少步的青蛙跳。 四.问题分析 注意&#xff1a;空杯子只有一个 …