数据库课程设计实验报告图书馆管理系统_第1页
数据库课程设计实验报告图书馆管理系统_第2页
数据库课程设计实验报告图书馆管理系统_第3页
数据库课程设计实验报告图书馆管理系统_第4页
数据库课程设计实验报告图书馆管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽工业大学课程设计报告课 程: 数据库课程设计题 目: 图书馆管理系统班 级: 094班专 业: 软件工程姓名: 学号指导教师日期: 2011.12.5 目 录一 系统开发平台3二 需求与功能分析3三 概要设计.4系统的总体框图或系统功能图对各部分功能的分析四 数据库设计.5分析系统存在的实体、属性、以及实体间的联系画出er模型图数据库中关系表五 程序代码设计和实现 7写出重点代码(若是代码一定要有相应的功能分析及注释)六 系统关键技术实现12核心功能模块的代码实现七 系统测试.15各基本功能模块的正确性测试(截图并结合文字说明)八 总结与展望.19本次课程设计的心得体会与收获系统存在的问题

2、以及改进的方向一、系统开发平台1.1 题目:图书馆管理系统图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。现今,有很多的图书馆尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。为了提高日常的图书管理效率,必须开发满足大多数中小型的图书管理要求的图书管理系统。1.2 myeclipsemyeclipse,是一个十分优秀的用于开发java, j2ee的eclipse插件集合,myeclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支

3、持十分不错。数据库采用了mysql, mysql是一个小型关系型数据库管理系统,开发者为瑞典mysql ab公司。在2008年1月16号被sun公司收购。而2009年,sun又被oracle收购。mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。mysql的sql“结构化查询语言”。sql是用于访问数据库的最常用标准化语言。mysql软件采用了gpl)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。二、需求分析与功能分析2

4、.1 问题的提出:为了高效率的完成图书馆图书的管理,决定开发图书馆管理系统。2.2当决定要开发一个信息系统时,首先要对信息系统的需求进行分析,需求分析要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。 获得当前系统的处理流程,在此首先假设当前系统是手工处理系统。手工处理流程大致是这样的。读者将要借的书和借阅证交给工作人员,工作人员将每本书附带的描述书信息的卡和读者借阅证一起放在一个小格栏,并在借阅证和每本书上贴的借阅信息。这样借书过程就完成了。还书时读者将要还的图书交给工作人员,工作人员图书信息找到相应的书卡和借阅证,并填写相应的

5、还书信息。 抽象出当前系统的逻辑模型。在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在物理模型中有许多物理因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的困素,去掉那些非本质的困素即可获得反映系统本质的逻辑模型。 建立目标系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,明确目标系统到底要“做什么”,从而从当前系统的逻辑模型导出目标系统的逻辑模型。在对上述流程进行分析后,我们对新的图书处理流程进行

6、整理,图书馆借还书过程 借书过程:读者从架上选到所需图书后,将图书和借书卡交管理人员,管理人员用码阅读器将图书和借书卡上的读者条码2码读入处理系统。系统根据读者条码从读者文件和借阅文件中找到相应记录;根据图书上的条码从图书文件中找到相应记录,读者如果有如下列情况之一将不予办理借书手续。 1 该读者记录中有止借标志。 2 该读者还有已超过归还日期而仍未归还的图书。 3 该图书暂停外借。若读者符合所有借书条件时,予以借出。系统在借阅文件中增加一条记录,记入读者码、图书条码、借阅日期等内容。 还书过程:还书时读者只要将书交给管理人员,管理员将书上的图书条码读入系统,系统从借阅文件上找到相应记录,填上

7、还书日期后写入借阅历史文件,并从借阅文件上删去相应记录,同时系统对借还书日期进行计算并判断是否超期,若不超期则结束过程,若超期则计算出超期天数、罚款数、并打印罚款通知书,记入罚款文件。同时在读者记录上作止借标记。当读者交来罚款收据后,系统根据读者条码查罚款文件,将相应记录写入罚款历史文件,并从罚款文件只删除该记录,同时去掉读者文件中的止借标记。2.3图书管理系统的功能分析 系统功能分析是在系统开发的总体任务的基础上完成。图书馆管理信息系统需要完成功能主要有: 有关读者种类标准的制定、种类住处的输入,包括种类编号、种类名称、借书数量、借书期限、有效期限、备注等。 读者种类信息的修改、查询等。 读

8、者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、电话号码、办证日期、备注等。 读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、电话号码、办证日期、备注等等。 书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称、关键词、备注信息等。 书籍信息的输入,包括书籍编号、书籍名称、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。 借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。 借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备

