javasql图书管理系统_第1页
javasql图书管理系统_第2页
javasql图书管理系统_第3页
javasql图书管理系统_第4页
javasql图书管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、1、 本设计所要达到的目的和要求 1.1 设计目的 管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。MIS的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施到等主要阶段的规范开发过程。本题目实现的是JAVA系统,我们选择的是图书馆管理系统,不同角色的用户登录,用户信息的管理包括密码管理,及用户借还书,用户对图书信息及本人借还情况的查询,超级管理员对图书信息的增删查改,用户信息的增删查改及借还情况总的查询。1.2 设计要求1、主题明确,软体开发要有创新性,能体现SQL的存储过程、触

2、发器、游标技术等; 2、用高级语言结合SQL Server数据库进行开发; 3、写出数据库关系模式及相应的数据库表关系图; 4、绘制成绩MIS相应的系统流程图、E-R图等; 5、完成成绩MIS登陆界面、主界面、图书信息录入、图书信息查询和其各项设计与操作。 2、设计内容我们设计的图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。该系统主要包括读者用户登录系统、管理员用户登入系统、图书管理系统、图书借阅、图书和用户信息查询子系统四个部

3、分,各部分主要功能如下:读者用户登录子系统:用于数据库的连接,主界面的设计和读者身份用户的登录管理。管理员用户登入系统:用于管理员用户的管理,如图书添加、图书信息修改。图书管理系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。图书借阅系统:用于用户借阅和归还图书。图书和用户信息查询:图书和用户信息的查询。留言系统:用于留言管理。3、开发和运行环境介绍开发语言:前台开发语言为java,后台数据库为SQL server2000运行环境:eclipseEclipse是著名的跨平台的自有(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Py

4、thon的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。4、需求分析4.1系统需求描述实现管理员对用户的增删改查,对图书信息增删查改、图书借阅信息的修改以,实现用户对图书的查找、借阅、续借、归还以及修改密码。4.2系统功能结构图图书管理系统用户登录用户信息管理图书信息管理借阅信息管理管理员登录工作人员登录用户登录用户信息增加 用户信息删除用户信息查询用户信息修改图书信息增加图书信息删除图书信息修改图书信息查询用户借书归还图书用户续借借阅信息查询图 1 图

5、书管理系统系统流程图4.3 系统E-R图 用户用户ID权限用户名已借书数量密码借书上限图 2 用户实体图备注图书剩余数量作者图书ID图书出版社图书总数量价格出版日期书籍名称图3 书籍实体图1毕业设计选题系统N用户借阅还书日期借书日期图书图 4 实体属性图4.5数据库表结构表1 图书信息表字段名称字段类型长度是否为空备注图书编号数字4否主键书名数字4出版社文本50编著者文本50出版日期时间4单价文本50库存数量数字4否出版书号文本50表2 用户借阅表字段名称数据类型长度是否为空备注读者号数字4否主键姓名数字4否主键借书日期时间8否还书日期时间8借阅图书编号文本50否表3用户信息表字段名称字段类型

6、长度是否为空备注用户编号数字4否主键用户名文本50否用户密码文本50否身份文本50否5.系统设计与实现5.1 模块功能描述在整个图书管理系统中读者用户登录系统的设计,主要包括如下功能:连接远程数据库:首先建立连接,然后配置数据源。整个界面的设计:主框架,点击按钮分别触发事件。用户登录:管理员,图书馆工作人员,普通用户分别实现进入自己的界面。在整个图书管理系统中管理员用户管理子系统的设计,主要包括如下功能:用户添加:用于添加用户信息。用户信息修改:管理员可以修改用户所有信息,用户可以修改自己的密码。用户删除:用于删除用户信息。包括按用户id和密码删除。在整个图书馆管理系统中图书管理子系统的设计,

7、主要包括如下功能:图书添加:用于添加图书信息。图书信息修改:管理员可以修改图书所有信息。图书删除:用于删除图书信息。包括按图书id删除。在整个图书馆管理系统中图书借阅管理子系统的设计,主要包括如下功能:借阅图书:用户借书。续借:通过改变归还日期来续借。借阅信息显示:管理员和工作人员可以查看所有用户借阅信息,普通用户只可以查看自己的借阅信息。5.2 软件实现读者用户登录系统:package hehe;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import

8、java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;SuppressWarnings("serial")public class 菜单1 extends Frame implements ActionListener/TextArea ta; /文本区MenuBar mb; /MenuBar 类封装绑定到框架的菜单栏的Menu mnLog,mnJy,mnFy,m

9、nLy; /从菜单栏部署的下拉式菜单组件MenuItem mizhuce,milog,miExit,miyhzh,miyhxx; /菜单中的所有项必须属于类 MenuItem 或其子类之一MenuItem mifyshow,mifydelete,mifyinsert,mifymodify,milyshow,miyshow,mijyshow,mijyinsert,mijymodify;public 菜单1()super("图书管理系统"); /调用父类构造方法/ta = new TextArea("",20,20); /新建文本区,第一个参数是默认文本,第

10、二个参数是行数,第三个是列数/* * BorderLayout边框布局 * 添加文本区到Frame,BorderLayout.CENTER是居中位置 * */add(ta,BorderLayout.CENTER); mb = new MenuBar(); /创建菜单栏对象/* * 创建菜单,指定菜单名 * */mnLog= new Menu("退出"); mnFy= new Menu("读者信息管理");mnJy= new Menu("借阅管理");mnLy= new Menu("意见簿留言"); /* jLabe

11、l=new JLabel("欢迎进入设备管理系统"); jLabel.setHorizontalAlignment(JLabel.CENTER); jLabel.setForeground(Color.red);*/* * 创建子菜单,并指定名称 * */miExit=new MenuItem("退出");miExit.addActionListener(this); /为退出菜单添加监听/* * 添加上面创建的子菜单到文件菜单下 * */ mnLog.add(miExit);/将一个分隔线或连字符添加到菜单的当前位置 /* * 添加miBinary、m

12、iFont两个子菜单到mnFormat(格式)下 * */ mifyshow=new MenuItem("查看");mifyshow.addActionListener(this);mnFy.add(mifyshow);milyshow=new MenuItem("留言");mnLy.add(milyshow);milyshow.addActionListener(this);miyshow=new MenuItem("查看");mnLy.add(miyshow);miyshow.addActionListener(this);mij

13、yinsert=new MenuItem("借书");mijyinsert.addActionListener(this);mnJy.add(mijyinsert);/* * 将文件、编辑、格式、帮助添加到菜单栏 * */mb.add(mnLog);mb.add(mnJy);mb.add(mnFy);mb.add(mnLy);setMenuBar(mb); /添加菜单栏到Frame/* * 关闭窗口时,关闭运行成语 * */addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e

14、)System.exit(0););public static void main(String args)菜单1 tm=new 菜单1();tm.setSize(700,500); /设置窗体的宽、高tm.setLocation(300,100); /将组件移到新位置Component类方法tm.setVisible(true); /设置显示窗体,true为显示,false为隐藏/* * 监听事件,实现ActionListener接口的actionPerformed方法 */public void actionPerformed(ActionEvent e) if(e.getSource()

15、=miExit)System.exit(0); /停止运行程序 if(e.getSource()=mifyshow) 读者信息查询 wo= new 读者信息查询("查看"); this.setVisible(true); if(e.getSource()=mijyinsert) 读者借阅信息插入 wo= new 读者借阅信息插入("借书"); this.setVisible(true); if(e.getSource()=milyshow) 意见留言 wo= new 意见留言("留言"); this.setVisible(true);

