实用!JavaWeb学生选课信息管理系统(数据报表、打印、批量删除等)!

阅读: 评论:0

实⽤!JavaWeb学⽣选课信息管理系统(数据报表、打印、批量删除等)!学⽣选课信息管理系统
1、效果图
2、项⽬阐述
该项⽬是模拟学⽣选课信息的管理系统,⽤户类型有三种,分别是管理员、教师、学⽣。学⽣⼊校注册后需统⼀记录学⽣个⼈基本信息,对于⾯向学⽣开设的相关课程需要记录每门课程的基本信息,每个任课教师规定其可主讲三门课程,学⽣选课时系统将相应的选课信息记录⼊库,考试结束后教师需在相应的选课记录中补上考试成绩,管理员可查看所有⽤户信息,同时查看⼀系列的数据报表。
由于代码量较多,就不放上完整代码啦,若有需要可评论交流联系或者私信博主哦O(∩_∩)O
该项⽬的所有页⾯样式,布局等均由博主⾃主编写
本⽂不涉及前端页⾯编写知识
3、开发环境
编译软件:IntelliJ IDEA 2019
页⾯设计软件:Adobe Dreamweaver CC 2019
数据库:MySQL 8.0
数据库操作⼯具:Navicat Premium 12
服务器:Tomcat 9.0.37
环境:jdk1.8
4、功能开发
4.1、登录
⽤户类型选择
登录
由于项⽬分为三个类型的⽤户,即管理员、教师、学⽣,因此在进⼊系统前须先选择相应的⽤户类型。
如何区分⽤户类型?
答:当⽤户选择完类型后,将对应的value值设置为session域对象值,session域可简单理解为只要浏览器未关闭,session域对象就会⼀直存在。但是在Tomcat中,域对象的⽣命周期默认为30分钟,即若30分钟内客户端没有再发送请求,则会超时从⽽⾃动销毁session域中相应的对象。
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void login(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
气动加油泵String username = Parameter("username");
String password = Parameter("password");
String type = userService.queryTypeByUsername(username);
String typeChoose = String.Session().getAttribute("UserType"));
User user = userService.login(new User(username, password, null, type));
//判断⽤户类型及账号密码是否成功匹配
if(type.equalsIgnoreCase(typeChoose)==false){
System.out.println("登录失败");
req.setAttribute("username",username);
req.setAttribute("tip","不存在此"+typeChoose+"⽤户");
}else if(user==null){
System.out.println("登录失败");
req.setAttribute("username",username);
req.setAttribute("tip","⽤户名或密码错误");
}
else{
System.out.println("登录成功");
req.setAttribute("username",username);
if(typeChoose.equalsIgnoreCase("student")){
张紧轮}else if(typeChoose.equalsIgnoreCase("system")){
}else if(typeChoose.equalsIgnoreCase("teacher")){
}
}
}
4.2、学⽣模块
4.2.1、个⼈信息查询
个⼈信息查询功能的实现,只需将数据库中对应的信息读取即可。通过Servlet调⽤Service层,Service层再去调⽤DAO层,DAO层与数据库交互获取该⽤户信息,并逐层返回,最后由Servlet发送数据并跳转到相应的Jsp页⾯。
由于功能逻辑不复杂,此处就贴jsp页⾯的代码啦
涉及知识点:JSTL(JSP标准标签库)
--%>
<%@ taglib prefix="c" uri="java.sun/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!doctype html>
<html>
<head>
<%@include file="/common/head.jsp" %>
<title>index</title>
<link rel="stylesheet"type="text/css"href="css/common.css">
<link rel="stylesheet"type="text/css"href="css/introduction.css">
</head>
<body>
电气石陶瓷球
<%@include file="/common/header_student.jsp" %>
<section>
<%@include file="/common/menu_student.jsp" %>
<div class="info">
<div class="address">
    <img src="static/picture/home.png">  >  ;信息查询  >  ;个⼈信息</div>
