收藏 分销(赏)

java编写图书馆管理系统.doc

上传人:丰**** 文档编号:3653553 上传时间:2024-07-12 格式:DOC 页数:63 大小:262.50KB 下载积分:14 金币
下载 相关 举报
java编写图书馆管理系统.doc_第1页
第1页 / 共63页
java编写图书馆管理系统.doc_第2页
第2页 / 共63页


点击查看更多>>
资源描述
精品文档 面向对象课程设计报告 课程设计题目:图书信息管理系统 学 院:计算机科学与技术学院 专 业: 软件工程 班 级: 131 学 号: 1308060130 学生姓名: 易榜宇 指导教师: 汪健 2014年7月12日 一、课程设计目的及要求 1: 课程设计要求 面向对象程序设计是一门实践性较强的课程,以实际应用为目的。在课程设计时应注重培养学生的实际操作能力。本课程设计安排了16学时的实验课时,具体要求如下: 1. 学习和理解课程设计题目的基本理论和方法; 2. 掌握实验的实现步骤和关键技术; 3. 准备好实验所需要的资源和文档; 4. 上机实现程序,得到通过调试的正确程序。 5. 根据实验的要求,完成实验报告的word文档。 2:课程设计目的 面向对象程序设计是软件工程专业的专业基础课,目的是让学生通过对面向对象程序设计语言(例如Java)的学习,全面理解和掌握面向对象程序设计的基本思想、基本概念和基本方法。 本课程设计是面向对象程序设计课程的后续实践课程。在本课程设计中,将利用JDK1.7/1.8平台和Eclipse(Netbeans)集成开发环境为实践工具,通过上机实践培养学生分析具体问题、利用面向对象语言工具(Java)解决实际问题的能力,更好地理解和掌握面向对象的思想、概念和方法。 二、课程设计实践环境 Win7 、JDK 1.7/1.8以及Eclipse集成开发环境。 三、 课程设计内容 1: 图书借阅信息管理系统 题目要求:设计三个类:图书类、读者类、借阅信息类。图书类用来存储图书的信息,读者类用来存储读者的信息,借阅信息类用来存储读者借阅图书的信息。在系统中实现图书信息的添加和查询、读者信息的添加和查询、图书借阅信息的添加和查询。 图书信息可以包括:书名、图书编号、作者、出版社、出版时间、版次、ISBN、定价等。 读者信息可以包括:姓名、年龄、性别、借阅证号(读者编号)、单位等。 图书借阅信息可以包括:读者编号、图书编号、借出时间、应还时间等。 2: 具体设计了AddInforFrame,AddBookFrame,AddFrame,AddListener,SearchListener,LoginListener,OperateFrame,SearchBookFrame,SearchUserFrame,SearchInforFrame,WindowLoad,MainFrame这样我几个类, 3, ((0)这是管理员登录的界面) ((1)这是管理员进行操作的界面) ((2)这是用户添加的界面) ((3)这是用户查询的界面) ((4)这是管理员将要退出的界面) 4,使用说明: 管理员通过后台登录(用户名admin,密码123456),可以进行读者、图书、借阅信息的添加与查询,以及相关的操作。 四、源程序代码 AddBookFrame.java import java.awt.FlowLayout; 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.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; 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 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); 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.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); 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; this.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)); boxV1.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.createVerticalStrut(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.add(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(); 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.setText("您新添加的图书信息如下:"); add(new JScrollPane(showtext)); showtext.setLineWrap(true); /*(showtext.getDocument()).addDocumentListener(this);*/ add(showtext); this.add(baseBox); //让输入用户名的文本框获得焦点 userinput.grabFocus(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub 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().isEmpty()){ JOptionPane.showMessageDialog(this,"请把信息填写完整!", "警告对话框",JOptionPane.WARNING_MESSAGE); } else{ /*此时用户已存在了*/ String usernum=userinput.getText(); int b; byte tom[]=new byte[1000000]; File file=new File("C:\\Book.txt"); try{ FileReader 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.setText(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(flag==0){/*没有重复添加图书的情况*/ try{ int n=Integer.parseInt(userinput.getText()); String date1=gradeinput.getText(); /*String date2=majorinput.getText();*/ String eL = "[0-9]{4}-[0-1][0-9]-[0-3][0-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_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+";"); 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+";"); int n1=JOptionPane.showConfirmDialog(this, "是否要真的添加?","确认对话框", JOptionPane.YES_NO_CANCEL_OPTION); if(n1==JOptionPane.YES_OPTION){ /*this.EXIT_ON_CLOSE;*/ String personInfo=/*"学号:"+*/s1+"\r\n"+/*"姓名:"+*/s2+"\r\n"+/*"年龄:"+*/s3+"\r\n"/*+"性别:"*/+s4+"\r\n"/*+"学院:"*/+s5+"\r\n"+/*"专业:"+*/s6+"\r\n"+/*"年级:"+*/s7+"\r\n"/*+"班级:"*/+s8+"\r\n";/*用户所有信息*/ byte tom1[]=new byte[1000000]; 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((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); 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(); } } } } } AddFrame.java import java.awt.FlowLayout; 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.io.IOException; 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 javax.swing.event.DocumentListener; public class AddFrame extends JFrame implements ActionListener{ static int stucount=0; JLabel alable; /*姓名、学号、年龄、性别、学院、专业、年级、班级*/ 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; int 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){ 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 JLabel("班级:"); 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; this.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)); boxV1.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.createVerticalStrut(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.add(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(); 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.setText("您新添加的用户信息如下:"); add(new JScrollPane(showtext)); showtext.setLineWrap(true); /*(showtext.getDocument()).addDocumentListener(this);*/ add(showtext); this.add(baseBox); //让输入用户名的文本框获得焦点 userinput.grabFocus(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==reset){ showtext.setText("您新添加的用户信息如下:"); } else { /*此时用户已存在了*/ String usernum=usernuminput.getText(); int b; byte tom[]=new byte[1000000]; File file=new File("C://Student.txt"); try{ FileReader in=new FileReader(file);
展开阅读全文

开通  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 

客服