一、课程设计目的
针对Java Web的综合设计应用,通过综合性的课程设计,加强理论联系实际,巩固和丰富课堂所学的基础理论知识,进一步锻炼和提高学生的实际软件开发能力。
通过该课程设计培养学生分析问题和解决问题的能力,以及开发大系统的综合能力,增强合作、协作能力,提高学生的就业机会和社会竞争能力。
为了提高学生的协作、合作精神,以及团队精神,该课程设计给定一个实际应用大题目,由学生自愿组成3-4人的开发小组,基于软件开发思想与开发过程,实现该应用程序的开发、设计。
二、课程设计要求
经过该课程设计,掌握Java Web应用程序的基本开发方法、技术;熟练掌Java Web的各类技术的开发整合,并完成“图书管理系统”应用系统的开发。
1、设计题目与要求
设计实现一个图书管理系统(可以根据我们山东农业大学的图书管理过程以及图书的借阅等管理过程重新给出需求)。
图书信息存放到一个数据库中。图书包含信息:图书号、图书名、作者、价格、备注字段。该系统一定有学生信息表的,以及借阅书情况表等等。并根据需要添加其他的相关的数据表,形成表之间的关系
要求:基于HTML+CSS+JavaScript+JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。
需求要求:
该系统的基本需求是,系统要实现如下的基本管理功能:
(1)用户分为两类:系统管理员,一般用户。
(2)提供用户注册和用户登录验证功能;其中登录用户的信息有:登录用户名,登录密码等。
(3)管理员可以实现对注册用户的管理(删除),并实现对图书的创建、查询、修改和删除等有关的操作
(4)一般用户,只能查询图书,并进行借书、还书、续借、预约图书等操作,每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。注意,每个用户,只能对自己所借、还、查看进行操作,其他人的是不可见的。
(5)图书过期罚款,每本书,过期一天罚款一元,在还书时,利用支付宝或者微信实现支付。注意:该功能为扩充功能,可以根据自己团队的情况,选择做或者不做,若能完成,成绩会提高些。
项目的工程目录
系统数据库
1、所需要的的数据库:
1.1 user:ID、name、password、type、count
1.2 borrow(借出图书):userID、userName、bookNum、bookName、beginDate(用于检测是否超过时间还书)
1.3 book:bookNum、bookName、author、price、remark
1.4 appointment(预约图书):userID、userName、bookNum、bookName
系统框架
系统首页源码
<%@ page contentType="text/html;charset=UTF-8" language="java"
pageEncoding="UTF-8"%>
<html>
<head>
<title>图书管理系统主页</title>
<style>
body {
height: 100%;
background-image: url("${pageContext.request.contextPath}/xin/bg.jpg");
background-attachment: fixed;
background-position: center;
}
.section {
height: 100%;
width: 100%;
position: relative;
}
.top {
margin-top: 30px;
margin-left: 170px;
width: 100%;
height: 300px;
position: absolute;
top: 0;
font-size: 70px;
color: #FFF;
font-family: "微软雅黑", serif;
font-style: italic;
}
.user {
border-radius: 5px;
margin-top: 28px;
margin-right: 40px;
position: absolute;
width: 60px;
height: 126px;
right: 0;
top: 0;
z-index: 100;
display: inline
}
.center {
height: 270px;
background-color: #FFF;
width: 80%;
position: absolute;
top: 150px;
bottom: 40px;
right: 0;
border-radius: 24px;
overflow: auto;
margin-right: 100px;
}
.logo {
margin-top: 30px;
margin-left: 260px;
font-size: 40px;
color: #0084FF;
position: absolute;
top: 20px;
text-align: center;
font-family: "微软雅黑", serif;
}
.search {
width: 60%;
height: 70px;
position: absolute;
left: 155px;
margin: 170px -40px 0px 0;
overflow: auto;
}
.searchForm {
width: 50%;
}
.Box, .searchButton {
border: none;
outline: none;
}
.Box {
border: 2px solid #0084FF;
border-radius: 7px 0 0 7px;
background: transparent;
height: 70px;
width: 80%;
position: absolute;
left: 0
}
.searchButton {
background: #0084FF;
height: 70px;
width: 20%;
position: absolute;
transition-duration: 0.4s;
outline: none;
right: 0;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 0 7px 7px 0;
cursor: pointer;
font-size: 20px;
color: #F9F0DA;
}
.searchButton {
background-color: white;
color: black;
border: 2px solid #0084FF;
}
.searchButton:hover {
background-color: #0084FF;
color: white;
}
.left {
width: 20%;
position: absolute;
top: 100px;
bottom: 100px;
left: 0;
overflow: auto;
line-height: 30px;
font-family: "微软雅黑", serif;
text-align: center;
}
.bottom {
width: 100%;
height: 100px;
position: absolute;
bottom: 0;
font-size: 40px;
color: #0084FF;
font-family: "微软雅黑", serif;
}
.button {
float: center;
border: none;
color: white;
padding: 6px 12px;
text-align: center;
text-decoration: none;
display: inline-block;
margin: 4px 2px;
transition-duration: 0.4s;
cursor: pointer;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
outline: none;
}
.button1 {
background-color: white;
color: black;
border: 2px solid #2082ff;
}
.button1:hover {
background-color: #2082ff;
color: white;
}
.button2 {
background-color: white;
color: black;
border: 2px solid lightseagreen;
}
.button2:hover {
background-color: lightseagreen;
color: white;
}
</style>
</head>
<body>
<section class="section">
<div class="top">Book Homepage</div>
<div class="user">
<div class="register">
<a href="${pageContext.request.contextPath}/LoginUIServlet">
<button class="button button1">登录</button>
</a>
</div>
<div class="login">
<a href="${pageContext.request.contextPath}/RegisterUIServlet">
<button class="button button2">注册</button>
</a>
</div>
</div>
<div class="center">
<div class="logo">输入图书信息:</div>
<div class="search">
<form class="searchForm"
action="${pageContext.request.contextPath}/SearchBookServlet"
method="post">
<input class="Box" type="text" name="bookName"> <input
class="searchButton" type="submit" value="搜索图书">
</form>
</div>
</div>
<div class="bottom">
<%
java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat(
"yyyy年MM月dd日");
String strCurrentTime = formater.format(new java.util.Date());
%>
<%=strCurrentTime%>
</div>
</section>
</body>
</html>
系统部分页面展示