水了一学期的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()函数来创建预约记录,预约的记录得创建将空出到书日和截至日期,这两个属性要等预约的书被还时才被添加(详情请见归还图书)。

java web课程设计之图书管理系统相关推荐

  1. 大学生课程设计 ------ Java Web课程设计(图书馆管理系统02)

    大学生课程设计 ------ Java Web课程设计(图书馆管理系统02) Java Web课程设计(代码+课程报告) 项目分工情况(每个人完成那些功能或任务) 同学A:数据库设计,后台实现,前端与 ...

  2. 大学生课程设计 ------ Java Web课程设计(学生成绩管理系统03)

    大学生课程设计 ------ Java Web课程设计(学生成绩管理系统03) Java Web课程设计(代码+课程报告) ---------------------我是分割线------------ ...

  3. 大学生课程设计 ------ Java Web课程设计(学生成绩管理系统01)

    大学生课程设计 ------ Java Web课程设计(学生成绩管理系统01) Java Web课程设计(代码+课程报告) 课程作业效果如下: 学生1:后台实现.数据库设计.前端后台整合 学生2:前端 ...

  4. Java web课程设计-购物系统

    题目:网上购物系统 网上购物商店的分析与实现 一.实验目的 Java web课程设计是为了是计算机学院的学子深入学习java web应用开发设置的一门实验性的动手性的实践课程.是计算机科学与技术. 网 ...

  5. java数据库图书销售系统_SQL+java数据库课程设计,图书销售管理系统

    [实例简介] SQL数据库课程设计,图书销售管理系统,报告,任务书,挺全的 [实例截图] [核心代码] 07计本2班_15号_刘思旭_图书销售管理系统 └── 07计本2班_15号_刘思旭_图书销售管 ...

  6. c语言大作业书店图书管理系统,C语言_课程设计—书店图书管理系统.doc

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24日 一.选题背景: 设计一个图书管理系统,管理员通过登陆账 ...

  7. Java web 课程设计——图书馆管理系统(SSM)

    题目要求 本网上图书馆系统应实现图书网上检索.预约和续借功能: 系统管理:定义读者类别并设置参数,添加.修改和删除读者信息. 图书续借和预约:实现图书的续借.预约等功能. 图书检索:按书名或作者等信息 ...

  8. c++图书管理系统_轻松学做C语言课程设计:图书管理系统-数组实现

    C语言课程设计,对于初学者来说,主要是综合运用C语言基础知识,以实际项目的形式锻炼编程能力.从今天开始,一起轻松学做C语言课程设计常见项目,建议先运行代码,再一步步理解其实现. 题目要求 图书管理系统 ...

  9. Java Web课程设计

    最近做java web的课程设计,因为某些原因没有用框架,但是用了commons-dbutils组件来简化数据操作,下面这个链接非常好的讲解了commons-dbutils,代码看源码就行,很容易看懂 ...

最新文章

  1. E20180525-hm
  2. linux删除U盘分区、创建分区和格式化
  3. python中类方法与实例方法的区别-python中类方法,实例方法,静态方法的作用和区别...
  4. C++语言学习思维导图
  5. 《Ext JS权威指南》印出来了,大家很快就能拿到书了
  6. 解决Android抽屉被击穿问题
  7. 操作系统安装与优化:chapter8 虚拟机
  8. Swift - UITableView状态切换效果
  9. 中职一年级计算机英语课件,中职生一年级英语.doc
  10. 疯狂ios讲义疯狂连载之实现游戏逻辑(2)
  11. idea maven dependencies 总是报红
  12. linux上derby数据库,体验纯Java数据库——Derby
  13. Objective-C中的typedef枚举是什么?
  14. 大数据催生智慧园区_杭州经纬智慧园区如何实现各系统间信息数据集中关联、一站管控...
  15. 两篇一区SCI可认定A类博士!享​200平住房+40万科启!硕士也入编!
  16. 百度谭中意:我和开源20年
  17. Mac PhotoShop CS6破解
  18. 一个苏州IT人的5年挨踢经历-------面试,薪资,企业,经历全方位揭示(之二)
  19. Kali linux 学习笔记(三十四)无线渗透——WPA攻击(PSK破解、AIROLIB、JTR、cowpatty、pyrit) 2020.3.13
  20. 跌才是机会,涨才是风险

热门文章

  1. 不撞南墙不回头----深度优先搜索
  2. linux解压时的tar -zxvf是什么意思?
  3. Contelec KL750-5K0/M-SE醉后不知天在水
  4. 百度云不限速下载(官方渠道,无风险)
  5. 百度浏览器的编程html,百度来路浏览器劫持代码(替换浏览器正在浏览页面)...
  6. DEEPCON: protein contact prediction using dilated convolutional neural networks with dropout
  7. 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、连接点分布检查、自由空三
  8. Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试
  9. Eclipse打印Java的char默认值,出现方框原因
  10. P1757 通天之分组背包