16、 if(e.getSource()=miyshow) 留言查看 wo= new 留言查看("查看"); this.setVisible(true);管理员用户登录:package hehe;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdap

17、ter;import java.awt.event.WindowEvent;SuppressWarnings("serial")public class 菜单1 extends Frame implements ActionListener/TextArea ta; /文本区MenuBar mb; /MenuBar 类封装绑定到框架的菜单栏的Menu mnLog,mnJy,mnFy,mnLy; /从菜单栏部署的下拉式菜单组件MenuItem mizhuce,milog,miExit,miyhzh,miyhxx; /菜单中的所有项必须属于类 MenuItem 或其子类之一Me

18、nuItem mifyshow,mifydelete,mifyinsert,mifymodify,milyshow,miyshow,mijyshow,mijyinsert,mijymodify;public 菜单1()super("图书管理系统"); /调用父类构造方法/ta = new TextArea("",20,20); /新建文本区,第一个参数是默认文本,第二个参数是行数,第三个是列数/* * BorderLayout边框布局 * 添加文本区到Frame,BorderLayout.CENTER是居中位置 * */add(ta,BorderLayo

19、ut.CENTER); mb = new MenuBar(); /创建菜单栏对象/* * 创建菜单,指定菜单名 * */mnLog= new Menu("退出"); mnFy= new Menu("读者信息管理");mnJy= new Menu("借阅管理");mnLy= new Menu("意见簿留言"); /* jLabel=new JLabel("欢迎进入设备管理系统"); jLabel.setHorizontalAlignment(JLabel.CENTER); jLabel.setFo

20、reground(Color.red);*/* * 创建子菜单,并指定名称 * */miExit=new MenuItem("退出");miExit.addActionListener(this); /为退出菜单添加监听/* * 添加上面创建的子菜单到文件菜单下 * */ mnLog.add(miExit);/将一个分隔线或连字符添加到菜单的当前位置 /* * 添加miBinary、miFont两个子菜单到mnFormat(格式)下 * */ mifyshow=new MenuItem("查看");mifyshow.addActionListener(t

21、his);mnFy.add(mifyshow);milyshow=new MenuItem("留言");mnLy.add(milyshow);milyshow.addActionListener(this);miyshow=new MenuItem("查看");mnLy.add(miyshow);miyshow.addActionListener(this);mijyinsert=new MenuItem("借书");mijyinsert.addActionListener(this);mnJy.add(mijyinsert);/*

22、* 将文件、编辑、格式、帮助添加到菜单栏 * */mb.add(mnLog);mb.add(mnJy);mb.add(mnFy);mb.add(mnLy);setMenuBar(mb); /添加菜单栏到Frame/* * 关闭窗口时,关闭运行成语 * */addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public static void main(String args)菜单1 tm=new 菜单1();tm.setSize(700,500); /设置窗

