1、java编写图书馆管理系统 面向对象课程设计报告课程设计题目:图书信息管理系统学 院:计算机科学与技术学院 专 业: 软件工程 班 级: 131 学 号: 1308060130 学生姓名: 易榜宇 指导教师: 汪健 2014年7月12日一、课程设计目的及要求1: 课程设计要求面向对象程序设计是一门实践性较强的课程,以实际应用为目的。在课程设计时应注重培养学生的实际操作能力。本课程设计安排了16学时的实验课时,具体要求如下: 1. 学习和理解课程设计题目的基本理论和方法; 2. 掌握实验的实现步骤和关键技术; 3. 准备好实验所需要的资源和文档; 4. 上机实现程序,得到通过调试的正确程序。 5
2、. 根据实验的要求,完成实验报告的word文档。2:课程设计目的面向对象程序设计是软件工程专业的专业基础课,目的是让学生通过对面向对象程序设计语言(例如Java)的学习,全面理解和掌握面向对象程序设计的基本思想、基本概念和基本方法。本课程设计是面向对象程序设计课程的后续实践课程。在本课程设计中,将利用JDK1.7/1.8平台和Eclipse(Netbeans)集成开发环境为实践工具,通过上机实践培养学生分析具体问题、利用面向对象语言工具(Java)解决实际问题的能力,更好地理解和掌握面向对象的思想、概念和方法。二、课程设计实践环境Win7 、JDK 1.7/1.8以及Eclipse集成开发环境
3、。三、课程设计内容1: 图书借阅信息管理系统 题目要求:设计三个类:图书类、读者类、借阅信息类。图书类用来存储图书的信息,读者类用来存储读者的信息,借阅信息类用来存储读者借阅图书的信息。在系统中实现图书信息的添加和查询、读者信息的添加和查询、图书借阅信息的添加和查询。 图书信息可以包括:书名、图书编号、作者、出版社、出版时间、版次、ISBN、定价等。 读者信息可以包括:姓名、年龄、性别、借阅证号(读者编号)、单位等。 图书借阅信息可以包括:读者编号、图书编号、借出时间、应还时间等。2:具体设计了AddInforFrame,AddBookFrame,AddFrame,AddListener,Se
4、archListener,LoginListener,OperateFrame,SearchBookFrame,SearchUserFrame,SearchInforFrame,WindowLoad,MainFrame这样我几个类,3,(0)这是管理员登录的界面) (1)这是管理员进行操作的界面)(2)这是用户添加的界面)(3)这是用户查询的界面)(4)这是管理员将要退出的界面) 4,使用说明: 管理员通过后台登录(用户名admin,密码123456),可以进行读者、图书、借阅信息的添加与查询,以及相关的操作。四、源程序代码AddBookFrame.javaimport java.awt.Fl
5、owLayout;import java.awt.event.ActionEvent;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
6、.io.IOException;import java.util.regex.Matcher;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
7、;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;public class AddBookFrame extends JFrame implements ActionListener static int bookcount=0; JLabel alable; /*姓名、学号、年龄、性别、学院、专业、年级、班级*/ JLabel userlable; JLabel usernumber; JLabel age; JLabel sex; JLabel collage; JLabel
8、major; JLabel grade; JLabel class_; JTextField userinput,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);
9、 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) this.EXIT_ON_CLOSE; System.exit(0); );*/ setDefaultCloseOperation(this.
10、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 JLabel(ISBN:); userinput=new JTextField(15); usernuminpu
11、t=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; this.setLayout(new FlowLayout(); boxV1=Box.
12、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); boxV1.add(sex); boxV1.add(boxV1.cre
13、ateVerticalStrut(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.createVerticalStrut(10);*/ boxV2.add(box
14、V2.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.add(collagein
15、put); 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()
16、; 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);/*文本域的一些操作*/ sho
17、wtext.setText(您新添加的图书信息如下:); 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 stub
18、 if(e.getSource()=reset) showtext.setText(您新添加的图书信息如下:); else if(userinput.getText().isEmpty()|usernuminput.getText().isEmpty()|ageinput.getText().isEmpty()|sexinput.getText().isEmpty()|collageinput.getText().isEmpty()|majorinput.getText().isEmpty()|gradeinput.getText().isEmpty()|class_input.getText
19、().isEmpty() JOptionPane.showMessageDialog(this,请把信息填写完整!, 警告对话框,JOptionPane.WARNING_MESSAGE); else /*此时用户已存在了*/ String usernum=userinput.getText(); int b; byte tom=new byte1000000; File file=new File(C:Book.txt); try FileReader in=new FileReader(file); BufferedReader inTwo=new BufferedReader(in); S
20、tring s=null; int a; while(s=inTwo.readLine()!=null) if(a=s.indexOf(usernum)!=-1) flag=1; JOptionPane.showMessageDialog(this,图书已经存在!, 警告对话框,JOptionPane.WARNING_MESSAGE); userinput.setText(null); usernuminput.setText(null); ageinput.setText(null); sexinput.setText(null); collageinput.setText(null); m
21、ajorinput.setText(null); gradeinput.setText(null); class_input.setText(null); break; catch(IOException e1) JOptionPane.showMessageDialog(this,文件读取失败!, 警告对话框,JOptionPane.WARNING_MESSAGE); if(flag=0)/*没有重复添加图书的情况*/ try int n=Integer.parseInt(userinput.getText(); String date1=gradeinput.getText(); /*St
22、ring date2=majorinput.getText();*/ String eL = 0-94-0-10-9-0-30-9; Pattern p = Ppile(eL); Matcher mm = p.matcher(date1); /*Matcher nn=p.matcher(date2)*/; boolean dateFlag = (mm.matches()/*&nn.matches()*/); if (!dateFlag) flag1=1; JOptionPane.showMessageDialog(this,日期格式有误!, 警告对话框,JOptionPane.WARNING_
23、MESSAGE); gradeinput.setText(null); /*majorinput.setText(null);*/ gradeinput.grabFocus(); if(flag1=0) bookcount+;/*计数总人数*/ String s1=userinput.getText(); showtext.append(n+编号:+s1+;); String s2=usernuminput.getText(); showtext.append(书名:+s2+;); String s3=ageinput.getText(); showtext.append(版次:+s3+;);
24、 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(); showtext.append(出版时间:+s7+;); String s8=class_input.getText(); showtext.append(ISBN:+s8
25、+;); 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/*+性别:*/+s4+rn/*+学院:*/+s5+rn+/*专业:+*/s6+rn+/*年级:+*/s7+rn/*+班级:*/+s8+rn;/*用户所有信息*/ byte t
26、om1=new byte1000000; tom1=personInfo.getBytes(); try File f=new File(C:Book.txt); try f.createNewFile(); / 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 catch (IOException e2) e2.printStackTrace(); FileOutputStream out=new FileOutputStream(f,true); /*out.write(tom);*/ out.write(tom1,0,tom1.length); /*while(
27、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.setText(null); ageinput.setText(null); sexinput.setText(null)
28、; 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+ex);*/ catch(Exception ee) JOptionPane.showMessageDialog(this,书编号格式错误!, 警告对话框,JOptionPane.WARNING_MESSAGE); userinput.setText(null); userinput.grabFocus();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1