java web课程设计之图书管理系统

水了一学期的java web,终于在课设付出了代价,真是平时幼儿园,期末似高三做完课程设计,老师不让用框架,只能用HTML+CSS+JavaScript+JSP+Servlet+JavaBean+JDBC+DAO,当然我们悄咪咪的用了一点点EL,下面是用户端的一些基本功能的思路,写下来思路更清晰了

第五,六天任务
(1)用户借阅图书
(2)用户归还图书
(3)用户续借图书
(4)用户预约图书

写在前面,这四个功能看似简单,写起来却要有机结合,就比如借阅图书时,除了要判断这本书是否在馆,还要判断这本书是否被预约,被预约后还要判断这本书是被谁预约了,如果是当前借书人预约的话,就允许借阅,如果不是当前人预约的话,就提醒不允许借书,当然,判断当前借书人的借阅量是否大于0这是必不可少的。还有一点要注意,如果是预约的人将图书借走之后,要将预约记录删掉。还有还书的功能,也需要与预约结合起来,接下来我将介绍这几个功能的实现,及其操作页面。
(1)借阅图书:
流程图先整上,接下来将结合代码来解释整个借书流程
在这里插入图片描述

整个的借书流程是写在一个servelt中的,然后将处理结果传到jsp中。

String x = session.getAttribute("userid").toString();

stu_id = Integer.parseInt(x);//将session中的学号取出

String y = request.getParameter("book_id").toString();

int book_id = Integer.parseInt(y);//取出借阅的书号

1.通过book_state.equals("不在馆")来判断是否在馆

2.在馆后,再通过yyd.find_yuyue_book(book_id)判断这本书是否被预约

3.如果被预约,就通过yyd.find_yuyue_stu(book_id)== stu_id来判断当前借书人是否与预约人是同一个人

4.如果是一个人,通过std.select_id_num(stu_id)来取得当前借书人的可借阅量

5.如果可借阅量大于0,则开始执行

boolean b = std.update_nownum(stu_id);

int a = bko.book_update3(book);

int c = jld.create(jl);

int d = yyd.delete_yuyue(book_id);

其余情况都不允许借阅
如果没被预约,则执行上述第4、5步命令。
功能总结,借书的操作是基本操作之一,所以情况会比较复杂,要清晰的考虑到会发生的情况,以及对各个表的操作,借书写的好,还书、预约、续借都会简单许多。

(2)归还图书:
归还图书的操作是比较繁琐的,要涉及罚款,以及对预约本书人的通知,还是先上流程图
在这里插入图片描述

取出学号及书号的步骤同借书,就不重复说了

还书就没有那么多判断了,对数据库的操作的仍是对用户,对图书,对记录。通过STU.stu_update(stu)修改用户借阅量+1;通过BK.book_update(bk)修改图书状态为在馆
通过BK.book_update_xj(0, number)修改图书的被续借次数为0(这里省去一个判断步骤,无论该本书是否被续借过,都直接归0)。

再通过JL.jl_update(jl)修改用户对当前这本书的记录(一定要是当前的,因为这个人可能借了这本书很多次,sql语句要加一个jl_hdate is null)。

至此,还书操作结束,要考虑还书人是否逾期,将当前日期与应还日期做减法,并将结果通过request传到jsp中处理,如果h>0,一天1元,小于0,就不用罚款了。
最后,判断这本书是否被人预约,yyd.find_yuyue_book(number)来判断是否被预约,如果被预约,则通过yyd.yuyue_update(x, number)来修改预约记录的到书时间和截至时间,并通过联系方式发送提醒给预约者(这里是通过邮件)。

归还图书的操作比借书好写一点,主要没那么多判断情况,但还有下一步改善的地方,将还书操作提取到主页面中,通过书号及还书时间为空查询出记录,可直接还书。

(3)续借图书:
续借是这四个功能中最简单的操作了,只需判断书的续集次数是否等于0(规定每本书最多被当前借书人续借一次),上流程图
在这里插入图片描述

学号,书号的获得同上,通过bkd.find_xj(number) == 0判断是否被需续借过,如果没被续借,则
int x = jdo.jl_update_yhuan(id, number);修改应还时间

int y = bkd.book_update_xj(1, number);修改图书续借状态
到此,续借就被完成了。

(4)预约图书:
其实预约图书的流程比续借图书还少,但要考虑清楚情况,而且预约的情况主要是在借书和还书中处理的,虽然简单,但还是流程图。

预约的判断和借书相比,还是比较简单的,只需要根据是否在馆和是否被预约来组成四周结果。
在这里插入图片描述

通过yyd.find_yuyue_book(number))来判断是否被预约。结果组成如流程图,这里只说没被预约和不在馆,这样情况才被允许预约,通过Jl_DAO中的create()函数来创建预约记录,预约的记录得创建将空出到书日和截至日期,这两个属性要等预约的书被还时才被添加(详情请见归还图书)。

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值