Java课程设计图书管理系统.doc_第1页
Java课程设计图书管理系统.doc_第2页
Java课程设计图书管理系统.doc_第3页
Java课程设计图书管理系统.doc_第4页
Java课程设计图书管理系统.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书管理系统*JAVA课程设计题 目 _图书管理系统_学生姓名 * 专业班级 * 学 号 * 所 在 系 *指导教师 * 完成时间 2011年 12月 17 日*课程设计(论文)任务书题目 图 书 管 理 系 统 专业 计算机科学与技术学号 * 姓名 *一、主要内容 运用所学知识,结合java和数据库方面的相关知识,编写图形用户界面的图书管理学系统二、基本要求运用java语言编写程序,实现图形用户界面的图书管理系统。该系统能对数据库中的数据进行增、删、查、改等方面的功能。三、主要参考资料: 叶核亚.Java课程设计使用教程电子工业出版社 王珊.数据库概论(第四版)高等教育出版设完 成 期 限: 指导教师签名: 评审小组负责人签名: 2011年 12 月 17 日目录前言31 需求分析52 系统分析52.1 系统目标52.2 构建开发环境52.3 系统界面预览63 数据库设计83.1 数据库分析93.2 项目E-R图94 系统各部分模块的实现分析104.1 用户登录模块实现104.2数据库操纵类的实现124.3系统主界面实现134.4 图书管理模块16参考文献22致谢22前言随着人类社会的不断进步,科学技术有了长足的发展,尤其是在当今这个知识经济时代,知识的大爆炸带来全球图书业的的飞速发展,这些书籍为科技的发展做出了巨大的贡献。人类在短短的几十年创造了大量的书籍资源,但图书数量之多,也使其管理成为一项繁重的工作。随着信息时代的来临,图书的信息化管理使这个难题的解决成为现实。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便很多。对图书管理部门而言,以前单一的手工检索已经不能满足人们的要求,为了便于图书管理必须要有一套有效的图书管理软件。1 需求分析通过与图书管理人员进行细致交流,最终确定本系统要具备以下功能学生用户管理,实现学生信息的增、删、改、查;图书管理,实现图书的增、删、改、查;管理员管理,对管理员信息的增、删、改、查;借阅图书,对学生借阅图书的管理。2 系统分析2.1 系统目标实现需求分析阶段提出的功能使用当前比较流行的树状列表控件作为导航,直观的显示出系统结构。2.2 构建开发环境开发此系统需要如下软件环境 JDK 1.6:1.6版本增加了许多新特性,可以免费下载。数据库:SQL SERVER 2005 。 2.3 系统界面预览1 管理员进行系统管理前,首先要进入登陆界面。当输入正确信息后,单击“管理员登陆”按钮就可进入图书管理系统主界面,登陆界面如图1所示。 2 管理员可在图书管理主界面,如图2所示,进行查看及管理等操作。图 23 管理员可在“学生用户管理”界面,如图3所示,对学生信息进行管理,包括添加、删除、修改、查询等操作图 34 管理员可以在“管理员管理”界面,如图4所示,对管理员信息进行管理,包括对其进行增删查改等操作。图 45 管理员可以在“图书管理”界面,如图5所示,对图书信息进行管理,包括对其进行增删查改。图 56 管理员可以在“查询图书”界面,如图6所示,进行查询操作。图 63 数据库设计数据库作为系统的基础,首先要保证其设计的合理性。在使用系统时,拥有设计合理的数据库往往可以起事半功倍的效果。3.1 数据库分析本系统的数据库比较小,对数据库的要求不算高,采用SQL SERVER 2005 作为系统开发的数据库。3.2 项目E-R图 该系统包含的实体主要有图书、学生、管理员等, 管理员和图书的E-R图,如图7所示 学生E-R图,如图8所示 各个实体间的关系,如图9所示 各个实体间的简单关系,如图10所示管理员名称权限密码图书购买时间是否借阅是否预约作者书名出版社书号图7 管理员、图书E-R图学生密码姓名年龄学号性别图8 学生用户E-R图管理员学生图书管理管理管理mnmnmn图9 实体间关系图4 系统各部分模块的实现分析4.1 用户登录模块实现 用户登录界面的主要功能是验证登陆者的身份,只有管理员才能成功登录系统。登录部分源代码如下:public class Login extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;/初始化面板、标签、及按钮private JPanel jp = new JPanel() ; private JLabel jla = new JLabel( 图书管理系统,new ImageIcon (logo.png),JLabel.RIGHT); private JLabel jlArray = new JLabel(用户),new JLabel(密码),;private JButton jbArray = new JButton(管理员登录),new JButton(取消),;private JTextField jt = new JTextField();private JPasswordField jw = new JPasswordField();/构造方法 public Login()super(用户登录);jp.setLayout(null);/设置空布局/标签位置及大小for(int i=0;i2;i+)jlArrayi.setBounds(30,90+i*50,80,25);/设置标签的位置及大小jp.add(jlArrayi); /按钮位置及大小for(int i=0;i2;i+)jbArrayi.setBounds(70+i*120, 200, 100, 25);jp.add(jbArrayi);jbArrayi.addActionListener(this);jt.setBounds(80, 90, 200, 25);jp.add(jt);jw.setBounds(80,140, 200, 25);jp.add(jw);jla.setFont(new Font(华文行楷,1,25);/设置字体类型及大小jla.setForeground(Color.orange);/设置字体颜色jla.setBounds(40, 20, 220,40);this.add(jla);this.add(jp);this.setBounds(300, 200, 380, 300);/设置主框架位置及大小Image logo = new ImageIcon(logo.png).getImage();/设置框架图标this.setIconImage(logo);this.setVisible(true);4.2数据库操纵类的实现数据库操纵类主要是用于连接数据库、执行查询、更新等功能。具体代码如下public class Database Connection con;Statement stat;ResultSet rs;int count=0;/构造方法public Database()String url1 = sun.jdbc.odbc.JdbcOdbcDriver;String url2 = jdbc:odbc:Library_manager;try Class.forName(url1);/加载驱动con = DriverManager.getConnection(url2);/创建连接stat = con.createStatement(); catch (Exception e) /发现异常时弹出警告的对话框JOptionPane.showMessageDialog(new Login(),数据库连接异常!); /查询数据库方法public void select(String sql)try rs = stat.executeQuery(sql); catch (Exception e) e.printStackTrace();/更新数据库方法public int update(String sql)try count = stat.executeUpdate(sql); catch (Exception e) e.printStackTrace(); finallySystem.out.print(count);return count;/关闭数据库public void dbClose()try con.close(); catch (Exception e) e.printStackTrace();4.3系统主界面实现 系统主界面的窗体左边是一个树状列表控件,实现导航功能,右边是一个卡片布局的面板,其部分代码如下所示public class Root extends JFrame /创建树节点DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode(new NodeValue(图书管理系统),new DefaultMutableTreeNode(new NodeValue(学生用户管理),new DefaultMutableTreeNode(new NodeValue(管理员管理), new DefaultMutableTreeNode(new NodeValue(借阅图书),new DefaultMutableTreeNode(new NodeValue(图书管理),new DefaultMutableTreeNode(new NodeValue(查找图书),new DefaultMutableTreeNode(new NodeValue(退出);DefaultTreeModel dtm = new DefaultTreeModel(dmtn0);CardLayout c1 = new CardLayout();private JTree jt = new JTree(dtm); JScrollPane jsp1 = new JScrollPane(jt);private JPanel jp = new JPanel(); /以标签的形式实现主界面的图片显示ImageIcon ii = new ImageIcon(main.jpg);private JLabel jl= new JLabel(ii);/创建分割面板JSplitPane jsplr = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true); /构造方法public Root()super(图书管理系统);this.initJp();this.addTreeListener();for(int i=1;i7;i+)dtm.insertNodeInto(dmtni, dmtn0,i-1);jt.setEditable(false);/设置树节点不可编辑jt.expandRow(0);/默认展开树节点0this.add(jsplr);jsplr.setLeftComponent(jt);jp.setBounds(200,50,600,500);jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);/初始分隔条的位置是200jsplr.setDividerSize(4);/设置面板的位置及大小 大小及插入图片的大小jl.setBounds(0,0,jl.getHorizontalAlignment(),jl.getVerticalAlignment();this.setBounds(150,120, 900, 520);Image logo = new ImageIcon(logo.png).getImage();this.setIconImage(logo);this.setVisible(true);jt.setShowsRootHandles(true);/初始化方法public void initJp() jp.setLayout(c1);jp.add(root,jl); jp.add(search,new SearchBook(); jp.add(bm,new BookManager(); jp.add(stu,new Student(); jp.add(man,new Manager();/时间监听方法的实现,以卡片布局的方式public void addTreeListener()jt.addTreeSelectionListener(new TreeSelectionListener()public void valueChanged(TreeSelectionEvent e)DefaultMutableTreeNode cdmtn = (DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeValue cnv = (NodeValue)cdmtn.getUserObject();if(cnv.value.equals(图书管理系统)c1.show(jp,root);if(cnv.value.equals(null)c1.show(jp,root);if(cnv.value.equals(查找图书)c1.show(jp, search);if(cnv.value.equals(学生用户管理)c1.show(jp, stu);if(cnv.value.equals(图书管理)c1.show(jp, bm);if(cnv.value.equals(管理员管理)c1.show(jp, man);if(cnv.value.equals(退出)int i = JOptionPane.showConfirmDialog(Root.this, 是否退出系统?);if(i=JOptionPane.YES_OPTION)System.exit(0););自定义节点类/ /class NodeValueString value;public NodeValue(String value)this.value = value;public String toString() return value; public String getValue()return this.value;4.4 图书管理模块对于图书馆来说,最终要进行管理的资源就是图书了,图书信息的管理占管理员工作的很大一部分,图书管理模块的功能主要包括图书入库,删除图书记录,修改图书信息和查询图书等操作。具体代码如下public class BookManager extends JPanel implements ActionListener /构建标签数组private JLabel jlArray = new JLabel(书 号:),new JLabel(书 名:),new JLabel(作 者:),new JLabel(出 版 社:),new JLabel(购买时间:),;/构建文本框数组private JTextField jtArray = new JTextField(),new JTextField(),new JTextField(),new JTextField(),;String str2 = 1,2,3,4,5,6,7,8,9,10,11,12;String str3 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;Stringstr1=1990,1991,1992,1993,1994,1995,1996,1997,1998,2000,2002,2004,2005,2006,2008,2010,2011;private JButton jbArray = new JButton(图书入库),new JButton(删除图书),new JButton(修改图书),new JButton(查询图书);private JComboBox jcbArray=new JComboBox(str1),new JComboBox(str2),new JComboBox(str3),;JPanel jp1 = new JPanel();JPanel jp2 = new JPanel();JSplitPane jsp = new JSplitPane (JSplitPane.VERTICAL_SPLIT,true); /向量的初始化,以便后面以向量的方法向图表中添加数据 Vector head = new Vector (); head.add(书号);head.add(书名);head.add(作者);head.add(出版社);head.add(购进时间);Vector data = new Vector();DefaultTableModel dtm = new DefaultTableModel(data,head);JTable jtable = new JTable(dtm);JScrollPane jspn = new JScrollPane(jtable);/构造方法public BookManager()this.setLayout(new GridLayout(1,1);jp1.setLayout(null);jp2.setLayout(null);for(int i=0;i4;i+)jbArrayi.setBounds(120+i*120,150,120,20);jp1.add(jbArrayi);jbArrayi.addActionListener(this);for(int i=0;i3;i+)jtArrayi.setBounds(110, 40+i*30, 150, 25);jp1.add(jtArrayi);jtArray3.setBounds(380,40,150,25);jp1.add(jtArray3);for(int i =0;i3;i+)jlArrayi.setBounds(30, 40+i*30, 50, 25);jp1.add(jlArrayi);for(int i =3;i5;i+)jlArrayi.setBounds(280, 40+(i-3)*30, 70, 25);jp1.add(jlArrayi);for(int i=0;i3;i+)jcbArrayi.setBounds(380+i*60,70,60,25);jp1.add(jcbArrayi);JLabel jl = new JLabel(图书管理);jl.setFont(new Font(华文行楷,1,25);/设置字体类型及大小jl.setBounds(300,1,200,40);jp1.add(jl); jsp.setTopComponent(jp1);jsp.setBottomComponent(jspn);jsp.setDividerSize(4);this.add(jsp);jsp.setDividerLocation(200);初始分隔条位置为200像素/时间监听方法的实现 public void actionPerformed(ActionEvent e) if (e.getSource()=jbArray0)this.insertBook(); if (e.getSource()=jbArray1)this.deleteBook(); if (e.getSource()=jbArray2)this.updateBook(); if (e.getSource()=jbArray3) JOptionPane.showMessageDialog(this, 强烈建议用查询图书模块!); return; /插入功能的实现 public void insertBook() for(int i=0; i4; i+) str1i = jtArrayi.getText().trim(); for(int i=0;i0) JOptionPane.showM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论