Web开发技课程设计报告文档格式.docx
《Web开发技课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《Web开发技课程设计报告文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
进入系统后,子系统得提供图书查询、图书借阅和还书功能。
另外,针对本系统的特殊情况,同时也考虑系统的可移植性,在系统中增加了数据库路径的维护部分。
但由于本人技术有限,下面只做了部分设计
3设计与实现(包括:
前台页面、数据库、业务逻辑等设计)
3.1数据库结构设计
3.1.1概念结构设计(E-R图)
概念结构设计是将分析得到的用户需求抽象为概念模型的过程,即在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系的模型。
这样才能更好地、更准确地用某一DBMS实现这些需求,它是整个数据库设计的关键。
概念结构的主要特点是能真实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换。
描述概念模型的有力工具是E-R模型。
Er图:
部分实体ER图:
3.1.2逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构时一般要分三步进行,首先是将概念结构转换为一般的关系、网状、层次模型,其次是将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换,最后是对数据模型进行优化。
基于B/S的简易图书借阅管理系统采用的是将E-R图向关系数据模型转换。
以下是由概念模型向逻辑模型转化的关系模式:
管理员(管理员编号,管理员名称,管理员密码)
图书(图书编码,图书名称,图书类别,书架,作者,价格,借阅次数)
3.2.1物理结构设计
数据库的物理结构设计是对于给定的逻辑数据模型,选取一个最合适应用环境的物理结构。
数据库的物理结构指的是数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统
表2.2管理员信息表(new_userlist)
字段名
注释
类型
长度
允许空
默认值
userId
管理员编号
int
4
自动增长(1,1)
userName
管理员名称
varchar
50
Null
userPwd
管理员密码
表2.3图书信息表(new_booklist)
注释
类型
允许空
默认值
bookid
图书编码
50
bookName
图书名称
null
bookType
图书类别
int
4
bookcase
书架
100
null
auother
作者
80
price
价格
money
8
null
borrowSum
借阅次数
4
数据库表:
3.3.1系统功能设计图书管理模块功能(时间技术有限目前只有此功能)
图书类型管理:
是对图书进行分类管理,对图书类型的添加、删除、修改等功能。
图书信息管理:
管理员对图书信息的详细录入,修改图书信息和删除图书信息等功能。
3.4系统界面设计与实现
3.4.1系统登录界面
系统首页,同时也是登录界面,在此界面中,管理可以根据自身情况登录到系统中,管理员登录界面如下图所示:
相关代码:
<
!
—JSPdl-0-->
%@pagecontentType="
text/html;
charset=gb2312"
language="
java"
%>
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
"
http:
//www.w3.org/TR/html4/loose.dtd"
>
html>
head>
metahttp-equiv="
Content-Type"
content="
title>
用户登陆界面<
/title>
/head>
body>
%
if(!
session.isNew()){
Stringname=(String)session.getAttribute("
username"
);
if(name==null)name="
"
;
}
out.println("
SessionID:
+session.getId());
//输出会话编号
palign="
center"
tableborder="
1"
<
caption>
管理员登陆:
/caption>
formaction="
JSPdl-1.jsp"
method="
post"
tr>
td>
管理员姓名<
/td>
inputtype="
text"
name="
/>
/tr>
管理员密码<
password"
submit"
value="
提交"
/form>
/table>
/p>
/body>
/html>
—JSPdl-1-->
errorPage="
%>
%@pageimport="
java.sql.*"
用户身份验证<
%
Stringusername=request.getParameter("
Stringpassword=request.getParameter("
if(username==null)username="
if(password==null)password="
try{
//装载驱动程序
Class.forName("
org.gjt.mm.mysql.Driver"
).newInstance();
//连接字符串
Stringurl="
jdbc:
mysql:
//localhost/new_library"
//建立连接
Connectionconn=DriverManager.getConnection(url,"
root"
"
123456"
//建立Statement
Statementstmt=conn.createStatement();
//执行查询建立ResultSet
ResultSetrs=stmt.executeQuery("
selectuserName,userPwfromnew_userlist"
//输出查询结果
Stringuname=rs.getString("
userName"
Stringupass=rs.getString("
userPw"
if(username.equals(uname)&
&
password.equals(upass)){//验证用户信息
response.sendRedirect("
JSPdl-2.jsp"
//进入欢迎页面
else{
JSPdl-0.jsp"
//进入登陆页面
}//关闭连接、释放资源
rs.close();
stmt.close();
conn.close();
}catch(ClassNotFoundExceptioncnfe){
out.print(cnfe);
}catch(SQLExceptionsqle){
out.print(sqle);
}catch(Exceptione){
out.print(e);
--JSPdl-0
beans.*,java.sql.*"
error.jsp"
显示图书列表<
jsp:
useBeanid="
conn"
scope="
session"
class="
beans.new_libraryDBean"
图书列表<
th>
图书编号<
/th>
书名<
作者<
书类<
书架号<
价格<
借阅次数<
new_booklistBean[]records=conn.getAllRecords();
if(records!
=null){
for(inti=0;
i<
records.length;
i++){
+records[i].getbookID()+"
+records[i].getbookName()+"
+records[i].getauother()+"
+records[i].getbookType()+"
+records[i].getbookCase()+"
+records[i].getprice()+"
+records[i].getborrowSum()+"
p>
aname="
url"
更多操作:
/a>
br>
ahref="
JSPdl-3.jsp"
target="
_self"
添加图书<
#url"
返回<
JSPdl-4.jsp"
删除图书<
管理员添加图书记录:
JSPdl-3
beans.new_booklistBean,beans.ConnBean"
添加图书记录<
table>
添加新记录<
bookID"
*<
bookName"
auother"
textareaname="
bookType"
cols="
20"
rows="
5"
/textarea>
bookCase"
price"
borrowSum"
td/>
增加"
reset"
重写"
book"
request"
beans.new_booklistBean"
setPropertyname="
property="
*"
if(book.getbookID()!
=0&
conn.insertRecord(book))
hr>
添加记录成功"
JSPdl-4
删除图书记录<
选择<
checkbox"
%="
check"
+i%>
%=i%>
/>
String[]check=newString[records.length];
check.length;
check[i]=request.getParameter("
+i);
if(check[i]==null)
check[i]="
if(check[i].equals("
+i)){
if(conn.deleteRecord(records[i])){
删除成功"
response.setHeader("
refresh"
}
与系统相关的bean代码:
New_booklistBean
packagebeans;
publicclassnew_booklistBean{
privateStringbookID;
//表示书编号;
privateStringbookName;
//书名;
privateStringauother;
//作者名;
privateintbookType;
//书类;
privateintbookCase;
//书架号;
privateintprice;
//书价;
privateintborrowSum;
//书被借的次数;
publicStringgetbookID(){
returnbookID;
publicvoidsetbookID(StringbookID){
this.bookID=bookID;
publicStringgetbookNam