Java 课程设计报告
题 目: 图书馆信息管理系统 学生姓名: 学 号: 专业班级: 同组姓名: 指导教师: 设计时间: 2012年上学期第17周
指导老师意见: 评定成绩: 签名: 日期:
目 录
一、系统描述................................................................................................................ 3
1.1问题的提出....................................................................................................... 3 1.2可行性分析....................................................................................................... 3 1.2.1技术可行性............................................................................................ 3
1.2.2经济可行性............................................................................................. 3 1.3系统功能分析................................................................................................... 4
1.3.1学生端..................................................................................................... 4 1.3.2管理员端................................................................................................. 4
二、分析与设计............................................................................................................ 4
2.1功能模块划分................................................................................................... 4 2.2数据库结构的描述........................................................................................... 5
2.2.1 E-R图设计........................................................................................ 5 2.2.2数据库概念设计..................................................................................... 6
三、 系统详细设计文档.............................................................................................. 8
3.1系统主界面设计............................................................................................... 8 3.2主页面详细设计............................................................................................... 9 四、部分模块功能描述................................................................................................ 9
4.1登陆界面介绍................................................................................................... 9 4.2登录后的主界面介绍..................................................................................... 10
4.3 借书功能实现....................................................................................... 11
五、 系统测试............................................................................................................ 15
5.1运行界面......................................................................................................... 15 5.2登陆后主界面................................................................................................. 15 5.3子功能截图..................................................................................................... 16 5.4读者信息管理测试......................................................................................... 18 六、心得体会.............................................................................................................. 19 七、参考文献.............................................................................................................. 19
2
一、系统描述
1.1问题的提出
图书馆的管理直接关系到我们大学生如何更好的使用图书,针对当今的大学图书馆藏书越来越多,学生借书越来越频繁,图书管理较为繁琐,图书馆管理工作人员付出的工作时间越来越多,得到的效率却很低这个现状,决定开发学校图书馆管理系统软件,以帮助更好的实现图书馆的管理,让我们能更便捷的借阅图书,让图书馆管理员能花最少的时间办理好借阅图书手续。
1.2可行性分析 1.2.1技术可行性
首先,我们已经学习了Java这门课程,对Java编程有一定的了解,这在编
程的技术上是可行的。 其次,由于本系统的开发是基于本地客户端的,仅仅利用数据库来进行数据的查询,增加,修改,删除,并不涉及数据库的高级操作,如触发器,存储过程,而MySQL遵循SQL的语法,完全支持标准SQl的各种操作,完全满足上述需要。本系统数据量不是很大,不用使用大型的数据库来存储数据。MySQL安装和卸载都很方便,不会出现卸载不干净等问题,同时MySQL提供定制安装,可以满足客户的个性化要求,利用MySQL操作数据也很方便,如果不想在命令行下进行操作,可以利用Navicat Premium在图形界面下操作数据,MySQL完全支持标准SQL的语法,比如Select,Delete,Insert,Update这些常用操作。 MySQL检索数据速度很快,占用的内存资源很小,对硬件的要求很低,操作时不会出现操作缓慢的问题,在使用MySQL时,用户可以很快的查询到需要的数据。
综上所述,本小组能够完成一个一个比较简单的图书馆信息管理系统的设计。
1.2.2经济可行性
此系统是由在校大学生开发的学校图书馆管理信息系统。此系统在开发方式上对系统的需求,由于学校图书馆的借阅是一种无商业利益的,所以系统设计开发的
3
周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用是作为系统开发的指导思想。
本系统完全能够在校园图书馆管理工作中发挥重要作用,而作为个人,能在软件开发能力方面得到锻炼和提高也是十分重要的,本系统在此不注重任何社会经济目标。
1.3系统功能分析
通过对图书馆的了解,确定本系统具备一下功能。
1.3.1学生端
查询图书,学生可以进行简单的数据查询和高级查询 挂失图书,当图书丢失时进行相关的挂失
预约图书,当所借书不在管内时可以对图书进行预约
1.3.2管理员端
图书管理,包括对图书的增、删、改、查 ;
管理员管理,超级管理员能对普通管理员进行增、删、改,普通管理员只有修改自己的信息进行修改
借阅管理,即对图书的外借和归还及交纳罚款的管理
二、分析与设计
2.1功能模块划分
学生端口实现对图书的查询,预约与挂失功能,管理员端口实现对图书的管理以及对用户的管理等。 具体的功能模块图如下:
4
图书馆管理系统学生端管理员端查询图书预 约图书挂失图书学生用户管理图书管理查询图书借阅预约管理交纳罚款管理员管理 图1 系统功能模块图
2.2数据库结构的描述 2.2.1 E-R图设计
根据系统结构图和数据流图描述出实体联系图E-R图,该系统包含的实体主要有图书、学生、管理员。
电话借阅许可院系密码学生班级学号姓名性别年龄 图2 学生用户管理图
5
普通管理员m管理n学生用户管理n管理图书nn 图4实体间简单的关系图
2.2.2数据库概念设计
根据相关功能设计和E-R图,确定本系统共设计7张表,分别为学生用户基本信息表、管理员基本信息表、图书基本信息表、超期图书信息表、预约图书信息表、挂失图书信息表、借阅图书信息表。
学生用户基本信息表:用于记录学生用户的基本信息,主要字段为学生用户和密码等,
具体如下
Create table student(
StuNo int primary key, not null StuName varchar(50), StuAge int ,
StuSex varchar(20), Class varchar(50),
Department varchr(50), Tel varchar();
Permitted varchar(50), Password varcahr(50));
管理员基本信息表 :用于记录管理员的用户ID,其具体显现如下 Create table Manager(
mgNo int primary key ,
permitted varchar (50) not null, password varchar(50) not null);
图书基本信息表:该表用于记录图书的基本信息,其具体实现如下 Create table book (
6
nn管理管理11管理1超级管理员 BookNO int primary key, BookName varchar(50), Author varchar(50),
Publisherment varchar (50), BuyTime varchar(50), Borrowed varchar(50), Ordered varchar(50) );
借阅图书信息表:该表用来记录学生用户借阅图书的信息,包括记录学号、书号。借阅时间的等信息,表设计如下:
Create table record ( BookNO int primary key , StuNO int primary key, Borrowed varchar(50), ReturnTime varchar(50), Borrowed varchar(50), Ordered varchar(50); )
超期图书信息表: 该表用来记录学生超期图书的信息,包括图书ID和学生姓名等信息。具体表设计如下:
Create table exceedtime( StuNO int null, BookNO int null
BookName varchar(50) DelayTime int );
Primary key (StuNO, BookName));
预约图书信息表: 该表用来记录学生预约的图书信息,包括图书ID 和学生姓名等信息,涉及如下:
Create table orderreport ( BookNO int primary , StuName varchar(50), Class varchar(50) );
挂失图书信息表:该用来记录学生丢失图书的信息 ,包括图书ID和学生学号等信息,设计如下:
Create table losebook ( LBNO int primary key, StuNO int , BookNO int ,
BookName varchar(50) );
7
三、 系统详细设计文档
3.1系统主界面设计
开始根据登录信息学生端管管理员端理界面管理界面结束 8
3.2主页面详细设计
开始显示主页面接收用户选择Choose学生 学端 生图罚管挂失用书款理预约户管管员图书管理理管操作理理N退出系统?Y结束
四、部分模块功能描述
4.1登陆界面介绍
登录界面有“用户类型”的登录选择项,还有“新用户注册”项。
9
4.2登录后的主界面介绍
登陆后界面如下:
附上主要代码:
public class MenuActions { private static Map 10 //采购菜单 public static BoodOrderAction NEWBOOK_ORDER; // 新书定购窗口 public static CheckBookAction NEWBOOK_CHECK; // 新书验收窗口 //借还菜单 public static BookSearchAction BOOK_SEARCH; // 图书搜索窗口 public static GiveBackAction GIVE_BACK; // 图书归还窗口 public static BorrowAction BORROW; // 图书借阅窗口 public static ExpiredAction expired; // 图书借阅超期窗口 //读者信息菜单 public static ReaderAddAction READER_ADD; // 读者信息添加窗口 //书信息菜单 public static BookTypeModAction BOOKTYPE_MODIFY; // 图书类型修改窗口 public static BookTypeAddAction BOOKTYPE_ADD; // 图书类型添加窗口 public static ReaderModAction READER_MODIFY; // 读者信息修改窗口 public static BookModAction BOOK_MODIFY; // 图书信息修改窗口 public static BookAddAction BOOK_ADD; // 图书信息添加窗口 4.3 借书功能实现 setTitle(\"图书借阅管理\"); setIconifiable(true); // 设置窗体可最小化---必须 setClosable(true); // 设置窗体可关闭---必须 setBounds(100, 100, 500, 375); final JScrollPane scrollPane = new JScrollPane(); scrollPane.setPreferredSize(new Dimension(400, 100)); 11 panel.add(scrollPane); final JPanel panel_1 = new JPanel(); panel_1.setPreferredSize(new Dimension(0, 120)); getContentPane().add(panel_1, BorderLayout.NORTH); final JSplitPane splitPane = new JSplitPane(); panel_1.add(splitPane); final JPanel panel_3 = new JPanel(); panel_3.setPreferredSize(new Dimension(240, 110)); splitPane.setLeftComponent(panel_3); final JPanel panel_5 = new JPanel(); final GridLayout gridLayout = new GridLayout(0, 2); gridLayout.setHgap(2); gridLayout.setVgap(10); panel_5.setLayout(gridLayout); panel_5.setPreferredSize(new Dimension(150, 100)); panel_3.add(panel_5); final JLabel label = new JLabel(); label.setText(\"读者编号:\"); panel_5.add(label); readerISBN = new JTextField(); readerISBN.setDocument(new Document(13)); readerISBN.addKeyListener(new ISBNListenerlostFocus()); panel_5.add(readerISBN); final JLabel label_1 = new JLabel(); label_1.setText(\"读者姓名:\"); panel_5.add(label_1); readerName = new JTextField(); readerName.setEditable(false); panel_5.add(readerName); final JLabel label_2 = new JLabel(); label_2.setText(\"可借数量:\"); panel_5.add(label_2); number = new JTextField(); number.setEditable(false); panel_5.add(number); 12 final JLabel label_4 = new JLabel(); label_4.setText(\"押 金:\"); panel_5.add(label_4); keepMoney = new JTextField(); keepMoney.setEditable(false); panel_5.add(keepMoney); Icon icon = new ImageIcon(\"1.gif\"); final JPanel panel_4 = new JPanel(); final GridLayout gridLayout_1 = new GridLayout(0, 2); gridLayout_1.setVgap(10); panel_4.setLayout(gridLayout_1); panel_4.setPreferredSize(new Dimension(240, 110)); splitPane.setRightComponent(panel_4); final JLabel label_5 = new JLabel(); label_5.setText(\"书籍编号:\"); panel_4.add(label_5); bookISBN = new JTextField(); bookISBN.setDocument(new Document(13)); bookISBN.addKeyListener(new bookISBNListenerlostFocus()); panel_4.add(bookISBN); final JLabel label_6 = new JLabel(); label_6.setText(\"书籍名称:\"); panel_4.add(label_6); bookName = new JTextField(); bookName.setEditable(false); panel_4.add(bookName); final JLabel label_7 = new JLabel(); label_7.setText(\"书籍类别:\"); panel_4.add(label_7); bookType = new JTextField(); bookType.setEditable(false); panel_4.add(bookType); final JLabel label_8 = new JLabel(); label_8.setText(\"书籍价格:\"); panel_4.add(label_8); 13 price = new JTextField(); price.setEditable(false); panel_4.add(price); final JPanel panel_2 = new JPanel(); panel_2.setPreferredSize(new Dimension(0, 100)); getContentPane().add(panel_2, BorderLayout.SOUTH); final JPanel panel_7 = new JPanel(); final GridLayout gridLayout_2 = new GridLayout(0, 2); gridLayout_2.setVgap(10); panel_7.setLayout(gridLayout_2); panel_7.setPreferredSize(new Dimension(280, 50)); panel_2.add(panel_7); final JLabel label_9 = new JLabel(); label_9.setText(\"当前时间:\"); panel_7.add(label_9); todaydate = new JTextField(); todaydate.setEditable(false); todaydate.setPreferredSize(new Dimension(0, 0)); todaydate.addActionListener(new TimeActionListener()); todaydate.setFocusable(false); panel_7.add(todaydate); final JLabel label_11 = new JLabel(); label_11.setText(\"操作员:\"); panel_7.add(label_11); final JButton buttonBorrow = new JButton(); buttonBorrow.setText(\"借出当前图书\"); buttonBorrow.addActionListener(new BorrowActionListener()); panel_8.add(buttonBorrow); final JButton buttonClear = new JButton(); buttonClear.setText(\"清除所有记录\"); buttonClear.addActionListener(new ClearActionListener(model)); panel_8.add(buttonClear); 14 五、 系统测试 5.1运行界面 5.2登陆后主界面 15 5.3子功能截图 16 17 5.4读者信息管理测试 18 六、心得体会 在本次图书馆信息管理系统的开发过程中,由于我们初次用数据库作为我们的数据存储来开发,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,系统在运行时仍有一些漏洞。虽然本管理系统存在着很多不足,但是通过开发这个系统,使我对项目开发的过程有了一定的了解,同时也进一步熟练和巩固了专业基本知识,巩固了我对Java和SQL的掌握。更重要的是使我明白了编程语言的相似的地方,可以通过对比学习使我更好的学习以后的编程语言以及更好的使用不同的数据库。 七、参考文献 [1]Java语言程序设计(第二版) 中国铁道出版社 [2]Java语言程序设计例题解析与实验指导(第二版) 中国铁道出版社 [3]数据库原理及应用(第三版)北京邮电大学出版社 [4]数据库原理及应用实验指导(第三版)北京邮电大学出版社 [5]各种网络资源 19 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务