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

本文档详述了一个大学生课程设计项目——使用Java Web技术开发的图书馆管理系统。系统包括账号管理、图书操作、用户角色等功能,并提供了数据库设计及具体模块如读者借书的开发过程。系统管理员、图书馆管理员和读者各有不同权限,数据库涉及多个表,支持多种查询方式。项目运行环境为jdk1.8、Tomcat8.0和SQL SERVER2008,提供系统管理员、图书馆管理员和读者的账号信息。
摘要由CSDN通过智能技术生成
大学生课程设计 ------ Java Web课程设计(图书馆管理系统01)

Java Web课程设计(代码+课程报告)

整体ER图以及报告的部分内容如下(所有相关文件在文末链接给出):

在这里插入图片描述

目录

一、 需求分析(简介项目的背景、作用)… 3

二、 主要功能… 3

三、 数据库设计(所涉及的表、ER图)… 4

四、以“读者借书图书为例”模块为例,开发过程介绍… 4

五、 系统使用说明… 9

项目分工情况(每个人完成哪些功能或任务)
分工情况:
同学A:数据库和后端代码
同学B:前端形式和优化

一、需求分析(简介项目的背景、作用)

图书馆管理系统:图书馆管理图书基数过大,难以管理,该项目的图书馆可用于协助管理图书馆,减少繁琐操作。

二、主要功能

账号:注册,登陆,改密码,改信息。

图书馆管理员:图书入库、作者添加、出版社添加、进行编著信息输入、 帮读者借书、查询图书等操作。

系统管理员:更改借阅要求、更改图书管理员、读者密码等操作

读者:查询图书、借书,还书、缴纳罚款等操作。

三、数据库设计(所涉及的表、ER图)

ER图有以下表:

Allfile、Author、Book,Bookdescription、Booktype、Borrow、Borrowingrequirements、Branchlibrary、Chinesebooktype1、Chubanshe、Inbook、Librarian、Reader、Readertype

Systemadministrator、Theuser、Unit、Uptype、Write

四、以“读者借书图书为例”模块为例,开发过程介绍

思路:要借图书,必须先查询到图书,为了读者方便查询,该项目设置了三种查询图书的方法,第一种是靠书名的模糊查询,第二种是靠作者姓名的模糊查询,第三种是靠确定的书名和作者姓名精确查询。查询到符合条件的图书后,选择你想要的选项,就会罗列出该书在馆中的在库图书,接下来作者就可以选择借哪一本图书。选择后,在后台判断读者是否有借书的条件(借阅要求的限制等),如果符合借阅要求,则进行借书操作,反正,提示读者他的借书失败。

