数据库系统概论课程设计-图书管理系统开发.doc_第1页
数据库系统概论课程设计-图书管理系统开发.doc_第2页
数据库系统概论课程设计-图书管理系统开发.doc_第3页
数据库系统概论课程设计-图书管理系统开发.doc_第4页
数据库系统概论课程设计-图书管理系统开发.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

枣 庄 学 院信息科学与工程学院课程设计任务书 题 目: 图书管理系统开发 学 号: 姓 名: 年 级: 专 业: 课 程: 数据库系统概论 指导教师: 职 称: 完成时间: 2011 年11 月-2011 年12 月枣庄学院信息科学与工程学院制课程设计的任务和具体要求:根据现实生活、综合运用多门学科来设计一个数据库以及数据库应用系统,实现对信息的合理有效的管理。本课程设计的选题是图书管理系统,要求:用SQL Server 2005来建立一个名为“图书管理系统”的关系数据库,这其中要运用到数据库系统概论中的详尽知识,比如表的建立,关系的完整性 用Java做一个数据库应用系统,利用Java提供的控件进行数据库操作,实现SQL 强大的数据库操作语言,能够完成查询、插入、删除、修改等操作。指导教师签字:_ 日期:_指导教师评语:成绩:_ 指导教师签字:_ 日期:_课程设计任务书及成绩评定 课程设计所需软件、硬件等硬件:PC、U盘软件:Windows XP Java ,Microsoft SQL Server 2005课程设计进度计划起至日期2011年11月2011年12月工作内容1.设计准备阶段2.分析设计阶段3.数据库设计实施阶段4.前台设计5.总结报告阶段备注查阅资料,方案论证找出实现方法,按照需求分析、总体设计、详细设计E-R图设计,数据库和表的创建用Java做前台参考文献 、资料索引序号文献、资料名称编著者出版单位1 数据库系统概论(第四版) 王珊 萨师煊 高等教育出版社2 大型数据库SQL Server2005 迟庆云等 清华大学出版社 3 Java2实用教程(第2版) 耿祥义等 清华大学出版社 目 录1绪论12 需求说明 2.1需求分析.52.2功能需求.52.3安全性需求 63.概念模型设计 3.1读者实体.63.2图书实体.63.3借书实体E-R图73.4系统实体E-R图.74. 逻辑设计.85. 物理设计86. 数据实施和维护.107. 总结.461.绪论随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。随着科技的飞跃进步,对信息的管理也是越来越规范,越来越精确。不仅让信息合理规范的管理,同时也方便管理者方便的快速查询,提高了管理的效率。对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务的需要。高效性的通过系统的实用,能够改变旧的图书管理模式,使对图书的管理、借阅、查询更加方便有效。2.需求说明2.1 需求分析 随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。 传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。2.2 功能需求2.2.1功能划分图书管理系统主要实现以下5方面的功能:a.图书入库 b.查询 c.修改信息 d.图书借还e.系统管理2.2.2功能描述1书籍管理功能:包括书籍类别管理和书籍信息管理两部分。2读者管理部分:这一部分包括对读者信息进行管理的功能。3借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。4系统管理:包括修改系统用户密码、增加新用户以及退出系统等。2.3 安全性需求 每位用户根据自己的身份不同,进入不同的用户界面。管理员有权力行使所有的管理功能,普通用户只能进行一般的查询。3.概念模型设计3.1 读者实体读者实体学号姓名系别借书证号证号性别联系电话图3-1读者实体3.2 图书实体图书实体图书编号出版日期数据库配置文件已经安装到 D:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 D:oracleproduct10.2.0db_1。iSQL*Plus URL 为:47:5560/isqlplusiSQL*Plus DBA URL 为:47:5560/isqlplus/dba证号作者图书名称类别编号图3-2 图书实体3.3 借书实体E-R图借书信息实体图书编号借书证号借出日期还书日期借出状态图3-3借书实体3.4 系统实体E-R图读者图书借阅图3-4实体E-R图4.逻辑设计图书实体(图书编号,类别编号,图书名称,作者,出版日期)读者实体(学号,姓名,性别,系别,借书证号,联系电话)借书信息实体(图书编号,读者编号,借出日期,还书编号,借书状态)5.物理设计由数据模型利用SQLsever2000进行数据库的详细设计,本系统设计的数据库名为shop,其基本表的设计如下:(1) 学生信息表字段名称数据类型大小学号varchar50姓名varchar20性别varchar4系别varchar5联系电话varchar50借书证号varchar50密码varchar15(2)图书明细表字段名称数据类型大小图书编号int50图书名称varchar20作者varchar4出版社varchar5出版日期varchar50定价varchar50类别编号varchar15状态char6(3)图书类别字段名称数据类型大小类别编号smallint2图书类别nvarchar20(4)用户字段名称数据类型大小姓名varchar20性别varchar4类型varchar50联系电话varchar15密码varchar50(5)借出信息字段名称数据类型大小借出编号int4图书编号int 4借书证号varchar50借出日期smalldatetime4借出状态bit4本系统包括的模块主要有如下几个部分:图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块 具体的功能描述如下: 图书管理:其功能是管理书库中图书的记录信息,对入库图书信息进行管理,并进行查询。借阅管理:其功能是对读者借阅信息进行查询。读者管理:其功能是对读者一般信息进行查询以及维护。系统管理:其功能是为系统的使用者进行帐户和密码管理以及基础数据维护。其子系统描述:1.图书管理包括图书入库功能,主要整理图书的数量、类别和各种相关的信息等。2.图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己的借阅情况时,可进行借阅查询。3.读者管理包括读者登记,读者信息管理,添加读者借书和还书信息。可以记录新加入的读者的信息,并且可以对已经存在于数据库中的读者的信息进行修改,同时可以进行读者借、还书的管理。4.用户管理包括修改密码、新增用户、删除用户可执行的系统操作等。5.信息查询包括图书查询、读者查询和用户查询等功能。通过这些功能,可以通过不同的关键字来对书库中的图书进行查询,同时也可以查询读者的借阅信息。6.系统管理是用来完成本系统的基本操作,如修改密码、登录系统、退出登录,还有系统简介等功能。 其功能模块图如下所示图书管理系统读者管理功能系统管理功能图书管理功能借阅管理功能新书入库功能图书类别功能读者信息功能读者查询功能增加用户密码修改借书管理功能还书管理功能图2-2 功能模块图6、数据实施和维护Appbookpackage mybook.book;import java.awt.Toolkit;import javax.swing.SwingUtilities;import javax.swing.UIManager;import java.awt.Dimension;public class AppBook boolean packFrame = false; /* * Construct and show the application. */ public AppBook() FrLogin frame = new FrLogin(); / Validate frames that have preset sizes / Pack frames that have useful preferred size info, e.g. from their layout if (packFrame) frame.pack(); else frame.validate(); / Center the window Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height screenSize.height) frameSize.height = screenSize.height; if (frameSize.width screenSize.width) frameSize.width = screenSize.width; frame.setLocation(screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); /* * Application entry point. * * param args String */ public static void main(String args) SwingUtilities.invokeLater(new Runnable() public void run() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception exception) exception.printStackTrace(); new AppBook(); ); /该类用于显示本程序相关介绍public class FrAbout extends JFrame public FrAbout() try jbInit(); catch (Exception exception) exception.printStackTrace(); private void jbInit() throws Exception getContentPane().setLayout(null); setSize(new Dimension(340, 244); this.setTitle(关于); lblSysnam.setFont(new java.awt.Font(宋体, Font.BOLD, 20); lblSysnam.setText(图书管理系统); lblSysnam.setBounds(new Rectangle(103, 9, 135, 37); btnSure.addActionListener(new FrAbout_btnSure_actionAdapter(this); this.getContentPane().add(lblSysnam); lblTools.setText(开发工具:JBuilder2006+MSSQL 2000); lblTools.setBounds(new Rectangle(25, 14, 205, 33); this.getContentPane().add(palShow); lblRun.setText(运行环境:JVM+MSSQL 2000+Win32); lblRun.setBounds(new Rectangle(25, 60, 181, 27); btnSure.setBounds(new Rectangle(129, 174, 83, 25); btnSure.setText(确定); palShow.add(lblTools); palShow.add(lblRun); this.getContentPane().add(btnSure); palShow.setBorder(BorderFactory.createEtchedBorder(); palShow.setBounds(new Rectangle(51, 44, 238, 119); palShow.setLayout(null); JLabel lblSysnam = new JLabel(); JPanel palShow = new JPanel(); JLabel lblTools = new JLabel(); JLabel lblRun = new JLabel(); JButton btnSure = new JButton(); public void btnSure_actionPerformed(ActionEvent e) this.setVisible(false); class FrAbout_btnSure_actionAdapter implements ActionListener private FrAbout adaptee; FrAbout_btnSure_actionAdapter(FrAbout adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.btnSure_actionPerformed(e); /该类用于添加新书操作public class FrAddbook extends JFrame public FrAddbook() try jbInit(); catch (Exception exception) exception.printStackTrace(); private void jbInit() throws Exception getContentPane().setLayout(null); setSize(new Dimension(372, 500); this.setTitle(新书入库); lblName.setText(书名:); lblName.setBounds(new Rectangle(67, 62, 42, 15); lblAuthor.setText(作者:); lblSum.setToolTipText(); lblSum.setText(入库数量:); lblPrice.setText(单价:); btnSubmit.setBounds(new Rectangle(54, 438, 101, 27); btnSubmit.setText(提交); btnSubmit.addActionListener(new.FrAddbook_btnSubmit_actionAdapter(this); btnExit.setBounds(new Rectangle(197, 438, 101, 27); btnExit.setText(退出); btnExit.addActionListener(new FrAddbook_btnExit_actionAdapter(this); lblNewbook.setFont(new java.awt.Font(宋体, Font.BOLD, 18); lblNewbook.setText(新书入库); lblNewbook.setBounds(new Rectangle(134, 16, 104, 30); txtPreview.setBorder(BorderFactory.createLineBorder(Color.black); txtPreview.setBounds(new Rectangle(133, 361, 203, 58); cbSort.setBounds(new Rectangle(133, 309, 120, 23); txtPrice.setBounds(new Rectangle(133, 259, 57, 20); txtSum.setBounds(new Rectangle(133, 210, 57, 20); txtPublisher.setBounds(new Rectangle(133, 160, 119, 20); txtAuthor.setBounds(new Rectangle(133, 111, 119, 20); txtName.setBounds(new Rectangle(133, 61, 119, 20); lblPreview.setText(简介:); lblPreview.setBounds(new Rectangle(67, 369, 42, 15); lblSort.setText(类别:); lblSort.setBounds(new Rectangle(67, 318, 42, 15); lblPrice.setBounds(new Rectangle(67, 267, 42, 15); lblSum.setBounds(new Rectangle(67, 216, 72, 15); lblPublisher.setText(出版社:); lblPublisher.setBounds(new Rectangle(67, 164, 59, 15); this.getContentPane().add(lblAuthor); this.getContentPane().add(lblPublisher); this.getContentPane().add(lblSum); this.getContentPane().add(lblPrice); this.getContentPane().add(lblSort); this.getContentPane().add(lblPreview); this.getContentPane().add(txtAuthor); this.getContentPane().add(txtPublisher); this.getContentPane().add(txtSum); this.getContentPane().add(cbSort); this.getContentPane().add(txtPreview); this.getContentPane().add(txtPrice); this.getContentPane().add(lblNewbook); this.getContentPane().add(txtName); this.getContentPane().add(lblName); this.getContentPane().add(btnSubmit); this.getContentPane().add(btnExit); cbSort.addItem(人文); cbSort.addItem(地理); cbSort.addItem(爱情); cbSort.addItem(奇幻); cbSort.addItem(科技); cbSort.addItem(恐怖); lblAuthor.setBounds(new Rectangle(67, 113, 42, 15); JLabel lblName = new JLabel(); JLabel lblAuthor = new JLabel(); JLabel lblPublisher = new JLabel(); JLabel lblSum = new JLabel(); JLabel lblPrice = new JLabel(); JLabel lblSort = new JLabel(); JLabel lblPreview = new JLabel(); JTextField txtName = new JTextField(); JTextField txtAuthor = new JTextField(); JTextField txtPublisher = new JTextField(); JTextField txtSum = new JTextField(); JTextField txtPrice = new JTextField(); JComboBox cbSort = new JComboBox(); JEditorPane txtPreview = new JEditorPane(); JButton btnSubmit = new JButton(); JButton btnExit = new JButton(); JLabel lblNewbook = new JLabel(); /该方法用于退出当前Frame public void btnExit_actionPerformed(ActionEvent e) this.setVisible(false); /该方法用于添加读者信息 public void btnSubmit_actionPerformed(ActionEvent e) /栏位判断 if (txtName.getText().equals() | txtAuthor.getText().equals() | txtPublisher.getText().equals() | txtSum.getText().equals() | txtPrice.getText().equals() | txtPreview.getText().equals() javax.swing.JOptionPane.showMessageDialog(this, 各栏位不能为空!请重填。); else /判断是否为数字 try Integer.parseInt(txtSum.getText(); Integer.parseInt(txtPrice.getText(); catch (NumberFormatException ex) javax.swing.JOptionPane.showMessageDialog(this, 请确保数量栏及单价栏为数字!); return; if(Integer.parseInt(txtSum.getText() 0 | Integer.parseInt(txtPrice.getText() 0) javax.swing.JOptionPane.showMessageDialog(this,不能有负数!); return; /如果以上验证均通过则开始添加新数据 DBC dbc = DBC.getInstance(); if (dbc.executeUpdate(INSERT Books VALUES ( + txtName.getText() +, + txtPreview.getText() + , + (String) cbSort.getSelectedItem() + , + txtPublisher.getText() + , + Integer.parseInt(txtSum.getText() + ,Integer.parseInt(txtPrice.getText()+ , + txtAuthor.getText() + ,DEFAULT) javax.swing.JOptionPane.showMessageDialog(this, 该书入库成功!); txtName.setText(); txtAuthor.setText(); txtPreview.setText(); txtPrice.setText(); txtPublisher.setText(); txtSum.setText(); else javax.swing.JOptionPane.showMessageDialog(this, 该书入库失败!请您重试。); class FrAddbook_btnSubmit_actionAdapter implements ActionListener private FrAddbook adaptee; FrAddbook_btnSubmit_actionAdapter(FrAddbook adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.btnSubmit_actionPerformed(e); class FrAddbook_btnExit_actionAdapter implements ActionListener private FrAddbook adaptee; FrAddbook_btnExit_actionAdapter(FrAddbook adaptee) this.adaptee = adaptee; public void actionPerformed(ActionEvent e) adaptee.btnExit_actionPerformed(e); /该类用于添加新管理员public class FrAddmanager extends JFrame public FrAddmanager() try jbInit(); catch (Exception exception) exception.printStackTrace(); private void jbInit() throws Exception getContentPane().setLayout(null); setSize(new Dimension(300, 200); this.setTitle(添加/删除管理员); lblName.setText(管理员名:); lblName.setBounds(new Rectangle(26, 27, 60, 15); jLabel1.setText(密码:); jLabel1.setBounds(new Rectangle(26, 55, 60, 15); txtName.setBounds(new Rectangle(99, 21, 103, 21); txtPwd.setBounds(new Rectangle(99, 49, 103, 21); btnAdd.setBounds(new Rectangle(48, 91, 83, 25); btnAdd.setText(添加); btnAdd.addActionListener(new FrAddmanager_btnAdd_actionAdapter(this); btnCancel.setBounds(new Rectangle(102, 129, 83, 25); btnCancel.setText(取消); btnCancel.addActionListener(new FrAddmanager_btnCancel_actionAdapter(this); btnDelete.setBounds(new Rectangle(160, 91, 83, 25); btnDelete.setText(删除); btnDelete.addActionListener(new FrAddmanager_btnDelete_actionAdapter(this); this.getContentPane().add(lblName); this.getContentPane().add(jLabel1); this.getContentPane().add(txtName); this.getContentPane().add(txtPwd); this.getContentPane().add(btnAdd); this.getContentPane().add(btnDelete); this.getContentPane().add(btnCancel); JLabel lblName = new JLabel(); JLabel jLabel1 = new JLabel(); JTextField txtName = new JTextField(); JTextField txtPwd = new JTextField(); JButton btnAdd = new JButton(); JButton btnCancel = new JButton(); JButton btnDelete = new JButton(); /该方法用于添加新管理员 public void btnAdd_actionPerformed(ActionEvent e) /栏位判断 if (txtName.getText().equals() | txtPwd.getText().equals() javax.swing.JOptionPane.showMessageDialog(this, 管理员名及密码不能为空!请重新输入。); txtName.setText(); txtPwd.setText(); else /查询是否已经有同名管理员 DBC dbc = DBC.getInstance(); boolean success = false; ResultSet rs = dbc.executeQuery(SELECT * FROM Admin); try while (rs.next() if (txtName.getText().equals(rs.getString(Aname) success = true; if (success) javax.swing.JOptionPane.showMessageDialog(this, 该管理员已存在!); txtName.setText(); txtPwd.setText(); return; else /若无该管理员则添加 if (dbc.executeUpdate(INSERT Admin VALUES( + txtName.getText() + , +txtPwd.getText() + ) javax.swing.JOptionPane.showMessageDialog(this, 添加成功); this.setVisible(false); elsejavax.swing.JOptionPane.showMessageDialog(this, 添加失败,请重试。);txtName.setText()txtPwd.setText(); return; catch (HeadlessExc

温馨提示

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

评论

0/150

提交评论