Oracle实用教程课程设计图书管理系统 .doc

上传人:仙人指路1688 文档编号:2394947 上传时间:2023-02-17 格式:DOC 页数:18 大小:168KB
返回 下载 相关 举报
Oracle实用教程课程设计图书管理系统 .doc_第1页
第1页 / 共18页
Oracle实用教程课程设计图书管理系统 .doc_第2页
第2页 / 共18页
Oracle实用教程课程设计图书管理系统 .doc_第3页
第3页 / 共18页
Oracle实用教程课程设计图书管理系统 .doc_第4页
第4页 / 共18页
Oracle实用教程课程设计图书管理系统 .doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《Oracle实用教程课程设计图书管理系统 .doc》由会员分享,可在线阅读,更多相关《Oracle实用教程课程设计图书管理系统 .doc(18页珍藏版)》请在三一办公上搜索。

1、课程设计说明书 课程名称: Oracle实用教程 设计题目: 图书管理系统 专 业: 计算机科学与技术 班级: 计0801 学生姓名: XXXX 学 号: XXXXXXXXXX 指导教师: 陶立新 湖南工业大学科技学院教务部 制2011年12月9日目 录1目标12运行平台13系统开发说明14软件结构图15项目需求15.1功能模块15.2功能模块描述26软件模块流程26.1系统登录模块功能分析26.2借阅管理模块36.3系统管理模块及书籍管理模块功能分析47.3.1系统管理模块47.3.2书籍管理模块56.4读者管理模块66.5软件说明模块77软件数据库设计77.1ER图77.2数据库逻辑结构9

2、8用户角色10图书馆管理系统1 目标建立完善的图书馆管理系统2 运行平台Windows平台3 系统开发说明A、开发小组: B、开发时限:三周C、本系统使用开发工具:Eclipse3.5.1、SQL Server20054 软件结构图5 项目需求5.1 功能模块1、 系统登录模块2、 借阅管理模块3、 系统管理模块4、 书籍管理模块5、 读者管理模块6、 软件说明模块5.2 功能模块描述一、 系统登录模块主要用于负责系统的登录权限,同时负责与其他模块的连接,方便用户访问所需要的模块。二、 借阅管理模块主要用于管理书籍的出借和归还,同时也可以查询书籍是否借出和归还。三、 系统管理模块主要用于添加系

3、统用户,删除系统用户。四、 书籍管理模块主要用于管理图书馆图书的新增和删除,同时也可以查询图书的信息。五、 读者管理模块主要用于管理借阅人员信息,对于借阅人员的信息处理。六、 软件说明模块主要用于说明软件的信息以及开发团队等。6 软件模块流程6.1 系统登录模块功能分析l 登陆界面输入口令和密码登陆管理系统。l 主窗体主要作用是方便用户访问不同的功能。包含以下几个功能:1.借阅图书:进入借阅管理界面,处理图书的借阅操作。2.归还图书:进入归还管理界面,处理图书的归还操作。3.续借管理:进入续借管理界面,处理图书的续借操作。4.图书查询:进入图书查询界面,查询图书信息,是否借出或是否存在此图书等

4、。5.系统管理:进入系统管理界面,添加新的系统管理员。6.书籍管理:进入书籍管理界面,处理图书的新增,清除,修缮等操作。7.读者管理:进入读者管理界面,管理读者的借阅资格。8.关于软件:软件功能说明,开发团队说明等。9.退出系统:关闭程序,安全退出。以下是关于主窗体实体流程图:续借管理归还图书退出系统关于软件读者管理书籍管理系统管理图书查询借阅图书主窗体 主窗体实体流程图借阅管理模块方便的查询书籍、归还书籍、续借数据等l 借阅图书模块 借阅图书模块的创建便于借阅,查询书籍。只需在文本框中输入想要的书籍时,点击查询即可列出此书籍的所有信息。如果想要借阅书籍的话,点击我们的借阅按钮,便可。在点击借

5、阅按钮时,会弹出一个提示信息对话框告诉用户是否借阅成功。列表缩览表:书刊编号书籍名称作者书刊分类总册数借出册数剩余册数02FlashXXXXXXX321表1-1l 归还图书模块归还图书实现了图书归还的直接查询,它的功能模块跟我们的借阅图书有些相似,同样的,直接在文本框中输入书籍的名称或是编号,点击搜索,列表框中显示了所有的信息,标注有没有归还,标识为红色的字体是丢失的书籍。在我们的归还图书导航中又分有:图书丢失,图书被损坏和续借的功能。下面是基本功能操作的流程 归还图书 导航处的功能 丢失 损坏 输入书名: 续借 归还图书查询功能E-R图归还图书缩览表:书刊编号书籍名称作者书刊分类总册数归还册

6、数书刊附件02FlashXXXXXXX3216.2 系统管理模块及书籍管理模块功能分析6.2.1 系统管理模块系统管理是图书管理系统之中的一个关键的模块,具体功能如下:1:添加管理帐号:主要的内容为系统管理员提供用户帐号添加管理2:删除帐号:主要用于删除不需要的管理帐号。书籍添加系统管理书籍删除书籍管理书籍修缮添加帐号删除帐号书籍查询如上图,可以从层次结构上说明的系统管理模块与书籍管理模块的大概的操作内容,6.2.2 书籍管理模块书籍模块则包括四个子功能:1:书籍添加:输入图书馆最新的书籍购入信息至图书管理系统,提供显示信息及添加信息等功能;2:图书删除:包括书籍的过时性及书籍的损坏之后从图书