23、体的宽、高tm.setLocation(300,100); /将组件移到新位置Component类方法tm.setVisible(true); /设置显示窗体,true为显示,false为隐藏/* * 监听事件,实现ActionListener接口的actionPerformed方法 */public void actionPerformed(ActionEvent e) if(e.getSource()=miExit)System.exit(0); /停止运行程序 if(e.getSource()=mifyshow) 读者信息查询 wo= new 读者信息查询("查看")

24、; this.setVisible(true); if(e.getSource()=mijyinsert) 读者借阅信息插入 wo= new 读者借阅信息插入("借书"); this.setVisible(true); if(e.getSource()=milyshow) 意见留言 wo= new 意见留言("留言"); this.setVisible(true); if(e.getSource()=miyshow) 留言查看 wo= new 留言查看("查看"); this.setVisible(true);登入界面系统:packa

25、ge hehe;import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.Toolkit; import java.awt.Image; import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.R

26、esultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.ButtonGroup;import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane;import javax.swing.JPasswordField; import javax.swing.JRadioBu

27、tton;import javax.swing.JTextField; public class 登陆界面 implements ActionListener public JFrame jf= new JFrame("图书管理系统系统"); public Container con = jf.getContentPane(); public Toolkit toolkit = Toolkit.getDefaultToolkit(); /获取工具包public Dimension sc = toolkit.getScreenSize(); /getScreenSize(),

