系统之一(基于ssm实验报告管理系统mysql)
本系统角色把控分别为:管理员、老师、学生
以下将以图片的形式,对系统进行一个大致展示,(注:如有需要,可加Q:873563540,或私信本账号)
项目针对人群,主要是有需要毕业设计的个人为主,
此项目的主要功能模块为(下方会在文字说明之后,进行图文展示):
1、教师信息(学生信息)的基本增删改查、其中支持批量操作(项目内针对有规则的信息都支持批量操作,
有需要根据规则生成的需求可以另行讨论),
2、课程信息动态修改、根据不同的教师所担任的课程对课程的学习到课程的
实验结果(考试)、一站式处理
3、在某学生的是否参与实验、实验结果是否合格、实验期间是否有说明性文
件。进行统一性管理。
4、..........................................
管理员页面
1、登录界面
2、系统内部
数据导出
选择实验课程
修改实验报告单模板
学生实验报告成绩展示
部分代码
/**
* 绘出验证码
*
* @param output
* @return
*/
private String drawCodeImg(ByteArrayOutputStream output) {
String code = "";
for (int i = 0; i < 4; i++) {
code += randomChar();
}
int width = 70;
int height = 36;
BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
Font font = new Font("Times New Roman", Font.PLAIN, 20);
Graphics2D graphics = bImage.createGraphics();
graphics.setFont(font);
graphics.setColor(new Color(66, 2, 82));
graphics.setBackground(new Color(226, 226, 240));
graphics.clearRect(0, 0, width, height);
FontRenderContext context = graphics.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(code, context);
double x = (width - bounds.getWidth()) / 2;
double y = (height - bounds.getHeight()) / 2;
double ascent = bounds.getY();
double baseY = y - ascent;
graphics.drawString(code, (int) x, (int) baseY);
graphics.dispose();
try {
ImageIO.write(bImage, "jpg", output);
} catch (IOException e) {
e.printStackTrace();
}
return code;
}
//密码校验
public String setting(HttpSession session, String oldPswd, String newPswd) {
oldPswd = oldPswd.toUpperCase();
newPswd = newPswd.toUpperCase();
User user = (User) session.getAttribute(StrUtil.USER);
int res = 0;
if (StrUtil.ADMIN.equals(user.getUserType())) {
Admin admin = (Admin) user;
if (admin.getPassword().equals(oldPswd)) {
admin.setPassword(newPswd);
session.setAttribute(StrUtil.USER, admin);
res = adminService.update(admin);
if (res > 0) {
return StrUtil.RESULT_TRUE;
}
} else {
return "密码错误!";
}
} else if (StrUtil.TEACHER.equals(user.getUserType())) {
Teacher t = (Teacher) user;
if (t.getPassword().equals(oldPswd)) {
t.setPassword(newPswd);
res = teacherService.updateTeacher(t);
if (res > 0) {
return StrUtil.RESULT_TRUE;
}
} else {
return "密码错误!";
}
} else {
Student stu = (Student) user;
if (stu.getPassword().equals(oldPswd)) {
stu.setPassword(newPswd);
res = studentService.updateStudent(stu);
if (res > 0) {
return StrUtil.RESULT_TRUE;
}
} else {
return "密码错误!";
}
}
return "操作失败!";
}
/**
* 返回选修了我课程的学生列表
*
* @return
*/
public String getMyStudentList(int curr, int nums, HttpSession session) {
Teacher t = (Teacher) session.getAttribute(StrUtil.USER);
Pagination<Student> page = new Pagination<Student>();
page.setTotalItemsCount(15);
page.setPageSize(nums);
page.setPageNum(curr);
List<TemplateStudent> list = studentService.getStudentListByTid(page, t.getId(), cId);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>修改密码</title>
<link rel="stylesheet" href="/layui/css/layui.css" media="all" />
<link rel="stylesheet" href="/css/public.css" media="all" />
</head>
<body class="childrenBody">
<form class="layui-form layui-row changePwd">
<div class="layui-col-xs12 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">旧密码</label>
<div class="layui-input-block">
<input id="oldPwd" type="password" value="" placeholder="请输入旧密码" lay-verify="required" class="layui-input pwd">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">新密码</label>
<div class="layui-input-block">
<input type="password" value="" placeholder="请输入新密码" lay-verify="required" id="newPwd" class="layui-input pwd">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-block">
<input type="password" value="" placeholder="请确认密码" lay-verify="required" id="reNewPwd" class="layui-input pwd">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="changePwd">立即修改</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</div>
</form>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/js/md5.js"></script>
<script type="text/javascript">
layui.use(['form','layer'],function(){
var form = layui.form,
layer = parent.layer === undefined ? layui.layer : top.layer,
$ = layui.jquery;
form.on("submit(changePwd)",function(data){
var oldPwd = $("#oldPwd").val();
var newPwd = $("#newPwd").val();
var reNewPwd = $("#reNewPwd").val();
if (reNewPwd != newPwd) {
layer.msg("两次密码不一致!", {icon: 5,time:1000});
return false;
}
//弹出loading
var index = top.layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});
$.ajax({
type: 'post',
url: '/pswd/setting',
data: {
oldPswd : hex_md5(oldPwd),
newPswd : hex_md5(newPwd)
},
timeout:2000,
success:function(msg) {
top.layer.close(index);
if (msg == 'true') {
top.layer.msg("修改成功!");
}else {
layer.msg(msg, {icon: 5,time:1000});
}
layer.closeAll("iframe");
},
error:function() {
layer.msg("操作失败!", {icon: 5,time:1000});
layer.close(index);
}
});
return false;
});
});
</script>
</body>
</html>