java编写图书馆管理系统.docx
- 文档编号:9969051
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:80
- 大小:140.49KB
java编写图书馆管理系统.docx
《java编写图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《java编写图书馆管理系统.docx(80页珍藏版)》请在冰豆网上搜索。
java编写图书馆管理系统
面向对象课程设计报告
课程设计题目:
图书信息管理系统
学院:
计算机科学与技术学院
专业:
软件工程
班级:
131
学号:
1308060130
学生姓名:
易榜宇
指导教师:
汪健
2014年7月12日
一、课程设计目的及要求
1:
课程设计要求
面向对象程序设计是一门实践性较强的课程,以实际应用为目的。
在课程设计时应注重培养学生的实际操作能力。
本课程设计安排了16学时的实验课时,具体要求如下:
1.学习和理解课程设计题目的基本理论和方法;
2.掌握实验的实现步骤和关键技术;
3.准备好实验所需要的资源和文档;
4.上机实现程序,得到通过调试的正确程序。
5.根据实验的要求,完成实验报告的word文档。
2:
课程设计目的
面向对象程序设计是软件工程专业的专业基础课,目的是让学生通过对面向对象程序设计语言(例如Java)的学习,全面理解和掌握面向对象程序设计的基本思想、基本概念和基本方法。
本课程设计是面向对象程序设计课程的后续实践课程。
在本课程设计中,将利用JDK1.7/1.8平台和Eclipse(Netbeans)集成开发环境为实践工具,通过上机实践培养学生分析具体问题、利用面向对象语言工具(Java)解决实际问题的能力,更好地理解和掌握面向对象的思想、概念和方法。
二、课程设计实践环境
Win7、JDK1.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
importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
importjavax.swing.Box;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
importjavax.swing.event.DocumentEvent;
importjavax.swing.event.DocumentListener;
publicclassAddBookFrameextendsJFrameimplementsActionListener{
staticintbookcount=0;
JLabelalable;
/*姓名、学号、年龄、性别、学院、专业、年级、班级*/
JLabeluserlable;
JLabelusernumber;
JLabelage;
JLabelsex;
JLabelcollage;
JLabelmajor;
JLabelgrade;
JLabelclass_;
JTextFielduserinput,usernuminput,ageinput,sexinput,collageinput,majorinput,gradeinput,class_input;
JTextAreashowtext;/*用于显示用户添加的信息域*/
JButtonok;
JButtonreset;
intflag=0;
intflag1=0;
publicAddBookFrame(){
init();
setBounds(400,100,600,600);
setVisible(true);
setResizable(false);
/*addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
intn=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);
}
voidinit(){
alable=newJLabel("请填写相关信息:
");
userlable=newJLabel("编号:
");
usernumber=newJLabel("书名:
");
age=newJLabel("版次:
");
sex=newJLabel("定价:
");
collage=newJLabel("作者:
");
major=newJLabel("出版社:
");
grade=newJLabel("出版时间:
");
class_=newJLabel("ISBN:
");
userinput=newJTextField(15);
usernuminput=newJTextField(15);
ageinput=newJTextField(15);
sexinput=newJTextField(15);
collageinput=newJTextField(15);
majorinput=newJTextField(15);
gradeinput=newJTextField(15);
class_input=newJTextField(15);
//设置盒式布局并添加组件
BoxbaseBox,boxV1,boxV2,boxV3,boxV4;
this.setLayout(newFlowLayout());
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=newJButton("确定");
reset=newJButton("取消");
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=newJTextArea(9,50);/*文本域的一些操作*/
showtext.setText("您新添加的图书信息如下:
");
add(newJScrollPane(showtext));
showtext.setLineWrap(true);
/*(showtext.getDocument()).addDocumentListener(this);*/
add(showtext);
this.add(baseBox);
//让输入用户名的文本框获得焦点
userinput.grabFocus();
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==reset){
showtext.setText("您新添加的图书信息如下:
");
}
elseif(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{
/*此时用户已存在了*/
Stringusernum=userinput.getText();
intb;
bytetom[]=newbyte[1000000];
Filefile=newFile("C:
\\Book.txt");
try{
FileReaderin=newFileReader(file);
BufferedReaderinTwo=newBufferedReader(in);
Strings=null;
inta;
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(IOExceptione1){
JOptionPane.showMessageDialog(this,"文件读取失败!
","警告对话框",JOptionPane.WARNING_MESSAGE);
}
if(flag==0){/*没有重复添加图书的情况*/
try{
intn=Integer.parseInt(userinput.getText());
Stringdate1=gradeinput.getText();
/*Stringdate2=majorinput.getText();*/
StringeL="[0-9]{4}-[0-1][0-9]-[0-3][0-9]";
Patternp=Ppile(eL);
Matchermm=p.matcher(date1);
/*Matchernn=p.matcher(date2)*/;
booleandateFlag=(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++;/*计数总人数*/
Strings1=userinput.getText();
showtext.append("\n"+"编号:
"+s1+";");
Strings2=usernuminput.getText();
showtext.append("书名:
"+s2+";");
Strings3=ageinput.getText();
showtext.append("版次:
"+s3+";");
Strings4=sexinput.getText();
showtext.append("定价:
"+s4+";"+"\n");
Strings5=collageinput.getText();
showtext.append("作者:
"+s5+";");
Strings6=majorinput.getText();
showtext.append("出版社:
"+s6+";");
Strings7=gradeinput.getText();
showtext.append("出版时间:
"+s7+";");
Strings8=class_input.getText();
showtext.append("ISBN:
"+s8+";");
intn1=JOptionPane.showConfirmDialog(this,"是否要真的添加?
","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
if(n1==JOptionPane.YES_OPTION){
/*this.EXIT_ON_CLOSE;*/
StringpersonInfo=/*"学号:
"+*/s1+"\r\n"+/*"姓名:
"+*/s2+"\r\n"+/*"年龄:
"+*/s3+"\r\n"/*+"性别:
"*/+s4+"\r\n"/*+"学院:
"*/+s5+"\r\n"+/*"专业:
"+*/s6+"\r\n"+/*"年级:
"+*/s7+"\r\n"/*+"班级:
"*/+s8+"\r\n";/*用户所有信息*/
bytetom1[]=newbyte[1000000];
tom1=personInfo.getBytes();
try{
Filef=newFile("C:
\\Book.txt");
try{
f.createNewFile();//当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
}catch(IOExceptione2){
e2.printStackTrace();
}
FileOutputStreamout=newFileOutputStream(f,true);
/*out.write(tom);*/
out.write(tom1,0,tom1.length);
/*while((b=in.read(tom,0,10000))!
=-1){
Strings=newString(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(IOExceptionex){
JOptionPane.showMessageDialog(this,"文件写入错误!
","警告对话框",JOptionPane.WARNING_MESSAGE);
/*System.out.println("FilewriteError"+ex);*/
}
}
}
}
catch(Exceptionee){
JOptionPane.showMessageDialog(this,"书编号格式错误!
","警告对话框",JOptionPane.WARNING_MESSAGE);
userinput.setText(null);
userinput.grabFocus();
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编写 图书馆 管理 系统