Java框架课程设计
- 格式:doc
- 大小:616.50 KB
- 文档页数:24
课程设计说明书 NO. 1
沈 阳 大 学 图书信息库存管理系统
1.课程设计的目的
Java框架程序设计课程设计是计算机科学与技术专业的《Java框架程序设计》课程的综合性实践环节。Java框架设计是一门实用性很强的学科,是进行网页开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。
图书管理系统加入了数据库的支持,使用了先进的数据库技术与数据管理技术,使数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善。就目前使用的开发技术来说建议系统的功能目标应该能够达到,利用现有的技术在规定的期限内开发工作基本能够完成。
创建图书管理系统是为了改善图书馆图书管理,所以系统一经使用在经费支出方面一定会得到很好的改善,用户在使用了系统后只需要花一定资金购买一部分计算机与软件就能实现自动化。它在提高工作效率的同时也减少了工作人员的使用量。
2.功能描述
2.1开发工具
MyEclipse简介
MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse),是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate 。
Tomcat应用服务器
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,课程设计说明书 NO. 2
沈 阳 大 学 你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。
2.2总体设计
2.1.1需求分析
(1)用户借书,管理员将用户信息,图书信息输入系统,系统则根据这些信息生成借阅单,存入借阅表。
(2)用户还书,管理员将图书信息输入系统。未超期,系统根据图书信息将相应借阅单标记为已还和完结,已超期,将相应借阅单标记为已还,管理员要求罚款。用户交钱后,借阅单标记为完结,系统将超期信息记录到超期表。
(3)用户要续借某书,管理员将书号和用户名输入系统,若相应借阅单允许续借,标记为已续借,否则,不予续借。
(4)用户将书遗失,管理员将遗失信息输入系统,存储至卡款记录库,系统执行遗失操作,并要求用户赔偿。
(5)管理员对图书进行录入,删除,修改,查询操作,系统根据信息对图书表进行改变。
(6)管理员对用户进行添加,删除,修改,查询操作,系统根据信息对用户表进行改变。
(7)系统提供借出记录查询,未还记录查询,超期记录查询,罚款记录查询,遗失记录查询。 课程设计说明书 NO. 3 沈 阳 大 学 2.2.1功能框图
图书管理系统用户管理图书管理借阅管理查询统计用户注销用户修改用户添加图书删除用户查询用户挂失图书入库图书修改图书续借还书登记借书登记图书查询罚款记录查询借出记录查询遗失记录查询超期记录查询未还记录查询图书遗失罚款统计图书统计用户统计用户借阅统计
图1总体功能框图
2.2.2E-R图
课程设计说明书 NO. 4
沈 阳 大 学 图2E-R图
2.2.3现业务流程介绍与分析
对于一个图书管理系统来说,图书的查询及数据的维护管理是其中的核心环节。在现现行的图书管理中存在几个共同的问题:
(1)图书种类过多,数据庞大;这是几乎所有图书馆都会遇到的共同问题,各种不同种类的图书馆为这些图书入库,进行添加于维护增加了很多的难题,对这些数据的反复输入,往往造成庞大的工作量和较低的效率。
(2)查询图书困难,每天的借阅情况,读者借阅的到期、还书情况,各项数据的汇总和统计情况必须由管理员统计上报,图书库总管理员才能考虑对图书馆的硬件如某类书的需求数量进行改变已向上级申报。
(3)图书毁坏及图书破损;在借阅过程中难免此类现象的发生,如何及时发现及事后对毁坏图书进行淘汰和更新也是个需要解决的问题。
(4)不能及时归还图书;经常有读者超过借阅期的情况发生,对此类读者的超期信息提示也是图书借阅管理工作中必须解决的问题之一。
软件主要分为用户管理,图书管理,借阅管理,统计与查询五大模块。用户管理包括用户的添加删除,修改,查询以及借书证的挂失与解挂。图书管理包括对图书的入库,出库,信息修改和查询。借阅管理则主要包括借书,还书,续借,丢失图书处理及违章后赔偿处理。
现业务流程图如图3所示 课程设计说明书 NO. 5
沈 阳 大 学 用户个人信息用户信息库管理员用户添加用户信息修改注销用户查询用户挂失查询结果用户查询结果查询查询结果统计统计结果图书信息库图书入库删除图书修改图书查询图书管理员书商发书清单批注架号查询结果借书处理借书记录库条形码扫描续借登记还书罚款记录库欠款状态解除收罚款收据遗失登记
图3现业务流程图
3.详细设计
3.1.1数据库设计
后台管理页面,主要实现业主投诉管理、业主报修管理、反馈信息受理、物业设备维修、业主停车位管理、业主费用管理、费用催缴管理和值班员工信息管理等功能。
(1)book_t表用来保存图书信息
表1:book_t
字段名称 数据类型 长度 备注
id int 4 主键ID
bookName varchar 50 书名
author varchar 50 作者 课程设计说明书 NO. 6
沈 阳 大 学 publisher Varchar 50 出版社
price float 8 价格
inTime date 10 上架时间
type int 4 图书类型
operator int 4 管理员ID
(2)booktype_t表用来保存图书类型相关信息如表2所示。
表2:booktype_t
字段名称 数据类型 长度 备注
id int 10 类型ID
name varchar 15 类型名
3.2.2程序界面设计
网站用户登录页面用于提供用户进行登录,登录后分两种用户权限,普通用户和管理员用户,普通用户可以浏览图书馆现有藏书,管理员用户可以对图书馆的图书和图书类别进行增删改查操作,于已经登录的用户,在藏书页面将显示用户的相关信息。首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录。如图4所示。
图4用户登录图
部分代码如下:
public String login(){
String username = request.getParameter("username");
String password = request.getParameter("password");
BookDao bd = new BookDao(); 课程设计说明书 NO. 7 沈 阳 大 学 User user = new User();
List userlist= bd.login(username, password);
if(userlist.size()>=1)
{
user=userlist.get(0);
session.setAttribute("userinfo", user);
return "login";
}
else
return "errlogin";
}
普通用户可以在本页对网上图书馆现有藏书进行按书名或者分类搜索浏览,管理员具有管理权限,可以对图书进行添加、修改、删除、还可以对图书类别进行管理。如图5所示。
课程设计说明书 NO. 8 沈 阳 大 学 图5 普通用户登录
图6 管理员用户登录
部分代码如下:
public String getList(){
String type =request.getParameter("bookType");
String bookName = request.getParameter("bookName");
BookDao bd = new BookDao();
BookTypeDao btd = new BookTypeDao();
List BTlist = btd.getType();
request.setAttribute("BTlist", BTlist);
List list = bd.getUsersList(bookName, type);
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("list", list);
return "getList";
}
public List getUsersList(String bookName,String type){ 课程设计说明书 NO. 9
沈 阳 大 学
StringBuffer hqlsb =new StringBuffer( "from Book a, BookType b where
a.type=b.id");
if(bookName!="" && bookName!=null)
{ try {
bookName = new String(bookName.getBytes("iso-8859-1"),"utf-8");
System.out.println(bookName);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
hqlsb.append(" and a.bookName like \'%"+bookName+"%\'");}
if(type!="" && type!=null)