28、最后的这个方法返回一个Dimension类型的对象.是返回当先分辨率的.Object a,b; public JRadioButton rb1 = new JRadioButton("读者"); public JRadioButton rb2 = new JRadioButton("管理员"); public ButtonGroup group = new ButtonGroup (); public JLabel yong_hu = new JLabel("用户名"); public JLabel mi_ma = new JLabe

29、l("密码"); public JTextField textName = new JTextField(); public JPasswordField textPs = new JPasswordField(); public JButton deng_ru = new JButton("登陆"); public JButton qu_xiao = new JButton("取消"); public Font font1 = new Font("宋体",1,14); public Font font2 = ne

30、w Font("宋体",0,12); public 登陆界面() /con.setLayout(null); /jf.setSize(sc.width/1,sc.height/2); /大小/*jf.setLocation(sc.width/5,sc.height/1010); */ /* public void setLocation(int x, int y)将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。 参数: x - 父级坐标空间中新位置左上角的 x 坐标y - 父级坐标空间中新位置左上角的 y 坐标*/con.setLayou

31、t(null); group.add(rb1); group.add(rb2); deng_ru.addActionListener(this);qu_xiao.addActionListener(this);rb1.addActionListener(this); rb2.addActionListener(this); jf.setSize(/*sc.width/3*/500,sc.height/2); jf.setLocation(sc.width/3,sc.height/4); jf.setResizable(false); yong_hu.setLocation(80,30); /位

32、置yong_hu.setSize(100, 100); /大小yong_hu.setFont(font1); /设置字体yong_hu.setForeground(Color.BLUE );/设置颜色 rb1.setLocation(80,180); /位置rb1.setSize(65,20); /大小rb2.setLocation(250,180); /位置rb2.setSize(80,20); /大小mi_ma.setLocation(80,90); mi_ma.setSize(100,100); mi_ma.setForeground(Color.BLUE ) ; mi_ma.setFo

33、nt(font1); textName.setSize(140, 20); textName.setLocation(170, 70) ; textPs.setSize(140, 20); textPs.setLocation(170, 130) ; /textPs.setEchoChar('*'); /返回deng_ru.setSize(90,25); deng_ru.setLocation(80,220 ) ;deng_ru.setFont(font2);qu_xiao.setSize(90,25) ; qu_xiao.setLocation(250, 220) ;qu_x

34、iao.setFont(font2) ; con.add(rb1) ; con.add(rb2) ; con.add(yong_hu) ; con.add(mi_ma) ; con.add(textName); con.add(textPs); con.add(deng_ru); con.add(qu_xiao); con.setBackground(Color.WHITE); jf.setResizable(false); jf.setVisible(true) ; jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void

35、actionPerformed(ActionEvent e) Object dx;Connection con;Statement sql;ResultSet rs; if(group.getSelection()=rb2.getModel() if(e.getSource()=deng_ru)a=textName.getText(); charc=textPs.getPassword(); b= new String(c); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundExcep

36、tion ee)System.out.println(""+e);trycon=DriverManager.getConnection("jdbc:odbc:hehe","",""); sql=con.createStatement(); dx=new Object1; rs=sql.executeQuery("select * from 管理员信息表 where 用户名='"+a+"'"); boolean min=rs.next(); if(!min)/