9、注信息等。 还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。 还书信息的查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍姓名、借书日期、还书日期、备注信息等。三 概要设计3.1、系统功能表:图书馆管理系统登录系统用户管理员修改密码图书查询退出系统密码服务更新图书信息更新用户信息违章处理图书借还退出系统四 数据库设计4.1、分析系统存在的实体、属性、以及实体间的联系 实体:用户,管理员,图书用户的属性包括编号,姓名,性别等管理员的属性包括编号、姓名、性别等图书的属性包括类别,书名,价格等实体间的关系:一个用户可以借多本书

10、一个管理员管理多个用户和图书 4.2、画出er模型图用户 图书管理员性别年龄姓名编号押金图书编号图书类别书名作者译者编号性别姓名管理管理借书日期密码类型电话出版社价格年龄借阅4.3、数据库中的关系表五 程序代码设计和实现第一个登录界面:package com.ts.base;import java.sql.connection;import java.sql.date;import java.sql.drivermanager;import java.sql.resultset;import java.sql.sqlexception;import java.sql.timestamp;imp

11、ort java.util.arraylist;import java.util.list;import com.ts.model.*;import com.ts.tool.check;public class business protected static string dbclassname = com.mysql.jdbc.driver; /数据库驱动类protected static string dburl = jdbc:mysql:/localhost:3306/ts;/连接urlprotected static string dbuser = ysf;/数据库用户名prote

12、cted static string dbpwd = 123456; /数据库密码private static connection conn = null; /数据库连接对象, 初值nullpublic business() /默认构造函数try if (conn = null) /连接对象为空class.forname(dbclassname);/加载驱动类信息conn = drivermanager.getconnection(dburl, dbuser, dbpwd);/建立连接对象 catch (exception ee) ee.printstacktrace();public st

13、atic resultset executequery(string sql) /执行查询方法try if(conn=null) new business(); /如果连接对象为空,则重新调用构造方法return conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable).executequery(sql);/执行查询 catch (sqlexception e) e.printstacktrace();return null;/返回null值 finally public static in

14、t executeupdate(string sql) /更新方法try if(conn=null) new business();/如果连接对象为空,则重新调用构造方法return conn.createstatement().executeupdate(sql);/执行更新 catch (sqlexception e) e.printstacktrace();return -1; finally public static void close() /关闭方法try conn.close();/关闭连接对象 catch (sqlexception e) e.printstacktrace(

15、);finallyconn = null;/设置连接对象为null值/* * 管理员登录方法 */public static operater check(string name, string password) operater operater=new operater();/操作员信息对象string sql = select * from operator where name= + name+ and password= + password + and type=1;/查询字符串resultset rs = business.executequery(sql);/执行查询try

