收藏 分销(赏)

Java图书管理系统课程设计.doc

上传人:丰**** 文档编号:4787163 上传时间:2024-10-12 格式:DOC 页数:40 大小:780.51KB 下载积分:12 金币
下载 相关 举报
Java图书管理系统课程设计.doc_第1页
第1页 / 共40页
Java图书管理系统课程设计.doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
湖南科技学院 课程设计报告 课程名称: 面向对象程序设计课程设计 课程设计题目: 图书管理系统 系: 数学与计算科学系 专 业: 信息与计算科学 年级、班: 2009级信计1班 姓 名: 谭鄱仑 学 号: 200905002109 指导教师: 牛志毅 职 称: 讲师 2012年6月 目录 课题说明 3 程序设计思路 4 程序状态转换图 4 数据库设计 5 程序部分源代码 6 Login.java登录类 6 QueryBook.java查找修改书籍类 10 BookIn.java图书入库类 17 RemoveBook.java图书删除类 22 Book.java主界面类 29 ConnectMysql.java数据库连接类 33 程序测试 34 登录 34 主界面 34 图书查询修改界面 35 图书入库界面 36 图书删除界面 37 图书概览界面 37 修改密码界面 38 学生信息查询界面 38 设计总结 39 前期准备 39 编程实现 39 经验体会 39 参考文献 40 课题说明 1、设计一个图书信息管理系统 2、图书信息包括图书编号、书名、作者、出版社、出版日期、图书简介及图书类别等。 3、本系统功能描述: 图书信息录入功能; 图书信息浏览功能; 查询功能(至少一种查询方式); 图书信息修改功能; 及其它你认为必要的功能。 程序设计思路 程序较小,分为七个个模块,分别实现:登录,图书查询修改,图书入库,图书修改,图书概览,修改密码,学生信息查询。程序通过登录模块登录后可以通过点击相应按钮使用其余六个模块的功能,从而实现图书管理员。 程序状态转换图 数据库设计 数据库类型为MySQL Server 5.5 数据库名称为tpl 下图为表结构 程序部分源代码 由于源代码较多,故只写出部分源代码 Login.java登录类 import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.sql.*; @SuppressWarnings("serial") class Login extends JFrame implements ActionListener //登录窗口类 { //定义各容器和组件 Container cp=null; JFrame f=null; JButton j1,j2; JTextField t1; JPasswordField t2; JLabel jlable1,jlable2; Color c; JPanel jp1,jp2; //构造函数 Login(){ //创建各对象 f=new JFrame("小型图书管理系统"); j1=new JButton("确定"); j2=new JButton("取消"); cp=f.getContentPane(); jlable1=new JLabel(" 输入用户名"); jlable2=new JLabel(" 用户密码"); //重构painComponent函数实现JPanel添加背景 jp1=new JPanel(){ public void paintComponent(Graphics g) { super.paintComponent(g); ImageIcon img = new ImageIcon("1.jpg"); g.drawImage(img.getImage(), 0, 0, null); }}; jp2=new JPanel(); t1=new JTextField(18); t2=new JPasswordField(18); //将各组件加入相应的容器 jp1.add(jlable1); jp1.add(t1); jp1.add(jlable2); jp1.add(t2); JLabel JL=new JLabel("欢迎登陆",SwingConstants.CENTER); cp.add(JL,"North"); jp2.add(j1); jp2.add(j2); cp.add(jp1,"Center"); cp.add("South",jp2); jp1.setBackground(new Color(255,153,255)); Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(300,300); int xcenter=(x-300)/2; int ycenter=(y-300)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); //----------------------------------------------------- j1.addActionListener(this);//注册事件监听器 j2.addActionListener(this); f.addWindowListener(new WindowAdapter(){ //关闭窗口函数 public void windowClosing(WindowEvent e){ System.exit(0); } } ); } @SuppressWarnings("deprecation") public void confirm()//验证用户和密码是否存在 { try{ ConnectMysql a=new ConnectMysql(); Connection con=a.Connecting(); Statement sql=con.createStatement(); String uName=t1.getText().trim(); String password=t2.getText().trim(); String queryMima="select * from user where 用户名='"+uName+"' and 密码='"+password+"'"; ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) { new Book(uName); f.hide(); con.close(); }else{ JOptionPane.showMessageDialog(null,"该用户不存在","提示!", JOptionPane.YES_NO_OPTION); } t1.setText(""); t2.setText(""); } catch(SQLException g) { System.out.println("E Code"+g.getErrorCode()); System.out.println("E M"+g.getMessage()); } } //响应监听的不同事件 public void actionPerformed(ActionEvent e) { String cmd=e.getActionCommand(); if(cmd.equals("确定")){ confirm(); } else if(cmd.equals("取消")){ f.dispose(); } } @SuppressWarnings("unused") public static void main(String []arg){ Login a=new Login(); } } QueryBook.java查找修改书籍类 import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.sql.*; class QueryBook implements ActionListener //查询修改书籍信息窗口类 { //定义容器和组件 JFrame f3; Container cp; JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2,jbt3,jbt4;//按钮,确定、取消、修改、借书者信息 JLabel label; //标签:请输入图书号 JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8; //定义文本框 JLabel label1,label2,label3,label4; QueryBook() { f3=new JFrame(); cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jpanelWest=new JPanel(); jp=new JPanel(); //------------------------------------------------ jbt1=new JButton("确定"); jbt2=new JButton("取消"); jbt3=new JButton("修改"); jbt4=new JButton("借书者信息"); //------------------------------------------------ label=new JLabel("请输入图书号:",SwingConstants.CENTER); label.setForeground(Color.blue); tf=new JTextField(20); //------------------------------------------------ tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); tf5=new JTextField(20); tf6=new JTextField(20); tf7=new JTextField(20); tf8=new JTextField(20); //------------------------------------------------ //布局,添加控件 JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf); JPanel pp4=new JPanel(); JPanel jpane4=new JPanel(); cp.add(jpanel,"North"); JPanel pp2=new JPanel(new GridLayout(8,1)); JPanel pp3=new JPanel(); pp4.setLayout(new GridLayout(8,1)); pp4.add(new JLabel("图书名",SwingConstants.CENTER)); pp2.add(tf1); pp4.add(new JLabel("图书号",SwingConstants.CENTER)); pp2.add(tf2); pp4.add(new JLabel("单 价",SwingConstants.CENTER)); pp2.add(tf3); pp4.add(new JLabel("作 者",SwingConstants.CENTER)); pp2.add(tf4); pp4.add(new JLabel("出版社",SwingConstants.CENTER)); pp2.add(tf5); pp4.add(new JLabel("入库时间",SwingConstants.CENTER)); pp2.add(tf6); pp4.add(new JLabel("是否被借",SwingConstants.CENTER)); pp2.add(tf7); pp4.add(new JLabel("借书者学号",SwingConstants.CENTER)); pp2.add(tf8); //将按钮加入pp3中 pp3.add(jbt1); //按钮确定 pp3.add(jbt2); //按钮取消 pp3.add(jbt3);//按钮修改 pp3.add(jbt4);//按钮借书者信息 cp.add(pp4,"West"); cp.add(pp2,"Center"); cp.add(pp3,"South"); cp.add(jpane4,"East"); //------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true); //------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this); jbt3.addActionListener(this); jbt4.addActionListener(this); } //------------------------------------------------ public void showRecord() { try{ ConnectMysql a=new ConnectMysql(); Connection con=a.Connecting(); Statement sql; String ql=tf.getText().trim(); String s="select * from book where 图书号 ='"+ql +"'"; sql=con.createStatement(); ResultSet rs=sql.executeQuery(s); if(rs.next()) { String bname=rs.getString(1); String bno=rs.getString(2); String price=rs.getString(3); String writer=rs.getString(4); String publish=rs.getString(5); String indate=rs.getString(6); String isBorrowed=rs.getString(7); String borrowedName=rs.getString(8); tf1.setText(bname); tf2.setText(bno); tf3.setText(price); tf4.setText(writer); tf5.setText(publish); tf6.setText(indate); tf7.setText(isBorrowed); tf8.setText(borrowedName); } else {JOptionPane.showMessageDialog(null,"您输入的图书号不存在,请重新输入", "输入错误", JOptionPane.YES_NO_OPTION); } con.close(); }catch(SQLException g) { System.out.println("E Code"+g.getErrorCode()); System.out.println("E M"+g.getMessage()); } tf1.setEditable(true); tf2.setEditable(true); tf3.setEditable(true); tf4.setEditable(true); tf5.setEditable(true); tf6.setEditable(true); tf7.setEditable(true); tf8.setEditable(true); } public void fixRecord() { try{ ConnectMysql a=new ConnectMysql(); Connection con=a.Connecting(); Statement sql; String s="update book set 图书名='"+tf1.getText()+"',图书号='"+tf2.getText()+"',单价='"+tf3.getText()+"',作者='"+tf4.getText()+"',出版社='"+tf5.getText()+"',入库时间='"+tf6.getText()+"',是否被借='"+tf7.getText()+"',借书者学号='"+tf8.getText()+"' where 图书号='"+tf2.getText()+"'"; sql=con.createStatement(); int fix=sql.executeUpdate(s); if(fix==1) {JOptionPane.showMessageDialog(null,"修改成功!", "信息", JOptionPane.INFORMATION_MESSAGE); } con.close(); }catch(SQLException g) { System.out.println("E Code"+g.getErrorCode()); System.out.println("E M"+g.getMessage()); } } public void ShowStuRecord(){ StudentInfo Info=new StudentInfo(); Info.tf.setText(tf8.getText()); Info.showRecord(); } @SuppressWarnings("deprecation") public void actionPerformed(ActionEvent e) { String cmd=e.getActionCommand(); if(cmd.equals("确定")) { showRecord(); tf.setText(""); } if(cmd.equals("修改")) { fixRecord(); } if(cmd.equals("借书者信息")) { ShowStuRecord(); } if (cmd.equals("取消")) f3.hide(); } @SuppressWarnings("unused") public static void main(String []arg){ QueryBook a=new QueryBook(); } } BookIn.java图书入库类 import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.sql.*; //extends JFrame class BookIn implements ActionListener //图书入库类 { JFrame f3; Container cp; JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮:确定、取消、 JLabel label; //标签 JTextField tf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8; //定义文本框 JLabel label1,label2,label3,label4; String sno; BookIn() { f3=new JFrame(); cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jpanelWest=new JPanel(); jp=new JPanel(); //------------------------------------------------ jbt1=new JButton("确定"); jbt2=new JButton("取消"); //------------------------------------------------ label=new JLabel("图书入库",SwingConstants.CENTER); label.setForeground(Color.blue); //------------------------------------------------ tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); tf5=new JTextField(20); tf6=new JTextField(20); tf7=new JTextField(20); tf8=new JTextField(20); //------------------------------------------------ //布局,添加控件 jp1.add(jbt1); jp1.add(jbt2); sno=tf4.getText(); jp1.add(new JLabel("您好"+sno+"欢迎登陆学生信息系统")); JPanel jpanel=new JPanel(); jpanel.add(label); JPanel pp4=new JPanel(); JPanel jpane4=new JPanel(); cp.add(jpanel,"North"); JPanel pp2=new JPanel(new GridLayout(8,1)); JPanel pp3=new JPanel(); pp4.setLayout(new GridLayout(8,1)); pp4.add(new JLabel("图书名",SwingConstants.CENTER)); pp2.add(tf1); pp4.add(new JLabel("图书号",SwingConstants.CENTER)); pp2.add(tf2); pp4.add(new JLabel("单 价",SwingConstants.CENTER)); pp2.add(tf3); pp4.add(new JLabel("作 者",SwingConstants.CENTER)); pp2.add(tf4); pp4.add(new JLabel("出版社",SwingConstants.CENTER)); pp2.add(tf5); pp4.add(new JLabel("入库时间",SwingConstants.CENTER)); pp2.add(tf6); pp4.add(new JLabel("是否被借",SwingConstants.CENTER)); pp2.add(tf7); pp4.add(new JLabel("借书者学号",SwingConstants.CENTER)); pp2.add(tf8); pp3.add(jbt1); pp3.add(jbt2); cp.add(pp4,"West"); cp.add(pp2,"Center"); cp.add(pp3,"South"); cp.add(jpane4,"East"); //------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f3.setSize(350,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f3.setVisible(true); //------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this); } //------------------------------------------------ public void insertRecord() { if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("") || tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals("")) { JOptionPane.showMessageDialog(f3,"请填写图书资料"); return; } try{ ConnectMysql a=new ConnectMysql(); Connection con=a.Connecting(); Statement sql; String s="insert into book values('"+tf1.getText()+"','"+tf2.getText()+"','"+ tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"','"+tf7.getText()+"','"+tf8.getText()+"')"; //查询输入的图书号是否在数据库中存在 String query="select * from book where 图书号='"+tf2.getText()+"'"; sql=con.createStatement(); ResultSet rs=sql.executeQuery(query);//返回查询结果集 boolean moreRecords=rs.next();//判断结果集是否有数据 if(moreRecords) { JOptionPane.showMessageDialog(f3,"图书号已经被使用,请重新输入"); con.close(); tf2.setText(""); return; } int insert=sql.executeUpdate(s); if(insert==1) { JOptionPane.showMessageDialog(null,"图书信息录入成功!"); tf1.setText(""); tf2.setText(""); tf3.setText(""); tf4.setText(""); tf5.setText(""); tf6.setText(""); tf7.setText(""); tf8.setText(""); } }catch(SQLException g) { System.out.println("E Code"+g.getErrorCode()); System.out.println("E M"+g.getMessage()); } } @SuppressWarnings("deprecation") public void actionPerformed(ActionEvent e) { String cmd=e.getActionCommand(); if(cmd.equals("确定")) { insertRecord(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服