37、System.out.print("用户名错误"); /JOptionPane.showMessageDialog(this,"用户名或密码错误"); JOptionPane.showMessageDialog(null,"用户名或密码错误"); if(min) dx=rs.getString(2); / (String) dx).trim();/ (String) b).trim(); if(!dx.equals(b) JOptionPane.showMessageDialog(null,"用户名或密码错误");

38、 if(dx.equals(b) JOptionPane.showMessageDialog(null,"登入成功"); 菜单 n=new 菜单(); n.setSize(500, 300); n.setVisible(true); catch(SQLException ee) System.out.println(ee); if(e.getSource()=qu_xiao)System.exit(0); if(group.getSelection()=rb1.getModel() if(e.getSource()=deng_ru) a=textName.getText()

39、; charc=textPs.getPassword(); b= new String(c); try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundException ee)System.out.println(""+e);trycon=DriverManager.getConnection("jdbc:odbc:hehe","",""); sql=con.createStatement(); dx=new O

40、bject1; rs=sql.executeQuery("select * from 读者信息表 where 用户名='"+a+"'"); boolean min=rs.next(); if(!min) JOptionPane.showMessageDialog(null,"用户名或密码错误"); if(min) dx=rs.getString(2); / (String) dx).trim();/ (String) b).trim(); if(!dx.equals(b) JOptionPane.showMessage

41、Dialog(null,"用户名或密码错误"); if(dx.equals(b) JOptionPane.showMessageDialog(null,"登入成功"); 菜单1 n=new 菜单1(); n.setSize(500, 300); n.setVisible(true); /设置显示窗体 catch(SQLException ee) System.out.println(ee); public static void main(String args) new 登陆界面();管理员图书管理:查询:package hehe;import jav

42、ax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*; public class 管理员图书信息查询 extends JDialog implements ActionListener/负责显示记录的类 JTable table;/表格 Object a; Object name=" 图书编号","书名","出版书号","编著者","出版社","出版日期","单价",&

43、quot;库存数量" ; JButton S; Connection con; Statement sql; ResultSet rs; 管理员图书信息查询(String title) setTitle(title); S=new JButton("显示记录"); S.addActionListener(this); add(S,BorderLayout.NORTH); setBounds(200,60,800,250); setVisible(true); public void actionPerformed(ActionEvent e) Connection

44、 con;Statement sql;ResultSet rs;try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundException ee)System.out.println(""+e);trycon=DriverManager.getConnection("jdbc:odbc:hehe","",""); sql=con.createStatement(); rs=sql.executeQuery(&quo

45、t;select * from 图书信息表"); rs.last(); int lastNumber=rs.getRow(); a=new ObjectlastNumber8; int k=0; rs.beforeFirst(); while(rs.next() ak0=rs.getString(1); ak1=rs.getString(2); ak2=rs.getString(3); ak3=rs.getString(4); ak4=rs.getString(5); ak5=rs.getString(6); ak6=rs.getString(7); ak7=rs.getString

46、(8); k+; con.close(); / System.out.print("连接失败"); catch(SQLException ee) / System.out.print("连接失败"); System.out.println(ee); table=new JTable(a,name); getContentPane().removeAll(); add(S,BorderLayout.NORTH); / System.out.print("连接失败"); add(new JScrollPane(table),BorderL

47、ayout.CENTER);/滚动条 validate(); public static void main(String args) 管理员图书信息查询 wo=new 管理员图书信息查询("查询"); 添加:package hehe;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQ

48、LException;import java.sql.Statement;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTable;public class 管理员图书信息插入 extends JDialog implements ActionListenerJLabel h

49、intLabel;/标签Object ono=" 图书编号","书名","出版书号","编著者","出版社","出版日期","单价","库存数量" Object a=new Object18;JTable table;JButton enterInsert;Connection con;Statement sql;ResultSet rs;String num;管理员图书信息插入(String s)setTitle(s);hintLabel=new JLabel("输入新纪录");table=new JTable(a,ono);enterInsert=new JButton("插入新纪录");setLayout(null);Box baseBox=Box.createHorizontalBox();/横向baseBox.add(hintLabel);baseBox.add(new JScrollPane(table);baseBox.add(enterInsert);add(baseBox);baseBox.

温馨提示

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

评论

0/150

提交评论