16、while (rs.next() /如果查询到了记录operater.setid(rs.getstring(id);/设置操作员编号operater.setname(rs.getstring(name);/设置操作员用户名operater.setpassword(rs.getstring(password);/设置管理员密码operater.settype(rs.getstring(type);/用户类型 catch (exception e) e.printstacktrace();business.close();/关闭连接对象return operater;/返回操作员信息对象/* *

17、查询类别方法 */public static list selectbookcategory() list list=new arraylist();string sql = select * from booktype;resultset rs = business.executequery(sql);try while (rs.next() booktype booktype=new booktype();booktype.setid(rs.getstring(id);booktype.settypename(rs.getstring(typename);booktype.setdays(

18、rs.getstring(days);booktype.setfk(rs.getstring(fk);list.add(booktype); catch (exception e) e.printstacktrace();business.close();return list;public static list selectbookcategory(string booktype) list list=new arraylist();string sql = select days from booktype where typename=+booktype+;resultset rs =

19、 business.executequery(sql);try while (rs.next() booktype type=new booktype();type.setdays(rs.getstring(days);list.add(type); catch (exception e) e.printstacktrace();business.close();return list;/* * 图书类别表相关操作 * */public static int insertbooktype(string booktypename,string days,double fk)int i=0;try

20、string sql=insert into booktype(typename,days,fk) values(+booktypename+,+days+,+fk+);i=business.executeupdate(sql);catch(exception e)e.printstacktrace();return i;public static int updatebooktype(string id,string typename,string days,string fk)int i=0;trystring sql=update booktype set typename=+typen

21、ame+,days=+days+,fk=+fk+ where id=+id+;i=business.executeupdate(sql);catch(exception e)e.printstacktrace();business.close();return i; public static list selectbooktypefk(string booktype) /取每种书超过规定时间罚款金额list list=new arraylist();string sql = select * from booktype where typename=+booktype+;resultset

22、rs = business.executequery(sql);try while (rs.next() booktype type=new booktype();type.setfk(rs.getstring(fk);type.setdays(rs.getstring(days);list.add(type); catch (exception e) e.printstacktrace();business.close();return list;/* * 图书信息表相关操作 */* * 插入图书信息方法 */public static int insertbook(string id,st

23、ring typeid,string bookname,string writer,string translator,string publisher,date date,double price)int i=0;trystring sql=insert into bookinfo(book_id,typeid,bookname,writer,translator, +publisher,date,price) values(+id+,+typeid+,+bookname+, +writer+,+translator+,+publisher+,+date+,+price+);i=busine

24、ss.executeupdate(sql);catch(exception e)system.out.println(e.getmessage();business.close();/关闭连接对象return i;/返回更新记录数/* * 查询图书相关信息 * */public static list selectbookinfo() list list=new arraylist();string sql = select * from bookinfo;resultset rs = business.executequery(sql);try while (rs.next() bookin

25、fo bookinfo=new bookinfo();bookinfo.setbook_id(rs.getstring(boo_id);bookinfo.settypeid(rs.getstring(typeid);bookinfo.setbookname(rs.getstring(bookname);bookinfo.setwriter(rs.getstring(writer);bookinfo.settranslator(rs.getstring(translator);bookinfo.setpublisher(rs.getstring(publisher);bookinfo.setda

26、te(rs.getdate(date);bookinfo.setprice(rs.getdouble(price);list.add(bookinfo); catch (exception e) e.printstacktrace();business.close();return list;public static list selectbookinfo(string book_id) /根据图书编号查询图书list list=new arraylist();/保存所有查询到书籍信息string sql = select * from bookinfo where book_id=+boo

27、k_id+;resultset rs = business.executequery(sql);/执行查询try while (rs.next() /遍历结果集bookinfo bookinfo=new bookinfo();/书籍信息对象bookinfo.setbook_id(rs.getstring(book_id);/设置书籍编号bookinfo.settypeid(rs.getstring(typeid);/设置类别编号bookinfo.setbookname(rs.getstring(bookname);/设置书籍名称bookinfo.setwriter(rs.getstring(w

28、riter);/设置作者bookinfo.settranslator(rs.getstring(translator);/设置译者bookinfo.setpublisher(rs.getstring(publisher);/设置出版社bookinfo.setdate(rs.getdate(date);/设置出版日期bookinfo.setprice(rs.getdouble(price);/设置价格list.add(bookinfo);/添加书籍信息 catch (exception e) e.printstacktrace();business.close();/关闭连接对象return l

29、ist;/返回查询结果集/* * 修改图书信息方法 */public static int updatebook(string book_id,string typeid,string bookname,string writer,string translator,string publisher,date date,double price)int i=0;/更新记录数trystring sql=update bookinfo set book_id=+book_id+,typeid=+typeid+,bookname=+bookname+,writer=+writer+,translat

30、or=+translator+,publisher=+publisher+,date=+date+,price=+price+ where book_id=+book_id+;i=business.executeupdate(sql);/执行更新catch(exception e)e.printstacktrace();business.close();/关闭连接对象return i;/返回更新记录数/* * 对读者信息表执行的相关操作 */public static int insertreader(string name,string sex,string age,string ident

31、itycard,date date,string maxnum,string tel,double keepmoney,string zj,string zy,date bztime,string book_id)int i=0;trystring sql=insert into reader(name,sex,age,identitycard,date,maxnum,tel,keepmoney,zj,zy,bztime,book_id) values(+name+,+sex+,+age+,+identitycard+,+date+,+maxnum+,+tel+,+keepmoney+,+zj

32、+,+zy+,+bztime+,+book_id+);system.out.println(sql);i=business.executeupdate(sql);catch(exception e)e.printstacktrace();business.close();return i;public static list selectreader() list list=new arraylist();string sql = select * from reader;resultset rs = business.executequery(sql);try while (rs.next(

33、) reader reader=new reader();/reader.setid(rs.getstring(id);reader.setname(rs.getstring(name);reader.setsex(rs.getstring(sex);reader.setage(rs.getstring(age);reader.setidentitycard(rs.getstring(identitycard);reader.setdate(rs.getdate(date);reader.setmaxnum(rs.getstring(maxnum);reader.settel(rs.getst

34、ring(tel);reader.setkeepmoney(rs.getdouble(keepmoney);reader.setzj(rs.getint(zj);reader.setzy(rs.getstring(zy);reader.setbook_id(rs.getstring(book_id);reader.setbztime(rs.getdate(bztime);list.add(reader); catch (exception e) e.printstacktrace();business.close();return list;public static list selectr

35、eader(string reader_id) list list=new arraylist();string sql = select * from reader where book_id=+reader_id+;resultset rs = business.executequery(sql);try while (rs.next() reader reader=new reader();reader.setname(rs.getstring(name);reader.setsex(rs.getstring(sex);reader.setage(rs.getstring(age);re

36、ader.setidentitycard(rs.getstring(identitycard);reader.setdate(rs.getdate(date);reader.setmaxnum(rs.getstring(maxnum);reader.settel(rs.getstring(tel);reader.setkeepmoney(rs.getdouble(keepmoney);reader.setzj(rs.getint(zj);reader.setzy(rs.getstring(zy);reader.setbook_id(rs.getstring(book_id);reader.se

37、tbztime(rs.getdate(bztime);list.add(reader); catch (exception e) e.printstacktrace();business.close();return list;public static int updatereader(string id,string name,string sex,string age,string identitycard,date date,string maxnum,string tel,double keepmoney,string zj,string zy,date bztime,string

38、book_id)int i=0;trystring sql=update reader set name=+name+,sex=+sex+,age=+age+,identitycard=+identitycard+,date=+date+,maxnum=+maxnum+,tel=+tel+,keepmoney=+keepmoney+,zj=+zj+,zy=+zy+,bztime=+bztime+where book_id=+book_id+;i=business.executeupdate(sql);catch(exception e)e.printstacktrace();business.

39、close();return i;public static int delreader(string book_id)int i=0;trystring sql=delete from reader where book_id=+book_id+;/system.out.println(sql);i=business.executeupdate(sql);catch(exception e)e.printstacktrace();business.close();return i;/* * 对订购信息表操作 */public static int insertbookorder(string

40、 book_id,date date,string number,string operator,string checkandaccept,double zk)int i=0;trystring sql=insert into order(book_id,date,number,operator,checkandaccept,zk) values(+book_id+,+date+,+number+,+operator+,+checkandaccept+,+zk+);system.out.println(sql+n);i=business.executeupdate(sql);catch(ex

41、ception e)e.printstacktrace();business.close();return i;public static list selectbookorder() list list=new arraylist();string sql = select * from order a inner join bookinfo b on a.book_id = b.book_id;resultset rs = business.executequery(sql);try while (rs.next() orderbookinfo order=new orderbookinf

42、o();order.setbook_id(rs.getstring(1);order.setorderdate(rs.getdate(2);order.setnumber(rs.getstring(3);order.setoperator(rs.getstring(4);order.setcheckandaccept(rs.getstring(5);order.setzk(rs.getdouble(6);order.settypeid(rs.getstring(8);order.setbookname(rs.getstring(9);order.setwriter(rs.getstring(1

43、0);order.settraslator(rs.getstring(11);order.setpublisher(rs.getstring(12);order.setdate(rs.getdate(13);order.setprice(rs.getdouble(14);list.add(order); catch (exception e) e.printstacktrace();business.close();return list;public static list selectbookorder(string book_id) list list=new arraylist();s

44、tring sql = select * from order where book_id=+book_id+;resultset rs = business.executequery(sql);try while (rs.next() order order=new order();order.setbook_id(rs.getstring(book_id);order.setdate(rs.getdate(date);order.setnumber(rs.getstring(number);order.setoperator(rs.getstring(operator);order.set

45、zk(zk);order.setcheckandaccept(checkandaccept);list.add(order); catch (exception e) e.printstacktrace();business.close();return list;public static int updatecheckbookorder(string book_id)int i=0;trystring sql=update order set checkandaccept=0 where book_id=+book_id+;i=business.executeupdate(sql);cat

46、ch(exception e)e.printstacktrace();business.close();return i;/* * 对借阅表进行操作 */public static int insertbookborrow(string book_id,string reader_id,string operatorid,timestamp borrowdate,timestamp backdate)int i=0;trystring sql=insert into borrow(book_id,reader_id,operatorid,borrowdate,backdate)values(+

47、book_id+,+reader_id+,+operatorid+,+borrowdate+,+backdate+);i=business.executeupdate(sql);catch(exception e)e.printstacktrace();business.close();return i;public static list selectborrow(string reader_id) list list=new arraylist();string sql = select * from borrow where reader_id=+reader_id+;resultset

48、 rs = business.executequery(sql);try while (rs.next() borrow borrow=new borrow();borrow.setid(rs.getint(id);borrow.setbook_id(rs.getstring(book_id);borrow.setreader_id(rs.getstring(reader_id);borrow.setborrowdate(rs.getstring(borrowdate);borrow.setbackdate(rs.getstring(backdate);borrow.setbookname(rs.getstring(borrowbookname);list.add(borrow); catch (exception e) e.printstacktrace();business.close();return list;/* * 查询还书内容,bookinfo reader borrow之间的查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论