7、管理系统删除与之相关的书籍信息,提供添加信息与删除信息等功能;3:书籍的修缮:修订图书,4:图书查询该子功能模块在上图之中没有显示出来,因为该功能模块可以作为管理界面模块的子功能模块,在与我所说的两个主功能模块是一个并列的关系,在书籍管理模块之中添加一个指向图书查询的功能按钮,启动图书查询功能模块。在图书查询模块中有分为了四个小模块:l 图书现存数量查询l 借出查询l 书籍信息l 归还查询 图书现存数量的查询实现了各类书籍现存数量的查询和总共书籍数量查询。它直接统计了图书馆中所剩书籍的各类数量和总数量,分类统计清晰简洁,明了,效率高,达到一目了然的效果。 借出查询统计了每天借出书籍的总数量,各

8、类书籍的数量;实现了哪个用户借出,借出的时间,归还时间,借出用户的信息和是哪个管理员借出此书给用户的编号的记录。提示借出书籍到期。书籍信息里详细的记录了各种书籍的主办单位,出版社,作者,出版日期,出版周期,出版次数,书刊语言,书刊类别,书刊名称,书刊附件和价格等。归还查询的功能是:实现每天总退还书籍多少的查询,各类书籍归还哪些,自动统计归还书籍的信息。图书查询和归还图书,借阅图书模块最大的区别就是,它统计了每天借阅书籍的总数量,各类书籍借归还了多少;借阅图书和归还图书是直接查询哪本书是否被借,而没有实现数量上的统计,它显示信息。以下是图书查询模块及模块各个功能图:图书查询 图书现存数量查询 借

9、出查询 书籍信息 归还查询总数量 各类书数量 每天借出 分类查询 直接查询 归还统计 各类书借出 一个月借出 各类书借出6.3 读者管理模块读者管理模块流程图:读者管理读者注册删除信息查询信息读者注册读者注册就是填写读者的姓名、性别、省份证等基本信息,它的主要功能实现于读者可以通过注册的信息来借、还书。删除信息删除信息主要对已流失的读者进行删除查询信息在查询的读者信息的时候显示所有读者的信息。也可以通过姓名、省份证来查询独个读者的信息。6.4 软件说明模块说明此软件主要功能和基本信息。7 软件数据库设计7.1 ER图管理帐户表:管理员密码用户名姓名总册数图书信息表:备注出版社编号 书籍编号图书

10、书籍名称书籍类别编号作者编号出版日期出版类别作者出版社书籍类别作者作者编号类别作者名书籍类别编号出版社编号出版社读者信息表:读者信息备注读者编号借书数目姓名联系方式证件号注册时间图书借书日期借阅信息表:操作员(管理员)还书日期借书/还书书籍编号借阅册数读者编号读者读者系统全局E-R图:借书/还书管理员图书7.2 数据库逻辑结构管理员表:字段:姓名,用户名,密码图书信息表:字段:书籍编号,书籍名称,总册数,作者编号,书籍类别编号,出版社编号,出版日期,备注作者表:字段:作者编号,作者姓名书籍类别表:字段:书籍类别编号,书籍类别出版社表:字段:出版社编号,出版社名称读者信息表:字段:读者编号,姓名

11、,证件号,注册日期,联系方式,借书数目,备注借阅表:字段:书籍编号,读者编号,操作用户名,借书日期,还书日期,借阅册数8 用户角色软件用户角色主要包括:系统管理员:软件的全局管理。 软件使用者:软件主要操作人员。 读者:软件主要服务对象。总结由于对软件工程设计方面的不熟悉,致使在系统实现时显得十分难受。查阅了大量的资料才度过这个难关。还有就是在前台操作界面的设计上也是从未接触过的,所以在这一方面,我们请教了大四的学长,请他们指导我们要如何进行设计和实现。再次,由于在SQL语言方面的欠缺和不完善,导致在设计完成软件的各项操作时十分地吃力。以上这些不足都是我宝贵的经验,在以后的设计中,我定会以它们

