java图书馆_java编写图书馆管理系统

本文档介绍了使用Java语言设计和实现一个图书馆管理系统的详细过程,包括图书类、读者类和借阅信息类的设计,以及系统中添加、查询信息的功能。通过Eclipse集成开发环境和JDK1.7/1.8进行开发,旨在提升学生对面向对象编程的理解和实践能力。
摘要由CSDN通过智能技术生成

《java编写图书馆管理系统》由会员分享,可在线阅读,更多相关《java编写图书馆管理系统(88页珍藏版)》请在人人文库网上搜索。

1、面向对象课程设计报告课程设计题目:图书信息管理系统学 院:计算机科学与技术学院专 业: 软件工程 班 级: 131 学 号: 学生姓名: 易榜宇 指导教师: 汪健 2014年7月12日一、课程设计目的及要求1: 课程设计要求面向对象程序设计是一门实践性较强的课程,以实际应用为目的。在课程设计时应注重培养学生的实际操作能力。本课程设计安排了16学时的实验课时,具体要求如下:1. 学习和理解课程设计题目的基本理论和方法;2. 掌握实验的实现步骤和关键技术;3. 准备好实验所需要的资源和文档;4. 上机实现程序,得到通过调试的正确程序。5. 根据实验的要求,完成实验报告的word文档。2:课程设计目。

2、的面向对象程序设计是软件工程专业的专业基础课,目的是让学生通过对面向对象程序设计语言(例如Java)的学习,全面理解和掌握面向对象程序设计的基本思想、基本概念和基本方法。本课程设计是面向对象程序设计课程的后续实践课程。在本课程设计中,将利用JDK1.7/1.8平台和Eclipse(Netbeans)集成开发环境为实践工具,通过上机实践培养学生分析具体问题、利用面向对象语言工具(Java)解决实际问题的能力,更好地理解和掌握面向对象的思想、概念和方法。二、课程设计实践环境Win7 、JDK 1.7/1.8以及Eclipse集成开发环境。3、 课程设计内容1: 图书借阅信息管理系统题目要求:设计三。

3、个类:图书类、读者类、借阅信息类。图书类用来存储图书的信息,读者类用来存储读者的信息,借阅信息类用来存储读者借阅图书的信息。在系统中实现图书信息的添加和查询、读者信息的添加和查询、图书借阅信息的添加和查询。图书信息可以包括:书名、图书编号、作者、出版社、出版时间、版次、ISBN、定价等。读者信息可以包括:姓名、年龄、性别、借阅证号(读者编号)、单位等。图书借阅信息可以包括:读者编号、图书编号、借出时间、应还时间等。2:具体设计了AddInforFrame,AddBookFrame,AddFrame,AddListener,SearchListener,LoginListener,Operate。

4、Frame,SearchBookFrame,SearchUserFrame,SearchInforFrame,WindowLoad,MainFrame这样我几个类,3,(0)这是管理员登录的界面)(1)这是管理员进行操作的界面)(2)这是用户添加的界面)(3)这是用户查询的界面)(4)这是管理员将要退出的界面)4,使用说明:管理员通过后台登录(用户名admin,密码),可以进行读者、图书、借阅信息的添加与查询,以及相关的操作。四、源程序代码AddBookFrame.javaimport java.awt.FlowLayout;import java.awt.event.ActionEvent;。

5、import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matc。

6、her;import java.util.regex.Pattern;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.event.DocumentEvent;imp。

7、ort javax.swing.event.DocumentListener;public class AddBookFrame extends JFrame implements ActionListenerstatic int bookcount=0;JLabel alable;/*姓名、学号、年龄、性别、学院、专业、年级、班级*/JLabel userlable;JLabel usernumber;JLabel age;JLabel sex;JLabel collage;JLabel major;JLabel grade;JLabel class_;JTextField userinpu。

