资源描述
信息科学与工程学院 课程设计
题 目: 图书管理系统
姓 名:
学 号:
班 级: 13级本科四班 物联网
课 程: Java程序设计
任课教师
2014年12月20日
课程设计任务书及成绩评定
题 目
图书管理系统
课程设计的任务及要求
任务: 设计一个功能齐全,实用的XXX软件。软件设计合理、界面设计美观。
具体要求:
写明该软件完成了哪些功能
课程设计所需的软件、硬件等
硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G;
硬盘320G以上;1024×768显示分辨率
软件环境: JDK6.0以上、eclipse 等
设计报告:
1、设计目的和任务
2、总体设计:包括程序设计组成框图、流程图。
3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。
4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5、源程序清单和执行结果:清单中应有足够的注释。
任课教师评语
成绩: 教师签名: 日期:
目录
1前 言 3
1.1设计目的 4
1.2设计任务 4
1.3运行环境 4
2总体设计 4
2.1设计原理 4
3详细设计实现 5
3.1 代码 5
3.2 登陆后事件处理 12
4心得体会 15
1前 言
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
1.1设计目的
为了方便学校图书管理,加强师生之间的信息共享,图书管理系统是必不可少的一环。随着我国教育不断的发展知识不断的增多与多元化,图书信息处理日趋信息化,安全化。若继续使用传统的手工方式进行图书的管理,工作不但繁琐复杂,而且效率低下缺乏科学性以及合理性。随着计算机的应用的普及和深入,对图书进行统一管理,将成为管理学生的必要一环,也可以减少图书馆工作人员的工作量,真正实现图书管理的系统化、规范化、自动化达到提高图书信息查询效率提高的目的。充分利用计算机为辅助工具,实现从传统化向信息化的迈进,实现全面的办公自动化,为图书管理工作带来方便。
。。。。。。。
1.2设计任务
制作一款图书管理系统,是图书借阅,管理信息等更加方便快捷,改变传统方式的繁琐效率低下的特点。
。。。。。。
1.3运行环境
环境是在个人笔记本上搭建的,根据运行情况得出本系统的运行环境至少为:
硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G;
硬盘320G以上;1024×768显示分辨率
软件环境: JDK6.0以上、eclipse 等
2总体设计
2.1设计原理
利用Java语言及数据库知识,将JAVA与数据库链接,形成动态查询,便于对信息的进行更加清晰的查询。
3详细设计实现
3.1代码
其他代码由于数量原因省略此为main方法代码。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainWindow extends JFrame implements ActionListener
{
JPanel panel1;
Container c;
JMenuBar MenuB;
JMenu SystemMenu,BookMGRMenu,BorrowBookMenu,ReturnBookMenu,
InfoBrowseMenu,UserMGRMenu;
JMenuItem UserLoginMenuItem,UserAddMenuItem,UserModifyMenuItem,
UserDeleteMenuItem,ExitMenuItem,BookAddMenuItem,BookModifyMenuItem,BookDeleteMenuItem,
BorrowBookMenuItem,BorrowInfoMenuItem,ReturnBookMenuItem,ReturnInfoMenuItem,
BookListMenuItem,BorrowBookListMenuItem,UserListMenuItem;
JLabel titleLabel,AuthorLabel,DateLabel;
public MainWindow()
{
super("图书馆管理系统");
//--系统管理菜单--
MenuB=new JMenuBar();
SystemMenu=new JMenu("系统管理");
UserMGRMenu=new JMenu("用户管理");
UserLoginMenuItem=new JMenuItem("用户登录");
UserAddMenuItem=new JMenuItem("添加用户");
UserModifyMenuItem=new JMenuItem("修改用户");
UserDeleteMenuItem=new JMenuItem("删除用户");
ExitMenuItem=new JMenuItem("退出");
SystemMenu.add(UserLoginMenuItem);
UserMGRMenu.add(UserAddMenuItem);
UserMGRMenu.add(UserModifyMenuItem);
UserMGRMenu.add(UserDeleteMenuItem);
SystemMenu.add(UserMGRMenu);
SystemMenu.add(ExitMenuItem);
UserLoginMenuItem.addActionListener(this);
UserAddMenuItem.addActionListener(this);
UserModifyMenuItem.addActionListener(this);
UserDeleteMenuItem.addActionListener(this);
ExitMenuItem.addActionListener(this);
MenuB.add(SystemMenu);
//---书籍管理菜单--
BookMGRMenu=new JMenu("书籍管理");
BookAddMenuItem=new JMenuItem("添加书籍");
BookModifyMenuItem=new JMenuItem("修改书籍");
BookDeleteMenuItem=new JMenuItem("删除书籍");
BookMGRMenu.add(BookAddMenuItem);
BookMGRMenu.add(BookModifyMenuItem);
BookMGRMenu.add(BookDeleteMenuItem);
BookAddMenuItem.addActionListener(this);
BookModifyMenuItem.addActionListener(this);
BookDeleteMenuItem.addActionListener(this);
MenuB.add(BookMGRMenu);
//--借书管理菜单--
BorrowBookMenu=new JMenu("借书管理");
BorrowBookMenuItem=new JMenuItem("书籍出借");
BorrowInfoMenuItem=new JMenuItem("出借信息修改");
BorrowBookMenu.add(BorrowBookMenuItem);
BorrowBookMenu.add(BorrowInfoMenuItem);
BorrowBookMenuItem.addActionListener(this);
BorrowInfoMenuItem.addActionListener(this);
MenuB.add(BorrowBookMenu);
//--还书管理菜单--
ReturnBookMenu=new JMenu("还书管理");
ReturnBookMenuItem=new JMenuItem("书籍还入");
ReturnInfoMenuItem=new JMenuItem("书籍还入信息修改");
ReturnBookMenu.add(ReturnBookMenuItem);
ReturnBookMenu.add(ReturnInfoMenuItem);
ReturnBookMenuItem.addActionListener(this);
ReturnInfoMenuItem.addActionListener(this);
MenuB.add(ReturnBookMenu);
//--信息一览菜单--
InfoBrowseMenu=new JMenu("信息一览");
BookListMenuItem=new JMenuItem("书籍列表");
BorrowBookListMenuItem=new JMenuItem("借阅情况表");
UserListMenuItem=new JMenuItem("用户列表");
InfoBrowseMenu.add(BookListMenuItem);
InfoBrowseMenu.add(BorrowBookListMenuItem);
InfoBrowseMenu.add(UserListMenuItem);
BookListMenuItem.addActionListener(this);
BorrowBookListMenuItem.addActionListener(this);
UserListMenuItem.addActionListener(this);
MenuB.add(InfoBrowseMenu);
//----------------------------------
setJMenuBar(MenuB);
titleLabel=new JLabel(new ImageIcon(".\\pic.jpg"));
c=getContentPane();
c.setLayout(new BorderLayout());
panel1=new JPanel();
panel1.setLayout(new BorderLayout());
panel1.add(titleLabel,BorderLayout.CENTER);
c.add(panel1,BorderLayout.CENTER);
setBounds(100,50,400,300);
show();
//--设置初始功能:--
UserMGRMenu.setEnabled(false);
BookMGRMenu.setEnabled(false);
BorrowBookMenu.setEnabled(false);
ReturnBookMenu.setEnabled(false);
InfoBrowseMenu.setEnabled(false);
}
//--设置每个菜单点击后出现的窗口和窗口显示的位置--
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="用户登录")
{
UserLogin UserLoginFrame=new UserLogin(this);
Dimension FrameSize=UserLoginFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
UserLoginFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
UserLoginFrame.pack();
UserLoginFrame.show();
}
else if(e.getActionCommand()=="添加用户")
{
UserAdd UserAddFrame=new UserAdd();
Dimension FrameSize=UserAddFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
UserAddFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
UserAddFrame.pack();
UserAddFrame.show();
}
else if(e.getActionCommand()=="修改用户")
{
UserModify UserModifyFrame=new UserModify();
Dimension FrameSize=UserModifyFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
UserModifyFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
UserModifyFrame.pack();
UserModifyFrame.show();
}
else if(e.getActionCommand()=="删除用户")
{
UserDelete UserDeleteFrame=new UserDelete();
Dimension FrameSize=UserDeleteFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
UserDeleteFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
UserDeleteFrame.pack();
UserDeleteFrame.show();
}
else if(e.getActionCommand()=="添加书籍")
{
BookAdd BookAddFrame=new BookAdd();
Dimension FrameSize=BookAddFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BookAddFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BookAddFrame.pack();
BookAddFrame.show();
}
else if(e.getActionCommand()=="修改书籍")
{
BookModify BookModifyFrame=new BookModify();
Dimension FrameSize=BookModifyFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BookModifyFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BookModifyFrame.pack();
BookModifyFrame.show();
}
else if(e.getActionCommand()=="删除书籍")
{
BookDelete BookDeleteFrame=new BookDelete();
Dimension FrameSize=BookDeleteFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BookDeleteFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BookDeleteFrame.pack();
BookDeleteFrame.show();
}
else if(e.getActionCommand()=="书籍出借")
{
BorrowBook BorrowBookFrame=new BorrowBook();
Dimension FrameSize=BorrowBookFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BorrowBookFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BorrowBookFrame.pack();
BorrowBookFrame.show();
}
else if(e.getActionCommand()=="出借信息修改")
{
BorrowInfo BorrowInfoFrame=new BorrowInfo();
Dimension FrameSize=BorrowInfoFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BorrowInfoFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BorrowInfoFrame.pack();
BorrowInfoFrame.show();
}
else if(e.getActionCommand()=="书籍还入")
{
ReturnBook ReturnBookFrame=new ReturnBook();
Dimension FrameSize=ReturnBookFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
ReturnBookFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
ReturnBookFrame.pack();
ReturnBookFrame.show();
}
else if(e.getActionCommand()=="书籍还入信息修改")
{
ReturnInfo ReturnInfoFrame=new ReturnInfo();
Dimension FrameSize=ReturnInfoFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
ReturnInfoFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
ReturnInfoFrame.pack();
ReturnInfoFrame.show();
}
else if(e.getActionCommand()=="书籍列表")
{
BookList BookListFrame=new BookList();
Dimension FrameSize=BookListFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BookListFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BookListFrame.pack();
BookListFrame.show();
}
else if(e.getActionCommand()=="借阅情况表")
{
BorrowBookList BorrowBookListFrame=new BorrowBookList();
Dimension FrameSize=BorrowBookListFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
BorrowBookListFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
BorrowBookListFrame.pack();
BorrowBookListFrame.show();
}
else if(e.getActionCommand()=="用户列表")
{
UserList UserListFrame=new UserList();
Dimension FrameSize=UserListFrame.getPreferredSize();
Dimension MainFrameSize=getSize();
Point loc=getLocation();
UserListFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,
(MainFrameSize.height-FrameSize.height)/2+loc.y);
UserListFrame.pack();
UserListFrame.show();
}
else if(e.getActionCommand()=="退出")
{
this.dispose();
System.exit(0);
}
}
//--设置登录用户的权限--
public void setEnable(String powerType)
{
if(powerType.trim().equals("系统管理员"))
{
UserMGRMenu.setEnabled(true);
BookMGRMenu.setEnabled(true);
BorrowBookMenu.setEnabled(true);
ReturnBookMenu.setEnabled(true);
InfoBrowseMenu.setEnabled(true);
UserListMenuItem.setEnabled(true);
}
else if(powerType.trim().equals("书籍管理员"))
{
UserMGRMenu.setEnabled(false);
BookMGRMenu.setEnabled(true);
BorrowBookMenu.setEnabled(false);
ReturnBookMenu.setEnabled(false);
InfoBrowseMenu.setEnabled(true);
UserListMenuItem.setEnabled(false);
}
else if(powerType.trim().equals("借阅管理员"))
{
UserMGRMenu.setEnabled(false);
BookMGRMenu.setEnabled(false);
BorrowBookMenu.setEnabled(true);
ReturnBookMenu.setEnabled(true);
InfoBrowseMenu.setEnabled(true);
UserListMenuItem.setEnabled(false);
}
else if(powerType.trim().equals("else"))
{
UserMGRMenu.setEnabled(false);
BookMGRMenu.setEnabled(false);
BorrowBookMenu.setEnabled(false);
ReturnBookMenu.setEnabled(false);
InfoBrowseMenu.setEnabled(false);
}
}
public static void main(String args[])
{
MainWindow mainFrame=new MainWindow();
3.2界面显示
(1)此为初始界面
(2)admin登陆汉字变黑体为登陆成功,否则登录失败.
(3)root登陆汉字中只有系统管理,书籍管理,和信息一览变黑为登陆成功否则失败。
(4)lxy登陆汉字中只有书籍管理未变黑为登陆成功否则登录失败。
(5)jl为其他人登陆只有系统管理变黑说明此人无法登录,及登录失败。
4心得体会
1. 设计过程中遇到的问题以及解决方法
(1) 在设计过程中有连时库不成功的,但是经过老师的知道级同学的帮助,最终解决问题。
(2) 在计界面是出现错误,经过长时间的调试,解决该问题。
2. 设计过程的体会
(1) 设计图书管理系统的流程,实际上代表了一种从抽象到具体化的过程。采取了逐步向下细化,直至每个属性都得到确定。
(2) 本次课程设计大规模的应用了书本所学的理论知识,比如说:JAVA基础语言、数据库关系模式分析、E-R图应用等。可以说,是对我们所学知识的一次实践检验,更加深了对数据库和JAVA的理解。
(3) 在设计的初期,受到了传统图书管理的影响,一些矛盾无法得到解决。比如说:如何解决传统信息管理与现代计算机的结合方式,最终我们想到了利用数据库建表查询,JAVA建类相结合的方式制作了现在的图书管理系统。
(4) 本次设计让我们受益匪浅:我们学到了做事要分主次、不能脱离重点。课程设计最主要的是设计出一个合理的系统,其重点是数据库与JAVA结合延伸,而不是将重点放在程序界面设计、代码的优化上。
作品说明
李晓雨 Java代码
刘颖 接Oracle
}
17
展开阅读全文