1、信息科学与工程学院 课程设计题 目: 图书管理系统 姓 名: 学 号: 班 级: 13级本科四班 物联网 课 程: Java程序设计 任课教师 2014年12月20日课程设计任务书及成绩评定题 目图书管理系统课程设计的任务及要求任务: 设计一个功能齐全,实用的XXX软件。软件设计合理、界面设计美观。具体要求: 写明该软件完成了哪些功能 课程设计所需的软件、硬件等硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024768显示分辨率软件环境: JDK6.0以上、eclipse 等设计报告:1、设计目的和任务2、总体设计:包括程序
2、设计组成框图、流程图。3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。5、源程序清单和执行结果:清单中应有足够的注释。任课教师评语 成绩: 教师签名: 日期: 目录1前 言31.1设计目的41.2设计任务41.3运行环境42总体设计42.1设计原理43详细设计实现53.1 代码53.2 登陆后事件处理124心得体会151前 言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Jav
3、a语言的名字从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有
4、Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 1.1设计目的为了方便学校图书管理,加强师生之间的信息共享,图书管理系统是必不可少的一环。随着我国教育不断的发展知识不断的增多与多元化,图书信息处理日趋信息化,安全化。若继续使用传统的手工方式进行图书的管理,工作不但繁琐复杂,而且效率低下缺乏科学性以及合理
5、性。随着计算机的应用的普及和深入,对图书进行统一管理,将成为管理学生的必要一环,也可以减少图书馆工作人员的工作量,真正实现图书管理的系统化、规范化、自动化达到提高图书信息查询效率提高的目的。充分利用计算机为辅助工具,实现从传统化向信息化的迈进,实现全面的办公自动化,为图书管理工作带来方便。1.2设计任务制作一款图书管理系统,是图书借阅,管理信息等更加方便快捷,改变传统方式的繁琐效率低下的特点。1.3运行环境环境是在个人笔记本上搭建的,根据运行情况得出本系统的运行环境至少为:硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024
6、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 ActionListenerJPanel panel1;Container c;JMenuBar MenuB;J
7、Menu SystemMenu,BookMGRMenu,BorrowBookMenu,ReturnBookMenu,InfoBrowseMenu,UserMGRMenu;JMenuItem UserLoginMenuItem,UserAddMenuItem,UserModifyMenuItem,UserDeleteMenuItem,ExitMenuItem,BookAddMenuItem,BookModifyMenuItem,BookDeleteMenuItem,BorrowBookMenuItem,BorrowInfoMenuItem,ReturnBookMenuItem,ReturnInf
8、oMenuItem,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(添加用户);
9、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(ExitMenuI
10、tem);UserLoginMenuItem.addActionListener(this);UserAddMenuItem.addActionListener(this);UserModifyMenuItem.addActionListener(this);UserDeleteMenuItem.addActionListener(this);ExitMenuItem.addActionListener(this);MenuB.add(SystemMenu);/-书籍管理菜单-BookMGRMenu=new JMenu(书籍管理);BookAddMenuItem=new JMenuItem(添
11、加书籍);BookModifyMenuItem=new JMenuItem(修改书籍);BookDeleteMenuItem=new JMenuItem(删除书籍);BookMGRMenu.add(BookAddMenuItem);BookMGRMenu.add(BookModifyMenuItem);BookMGRMenu.add(BookDeleteMenuItem);BookAddMenuItem.addActionListener(this);BookModifyMenuItem.addActionListener(this);BookDeleteMenuItem.addActionL
12、istener(this);MenuB.add(BookMGRMenu);/-借书管理菜单-BorrowBookMenu=new JMenu(借书管理);BorrowBookMenuItem=new JMenuItem(书籍出借);BorrowInfoMenuItem=new JMenuItem(出借信息修改);BorrowBookMenu.add(BorrowBookMenuItem);BorrowBookMenu.add(BorrowInfoMenuItem);BorrowBookMenuItem.addActionListener(this);BorrowInfoMenuItem.add
13、ActionListener(this);MenuB.add(BorrowBookMenu);/-还书管理菜单-ReturnBookMenu=new JMenu(还书管理);ReturnBookMenuItem=new JMenuItem(书籍还入);ReturnInfoMenuItem=new JMenuItem(书籍还入信息修改);ReturnBookMenu.add(ReturnBookMenuItem);ReturnBookMenu.add(ReturnInfoMenuItem);ReturnBookMenuItem.addActionListener(this);ReturnInfo
14、MenuItem.addActionListener(this);MenuB.add(ReturnBookMenu);/-信息一览菜单-InfoBrowseMenu=new JMenu(信息一览);BookListMenuItem=new JMenuItem(书籍列表);BorrowBookListMenuItem=new JMenuItem(借阅情况表);UserListMenuItem=new JMenuItem(用户列表);InfoBrowseMenu.add(BookListMenuItem);InfoBrowseMenu.add(BorrowBookListMenuItem);Inf
15、oBrowseMenu.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 BorderLay
16、out();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.setEnabl
17、ed(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();User
18、LoginFrame.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 MainFram
19、eSize=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=Use
20、rModifyFrame.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()=删除用户)UserDele
21、te 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();UserDe
22、leteFrame.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.he
23、ight)/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-FrameS
24、ize.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=getLocati
25、on();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.getPreferredS
26、ize();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 B
27、orrowInfo();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
28、(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+l
29、oc.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-Frame
30、Size.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();Bo
31、okListFrame.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.getPrefer
32、redSize();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 UserListF
33、rame=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
34、(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);UserLis
35、tMenuItem.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(借阅管理员)UserM
36、GRMenu.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.se
37、tEnabled(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为其他人登陆只有系统管理变黑说明此人无法登录
38、,及登录失败。4心得体会1. 设计过程中遇到的问题以及解决方法 (1) 在设计过程中有连时库不成功的,但是经过老师的知道级同学的帮助,最终解决问题。(2) 在计界面是出现错误,经过长时间的调试,解决该问题。2. 设计过程的体会 (1) 设计图书管理系统的流程,实际上代表了一种从抽象到具体化的过程。采取了逐步向下细化,直至每个属性都得到确定。(2) 本次课程设计大规模的应用了书本所学的理论知识,比如说:JAVA基础语言、数据库关系模式分析、E-R图应用等。可以说,是对我们所学知识的一次实践检验,更加深了对数据库和JAVA的理解。 (3) 在设计的初期,受到了传统图书管理的影响,一些矛盾无法得到解决。比如说:如何解决传统信息管理与现代计算机的结合方式,最终我们想到了利用数据库建表查询,JAVA建类相结合的方式制作了现在的图书管理系统。 (4) 本次设计让我们受益匪浅:我们学到了做事要分主次、不能脱离重点。课程设计最主要的是设计出一个合理的系统,其重点是数据库与JAVA结合延伸,而不是将重点放在程序界面设计、代码的优化上。作品说明李晓雨 Java代码刘颖 接Oracle17