12、为警戒,提高自己的能力,设计出更为完善和全面的管理系统。在本次实验中,集体合作完成了一个高校教室管理系统,我主要担任逻辑设计的工作。过程很曲折,但是结果还是令人满意的。从一开始的完全摸不着头脑,到后来的逐步完善管理系统,期间经历的困难是我从未遇到过的。由于之前未对数据库管理系统有过任何操作经验,所以在这次课程设计期间,我积极去图书馆查阅各种相关的软件工程的资料,渐渐地解决了各种关于软件设计方面的疑问。从逻辑设计到最后的系统实现,让我认识到了团队协作的重要。在如此庞大的工程面前,仅仅靠一个人的力量是基本上不能够完成一个系统的设计和实现的。源代码(部分)/* * FrmDL.java * * Cr

13、eated on _DATE_, _TIME_ */package view.Chengxi;import java.awt.Cursor;import java.awt.Graphics;import java.awt.Image;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JOptionPane;import javax.swing.JPanel;import bean.Longin_USER_Bean;import dao.Longin_USER_Dao;/* * * author _US

14、ER_ */public class FrmDL extends javax.swing.JFrame private PalDL dl = new PalDL();/* Creates new form FrmDL */public FrmDL() this.setContentPane(dl);this.setUndecorated(true);initComponents();init();public void init() btnDL.setCursor(new Cursor(HAND_CURSOR);btnTC.setCursor(new Cursor(HAND_CURSOR);t

15、xtUser.setBorder(null);txtPaw.setBorder(null);this.setSize(646, 283);this.setLocationRelativeTo(null);this.setResizable(false);this.setTitle(登录);this.setVisible(true);/GEN-BEGIN:initComponents/ private void initComponents() txtUser = new javax.swing.JTextField();jLabel1 = new javax.swing.JLabel();jL

16、abel2 = new javax.swing.JLabel();txtPaw = new javax.swing.JPasswordField();btnDL = new javax.swing.JButton();btnTC = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);txtUser.setFont(new java.awt.Font(微软雅黑, 1, 13);txtUser.setBorder(javax.swing.BorderFactor

17、y.createEtchedBorder();jLabel1.setFont(new java.awt.Font(微软雅黑, 1, 14);jLabel1.setForeground(new java.awt.Color(255, 255, 255);jLabel1.setText(u7528u6237u540duff1a);jLabel2.setFont(new java.awt.Font(微软雅黑, 1, 14);jLabel2.setForeground(new java.awt.Color(255, 255, 255);jLabel2.setText(u5bc6 u7801uff1a)

18、;txtPaw.setFont(new java.awt.Font(宋体, 1, 13);btnDL.setIcon(new javax.swing.ImageIcon(img/1.PNG); / NOI18NbtnDL.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) btnDLActionPerformed(evt););btnTC.setIcon(new javax.swing.ImageIcon(img/2.P

19、NG); / NOI18NbtnTC.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) btnTCActionPerformed(evt););javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane();getContentPane().setLayout(layout);layout.setHorizontalGroup(

20、layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(235,235,235).addGroup(layout.createParallelGroup(javax.swing.Gro

21、upLayout.Alignment.LEADING).addComponent(jLabel1).addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false).addComponent(txtPaw,0,0,Short.MAX_VALUE).addComponent(txtUser,javax.swing.G

22、roupLayout.PREFERRED_SIZE,134,javax.swing.GroupLayout.PREFERRED_SIZE).addGroup(layout.createSequentialGroup().addGap(282,282,282).addComponent(btnDL,javax.swing.GroupLayout.PREFERRED_SIZE,56,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(80, 80,80).addComponent(btnTC,javax.swing.GroupLayout.PREFERRE

23、D_SIZE,53,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(196, Short.MAX_VALUE);layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addContainerGap(137, Short.MAX_VALU

24、E).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel2).addGroup(layout.createSequentialGroup().addComponent(txtUser,java

25、x.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(txtPaw,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.

26、PREFERRED_SIZE).addGap(37, 37, 37).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(btnDL,javax.swing.GroupLayout.PREFERRED_SIZE,25,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(btnTC,javax.swing.GroupLayout.PREFERRED_SIZE,25,javax.swing.GroupLayout

27、.PREFERRED_SIZE).addGap(44, 44, 44);pack();/ /GEN-END:initComponentsprivate void btnDLActionPerformed(java.awt.event.ActionEvent evt) String name=txtUser.getText().trim();String password=txtPaw.getText().trim();if(name.length()=0)JOptionPane.showMessageDialog(this, 请输入用户名!);return;else if(password.l

28、ength()=0)JOptionPane.showMessageDialog(this, 请输入密码!);return;Longin_USER_Dao dao=new Longin_USER_Dao();Longin_USER_Bean bean=dao.getByUser(name);if(bean=null)JOptionPane.showMessageDialog(this, 用户名错误!);txtUser.setText();return;if(!bean.getUserPassword().equals(password)JOptionPane.showMessageDialog(

29、this, 密码错误 !);txtPaw.setText();return;new FrmGL(this);this.dispose();private void btnTCActionPerformed(java.awt.event.ActionEvent evt) int temp = JOptionPane.showConfirmDialog(this, 是否确定退出?, 退出, 0, 2);if (temp = 0) System.exit(0);/* * param args the command line arguments */public static void main(S

30、tring args) new FrmDL();/GEN-BEGIN:variables/ Variables declaration - do not modifyprivate javax.swing.JButton btnDL;private javax.swing.JButton btnTC;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;public javax.swing.JPasswordField txtPaw;public javax.swing.JTextField txtUser;/ End of variables declaration/GEN-END:variablesclass PalDL extends JPanel protected void paintComponent(Graphics g) Image img = new ImageIcon(img/DL.jpg).getImage();g.drawImage(img, 0, 0, getWidth(), getHeight(), this);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号