1、 西 安 邮 电 大 学 (计算机学院)软件工程课程设计报告题 目: 图书馆管理系统 专业名称: 信息与计算科学班 级: 信息1101 学生姓名: 王凯祥学号(8位): 07111027指引教师: 周元哲设计起止时间:6月3日6月13日一. 设计目随着人类文明发展,人们对于知识需求也在不断地增长,书籍作为传播文明重要工具,人们对其数量规定也越来越高,但是近几年来,随着书量不断增长,导致了书库空间极度局限性,图书挤压,管理不善。这些都直接影响了读者对图书馆藏书充分运用。这时图书馆就特别需要开发一套图书馆管理系统,通过该系统来提高图书馆管理效率,从而减少管理方面工作流和成本。因而有一种智能化、系统
2、化、信息化图书管理系统十分重要。充分运用计算机功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆工作大大削弱。二. 设计内容本图书馆管理系统是采用Java+ SQL Server 分别作为前台和后台方式,本系统提供3个功能模块,分别是图书信息管理模块、读者信息管理模块、图书借阅管理模块。这3个模块里又有许多子模块,通过这些模块之间互相连接与配合,满足使用者各种需求。本系统使用人员也分为两类,一类是读者,可以查看自己信息以及借阅信息;一类是管理员,除了读者所有功能外,还可以对书籍列表、书籍信息、读者信息、借阅和还书信息等进行管理。三概要设计主界面1功能模块图;惯用工具读者留言读者管
3、理借阅管理图书管理 添加读者删除读者修改读者查询读者罚款信息还书借书修改图书删除图书添加图书查询图书2. 各个模块详细功能描述先附上数据库设计中E-R图:姓名管理员ID编号密码出版日期图书价格图书编号图书信息出版社ISBN号图书名称图书作者借阅时间借阅号归还时间借阅读者编号时间借阅号读者编号罚款信息读者类型限借数量缴费罚款金额读者信息性别登录密码姓名编号 图书管理模块:可以进行图书查询,图书添加、删除和修改,读者只能进行图书查询操作,查询图书可以按照图书名和ISBN码进行查询,添加图书规定输入图书各种信息,详细参照上面E-R图,即可完毕添加操作,删除图书和修改图书只需输入图书编号就可以对其进行
4、修改和删除操作。借阅管理模块:可以进行借书、还书以及查看罚款信息操作,固然,借书和还书权限属于管理员,输入图书编号以及读者ID即可完毕操作,读者可以在罚款信息模块查看自己与否有超期未还图书,以及如果有话需缴纳多少逾期费信息。读者管理模块:和图书同样,同样具备读者信息查询、删除、修改以及添加功能,读者只具备访问查询功能权限。查询功能,输入读者编号即可查询读者基本信息以及借阅信息,可以看到已借阅图书名称,借阅时间和应当归还时间。删除功能,只要输入编号就可以删除相应读者所有信息;修改功能,输入读者编码就可以对读者基本信息进行修改;添加功能,可以增长新读者到数据库,规定对的输入其基本信息。四详细设计1
5、各功能函数数据流程图 注:由于构造较复杂,在此使用microsoft visio画出流程图并导入2重点设计及编码在此贴出登录数据库功能核心代码:public void actionPerformed(ActionEvent e) Connection con;PreparedStatement sql;/ Statement sql;ResultSet rs;/MainFream zjm = new MainFream();boolean boo = false;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFo
6、undException f) try con = DriverManager.getConnection(jdbc:odbc:tushuguan);if (JRb1.isSelected() sql = con.prepareStatement(SELECT * FROM reader where rid=?and pass=?);boo = true; else sql = con.prepareStatement(SELECT * FROM guanliyuan where gid=?and gpass=?);/zjm.mll2.setEnabled(false);String bh,p
7、assword;bh = Jt1.getText();password = Jt2.getText();sql.setString(1,bh);sql.setString(2,password);rs = sql.executeQuery();if (rs.next() this.dispose();/ 撤销当前窗口,并释放当前窗口使用资源MainFream zjm = new MainFream();if (boo) zjm.mi2.setEnabled(false);zjm.mi3.setEnabled(false);zjm.mi4.setEnabled(false);zjm.mj2.se
8、tEnabled(false);zjm.mj3.setEnabled(false);zjm.mj4.setEnabled(false);zjm.mk3.setEnabled(false);zjm.mk4.setEnabled(false);zjm.ml2.setEnabled(false);zjm.bborrow.setEnabled(false);zjm.breturn.setEnabled(false);zjm.mll1.setEnabled(false);zjm.bborrow.setEnabled(false);zjm.breturn.setEnabled(false);/zjm.sh
9、ow(); else Jt1.setText();Jt2.setText();JOptionPane.showMessageDialog(this,你输入帐号错误!,警告对话框,JOptionPane.WARNING_MESSAGE); catch (SQLException e2) System.out.println(e2);五测试数据及运营成果1正常测试数据和运营成果第一组:如图1所示,测试读者查询功能时候,输入已经录入读者编号,点击基本信息,会浮现该读者基本信息;点击借阅信息,正常弹出读者已借阅书籍信息,如图2;图1 图2第二组:图书借阅功能,输入已录入读者编号以及对的图书编号,正常弹
10、出“借阅成功信息”,并且可以在读者信息中查询到,如图2及图3; 图3第三组:修改图书信息功能,打开界面后输入已经录入图书编号,即可对其信息进行修改,完毕后,点击修改按钮,弹出“修改图书成功”信息,如图4所示。 图42异常测试数据及运营成果第一组:图书借阅功能,输入一种没有录入读者编号,图书编号也不存在,弹出报错信息“你输入读者不存在”,如图5; 图5第二组:图书查询功能,输入并未录入图书编号,弹出异常信息“查询图书不存在”,如图6所示。 图6六调试状况,设计技巧及体会1改进方案这次图书管理系统设计,真是让我使出浑身解数,把所学到功能都用到了,这次设计,总体来说还是比较满意,固然,必定同步也有着
11、许多局限性之处,例如数据库设计不够完整,没有新书订购功能,只能对已有图书进行管理等,这些问题需要学习更多知识去完善,例如采用jsp编程通过网络对新书进行订购管理,可以采用B/S架构,更加直观便捷。 2体会本系统是一种最基本图书馆管理系统,可扩展性很大,系统执行效率也比较高。这些天设计,我深刻体会到软件开发是相称辛苦,但成功后来喜悦也是非常美妙,投入越多,获得高兴与充实感越多。本课题在选题及研究过程中得到周教师亲切关怀和悉心指引下完毕。她严肃科学态度,严谨治学精神,精益求精工作作风,深深地感染和勉励着我。让我可以以更加认真严谨态度去设计,调试,完善。在此谨向周教师致以诚挚谢意和崇高敬意。七参照文
12、献1数据库原理及应用 周佩德等 电子工业出版社 2数据库系统概论 萨师煊等 电子工业出版社 3Java面向对象程序设计 张桂珠等 北京邮电大学出版社 4Java程序设计实例教程 毕光吉 冶金工业出版社 5软件工程导论第四版 张海潘 清华大学出版社 八附录:(源代码)public void actionPerformed(ActionEvent e) if (e.getSource().equals(mk3) | e.getSource().equals(bborrow) / 借阅管理Borrow js = new Borrow();js.show();if (e.getSource().equ
13、als(mk4) | e.getSource().equals(breturn) Return hs = new Return();hs.show();if (e.getSource().equals(mk1) / 借阅管理Fakuan fa = new Fakuan();fa.show();if (e.getSource().equals(mi1) | e.getSource().equals(bread) / 读者管理Search_reader zt = new Search_reader();zt.show();if (e.getSource().equals(mi2) Add_read
14、er zj = new Add_reader();zj.show();if (e.getSource().equals(mi3) Del_reader scd = new Del_reader();scd.show();if (e.getSource().equals(mi4) Rework_reader rr = new Rework_reader();rr.show();if (e.getSource().equals(mi4) Rework_reader re = new Rework_reader();re.show();if (e.getSource().equals(mj3) /
15、图书管理Del_book sct = new Del_book();sct.show();if (e.getSource().equals(mj1) | e.getSource().equals(bbook) Search_book cx = new Search_book();cx.show();if (e.getSource().equals(mj2) Add_book zj = new Add_book();zj.show();if (e.getSource().equals(mj3) Del_book sct = new Del_book();sct.show();if (e.getS
16、ource().equals(mj4) Rework_book xg = new Rework_book();xg.show();if (e.getSource().equals(ml) / 惯用工具 万年历WanNianLi mf = new WanNianLi();mf.show();if (e.getSource().equals(ml2) / 工作日记NotePad note = new NotePad();note.show();if (e.getSource().equals(mll1) / 在线征询Server server = new Server();server.show();