




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东建筑大学 课 程 设 计 说 明 书题 目:图书管理系统课 程: JAVA程序设计基础课程设计院 (部): 信息与电气工程学院专 业:物联网工程班 级:物联121学生姓名:李明钰学 号:20120815032指导教师:关华完成日期:2015年7月10日25山东建筑大学课程设计一 摘 要3二 所需软件4三 E-R图与结构功能图5E-R图5功能结构图5四 所需表格6Sql创建语句7五 页面的结构和关系8六 程序截图9七 总 结10八 参考文献10附录11(1)登录模块代码11(2)图书管理模块代码16一 摘 要设计一个小型图书管理系统,该系统由登录模块和功能模块组成。登录模块实现管理员登录,功能模块分为图书查询、图书入库、图书删除、图书修改四个部分。图书管理系统的开发主要涉及到用户登录和图书信息管理。图书信息管理包括:添加新进图书、删除旧图书、修改图书信息、图书查询。用户可以浏览、查询、添加、删除、修改图书的基本信息。创建公共类,主要是用于连接数据库的操作,事件监听操作)创建主窗体及登陆窗体。利用JFrame来JButton子类来进行设计创建所要应用的各功能内嵌面板,并实现相应数据库连接处理功能。二 所需软件操作系统:Windows 8.1数据库服务器:mySQLserver 5.1开发工具:eclipse3.4.1、JDBC驱动:mysql-connector-java-5.1.7-binJAVA环境;jre-8u25-windows-i586三 E-R图与结构功能图E-R图密码用户名用户价格图书图书名作者图书编号库存出版社功能结构图 登录界面 图书管理面板 编辑图书查询图书删除图书添加图书图1 图书管理系统功能结构图四 所需表格根据系统分析,设计图书信息管理系统的数据库(book)表有: 图2 SQL创建结果图用户信息表(表1)、图书信息表(表2)。表结构如下:表1:user字段说明类型长度主键备注Id用户名varchar10noPsw密码varchar10no表2:book字段说明类型长度主键备注bid图书编号varchar10yesbname书名varchar10no Wname作者varchar10Num1库存varchar10noChubs出版社信息varchar10noNum2 价格Varchar10NoSql创建语句Create database book;Use book;Create table user(id varchar(10) primary key,psw varchar(10));Insert into user values(“xx”,123456);Create table book(bid varchar(10) primary key, bname varchar(10),wname varchar(10),num1 varchar(10),chubs varchar(10),num2 varchar(2);Insert into book values(1001,”JAVA”,”山建”,10,”山建出版社”,10);五 页面的结构和关系验证密码 密码错误 图书管理面板保存修改操作保存插入操作修改操作删除操作插入操作 查询 操作图书管理面板 密码正确 六 程序截图图3 登录界面图4 管理界面七 总 结从上面的演示中可以看出,此系统可以完成用户登录和图书管理两大功能。在本系统的应用下可以实现用户按照书名查询书库的藏书,方便的增添图书,删除图书,修改图书信息。测试阶段一方面发现了系统的各种错误,另外一方面验证了修改后的系统能够实现提高图书管理工作效率的预期目的。不知不觉中,课程设计快接近尾声。回顾这几天,短暂而充实。也是由于时间比较紧张只有五天时间,所以该系统功能比较简单,暂且留待日后在完善。最后感谢这几天来宫淑兰老师对我们孜孜不倦的教导以及对本程序实验效果的鼓励。为我在以后的学习道路中增加了信心。 八 参考文献1 张思民. Java语言程序设计. 计算机科学与技术,2012, 292-3052飞思科技产品研发中心. JAVA应用开发详解M.电子工业出版社,2003.9:32-3003 赛奎春. JAVA工程应用与项目实践M. 机械工业出版社,2002.8:23-2944 耿祥义,张跃平. JAVA实用教程M. 清华大学出版社,2003.5.1:1-354附录(1)登录模块代码package Library;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;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.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Login extends JFrame private static final long serialVersionUID = 1L;private JLabel jlUsername;private JLabel jlPwd;private JTextField txtUsername; /用户名private JTextField txtPassword; /密码private JButton jbOk;private JButton jbCancel;public JLabel getJlUsername() if(jlUsername=null)jlUsername=new JLabel(账号);jlUsername.setForeground(Color.BLACK);jlUsername.setBounds(118, 40, 85, 30);return jlUsername;public JLabel getJlPwd() if(jlPwd=null)jlPwd=new JLabel(密码);jlPwd.setForeground(Color.BLACK);jlPwd.setBounds(118, 100, 85, 30);return jlPwd;public JTextField getTxtUsername() if(txtUsername=null)txtUsername=new JTextField(20);txtUsername.setBounds(180,40 , 200, 30);return txtUsername;public JTextField getTxtPassword() if(txtPassword=null)txtPassword=new JPasswordField(20);txtPassword.setBounds(180, 100, 200, 30);return txtPassword;public JButton getJbOk() if(jbOk=null)jbOk=new JButton(登陆);jbOk.setBounds(150, 180, 90, 30);/jbOk.addActionListener(this);return jbOk;public JButton getJbCancel() if(jbCancel=null)jbCancel=new JButton(取消);jbCancel.setBounds(300, 180, 90, 30);return jbCancel;public Login(String title)super(title);/JFrame frame=new JFrame();Container cantainer=this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img = new ImageIcon(C:Documents and SettingsAdministrator桌面2.jpg);/这是背景图片JLabel imgLabel = new JLabel(img);/将背景图放在标签里。this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE);/注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。imgLabel.setBounds(100,100,img.getIconWidth(), img.getIconHeight();/设置背景标签的位置cantainer.setLayout(new BorderLayout();imgLabel.setLayout(null);imgLabel.add(getJlUsername();imgLabel.add(getTxtUsername();imgLabel.add(getJlPwd();imgLabel.add(getTxtPassword();imgLabel.add(getJbOk();imgLabel.add(getJbCancel();cantainer.add(imgLabel,BorderLayout.NORTH);(JPanel)cantainer).setOpaque(false); /注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。this.setSize(img.getIconWidth(),img.getIconHeight();myEvent();this.setVisible(true);this.setResizable(true);private void myEvent()jbCancel.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Login.this.dispose(););jbOk.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Connection conn=null;Statement stm=null;ResultSet st=null;try Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/book,root,123);stm=conn.createStatement();String sql=select * from user;/String sql1=select psw from user;st=stm.executeQuery(sql);/ st1=stm.executeQuery(sql1);if(st.next()if(txtUsername.getText().equals(st.getString(id)&txtPassword.getText().equals(st.getString(psw)Login.this.setVisible(false);new Book(管理界面);elseJOptionPane.showMessageDialog(null, 您输入的账号或密码不正确);getTxtUsername().setText();getTxtPassword().setText();else JOptionPane.showMessageDialog(null,用户名不存在,请重新输入,错误!); getTxtUsername().setText();getTxtPassword().setText();catch(ClassNotFoundException e1)e1.printStackTrace(); catch (SQLException e2) / TODO Auto-generated catch blocke2.printStackTrace();finallytrystm.close();catch (Exception e3) / 关闭Connection try conn.close(); catch (Exception e4) );public static void main(String args)new Login(图书管理登陆界面);(2)图书管理模块代码package Library;import java.awt.BorderLayout;import java.awt.Container;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.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTable;import javax.swing.JTextField;public class Book extends JFrame private static final long serialVersionUID = 1L;private JLabel lblId;private JLabel lblBname;private JLabel lblWname;private JLabel lblCbs;private JLabel lblnum1;private JLabel lblnum2;private JTextField bId; /图书编号private JTextField bname; /书名private JTextField wname; /作者名private JTextField cbs; /出版社private JTextField num1; /价格private JTextField num2; /库存量private JButton jbDel;private JTextField jDel;private JButton jbAdd;private JButton jbSearch;private JButton jbUpdate;private JTable table;private JLabel jabel;/输入要查找的书号public JLabel getJabel() if(jabel=null)jabel=new JLabel(查删学号);jabel.setBounds(20, 350, 60, 60);return jabel;public JButton getJbDel() if(jbDel=null)jbDel=new JButton(删除);jbDel.setBounds(180, 400, 60, 30);return jbDel;public JTextField getjDel() if(jDel=null)jDel=new JTextField(20);jDel.setBounds(100, 350, 150, 30);return jDel;public JButton getJbAdd() if(jbAdd=null)jbAdd=new JButton(添加);jbAdd.setBounds(100,400,60,30);return jbAdd;public JButton getJbSearch() if(jbSearch=null)jbSearch=new JButton(查找);jbSearch.setBounds(100, 450, 60, 30);return jbSearch;public JButton getJbUpdate() if(jbUpdate=null)jbUpdate=new JButton(修改);jbUpdate.setBounds(180, 450, 60, 30);return jbUpdate;public JTable getTable() if(table=null)table=new JTable(100,6);table.setBounds(270, 50, 500, 600);return table;public JLabel getLblId() if(lblId=null)lblId=new JLabel(编号);lblId.setBounds(50, 50, 50, 30);return lblId;public JLabel getLblBname() if(lblBname=null)lblBname=new JLabel(书名);lblBname.setBounds(50, 100, 50, 30);return lblBname;public JLabel getLblWname() if(lblWname=null)lblWname=new JLabel(作者);lblWname.setBounds(50,150, 50, 30);return lblWname;public JLabel getLblnum1() if(lblnum1=null)lblnum1=new JLabel(价格);lblnum1.setBounds(50,200, 50, 30);return lblnum1;public JLabel getLblnum2() if(lblnum2=null)lblnum2=new JLabel(库存量);lblnum2.setBounds(50,250, 50, 30);return lblnum2;public JTextField getbId() if(bId=null)bId=new JTextField(20);bId.setBounds(100, 50,150, 30);return bId;public JTextField getBname() if(bname=null)bname=new JTextField(20);bname.setBounds(100, 100, 150, 30);return bname;public JTextField getWname() if(wname=null)wname=new JTextField(20);wname.setBounds(100, 150, 150, 30);return wname;public JTextField getNum1() if(num1=null)num1=new JTextField(20);num1.setBounds(100, 200, 150, 30);return num1;public JTextField getNum2() if(num2=null)num2=new JTextField(20);num2.setBounds(100, 250, 150, 30);return num2;public JLabel getLblCbs() if(lblCbs=null)lblCbs=new JLabel(出版社);lblCbs.setBounds(50,300, 50, 30);return lblCbs;public JTextField getCbs() if(cbs=null)cbs=new JTextField(20);cbs.setBounds(100, 300, 150, 30);return cbs;public Book(String title)super(title);/JFrame frame=new JFrame();Container cantainer=this.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);ImageIcon img = new ImageIcon(C:Documents and SettingsAdministrator桌面3.jpg);/这是背景图片JLabel imgLabel = new JLabel(img);/将背景图放在标签里。this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE);/注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight();/设置背景标签的位置cantainer.setLayout(new BorderLayout();imgLabel.setLayout(null);imgLabel.add(getLblId();imgLabel.add(getbId();imgLabel.add(getLblBname();imgLabel.add(getBname();imgLabel.add(getLblWname();imgLabel.add(getWname();imgLabel.add(getLblnum1();imgLabel.add(getNum1();imgLabel.add(getLblnum2();imgLabel.add(getNum2();imgLabel.add(getLblCbs();imgLabel.add(getCbs();imgLabel.add(getTable();imgLabel.add(getJbDel();imgLabel.add(getjDel();imgLabel.add(getJbAdd();imgLabel.add(getJbSearch();imgLabel.add(getJbUpdate();imgLabel.add(getJabel();cantainer.add(imgLabel,BorderLayout.NORTH);(JPanel)cantainer).setOpaque(false); /注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。this.setSize(2000,2000);myEvent();this.setVisible(true);this.setResizable(true);private void myEvent() / TODO Auto-generated method stubjbAdd.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)Connection conn=null;Statement stm=null;String id1=bId.getText();String name1=bname.getText();String name2=wname.getText();String n1=num1.getText();String n2=num2.getText();String chubs=cbs.getText();tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/book,root,123);stm=conn.createStatement();String sql=insert into book values(+id1+,+name1+,+name2+,+n1+,+n2+,+chubs+);stm.executeUpdate(sql);getbId().setText();getBname().setText();getWname().setText();getNum1().setText();getNum2().setText();getCbs().setText();catch(ClassNotFoundException e) catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally / 关闭Statement try stm.close(); catch (Exception e) / 关闭Connection try conn.close(); catch (Exception e) );jbDel.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)String id=jDel.getText();Connection conn=null;Statement stm=null;tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/book,root,123);/String sql=select * from book;String sql=delete from book where Bid=+id+;stm=conn.createStatement();stm.executeUpdate(sql);getjDel().setText();catch(ClassNotFoundException e) catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally / 关闭Statement try stm.close(); catch (Exception e) / 关闭Connection try conn.close(); catch (Exception e) );jbSearch.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ee)String id=jDel.getText();Connection conn=null;Statement stm=null;ResultSet rst=null;tryClass.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/book,root,123);/String sql=select * from book;String sql=select * from book where Bid=+id+;stm=c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版安全设备安装与销售服务合同样本
- 2025版第四章国际海洋工程技术合作合同
- 二零二五年度购房定金协议范本:毛坯房
- 二零二五年度节能环保型围墙施工与能源管理系统合同
- 2025版电子元器件出口销售合同模板与供应链管理技巧
- 二零二五年度工业制造厂房租赁居间代理合同范本
- 2025版购物中心娱乐项目租赁合同
- 二零二五年度公共建筑节能改造委托造价咨询合同
- 2025至2030年中国浴室架行业市场发展现状及投资战略咨询报告
- 2025版电子商务平台服务合同标的交易风险控制指南
- 数据库设计规范说明
- 美国专利法及实务培训-上传课件
- 新版中国电信员工手册
- 2023年中国工商银行软件开发中心春季校园招聘500人笔试模拟试题及答案解析
- D500-D505 2016年合订本防雷与接地图集
- 中国重症加强治疗病房(ICU)建设与管理指南
- 社区矫正法课件
- 后勤保障楼幕墙施工方案新
- GB/T 19326-2022锻制支管座
- GB/T 8949-2008聚氨酯干法人造革
- GB/T 30544.1-2014纳米科技术语第1部分:核心术语
评论
0/150
提交评论