<div class="introduction">
<%--            头像--%>
<div class="intr-first">
<div class="head-image">
<img class="face_image"src="static/picture/6.jpg">
</div>
</div>
<%--            学⽣信息遍历--%>
<div class="intr-second">
<forEach var="info"items="${requestScope.info}">
<div class="subassemble">
烟雾处理<label class="sub-1">${info.key}       </label>
<label class="sub-2">${info.value}</label>
</div>
</forEach>
</div>
</div>
</div>
</section>
</body>
</html>
4.2.2、选课
学⽣选课会有两种情况,⼀是处于选课时间,⼆是未在选课时间段。并且此处的限制是只选择⼀门课,不可多选。
如何确定是否为选课时间?
答:选课开启是由管理员开启的,即可以设置⼀个servletContext域对象,当管理员开启选课时,则该域对象的值为true,若关闭则为false。当学⽣点击选课时,对应的Servlet先获取servletContext域对象并进⾏判断,若为true,则代表处在选课时间段,反之。
/**
* 设置是否是选课时间
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void isChooseTime(HttpServletRequest req, HttpServletResponse resp)throws ServletExc
eption, IOException {
String isChecked = Parameter("isChecked");
if(isChecked!=null && isChecked.equals("true")){
}
}
如何限定只选⼀门课?
答:使⽤JQuery为选课图标绑定⼀个点击事件,当点击选课时先获取已选列表的数据对象,若已存在对象,即不为null,则说明已选⼀门课,则alert()提⽰并返回false阻⽌点击事件。
<script type="text/javascript">
$(function(){
//选课
$(".choose").click(function(){
var b = ${requestScope.isChooseo};
if(b !=null){
alert("已选⼀门功课!请先退选!");
码图return false;
}
});
//退课
$(".delete").click(function(){
return confirm("确定删除已选课程吗?");
})
})
</script>
4.3、教师模块
4.3.1、分数录⼊
教师只可录⼊其所教课程的成绩
录⼊⽅式,在这⾥我使⽤的是input组件,直接进⾏录⼊,录⼊后修改对应的数据库数据,并把input组件的默认值改成新的成绩
4.4、管理员模块
4.4.1 信息管理
管理员可以查看所有信息,同时对信息进⾏增删查改的操作
信息查询
添加信息
信息修改
添加信息的⽅式?
答:在项⽬中,通过css编写“添加信息”组件,实现下拉动画效果,当点击添加信息时,会在当前页⾯下⽅弹出⼀个添加框,填⼊⼀系列信息并点击确定,将信息更新到数据库中,并再由Servlet跳转回当前信息查询页⾯。
4.4.2、数据报表
项⽬中的数据报表使⽤Echarts图表,关于Echarts图表的使⽤⽅式在博主⾸页噢!先给⼤家看看效果o( ̄▽ ̄)o
5、其他⼩技巧
5.1、实现打印功能
打印功能可以使⽤第三⽅插件,或者直接调⽤window.print()⽅法打印,window.print()的好处是使⽤⽅便,只需要直接调⽤即可,但缺点是直接调⽤的话不能打印像Echarts的图表,还有⼀些css样式也需要重新设置。总结下来,若只是为了简单的打印⽹页,没有其他样式要求,则可直接使⽤window.print(),若对打印样式有需求,则需使⽤第三⽅插件。
利⽤ window.print() 打印指定部分的内容
在要打印的内容前⾯⼀⾏加上“< !–startprint-- >”,最后⼀⾏后⾯加上“< !–endprint-- >”,再给⼀个如button组件绑定下⽅的doPrint()事件即可。
function doPrint(){
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";//开始打印标识字符串有17个字符
eprnstr="<!--endprint-->";//结束打印标识字符串
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);//从开始打印标识之后的内容
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//截取开始标识和结束标识之间的内容
生态仪window.document.body.innerHTML=prnhtml;//把需要打印的指定内容赋给body.innerHTML
window.print();//调⽤浏览器的打印功能打印指定区域
window.document.body.innerHTML=bdhtml;//重新给页⾯内容赋值
return false;
}
5.2、数据输⼊约束性
尽可能地使⽤下拉列表组件(select-option),避免了⼿动输⼊数据时数据不合法。
使⽤JS正则表达式辅助判断数据的合法

本文发布于:2023-06-13 23:02:43,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/137554.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   选课   打印   点击   数据   相应   记录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图