




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 面向对象课程设计报告课程设计题目:图书信息管理系统学 院:计算机科学与技术学院 专 业: 软件工程 班 级: 131 学 号: 1308060130 学生姓名: 易榜宇 指导教师: 汪健 2014年7月12日一、课程设计目的及要求1: 课程设计要求面向对象程序设计是一门实践性较强的课程,以实际应用为目的。在课程设计时应注重培养学生的实际操作能力。本课程设计安排了16学时的实验课时,具体要求如下:1. 学习和理解课程设计题目的基本理论和方法;2. 掌握实验的实现步骤和关键技术;3. 准备好实验所需要的资源和文档;4. 上机实现程序,得到通过调试的正确程序。5. 根据实验的要求,完成实验报告的w
2、ord文档。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,Logi
4、nListener,OperateFrame,SearchBookFrame,SearchUserFrame,SearchInforFrame,WindowLoad,MainFrame这样我几个类,3,(0)这是管理员登录的界面) (1)这是管理员进行操作的界面)(2)这是用户添加的界面)(3)这是用户查询的界面)(4)这是管理员将要退出的界面)4,使用说明: 管理员通过后台登录(用户名admin,密码123456),可以进行读者、图书、借阅信息的添加与查询,以及相关的操作。四、源程序代码AddBookFrame.javaimport java.awt.FlowLayout;import ja
5、va.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;im
6、port 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.swin
7、g.event.DocumentEvent;import 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 c
8、lass_;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); /* addWindowL
9、istener(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_CLO
10、SE); 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("出
11、版时间:"); 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); /
12、设置盒式布局并添加组件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(
13、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=Bo
14、x.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)
15、;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
16、);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);b
17、aseBox.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(); Overridepublic vo
18、id actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=reset) showtext.setText("您新添加的图书信息如下:");else if(userinput.getText().isEmpty()|usernuminput.getText().isEmpty()|ageinput.getText().isEmpty()|sexinput.getText().isEmpty()|collageinput.getText().isEmpty()|majo
19、rinput.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 byte1000000;File file=new File("
20、;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.
21、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,"文件读取失败!", "警告对话框",JOptio
22、nPane.WARNING_MESSAGE);if(flag=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 = Ppile(eL);Matcher mm = p.matcher(date1);/*Matcher nn=p.matcher(date2)*/;boolean
23、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=u
24、serinput.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("定价:&
25、quot;+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=cla
26、ss_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"+/*&q
27、uot;姓名:"+*/s2+"rn"+/*"年龄:"+*/s3+"rn"/*+"性别:"*/+s4+"rn"/*+"学院:"*/+s5+"rn"+/*"专业:"+*/s6+"rn"+/*"年级:"+*/s7+"rn"/*+"班级:"*/+s8+"rn"/*用户所有信息*/byte tom1=new byte1000000; to
28、m1=personInfo.getBytes();tryFile 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,10
29、000)!=-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);col
30、lageinput.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 e
31、e)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;
32、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.JLabe
33、l;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 ActionListenerstatic int stucount=0;JLabel alabl
34、e;/*姓名、学号、年龄、性别、学院、专业、年级、班级*/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
35、;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_O
36、PTION);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 JL
37、abel("性别:");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=n
38、ew 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
39、);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
40、(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
41、.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( gradeinp
42、ut);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)
43、;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().a
44、ddDocumentListener(this);*/add(showtext);this.add(baseBox);/让输入用户名的文本框获得焦点userinput.grabFocus(); Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=reset) showtext.setText("您新添加的用户信息如下:");else /*此时用户已存在了*/String usernum=usernuminput.getText
45、();int b;byte tom=new byte1000000;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(usernum)!=-1)flag=1;JOptionPane.showMessageDialog(this,"此用户也注册!&qu
46、ot;, ,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);*/userinput.grabFocus(); break; catch(IOException e1)JOptionPa
47、ne.showMessageDialog(this,"读取失败!",JOptionPane.WARNING_MESSAGE);if(flag!=1)tryint n=Integer.parseInt(usernuminput.getText();int m=Integer.parseInt(ageinput.getText();if(m<0|m>100)JOptionPane.showMessageDialog(this,"年龄填写不正确!",JOptionPane.WARNING_MESSAGE);ageinput.setText(null
48、);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.getTex
49、t().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 stucount+;/
50、*计数总人数*/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();showte
51、xt.append("性别:"+s4+";"+"n");String s5=collageinput.getText();showtext.append("学院:"+s5+";");String s6= majorinput.getText();showtext.append("专业:"+s6+";");String s7=gradeinput.getText();showtext.append("年级:"+s7+";&quo
52、t;);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"+/*"姓名:&quo
53、t;+*/s1+"rn"+/*"年龄:"+*/s3+"rn"/*+"性别:"*/+s4+"rn"/*+"学院:"*/+s5+"rn"/*+"专业:"*/+s6+"rn"+/*"年级:"+*/s7+"rn"/*+"班级:"*/+s8+"rn"/*用户所有信息*/byte tom1=new byte1000000; tom1=personIn
54、fo.getBytes();tryFile f=new File("C:Student.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)Strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025跨国企业专有技术转让合同范本
- 2025设备采购合同机务高压风机
- 船舶融资租赁合同
- 2025年共同经营合同协议书
- 《2025财务专项贷款合同》
- 购买足球捐款协议书
- 不良债权处置协议书
- 2025年03月广西防城港市港口区审计局面向社会公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年03月南昌高新区某单位服务外包人员公开招聘4人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 四川省巴中市达标名校2025年初三下期末模拟联考英语试题含答案
- 17J008挡土墙(重力式、衡重式、悬臂式)图示图集
- 《消防应急疏散培训》课件
- DB52T 1458-2019 贵州省森林人家建设标准
- 第47届世界技能大赛制造团队挑战赛项目江苏省选拔赛样题(综合制造专业方向)
- 【S镇35kV变电站一次系统设计(论文)14000字】
- 江苏省苏州市(2024年-2025年小学四年级语文)人教版期中考试((上下)学期)试卷及答案
- 2024年6月广东深圳市事业单位面试题及参考答案
- GB 44496-2024汽车软件升级通用技术要求
- 第九单元 文人情致 课件高一音乐人音版(2019)必修 音乐鉴赏
- 全过程工程咨询投标方案(技术方案)
- 关于学生假期(寒暑假)安排的调查问卷
评论
0/150
提交评论