当前位置:   article > 正文

基于JavaWeb+MySQL的图书管理系统_javaweb图书管理系统

javaweb图书管理系统

目录
一、需求分析 2
1.1 功能描述 2
1.1.1“读者”功能 2
1.1.2“管理员”功能 3
1.2 系统用例图 4
三、数据库概要设计 5
2.1 系统E-R图 5
四、数据库逻辑结构设计 5
3.1 系统关系模型 5
3.2 数据库结构SQL代码 7
3.2.1基本表 7
3.2.1存储过程 8
3.2.3定时事件 11
四、系统设计 12
4.1 系统流程图 12
4.2 模块设计 12
后端设计: 17
1.1 功能描述
1.1.1“读者”功能
1)图书的查询:图书的查询可以通过搜索图书id、书名、作者名、出版社来实现,显示结果中需要包括书籍信息以及是否被借阅的情况;
2)图书的借阅:借阅图书时,需要判断该读者现已借阅的图书数量,若超过3本,则暂时不能借书;若尚有未缴纳罚金,暂时不能借书;否则点击“确认借阅”,即完成借阅。
3)图书的归还:归还图书时,若尚有罚金未缴纳,提示学生去管理中心线下缴纳罚金再进行线下还书;否则界面显示所有待还书籍的信息,点击“确认还书”或输入图书id再点击“确认”即完成还书。
4)查看、修改个人信息:个人信息包括用户id、姓名、密码、姓名以及电话;修改个人信息:包括修改姓名、密码、性别、电话等,其中用户id不可修改。
5)查询借阅历史:通过输入书籍的id、书名、作者或出版社来查询借阅记录;记录内容包括读者id、书籍信息和借阅的开始日期以及结束日期;若书籍尚未归还,“结束日期”后会显示“尚未归还”。
6)查看处罚记录:处罚记录的内容包括违规的借阅记录的信息;如若相关书籍仍未进行线下归还且读者也未缴纳罚金,本文转载自http://www.biyezuopin.vip/onews.asp?id=15302则提示尚未缴纳罚金;否则显示该条借阅记录的超期天数。
7)注册
1.1.2“管理员”功能
1)添加图书:输入图书的Id、书名、作者、出版社、其他信息,系统将信息导入数据库;
2)删除图书:如果书籍未被借出,则可通过鼠标点击“删除图书”来完成删除任务;否则不能进行删除。
3)修改图书信息:通过点击“修改信息”,打开修改图书信息页面,修改相应信息后(书名、作者、出版社、其他信息),点击保存;
4)借阅处罚管理:输入用户id,可以查看用户的借阅违规处罚情况,用户缴纳罚款后,可点击“缴纳罚款”,撤销对该生的处罚,恢复其正常借阅和归还权利;
5)权限管理:输入最长借阅天数可修改读者最长借阅期限;点击“开启”、“关闭”按钮可以开启或者关闭“黑名单”功能。
6)用户管理:可以输入读者id或者姓名来查找读者,点击“删除用户”可以删除该用户;若“黑名单”功能被启用,可以点击“加入黑名单”、“移除黑名单”来控制用户的登陆权限。
7)管理员个人信息修改

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆到图书管理系统</title>
<style>
.window {
	width: 332px;
	position: absolute;
	top: 30%;
	left: 50%;
	display: block;
	z-index: 2000;
	background: #fff;
	padding: 20 0;
}
</style>
<link rel="stylesheet" href="./layui/css/layui.css">
</head>
<!-- background存放登陆页面背景图片 -->
<body>
	<script src="./layui/layui.js"></script>
	<%
		Cookie[] cookies = request.getCookies();//从cookie中获取登陆用户名和密码
	if (cookies != null) {
		for (Cookie cookie : cookies) {
			if (cookie.getName().equals("id")) {
		id = cookie.getValue();
			}
			if (cookie.getName().equals("pwd")) {
		pwd = cookie.getValue();
			}
		}
	}
	%>
	<!-- 登录失败时弹出错误消息 -->
	<%
		Object message = session.getAttribute("message");
	if (message != null && !"".equals(message)) {
		session.setAttribute("message", "");
	%>
	<script>
		layui.use('layer', function() {
			var layer = layui.layer;
			layer.msg("<%=message%>");
		});
	</script>
	<%
		}
	%>
	<div class="layui-carousel" id="test1">
		<div carousel-item>
			<div style="background-image: url(1.JPG); background-size: cover;"></div>
			<div style="background-image: url(2.JPG); background-size: cover;"></div>
			<div style="background-image: url(3.JPG); background-size: cover;"></div>
			<div style="background-image: url(4.JPG); background-size: cover;"></div>
		</div>
	</div>
	<!-- 登陆和注册卡片-->
	<div class="window">
		<div class="layui-row">
			<div class="layui-col-xs12">
				<div class="layui-tab layui-tab-card"
					style="width: 330px; background-color: white">
					<!-- 卡片头选项-->
					<ul class="layui-tab-title">
						<li class="layui-this">登陆</li>
						<li>注册</li>
					</ul>
					<!-- 卡片内容-->
					<div class="layui-tab-content">
						<!-- 登陆表 -->
						<div class="layui-tab-item layui-show">
							<%!String id, pwd;//用户名和密码%>
							<div class="layui-anim layui-anim-up">
								<fieldset class="layui-elem-field layui-field-title"
									style="margin-top: 20px;">
									<legend>登录到图书管理系统</legend>
								</fieldset>
								<!-- 登陆交给login.java处理 -->
								<form action="login" class="layui-form layui-form-pane"
									method=post name=form>

									<div class="layui-form-item">
										<label class="layui-form-label">用户ID</label>
										<div class="layui-input-inline">
											<input type="text" name="id"
												value="<%=(id == null ? "" : id)%>" placeholder="请输入用户ID"
												autocomplete="off" class="layui-input">
										</div>
									</div>

									<div class="layui-form-item">
										<label class="layui-form-label">密码</label>
										<div class="layui-input-inline">
											<input type="password" name="pwd"
												value="<%=(pwd == null ? "" : pwd)%>" placeholder="请输入密码"
												autocomplete="off" class="layui-input">
										</div>
									</div>

									<div class="layui-form-item">
										<input type="radio" name="identity" lay-skin="primary"
											value="reader" title="普通用户" checked> <input
											type="radio" name="identity" lay-skin="primary" value="admin"
											title="管理员"> <input type="submit"
											class="layui-btn  layui-btn-radius" value="登陆">
									</div>
								</form>
							</div>
						</div>

						<!-- 注册表 -->
						<div class="layui-tab-item">
							<div class="layui-anim layui-anim-up">
								<fieldset class="layui-elem-field layui-field-title"
									style="margin-top: 20px;">
									<legend>普通用户注册</legend>
								</fieldset>
								<!-- 登陆交给register.java处理 -->
								<form action="register" class="layui-form layui-form-pane"
									method=post name=form>
									<div class="layui-form-item">
										<label class="layui-form-label">设置密码</label>
										<div class="layui-input-inline">
											<input type="password" name="pwd" placeholder="请输入密码"
												autocomplete="off" class="layui-input">
										</div>
									</div>
									<div class="layui-form-item">
										<label class="layui-form-label">姓名</label>
										<div class="layui-input-inline">
											<input type="text" name="name" placeholder="请输入您的姓名"
												autocomplete="off" class="layui-input">
										</div>
									</div>
									<div class="layui-form-item">
										<label class="layui-form-label">电话</label>
										<div class="layui-input-inline">
											<input type="text" name="tel" placeholder="请输入您的电话"
												autocomplete="off" class="layui-input">
										</div>
									</div>
									<div class="layui-form-item">
										<label class="layui-form-label">性別</label>
										<div class="layui-input-block">
											<input type="radio" name="sex" value="男" title="男" checked>
											<input type="radio" name="sex" value="女" title="女">
										</div>
									</div>




									<div class="layui-form-item">
										<input type="submit"
											class="layui-btn  layui-btn-radius layui-btn-fluid "
											value="注册">
									</div>
								</form>

							</div>
						</div>
					</div>
				</div>

			</div>
		</div>
	</div>
	<script>
		layui.use('form', function() {
			var form = layui.form;
			form.render();
			//监听提交
			form.on('submit(formDemo)', function(data) {
				layer.msg(JSON.stringify(data.field));
				return false;
			});
		});
		layui.use('element', function() {
			var element = layui.element;
		});
		layui.use('carousel', function() {
			var carousel = layui.carousel;
			//建造实例
			carousel.render({
				elem : '#test1',
				width : '100%', //设置容器宽度		
				height : '700px',
				autoplay : 'true',
				interval : 5000,
				arrow : 'hover' //始终显示箭头
			//,anim: 'updown' //切换动画方式
			});
		});
	</script>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/808232
推荐阅读
相关标签
  

闽ICP备14008679号