8、t,usernuminput,ageinput,sexinput,collageinput,majorinput,gradeinput,class_input;JTextArea showtext;/*用于显示用户添加的信息域 */JButton ok;JButton reset;int flag=0;int flag1=0;public AddBookFrame()init();setBounds(400,100,600,600);setVisible(true);setResizable(false);/* addWindowListener(new WindowAdapter()publ。

9、ic void windowClosing(WindowEvent e)int n=JOptionPane.showConfirmDialog( this, 是否要真的退出添加?,确认对话框, JOptionPane.YES_NO_CANCEL_OPTION);if(n=JOptionPane.YES_OPTION)this.EXIT_ON_CLOSE;System.exit(0););*/setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);void init()alable =new JLabel(请填写相关信息:);userlable=new J。

10、Label(编号:);usernumber =new JLabel(书名:);age=new JLabel(版次:);sex=new JLabel(定价:);collage=new JLabel(作者:);major=new JLabel(出版社:);grade=new JLabel(出版时间:);class_=new JLabel(ISBN:);userinput=new JTextField(15);usernuminput=new JTextField(15);ageinput=new JTextField(15);sexinput=new JTextField(15);collagei。

11、nput=new JTextField(15);majorinput=new JTextField(15);gradeinput=new JTextField(15);class_input=new JTextField(15);/设置盒式布局并添加组件Box baseBox,boxV1,boxV2,boxV3,boxV4;this.setLayout(new FlowLayout();boxV1=Box.createVerticalBox();boxV1.add(alable);boxV1.add(boxV1.createVerticalStrut(30);boxV1.add(userlab。

12、le);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(usernumber);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(age);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(sex);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(collage);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add( major);boxV1.a。

13、dd(boxV1.createVerticalStrut(15);boxV1.add(grade);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(class_);boxV2=Box.createVerticalBox();/*boxV2.createVerticalStrut(10);*/boxV2.add(boxV2.createVerticalStrut(45);boxV2.add(userinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(usernuminput);box。

14、V2.add(boxV2.createVerticalStrut(11);boxV2.add(ageinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(sexinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(collageinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(majorinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add( gradei。

15、nput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(class_input);boxV3=Box.createHorizontalBox();boxV3.add(boxV1);boxV3.add(boxV2);boxV4=Box.createHorizontalBox();ok=new JButton(确定);reset=new JButton(取消);ok.addActionListener(this);reset.addActionListener(this);boxV4.add(ok);boxV4.add(reset);base。

16、Box=Box.createVerticalBox();baseBox.add(boxV3);baseBox.add(baseBox.createVerticalStrut(20);baseBox.add(boxV4);showtext=new JTextArea(9,50);/*文本域的一些操作*/showtext.setText(您新添加的图书信息如下:);add(new JScrollPane(showtext);showtext.setLineWrap(true);/*(showtext.getDocument().addDocumentListener(this);*/add(sho。

17、wtext);this.add(baseBox);/让输入用户名的文本框获得焦点userinput.grabFocus();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=reset)showtext.setText(您新添加的图书信息如下:);else if(userinput.getText().isEmpty()|usernuminput.getText().isEmpty()|ageinput.getText().isEmpty()|。

18、sexinput.getText().isEmpty()|collageinput.getText().isEmpty()|majorinput.getText().isEmpty()|gradeinput.getText().isEmpty()|class_input.getText().isEmpty()JOptionPane.showMessageDialog(this,请把信息填写完整!, 警告对话框,JOptionPane.WARNING_MESSAGE);else/*此时用户已存在了*/String usernum=userinput.getText();int b;byte to。

19、m=new byte;File file=new File(C:Book.txt);tryFileReader in=new FileReader(file);BufferedReader inTwo=new BufferedReader(in);String s=null;int a;while(s=inTwo.readLine()!=null)if(a=s.indexOf(usernum)!=-1)flag=1;JOptionPane.showMessageDialog(this,图书已经存在!, 警告对话框,JOptionPane.WARNING_MESSAGE);userinput.s。

20、etText(null);usernuminput.setText(null);ageinput.setText(null);sexinput.setText(null);collageinput.setText(null);majorinput.setText(null);gradeinput.setText(null);class_input.setText(null);break;catch(IOException e1)JOptionPane.showMessageDialog(this,文件读取失败!, 警告对话框,JOptionPane.WARNING_MESSAGE);if(fl。

21、ag=0)/*没有重复添加图书的情况*/tryint n=Integer.parseInt(userinput.getText();String date1=gradeinput.getText();/*String date2=majorinput.getText();*/String eL = 0-94-0-10-9-0-30-9;Pattern p = Pattern.compile(eL);Matcher mm = p.matcher(date1);/*Matcher nn=p.matcher(date2)*/;boolean dateFlag = (mm.matches()/*&nn。

22、.matches()*/);if (!dateFlag) flag1=1;JOptionPane.showMessageDialog(this,日期格式有误!, 警告对话框,JOptionPane.WARNING_MESSAGE);gradeinput.setText(null);/*majorinput.setText(null);*/gradeinput.grabFocus();if(flag1=0)bookcount+;/*计数总人数*/String s1=userinput.getText();showtext.append(n+编号:+s1+;);String s2=usernumi。

23、nput.getText();showtext.append(书名:+s2+;);String s3=ageinput.getText();showtext.append(版次:+s3+;);String s4=sexinput.getText();showtext.append(定价:+s4+;+n);String s5=collageinput.getText();showtext.append(作者:+s5+;);String s6= majorinput.getText();showtext.append(出版社:+s6+;);String s7=gradeinput.getText(。

24、);showtext.append(出版时间:+s7+;);String s8=class_input.getText();showtext.append(ISBN:+s8+;);int n1=JOptionPane.showConfirmDialog(this, 是否要真的添加?,确认对话框, JOptionPane.YES_NO_CANCEL_OPTION);if(n1=JOptionPane.YES_OPTION)/*this.EXIT_ON_CLOSE;*/String personInfo=/*学号:+*/s1+rn+/*姓名:+*/s2+rn+/*年龄:+*/s3+rn/*+性别:。

25、*/+s4+rn/*+学院:*/+s5+rn+/*专业:+*/s6+rn+/*年级:+*/s7+rn/*+班级:*/+s8+rn;/*用户所有信息*/byte tom1=new byte;tom1=personInfo.getBytes();tryFile f=new File(C:Book.txt);try f.createNewFile(); / 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 catch (IOException e2) e2.printStackTrace();FileOutputStream out=new FileOutputStream。

26、(f,true);/*out.write(tom);*/out.write(tom1,0,tom1.length);/*while(b=in.read(tom,0,10000)!=-1)String s=new String(tom,0,b);*/System.out.println(personInfo);/*/out.close();/*弹出添加成功的界面*/JOptionPane.showMessageDialog(this,添加成功!, 通知对话框,JOptionPane.WARNING_MESSAGE);userinput.setText(null);usernuminput.set。

27、Text(null);ageinput.setText(null);sexinput.setText(null);collageinput.setText(null);majorinput.setText(null);gradeinput.setText(null);class_input.setText(null);catch (IOException ex)JOptionPane.showMessageDialog(this,文件写入错误!, 警告对话框,JOptionPane.WARNING_MESSAGE);/*System.out.println(File write Error+e。

28、x);*/catch(Exception ee)JOptionPane.showMessageDialog(this,书编号格式错误!, 警告对话框,JOptionPane.WARNING_MESSAGE);userinput.setText(null);userinput.grabFocus();AddFrame.javaimport java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;imp。

29、ort java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;i。

30、mport javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;public class AddFrame extends JFrame implements ActionListenerstatic int stucount=0;JLabel alable;/。

31、*姓名、学号、年龄、性别、学院、专业、年级、班级*/JLabel userlable;JLabel usernumber;JLabel age;JLabel sex;JLabel collage;JLabel major;JLabel grade;JLabel class_;JTextField userinput,usernuminput,ageinput,sexinput,collageinput,majorinput,gradeinput,class_input;JTextArea showtext;/*用于显示用户添加的信息域 */JButton ok;JButton reset;in。

32、t flag=0;public AddFrame()init();setBounds(400,100,600,600);setVisible(true);setResizable(false);/* addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)int n=JOptionPane.showConfirmDialog( this, 是否要真的退出添加?,确认对话框, JOptionPane.YES_NO_CANCEL_OPTION);if(n=JOptionPane.YES_OPTION)。

33、this.EXIT_ON_CLOSE;System.exit(0););*/setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);void init()alable =new JLabel(请填写相关信息:);userlable=new JLabel(姓名:);usernumber =new JLabel(学号:);age=new JLabel(年龄:);sex=new JLabel(性别:);collage=new JLabel(学院:);major=new JLabel(专业:);grade=new JLabel(年级:);class_=new J。

34、Label(班级:);userinput=new JTextField(15);usernuminput=new JTextField(15);ageinput=new JTextField(15);sexinput=new JTextField(15);collageinput=new JTextField(15);majorinput=new JTextField(15);gradeinput=new JTextField(15);class_input=new JTextField(15);/设置盒式布局并添加组件Box baseBox,boxV1,boxV2,boxV3,boxV4;t。

35、his.setLayout(new FlowLayout();boxV1=Box.createVerticalBox();boxV1.add(alable);boxV1.add(boxV1.createVerticalStrut(30);boxV1.add(userlable);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(usernumber);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(age);boxV1.add(boxV1.createVerticalStrut(15);box。

36、V1.add(sex);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(collage);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add( major);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(grade);boxV1.add(boxV1.createVerticalStrut(15);boxV1.add(class_);boxV2=Box.createVerticalBox();/*boxV2.createVerticalStru。

37、t(10);*/boxV2.add(boxV2.createVerticalStrut(45);boxV2.add(userinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(usernuminput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(ageinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(sexinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.a。

38、dd(collageinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(majorinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add( gradeinput);boxV2.add(boxV2.createVerticalStrut(11);boxV2.add(class_input);boxV3=Box.createHorizontalBox();boxV3.add(boxV1);boxV3.add(boxV2);boxV4=Box.createHorizontalBox。

39、();ok=new JButton(确定);reset=new JButton(取消);ok.addActionListener(this);reset.addActionListener(this);boxV4.add(ok);boxV4.add(reset);baseBox=Box.createVerticalBox();baseBox.add(boxV3);baseBox.add(baseBox.createVerticalStrut(20);baseBox.add(boxV4);showtext=new JTextArea(9,50);/*文本域的一些操作*/showtext.setT。

40、ext(您新添加的用户信息如下:);add(new JScrollPane(showtext);showtext.setLineWrap(true);/*(showtext.getDocument().addDocumentListener(this);*/add(showtext);this.add(baseBox);/让输入用户名的文本框获得焦点userinput.grabFocus();Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=r。

41、eset)showtext.setText(您新添加的用户信息如下:);else /*此时用户已存在了*/String usernum=usernuminput.getText();int b;byte tom=new byte;File file=new File(C:/Student.txt);tryFileReader in=new FileReader(file);BufferedReader inTwo=new BufferedReader(in);String s=null;int a;while(s=inTwo.readLine()!=null)if(a=s.indexOf(us。

42、ernum)!=-1)flag=1;JOptionPane.showMessageDialog(this,此用户也注册!, ,JOptionPane.WARNING_MESSAGE);/*userinput.setText(null);usernuminput.setText(null);ageinput.setText(null);sexinput.setText(null);collageinput.setText(null);majorinput.setText(null);gradeinput.setText(null);class_input.setText(null);*/user。

43、input.grabFocus();break;catch(IOException e1)JOptionPane.showMessageDialog(this,读取失败!,JOptionPane.WARNING_MESSAGE);if(flag!=1)tryint n=Integer.parseInt(usernuminput.getText();int m=Integer.parseInt(ageinput.getText();if(m100)JOptionPane.showMessageDialog(this,年龄填写不正确!,JOptionPane.WARNING_MESSAGE);ag。

44、einput.setText(null);ageinput.grabFocus();String sex=sexinput.getText();if(!sex.equals(男)&!sex.equals(女)JOptionPane.showMessageDialog(this,性别填写不正确!,JOptionPane.WARNING_MESSAGE);sexinput.setText(null);userinput.grabFocus();if(userinput.getText().isEmpty()|usernuminput.getText().isEmpty()|ageinput.get。

45、Text().isEmpty()|sexinput.getText().isEmpty()|collageinput.getText().isEmpty()|majorinput.getText().isEmpty()|gradeinput.getText().isEmpty()|class_input.getText().isEmpty()JOptionPane.showMessageDialog(this,请把信息填写完整!,JOptionPane.WARNING_MESSAGE);elsestucount+;/*计数总人数*/String s1=userinput.getText();s。

46、howtext.append(n+用户名:+s1+;);String s2=usernuminput.getText();showtext.append(学号:+s2+;);String s3=ageinput.getText();showtext.append(年龄:+s3+;);String s4=sexinput.getText();showtext.append(性别:+s4+;+n);String s5=collageinput.getText();showtext.append(学院:+s5+;);String s6= majorinput.getText();showtext.a。

47、ppend(专业:+s6+;);String s7=gradeinput.getText();showtext.append(年级:+s7+;);String s8=class_input.getText();showtext.append(班级:+s8+;);int n1=JOptionPane.showConfirmDialog(this, 是否确定添加” JOptionPane.YES_NO_CANCEL_OPTION);if(n1=JOptionPane.YES_OPTION)/*this.EXIT_ON_CLOSE;*/String personInfo=/*学号:+*/s2+rn+。

48、/*姓名:+*/s1+rn+/*年龄:+*/s3+rn/*+性别:*/+s4+rn/*+学院:*/+s5+rn/*+专业:*/+s6+rn+/*年级:+*/s7+rn/*+班级:*/+s8+rn;/*用户所有信息*/byte tom1=new byte;tom1=personInfo.getBytes();tryFile f=new File(C:Student.txt);try f.createNewFile(); / 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 catch (IOException e2) e2.printStackTrace();FileO。

49、utputStream out=new FileOutputStream(f,true);/*out.write(tom);*/out.write(tom1,0,tom1.length);/*while(b=in.read(tom,0,10000)!=-1)String s=new String(tom,0,b);*/System.out.println(personInfo);/*/out.close();/*弹出添加成功的界面*/JOptionPane.showMessageDialog(this,添加成功!, 通知对话框,JOptionPane.WARNING_MESSAGE);user。

50、input.setText(null);usernuminput.setText(null);ageinput.setText(null);sexinput.setText(null);collageinput.setText(null);majorinput.setText(null);gradeinput.setText(null);class_input.setText(null);catch (IOException ex)JOptionPane.showMessageDialog(this,文件写入错误!, 警告对话框,JOptionPane.WARNING_MESSAGE);/*S。

51、ystem.out.println(File write Error+ex);*/catch(Exception ee)JOptionPane.showMessageDialog(this,学号或年龄格式错误!, 警告对话框,JOptionPane.WARNING_MESSAGE);ageinput.setText(null);usernuminput.setText(null);usernuminput.grabFocus();/AddInforFrame.javaimport java.awt.FlowLayout;import java.awt.event.ActionEvent;imp。

52、ort java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matcher。

53、;import java.util.regex.Pattern;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.event.DocumentEvent;import。

54、 javax.swing.event.DocumentListener;public class AddInforFrame extends JFrame implements ActionListenerstatic int inforcount=0;JLabel alable;/*姓名、学号、年龄、性别、学院、专业、年级、班级*/JLabel userlable;JLabel usernumber;JLabel age;JLabel sex;JLabel collage;JLabel major;JTextField userinput,usernuminput,ageinput,sexinput,collageinput,majorinput;JTextArea showtext;/*用于显示用户添加的信息域 */JButton ok;JButto。

import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; import javax.swing.event.*; import javax.swing.border.*; import java.sql.*; import java.io.*; import java.net.*; import javax.swing.*; public class Java{ public static void main(String args[]){ One one=new One(); } } class One extends JFrame implements ActionListener{ JLabel jlabel1,jlabel2; JButton jbutton1,jbutton2; JTextField jtextfield1; JPanel jpanel1; JPasswordField passwordText; One(){ jpanel1=new JPanel(); jlabel1=new JLabel("用户名:"); jlabel2=new JLabel("密 码:"); jbutton1=new JButton("登录"); jbutton2=new JButton("取消"); Font f=new Font("楷体_GB2312",Font.BOLD,22); jlabel1.setFont(f); jlabel2.setFont(f); jtextfield1=new JTextField(10); passwordText=new JPasswordField(10); passwordText.setEchoChar('*'); jbutton1.addActionListener(this); jbutton2.addActionListener(this); setLayout(new FlowLayout()); jpanel1.add(jbutton1); jpanel1.add(jbutton2); add(jlabel1); add(jtextfield1); add(jlabel2); add(passwordText); add(jpanel1); setBounds(100,100,200,200); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if(e.getSource()==jbutton1){ String str1,str2; str1=jtextfield1.getText().trim(); str2=passwordText.getText(); Connection con; Statement sql; ResultSet rs; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException ee){ System.out.println(""+ee); } try{ con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT * FROM login"); boolean boo=true; while(rs.next()){ if(rs.getString(1).equals(str1) && rs.getString(2).equals(str2)){ JOptionPane.showMessageDialog(this,"欢迎进入图书管理系统","login",JOptionPane.PLAIN_MESSAGE); setVisible(false); FrameMain t=new FrameMain(); boo=false; } } if(boo){ JOptionPane.showMessageDialog(this,"用户不存在或者输入错误请重新输入!","提示",JOptionPane.WARNING_MESSAGE); jtextfield1.setText(""); passwordText.setText(""); } con.close(); }catch(SQLException eee){System.out.println(eee);} } else{ System.exit(0); } } } class FrameMain extends JFrame implements ActionListener{ JPanel contentPane; JMenuBar mb1=new JMenuBar(); JMenu readr=new JMenu("读者"); JMenu book=new JMenu("图书"); JMenu help=new JMenu("帮助"); JMenu exit=new JMenu("退出"); JMenuItem r1=new JMenuItem("浏览读者信息"); JMenuItem b1=new JMenuItem("浏览图书信息"); JMenuItem b2=new JMenuItem("增加图书"); JMenuItem b3=new JMenuItem("删除图书"); JMenuItem b4=new JMenuItem("修改图书信息"); JMenuItem h1=new JMenuItem("使用网络信息帮助"); JMenuItem h2=new JMenuItem("读取java文件帮助信息"); JMenuItem e1=new JMenuItem("退出系统"); FrameMain(){ setTitle("图书馆信息管理系统"); readr.add(r1); book.add(b1); book.add(b2); book.add(b3); book.add(b4); help.add(h1); help.add(h2); exit.add(e1); mb1.add(readr); mb1.add(book); mb1.add(help); mb1.add(exit); setJMenuBar(mb1); r1.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); h1.addActionListener(this); h2.addActionListener(this); e1.addActionListener(this); setBounds(200,200,500,500); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if(e.getSource()==r1){ new showReader(); } else if(e.getSource()==b1){ new showBook(); } else if(e.getSource()==b2){ new InsertBook(); } else if(e.getSource()==b3){ new Delete(); } else if(e.getSource()==b4){ new Modify(); } else if(e.getSource()==h1){ Help1 flink=new Help1(); } else if(e.getSource()==h2){ class Help2 extends JFrame { Help2(){ byte b[]=new byte[30]; JTextArea text=new JTextArea(20,20); setSize(330,300); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); add(text,BorderLayout.CENTER); try{ FileInputStream input=new FileInputStream("help.java"); ProgressMonitorInputStream in=new ProgressMonitorInputStream(this,"读取help文件",input); ProgressMonitor p=in.getProgressMonitor(); while(in.read(b)!=-1){ String s=new String(b); text.append(s); Thread.sleep(200); } }catch(InterruptedException e){} catch(IOException e){} } } new Help2(); } else if(e.getSource()==e1){ System.exit(0); } } } class Help1 extends JFrame implements ActionListener,Runnable{ JButton button; URL url; JTextField text; JEditorPane editPane; byte b[]=new byte[118]; Thread thread; public Help1(){ text=new JTextField(20); editPane=new JEditorPane(); editPane.setEditable(false); button=new JButton("确定"); button.addActionListener(this); thread=new Thread(this); JPanel p=new JPanel(); p.add(new JLabel("输入网址: ")); p.add(text); p.add(button); Container con=getContentPane(); con.add(new JScrollPane(editPane),BorderLayout.CENTER); con.add(p,BorderLayout.NORTH); setBounds(60,60,500,500); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); editPane.addHyperlinkListener(new HyperlinkListener (){ public void hyperlinkUpdate(HyperlinkEvent e){ if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED){ try{ editPane.setPage(e.getURL()); }catch(IOException e1){ editPane.setText(""+e1); } } } }); } public void actionPerformed(ActionEvent e){ if(!(thread.isAlive())) thread=new Thread(this); try{ thread.start(); }catch(Exception ee){ text.setText("我正在读取"+url); } } public void run(){ try{ int n=-1; editPane.setText(null); url=new URL(text.getText().trim()); editPane.setPage(url); }catch(MalformedURLException e1){ text.setText(""+e1); return; }catch(IOException eee){ text.setText(""+eee); return; } } } class InsertBook extends JDialog implements ActionListener{ JLabel insertBook; Object name[]={"编号","书名","出版社","出版日期"}; Object a[][]=new Object[1][4]; JTable table; JButton insert; Connection con; Statement sql; ResultSet rs; InsertBook(){ insertBook=new JLabel("请输入新书信息:"); table=new JTable(a,name); insert=new JButton("确定插入"); setLayout(new FlowLayout()); add(insertBook); add(table); add(insert); setBounds(100,100,800,200); setVisible(true); insert.addActionListener(this); } public void actionPerformed(ActionEvent e){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException ee){ System.out.println(""+ee); } try{ con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(); int k=sql.executeUpdate("INSERT INTO bookinformation VALUES('"+a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"')"); if(k==1) JOptionPane.showMessageDialog(this,"插入成功","成功",JOptionPane.PLAIN_MESSAGE); setVisible(false); con.close(); } catch(SQLException ee){ JOptionPane.showMessageDialog(this,"插入失败","失败",JOptionPane.ERROR_MESSAGE); } } } class showReader extends JDialog implements ActionListener{ JTable table; Object a[][]; Object name[]={"学号","姓名","年龄","出生日期"} ; JButton showReader; showReader(){ showReader=new JButton("显示信息"); showReader.addActionListener(this); add(showReader,BorderLayout.NORTH); setBounds(200,200,500,500); setVisible(true); } public void actionPerformed(ActionEvent e){ Connection con; Statement sql; ResultSet rs; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException ee){ System.out.println(""+ee); } try{ con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery("SELECT * FROM readerinformation"); rs.last(); int lastNumber=rs.getRow(); a=new Object[lastNumber][4]; int k=0; rs.beforeFirst(); while(rs.next()){ a[k][0]=rs.getString(1); a[k][1]=rs.getString(2); a[k][2]=rs.getString(3); a[k][3]=rs.getString(4); k++; } con.close(); }catch(SQLException ee){ System.out.println(ee); } table=new JTable(a,name); getContentPane().removeAll(); add(showReader,BorderLayout.NORTH); add(new JScrollPane(table),BorderLayout.CENTER); setVisible(true); validate(); } } class showBook extends JDialog implements ItemListener{ JTable table; Object a[][]; Object name[]={"编号","书名","出版社","出版日期"} ; JCheckBox showBook; showBook(){ showBook=new JCheckBox("显示信息"); showBook.addItemListener(this); add(showBook,BorderLayout.NORTH); setBounds(200,200,500,500); setVisible(true); } public void itemStateChanged(ItemEvent e){ JCheckBox box=(JCheckBox)e.getItemSelectable(); if(box.isSelected()){ Connection con; Statement sql; ResultSet rs; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException ee){ System.out.println(""+ee); } try{ con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery("SELECT * FROM bookinformation"); rs.last(); int lastNumber=rs.getRow(); a=new Object[lastNumber][4]; int k=0; rs.beforeFirst(); while(rs.next()){ a[k][0]=rs.getString(1); a[k][1]=rs.getString(2); a[k][2]=rs.getString(3); a[k][3]=rs.getString(4); k++; } con.close(); }catch(SQLException ee){ System.out.println(ee); } table=new JTable(a,name); getContentPane().removeAll(); add(showBook,BorderLayout.NORTH); add(new JScrollPane(table),BorderLayout.CENTER); setVisible(true); validate(); } else table.setVisible(false); } } class Delete extends JDialog implements ActionListener{ JLabel input; JTextField inputNumber; Object name[]={"编号","书名","出版社","出版日期"} ; Object a[][]=new Object[1][4]; JTable table; JButton delete; JPanel pane=new JPanel(); Connection con; Statement sql; ResultSet rs; String num; Delete(){ input=new JLabel("请输入删除书的编号:(以回车结束)"); inputNumber=new JTextField(20); delete=new JButton("删除"); table=new JTable(a,name); pane.add(input); pane.add(inputNumber); add(pane,BorderLayout.NORTH); add(table,BorderLayout.CENTER); add(delete,BorderLayout.SOUTH); inputNumber.addActionListener(this); delete.addActionListener(this); setBounds(100,100,800,300); setVisible(true); } public void actionPerformed(ActionEvent e){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException eee){ System.out.println(""+eee); } try{ num=inputNumber.getText().trim(); con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT *FROM bookinformation where 编号='"+num+"'"); boolean boo=rs.next(); if(boo==false){ JOptionPane.showMessageDialog(this,"编号不存在","提示",JOptionPane.WARNING_MESSAGE); } else{ a[0][0]=rs.getString(1); a[0][1]=rs.getString(2); a[0][2]=rs.getString(3); a[0][3]=rs.getDate(4).toString(); table.repaint(); if(e.getSource()==delete){ int n=JOptionPane.showConfirmDialog(this,"确认要删除吗?","确认对话框",JOptionPane.YES_OPTION); if(n==JOptionPane.YES_OPTION){ sql=con.createStatement(); int k=sql.executeUpdate("DELETE FROM bookinformation WHERE 编号='"+num+"'"); if(k==1) { JOptionPane.showMessageDialog(this,"删除成功!","删除",JOptionPane.PLAIN_MESSAGE); setVisible(false); } else { JOptionPane.showMessageDialog(this,"删除失败!","删除",JOptionPane.ERROR_MESSAGE); setVisible(false); } } } } con.close(); }catch(SQLException ee){ System.out.println(ee); } } } class Modify extends JDialog implements ActionListener{ JLabel infor; JTextField inputNumber; Object name[]={"编号","书名","出版社","出版日期"}; Object a[][]=new Object[1][4]; JTable table; JButton queren; Connection con; Statement sql; ResultSet rs; String num; Modify(){ infor=new JLabel("输入编号(以回车确认):"); inputNumber=new JTextField(20); table=new JTable(a,name); queren=new JButton("修改记录"); setLayout(new FlowLayout()); infor.setPreferredSize(new Dimension(100,70)); add(infor); add(inputNumber); add(table); queren.setPreferredSize(new Dimension(80,50)); add(queren); inputNumber.addActionListener(this); queren.addActionListener(this); setBounds(20,60,300,500); setVisible(true); } public void actionPerformed(ActionEvent e){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException ee){ System.out.println(""+ee); } if(e.getSource()==inputNumber){ try{ num=inputNumber.getText().trim(); con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT * FROM bookinformation WHERE 编号='"+num+"'"); boolean boo=rs.next(); if(boo==false){ JOptionPane.showMessageDialog(this,"编号不存在","提示",JOptionPane.WARNING_MESSAGE); } else{ a[0][0]=rs.getString(2); a[0][1]=rs.getString(3); a[0][2]=rs.getDate(4).toString(); table.repaint(); } con.close(); } catch(SQLException eee){ System.out.println(eee); } } if(e.getSource()==queren){ try{ table.repaint(); con=DriverManager.getConnection("jdbc:odbc:renshi","",""); sql=con.createStatement(); int k=sql.executeUpdate("UPDATE bookinformation SET 书名='"+a[0][0]+"',出版社='"+a[0][1]+"',出版日期 ='"+a[0][2]+"' WHERE 编号='"+num+"'"); if(k==1){ JOptionPane.showMessageDialog(this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE); con.close(); setVisible(false); } }catch(SQLException eeee){ JOptionPane.showMessageDialog(this,"更新失败"+eeee,"失败",JOptionPane.ERROR_MESSAGE); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值