//书名查询以查图书
	@RequestMapping(value="/findBookBybookname.do")
	public String findBookBybookname(String bookname,Model model) {
		List<BookDescription> bookdeclist= this.bookDescriptionService.findBookDescriptionBynameLike(bookname);
		model.addAttribute("bookdeclist", bookdeclist);
		return  "readerShowBookFind" ; 
	}
	
	//作者查询以查图书
	@RequestMapping(value="/findBookByauthername.do")
	public String findBookByauthername(String authername,Model model) {
		List<Author> authorlist = this.authorService.findAuthorByNameLike(authername);
		List<BookDescription> bookdeclist = new ArrayList<BookDescription>();
		BookDescription bookdecid;
		for(int i=0;i<authorlist.size();i++) {
			Write write = this.writeService.findWriteByAuthermno(authorlist.get(i).getAuthermno());
		    bookdecid = this.bookDescriptionService.findBookDescriptionById(write.getCollectionnumber());
		    int check=0;//判断书是否重复
		    for(int j=0;j<bookdeclist.size();j++) {
		    	if(bookdecid.getCollectionnumber()==bookdeclist.get(j).getCollectionnumber()) {
		    		check=1;
		    		break;
		    	}
		    }
		    if(check==0)
		    {
			    bookdeclist.add(bookdecid);
		    }
		}
		Set<BookDescription> set = new HashSet<BookDescription>(bookdeclist);
		System.out.println(bookdeclist);
		bookdeclist.clear();//将原来的list的数据全部清空
		System.out.println(bookdeclist);
		bookdeclist.addAll(set);//将set集合的值放入到list里,因为set里是没有重复的了,这个时候list也就没有重复的了
		System.out.println(bookdeclist);
		model.addAttribute("bookdeclist", bookdeclist);
		return  "readerShowBookFind" ; 
	}
	
	
	//精确查询以查图书
	@RequestMapping(value="/findBookBymore.do")
	public String findBookBymore(String authername,String bookname ,Model model) {
		List<BookDescription> bookdeclist = new ArrayList<BookDescription>();
		Author author = this.authorService.findAuthorByName(authername);//作者编号
		BookDescription bookDescription = this.bookDescriptionService.findBookDescriptionByname(bookname);//图书描述编号
		if(bookDescription!=null && author!=null) {
		    Write write = this.writeService.findWriteById(author.getAuthermno(), bookDescription.getCollectionnumber());//二者结合确认图书
		    BookDescription newbookDescription = this.bookDescriptionService.findBookDescriptionById(write.getCollectionnumber());//取出图书描述
		    bookdeclist.add(newbookDescription);
		    model.addAttribute("bookdeclist", bookdeclist);
		    return  "readerShowBookFind" ;
		}
		else {
			return "readerFindBookdetailFaulse" ; 
		}
	}

//借书操作
@RequestMapping(value="/borrowBookBybookid.do")
	public String borrowBookBybookid(String bookid,String username,Model model) {
		int thebookid = Integer.parseInt(bookid);
		//确认是否还有借这类书的可借数量、
		//先找书,书-》馆藏编号-》图书类型
		Book book = this.bookService.findBookById(thebookid);
		BookDescription bookDescription= this.bookDescriptionService.findBookDescriptionById(book.getCollectionnumber());
        //先找读者-》读者类型
		Reader reader = this.readerService.findReaderById(username);
		//存在该读者
		if(reader!=null) {
			//找借阅要求
			BorrowingRequirements borrowingRequirements = this.borrowingRequirementsService.findBorrowingRequirementsById(reader.getReadertypeid(), bookDescription.getBooktypeid());
			//该类型读者可借该类型图书的数量
			int surecan = 0;
			//此书为新书
			if(bookDescription.getBooktypeid().equals("01"))
			{
				if(reader.getBorrownumber()>=borrowingRequirements.getCanborrownum()) {
					return "readerBorrowFaulse" ;
				}
				else
				{
					reader.setBorrownumber(reader.getBorrownumber()+1);
					int readerchange = this.readerService.updateReader(reader);
					Borrow borrow = new Borrow();
					borrow.setBookid(thebookid);
					borrow.setReadmno(reader.getReadmno());
					//借书时间
					SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy年MM月dd日");
					Calendar calendar=Calendar.getInstance();
					System.out.println("当前系统时间: "+sdFormat.format(calendar.getTime()));
					String borrowtime = sdFormat.format(calendar.getTime());
					borrow.setBorrowtime(borrowtime);
					
					//还书时间
					calendar.add(Calendar.DATE,30);
					String shouldreturntime = sdFormat.format(calendar.getTime());
					System.out.println("还书时间: "+sdFormat.format(calendar.getTime()));
					borrow.setShouldreturntime(shouldreturntime);
					
					//实际还书时间
					borrow.setReturntime("未还书");
					//续借·情况
					borrow.setRenewal(false);
					borrow.setBorrowstate("正常");
					int index = this.borrowService.addBorrow(borrow);
					book.setBookstate("借出");
					int bookchange = this.bookService.updateBook(book); 
					Borrow newborrow = this.borrowService.findBorrowById(reader.getReadmno(), book.getBookid()); 
					model.addAttribute("borrow", newborrow);
					return "readerBorrowSuccess";
				}
			}
			//借的为旧书
			else
			{
				if(reader.getBorrownumber2()>=borrowingRequirements.getCanborrownum()) {
					
					return "readerBorrowFaulse" ;
				}
				else
				{
					reader.setBorrownumber2(reader.getBorrownumber2()+1);
					int readerchange = this.readerService.updateReader(reader);
					Borrow borrow = new Borrow();
					borrow.setBookid(thebookid);
					borrow.setReadmno(reader.getReadmno());
					//借书时间
					SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy年MM月dd日");
					Calendar calendar=Calendar.getInstance();
					System.out.println("当前系统时间: "+sdFormat.format(calendar.getTime()));
					String borrowtime = sdFormat.format(calendar.getTime());
					borrow.setBorrowtime(borrowtime);
					
					//还书时间
					calendar.add(Calendar.DATE,30);
					String shouldreturntime = sdFormat.format(calendar.getTime());
					System.out.println("还书时间: "+sdFormat.format(calendar.getTime()));
					borrow.setShouldreturntime(shouldreturntime);
					
					//实际还书时间
					borrow.setReturntime("未还书");
					//续借·情况
					borrow.setRenewal(false);
					borrow.setBorrowstate("正常");
					int index = this.borrowService.addBorrow(borrow);
					book.setBookstate("借出");
					int bookchange = this.bookService.updateBook(book); 
					Borrow newborrow = this.borrowService.findBorrowById(reader.getReadmno(), book.getBookid()); 
					model.addAttribute("borrow", newborrow);
					return "readerBorrowSuccess";
				}
			}
			
			
		}
		//不存在该读者
		else
		{
			return "readerBorrowFaulse" ;
		}
		
	}

