




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档湖南科技学院2012年6月目录课题说明3程序设计思路4程序状态转换图4数据库设计5程序部分源代码6Login.java登录类6QueryBook.java查找修改书籍类10BookIn.java图书入库类17RemoveBook.java图书删除类22Book.java主界面类29ConnectMysql.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(); else if(cmd.equals(取消) f3.hide(); SuppressWarnings(unused)public static void main(String arg) BookIn a=new BookIn(); RemoveBook.java图书删除类import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.sql.*; class RemoveBook implements ActionListener /图书删除类 JFrame f; Container cp; JPanel jpS,jpanelWest; JButton jbt1,jbt2,jbt3,jbt4;/按钮,查询、取消、修改 JLabel label,L; /标签:请输入学号 JTextField tf; /定义文本框 JTable table;/用来接收数据库中返回的信息 Object columnName=图书名,图书号,单价,作者,出版社,入库时间,是否被借,借书者学号; Object ar =new Object808; String sno; String count=xx; SuppressWarnings(unused)RemoveBook() f=new JFrame(); cp=f.getContentPane(); / 初始化面板、按钮、标签、文本框 jpS=new JPanel(); jpanelWest=new JPanel(); /- jbt1=new JButton(查询); jbt2=new JButton(取消); jbt3=new JButton(删除); jbt4=new JButton(修改); /- label=new JLabel(请输入要删除的图书名:,SwingConstants.CENTER); label.setForeground(Color.blue); L=new JLabel(该种图书共有+count+本); /- table=new JTable(ar,columnName);/ar存放表中的数据,columnname表示列名 JScrollPane scrollpane = new JScrollPane(table); /- tf=new JTextField(18); /- /布局,添加控件 jpS.add(jbt1); jpS.add(jbt2); jpS.add(jbt3); jpS.add(jbt4); JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf); JPanel pp4=new JPanel(); JPanel jpE=new JPanel(); cp.add(jpanel,North); JPanel jp=new JPanel(); JPanel p=new JPanel();/用来放两个表 p.setLayout(new BorderLayout(); p.add(L,North); p.add(scrollpane); cp.add(pp4,West); cp.add(p,Center); cp.add(jpS,South); cp.add(jpE,East); /- Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ f.setSize(400,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); /- jbt1.addActionListener(this);/注册监听器 jbt2.addActionListener(this); jbt3.addActionListener(this); jbt4.addActionListener(this); /- int i=0; public void showRecord(String ql) while(i=0) ari0=; ari1=; ari2=; ari3=; ari4=; ari5=; ari6=; ari7=; i-; i=0; try ConnectMysql a=new ConnectMysql(); Connection con=a.Connecting(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广发银行邵阳市大祥区2025秋招信息科技岗笔试题及答案
- 广发银行武汉市东西湖区2025秋招群面模拟题及高分话术
- 招商银行上海市松江区2025秋招笔试EPI能力测试题专练及答案
- 光大银行绍兴市上虞区2025秋招笔试专业知识题专练及答案
- 农发行吉安市峡江县2025秋招面试典型题目及参考答案
- 浦发银行哈尔滨市道外区2025秋招笔试性格测试题专练及答案
- 民生银行南昌市新建区2025秋招笔试性格测试题专练及答案
- 招商银行孝感市孝南区2025秋招笔试行测高频题及答案
- 广发银行南通市崇川区2025秋招笔试热点题型专练及答案
- 招商银行郑州市中原区2025秋招英文面试题库及高分回答
- GB/T 45958-2025网络安全技术人工智能计算平台安全框架
- 阿尔茨海默病营养管理
- 养老护理员职业道德课件
- 护理专业全面解析
- 除颤护理课件
- 【化学 云南卷】2025年云南省高考招生统一考试真题化学试卷(含答案)
- 创伤性硬膜下出血查房
- 2025年廉政法规知识试题及答案
- 拔罐适应症研究-洞察及研究
- 2025《政务数据共享条例》法律法规课件
- Q-SY 02045-2024 柔性压裂管汇使用技术规范
评论
0/150
提交评论