1、java课程设计图书馆信息管理系统 Java 课程设计报告题 目: 图书馆信息管理系统 学生姓名: 学 号: 专业班级: 同组姓名: 指导教师: 设计时间: 2012年上学期第17周 指导老师意见: 评定成绩: 签名: 日期:一、系统描述1.1问题的提出 图书馆的管理直接关系到我们大学生如何更好的使用图书,针对当今的大学图书馆藏书越来越多,学生借书越来越频繁,图书管理较为繁琐,图书馆管理工作人员付出的工作时间越来越多,得到的效率却很低这个现状,决定开发学校图书馆管理系统软件,以帮助更好的实现图书馆的管理,让我们能更便捷的借阅图书,让图书馆管理员能花最少的时间办理好借阅图书手续。1.2可行性分析
2、1.2.1技术可行性 首先,我们已经学习了Java这门课程,对Java编程有一定的了解,这在编程的技术上是可行的。 其次,由于本系统的开发是基于本地客户端的,仅仅利用数据库来进行数据的查询,增加,修改,删除,并不涉及数据库的高级操作,如触发器,存储过程,而MySQL遵循SQL的语法,完全支持标准SQl的各种操作,完全满足上述需要。本系统数据量不是很大,不用使用大型的数据库来存储数据。MySQL安装和卸载都很方便,不会出现卸载不干净等问题,同时MySQL提供定制安装,可以满足客户的个性化要求,利用MySQL操作数据也很方便,如果不想在命令行下进行操作,可以利用Navicat Premium在图形
3、界面下操作数据,MySQL完全支持标准SQL的语法,比如Select,Delete,Insert,Update这些常用操作。 MySQL检索数据速度很快,占用的内存资源很小,对硬件的要求很低,操作时不会出现操作缓慢的问题,在使用MySQL时,用户可以很快的查询到需要的数据。综上所述,本小组能够完成一个一个比较简单的图书馆信息管理系统的设计。1.2.2经济可行性此系统是由在校大学生开发的学校图书馆管理信息系统。此系统在开发方式上对系统的需求,由于学校图书馆的借阅是一种无商业利益的,所以系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用是作为系统开发的指导思想。本
4、系统完全能够在校园图书馆管理工作中发挥重要作用,而作为个人,能在软件开发能力方面得到锻炼和提高也是十分重要的,本系统在此不注重任何社会经济目标。1.3系统功能分析 通过对图书馆的了解,确定本系统具备一下功能。.学生端查询图书,学生可以进行简单的数据查询和高级查询挂失图书,当图书丢失时进行相关的挂失预约图书,当所借书不在管内时可以对图书进行预约 .管理员端图书管理,包括对图书的增、删、改、查 ; 管理员管理,超级管理员能对普通管理员进行增、删、改,普通管理员只有修改自己的信息进行修改借阅管理,即对图书的外借和归还及交纳罚款的管理二、分析与设计2.1功能模块划分学生端口实现对图书的查询,预约与挂失
5、功能,管理员端口实现对图书的管理以及对用户的管理等。具体的功能模块图如下: 图1 系统功能模块图2.2数据库结构的描述2.2.1 图设计根据系统结构图和数据流图描述出实体联系图E-R图,该系统包含的实体主要有图书、学生、管理员。 图2 学生用户管理图 图4实体间简单的关系图2.2.2数据库概念设计 根据相关功能设计和E-R图,确定本系统共设计7张表,分别为学生用户基本信息表、管理员基本信息表、图书基本信息表、超期图书信息表、预约图书信息表、挂失图书信息表、借阅图书信息表。学生用户基本信息表:用于记录学生用户的基本信息,主要字段为学生用户和密码等,具体如下Create table student
6、(StuNo int primary key, not nullStuName 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 varch
7、ar(50) not null);图书基本信息表:该表用于记录图书的基本信息,其具体实现如下Create table book (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 p
8、rimary 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);预约图书信息表: 该
9、表用来记录学生预约的图书信息,包括图书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) );3、 系统详细设计文档.1系统主界面设计.主页面详细设计四、部分模块功能描述 4.1登陆界面
10、介绍登录界面有“用户类型”的登录选择项,还有“新用户注册”项。 4.2登录后的主界面介绍登陆后界面如下:附上主要代码:public class MenuActions private static Map frames; / ? /? public static ExitAction EXIT; / ? public static UserAddAction USER_ADD; / ? public static UserModAction USER_MODIFY; / ? public static PasswordModAction MODIFY_PASSWORD; / ? /? publ
11、ic 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 ReaderAddActio
12、n 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(tru
13、e); / ?-? setClosable(true); / ?-? setBounds(100, 100, 500, 375); final JScrollPane scrollPane = new JScrollPane(); scrollPane.setPreferredSize(new Dimension(400, 100); panel.add(scrollPane); final JPanel panel_1 = new JPanel(); panel_1.setPreferredSize(new Dimension(0, 120); getContentPane().add(pa
14、nel_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 GridLa
15、yout(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 Docume
16、nt(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.
17、setText(?:); panel_5.add(label_2); number = new JTextField(); number.setEditable(false); panel_5.add(number); 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 ImageIco
18、n(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
19、(?:); 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.setEdi
20、table(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); price = new JTextField
21、(); 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
22、); 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); today
23、date.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 BorrowAct
24、ionListener(); panel_8.add(buttonBorrow); final JButton buttonClear = new JButton(); buttonClear.setText(?); buttonClear.addActionListener(new ClearActionListener(model); panel_8.add(buttonClear);五、 系统测试5.1运行界面5.2登陆后主界面5.3子功能截图 5.4读者信息管理测试六、心得体会在本次图书馆信息管理系统的开发过程中,由于我们初次用数据库作为我们的数据存储来开发,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,系统在运行时仍有一些漏洞。虽然本管理系统存在着很多不足,但是通过开发这个系统,使我对项目开发的过程有了一定的了解,同时也进一步熟练和巩固了专业基本知识,巩固了我对Java和SQL的掌握。更重要的是使我明白了编程语言的相似的地方,可以通过对比学习使我更好的学习以后的编程语言以及更好的使用不同的数据库。7、参考文献1Java语言程序设计(第二版) 中国铁道出版社2Java语言程序设计例题解析与实验指导(第二版) 中国铁道出版社3数据库原理及应用(第三版)北京邮电大学出版社4数据库原理及应用实验指导(第三版)北京邮电大学出版社5各种网络资源
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1