五、系统使用说明

6.1系统基本安装环境:jdk1.8+Tomcat8.0 +SQL SERVER2008 +Windows 10。

6.2账号信息

系统管理员:用户名:S201621122080 密码:123

图书馆管理员:用户名:S201621122083 密码:123456

读者(教师、学生,研究生):用户名:S201621122084

密码:123456

---------------------------------------------------我是分割线------------------------------------------------------------------------

请到百度网盘下载全部文件(代码+论文)

链接:https://pan.baidu.com/s/1GBkXQXNYaIPybQLrR9x3LA
提取码:(请订阅后私信,每天会看)

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
图书借阅管理系统的主要任务是实现读者迅速检索查询,方便借阅归还图书,图书管理员高效的完成系统的各项基本操作,系统管理员是管理用户设置权限等操作,从图2.1可以看出图书借阅管理系统要完成一下功能: (1) 登录: 读者、图书管理员,系统管理员进入该系统必须登录,身份验证正确了才可以进入该系统,以不同身份进入该系统所对应的系统使用权限是不同的。 (2) 系统设置功能: 系统管理员可以设置图书馆相关的参数信息。 (3)用户管理功能: 对系统用户进行添加,修改,删除,权限设置等操作。 (4)查询功能: 对图书馆的馆藏图书,借阅历史,读者用户等信息进行查询。 (5)其他功能 系统管理员可以修改自己的密码,并且拥有其他用户所拥有的所有功能。 2、功能模型 图书管理员详细功能描述 读者管理功能: 对读者的类型和读者档案进行管理,包括添加,修改,删除读者类型和读者用户的相关信息,管理不同类型读者借阅图书的数量。 图书管理功能: 包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。 图书借阅功能: 可以完成对读者借阅,续接和还书的操作。 系统查询功能: 查询图书相关资料,借阅历史和借阅到期题型. 修改密码功能: 可以修改自己的登录密码。 读者详细功能描述 (1) 修改登陆密码: 修改自己的登录密码。 (2) 查询功能: 对图书馆图书信息进行查询,对自己当前借阅书籍进行查询。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是盘盘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值