版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成都信息工程学院计算机学院课程实验报实验课程:Java程序设计实验项目:图书管理系统指导教师:汤蓉学生姓名:向浩学生学号:2011051020班级:计科111班实验地点:6306上交时间:2012年1月12实验成绩:源代码importjava.io.*;publicclassBookimplementsSerializable/书的基类publicStringauthor;/作者publicStringpublished;/出版商publicStringnameOfBook;/书名privateintBooknumbers=200;publicBook()publicBook(Stringau
2、thor,Stringpublished,StringnameofBook)this.author=author;this.published=published;OfBook=nameofBook;privatevoidwriteObject(ObjectOutputStreamout)throwsIOExceptionout.writeUTF(author);out.writeUTF(published);out.writeUTF(nameOfBook);privatevoidreadObject(ObjectInputStreamin)throwsIOException
3、author=in.readUTF();published=in.readUTF();nameOfBook=in.readUTF();privatebooleanbool=false;publicsynchronizedvoidborrowBook()if(bool)trywait();/多线程通信机制catch(InterruptedExceptione)System.out.println("Book类出现异常");elsebool=false;Booknumbers-;System.out.println("目前图书馆的馆藏图书一共有"+Bookn
4、umbers+"册");notify();/其他的线程被唤醒publicsynchronizedvoidreturnBook()if(bool)trywait();/多线程通信机制catch(InterruptedExceptione)System.out.println("Book类出现异常");elsebool=true;Booknumbers+;System.out.println("目前图书馆的馆藏图书一共有"+Booknumbers+"册");notify();/通知其他的线程被唤醒publicclass
5、BorrowedBookOutOfLimitExceptionextendsException/借书的数量超过了规定最大的数量抛出的异常publicclassBorrowThreadimplementsRunnableBookbook;publicBorrowThread(BookBo)book=Bo;publicvoidrun()trybook.borrowBook();Thread.sleep(10);catch(InterruptedExceptionio)System.out.println("BorrowThread出现异常");importjava.awt.*;
6、importjava.awt.Event.*;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;publicclassButton1HandlerimplementsMouseListenerpublicvoidmouseClicked(MouseEvente)UserLogintft=newUserLogin();publicvoidmouseEntered(MouseEvente)/Picture.lb3.setText("你已经可以进行单击操作。");publicvoidmousePr
7、essed(MouseEvente)/Picture.lb3.setText("你已按下按钮!");publicvoidmouseRelesed(MouseEvente)OverridepublicvoidmouseReleased(MouseEvente)/TODOAuto-generatedmethodstubOverridepublicvoidmouseExited(MouseEvente)/TODOAuto-generatedmethodstubimportjava.awt.event.ActionEvent;importjava.awt.event.ActionL
8、istener;publicclassButton2HandlerimplementsActionListenerpublicvoidactionPerformed(ActionEvente)System.exit(0);importjava.awt.*;importjava.awt.Event.*;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.io.IOException;publicclassButton5HandlerimplementsMouseListenerpublicvo
9、idmouseClicked(MouseEvente)MainTestMain=newMainTest();publicvoidmouseEntered(MouseEvente)/Picture.lb3.setText("你已经可以进行单击操作。");publicvoidmousePressed(MouseEvente)/Picture.lb3.setText("你已按下按钮!");publicvoidmouseRelesed(MouseEvente)OverridepublicvoidmouseReleased(MouseEvente)/TODOAut
10、o-generatedmethodstubOverridepublicvoidmouseExited(MouseEvente)/TODOAuto-generatedmethodstubimportjava.awt.event.FocusEvent;importjava.awt.event.FocusListener;publicclassfocusHandlerimplementsFocusListenerpublicvoidfocusGainded(FocusEvente)publicvoidfocusLost(FocusEvente)Objectob=e.getSource();if(ob
11、=UserLogin.txtName);/System.out.println(UserLogin.txtName.getText();if(ob=UserLogin.txtPass)/System.out.println(UserLogin.txtPass.getText();OverridepublicvoidfocusGained(FocusEvente)/TODOAuto-generatedmethodstubimportjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;publicclasskeyHandlerimple
12、mentsKeyListenerpublicvoidkeyPressed(KeyEvente)Objectob=e.getSource();if(ob=UserLogin.txtName)&&(e.getKeyCode()=10)/System.out.println(UserLogin.txtName.getText();elseif(ob=UserLogin.txtName)&&(e.getKeyCode()=10)/System.out.println(UserLogin.txtPass.getText();publicvoidkeyReleased(Ke
13、yEvente)publicvoidkeyTyped(KeyEvente)importjava.io.*;publicclassLibraryextendsStudentpublicstaticintnowBooknumber=0;publicStringnameOfLibrary="CUITLibrary"publicstaticintnowStudentNumber=0;publicStudentSTUDENT;publicBookbooK;publicLibrary()STUDENT=newStudent30;booK=newBook20;publicvoidAddN
14、ewBook()throwsIOException,ClassNotFoundExceptionbooleanchange=true;Stringtomp1,tomp2,tomp3,tomp5;tomp1=newString();tomp2=newString();tomp3=newString();tomp5=newString();while(change)+nowBooknumber;System.out.println("请输入加入图书的作者:");trytomp1=MainTest.initiate2();catch(IOExceptione)/TODOAuto-
15、generatedcatchblocke.printStackTrace();System.out.println("请输入加入图书书名:");trytomp2=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("请输入加入图书的出版商:");trytomp3=MainTest.initiate2();catch(IOExceptione)e.printStackTrace();booKno
16、wBooknumber=newBook(tomp1,tomp2,tomp3);MainTest.oos1.writeObject(booKnowBooknumber);System.out.print("请问你还需要继续加入学生吗?1代表继续添加其他代表退出");trytomp5=MainTest.initiate2();catch(IOExceptione)e.printStackTrace();intmiddle=Integer.parseInt(tomp5.trim();if(middle=1)change=true;elsechange=false;publicBo
17、okdisplayBookInformation()throwsIOException,ClassNotFoundExceptionintj=0;FileInputStreamfis=newFileInputStream("C:AddNewBook.txt");ObjectInputStreamois=newObjectInputStream(fis);trywhile(true)booKj=(Book)ois.readObject();System.out.println("图书名称:"+booKj.author+"+booKj.publis
18、hed+"图书书名:"+booKOfBook);图书出版商:+j;catch(Exceptione)nowBooknumber=j;if(nowBooknumber<=0)System.out.println("你暂时还没有添加图书的相关的信息returnnull;returnbooK;");/注:下面这个方法和上面这个方法是一样的,我们只是为了能够在找的时候能够用得到Student类查publicBookdisplayBookInformation1()throwsIOException,ClassNotFoundExceptioni
19、ntj=0;FileInputStreamfis=newFileInputStream("C:AddNewBook.txt");ObjectInputStreamois=newObjectInputStream(fis);trywhile(true)booKj=(Book)ois.readObject();/System.out.println("图书名称:"+booKj.author+"图书出版商"+booKj.published+"图书书名:"+booKOfBook);+j;catch(Except
20、ione)nowBooknumber=j;if(nowBooknumber<=0)System.out.println("你暂时还没有添加图书的相关的信息");returnnull;returnbooK;publicvoidaddNewReader()throwsIOException,NotSerializableExceptionbooleanchange=true;Stringtomp1,tomp2,tomp3,tomp4,tomp5,number=null;tomp1=newString();tomp2=newString();tomp3=newString(
21、);tomp4=newString();tomp5=newString();while(change)+nowStudentNumber;System.out.println("请输入加入学生的姓名:");trytomp1=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("请输入加入学生的性别:");trySystem.out.println("请输入加入学生的出生年月:&quo
22、t;);trytomp3=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("请输入加入学生的专业:");trytomp4=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.println("请输入加入学生的学号:");trynumber=Ma
23、inTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();STUDENTnowStudentNumber=newStudent(tomp1,tomp2,tomp3,tomp4,number);MainTest.oos2.writeObject(STUDENTnowStudentNumber);System.out.print("请问你还需要继续加入学生吗?1代表继续添加其他代表退出");trytomp5=MainTest.initiate2();catch(I
24、OExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();intmiddle=Integer.parseInt(tomp5.trim();if(middle=1)change=true;elsechange=false;publicvoiddisplayReaderInformation()throwsIOException,ClassNotFoundExceptionintj=0;FileInputStreamfis1=newFileInputStream("C:AddNewReader.txt");Obje
25、ctInputStreamois1=newObjectInputStream(fis1);trywhile(true)STUDENTj=(Student)ois1.readObject();System.out.println("学生学号:"+STUDENTj.studentNum+"学生专业:"+STUDENTj.major+"学生姓名:"+STUDENT+"学生性别"+STUDENTj.gender+"出生日期:"+STUDENTj.birthDate);+j;catch(Exc
26、eptionio)nowStudentNumber=j;if(nowStudentNumber<=0)System.out.println("你暂时还没有添加读者的相关的信息");return;publicvoidmodifyInformation()throwsIOException,ClassNotFoundExceptionbooleanchange=true,chn=true;Stringtomp1,tomp2,tomp3,tomp4,tomp5,tomp6,tomp7;tomp1=newString();tomp2=newString();tomp3=new
27、String();tomp4=newString();tomp5=newString();tomp6=newString();tomp7=newString();while(chn)");System.out.print("请输入你要更改的学生的姓名或者学号:for(intj=1;j<=nowStudentNumber;j+)if(STUDENT!=tomp1&&STUDENTj.studentNum!=tomp1)System.out.println("已经查找到你需要修改学生的信息:");System.out.pri
28、ntln("学生的基本信息如下:");System.out.println("学生学号:"+STUDENTj.studentNum+"学生专业:"+STUDENTj.major+"学生姓名:"+STUDENT+"学生性别:"+STUDENTj.gender+"出生日期:"+STUDENTj.birthDate);System.out.print("StringstudentNum:");trytomp2=MainTest.initiate2()
29、;catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.print("Stringmajor:");trytomp3=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.print("Stringname:");trytomp4=MainTest.initiate2();catch(IOExceptione
30、)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.print("Stringgender:");trytomp5=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();System.out.print("StringbirthDate:");trytomp6=MainTest.initiate2();catch(lOExceptione)/TODOAuto-ge
31、neratedcatchblocke.printStackTrace();STUDENTj=newStudent(tomp2,tomp3,tomp4,tomp5,tomp6);FileOutputStreamfos=newFileOutputStream("C:AddNewReader.txt");ObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(STUDENTj);break;elseif(j>=nowStudentNumber)System.out.println("没有找到
32、该学生的基本信息:");break;/退出子函数System.out.print("请问你需要继续修改其他的同学的信息:他'八数字(退出):”);trytomp7=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();intmiddle5=Integer.parseInt(tomp7.trim();if(middle5=1)chn=true;elsechn=false;importjava.io.File;importjava.io.FileO
33、utputStream;importjava.io.IOException;importjava.io.ObjectOutputStream;publicclassMainTestpublicstaticFileOutputStreamfos1;staticpublicObjectOutputStreamoos1;publicstaticFileOutputStreamfos2;staticpublicObjectOutputStreamoos2;publicstaticFileOutputStreamfos3;staticpublicObjectOutputStreamoos3;public
34、staticFileOutputStreamfos4;InterruptedException,staticpublicObjectOutputStreamoos4;publicstaticvoidmain(Stringargs)throwsIOException,ClassNotFoundExceptionBookoo=newBook();LibraryLib=newLibrary();StudentStu=newStudent(Lib);Stringtmp,tomp5=null;intmiddle1;booleanchin=true;Filefile1=newFile("C:Ad
35、dNewBook.txt");fos1=newFileOutputStream(file1,true);if(file1.length()<1)oos1=newObjectOutputStream(fos1);elseoos1=newMyObjectOutputStream(fos1);Filefile2=newFile("C:AddNewReader.txt");fos2=newFileOutputStream(file2,true);if(file2.length()<1)oos2=newObjectOutputStream(fos2);elseo
36、os2=newMyObjectOutputStream(fos2);Filefile3=newFile("C:StudentBorrow.txt");fos3=newFileOutputStream(file3,true);if(file3.length()<1)oos3 = new ObjectOutputStream(fos3);|"); elseoos3 = new MyObjectOutputStream(fos3); File file4 = new File("C:StudentReturn.txt");fos4 = new
37、FileOutputStream(file4,true); if(file4.length() < 1) oos4 = new ObjectOutputStream(fos4);else oos4 = new MyObjectOutputStream(fos4);while(chin) System.out.println(" 欢迎来到 "+LOfLibrary+"of 图书管理系统System.out.println(" 1System.out.println(" 2System.out.println(" 3S
38、ystem.out.println(" 4System.out.println(" 5System.out.println(" 6可以还书 )换行后以 结束的借书的情况-向图书馆里面添加新书的信息 |");向图书馆里面添加读者的信息 |");显示新书的相关的信息 |" );显示学生的相关的信息 |" );修改学生的相关信息 |" ) ;目前学生已经借书的数量( 注意:要先借书才|")System.out.println("-7:目前学生已经还书的数量(注意:要先借书才可以还书)换行后以结束的借书
39、的情况|");System.out.println("-8:按照作者来搜索图书|");System.out.println("-9:按照来出版商搜索图书|");System.out.println("-10:按照书名来搜索图书|");System.out.print("请根据上述菜单进行自己的选择:");tmp=initiate2();intmiddle=Integer.parseInt(tmp.trim();switch(middle)case 1:Lib.AddNewBook();break;case
40、 2:Lib.addNewReader();break;case3:Lib.displayBookInformation();break;case4:Stu.returnBook();/Lib.STUDENTmiddle2.returnBook();Threadt1=newThread(newBorrowThread(oo);t1.start();t1.join();break;case 7:Stu.returnBook();Threadt2=newThread(newReturnThread(oo);t2.start();t2.join();break;case 8:Stu.searchBo
41、okByAuthor();break;case 9:Stu.searchBookByPublished();break;case 10:Stu.searchBookByNameOfBook();break;System.out.print("请问你需要继续回到(主界面)进行操作吗?其他1(确认)Or(退出):");tomp5=initiate2();middle1=Integer.parseInt(tomp5.trim();if(middle1=1)chin=true;elsechin=false;oos1.close();oos2.close();oos3.close()
42、;oos4.close();publicstaticStringinitiate2()throwsIOException/从键盘读入多位数byteba=newbyte10;intlength=System.in.read(ba);/从键盘读入日期,回车结尾Strings=newString(ba,0,length);/构建String对象,回车占两个字节returns;importjava.io.*;publicclassMyObjectOutputStreamextendsObjectOutputStreampublicMyObjectOutputStream()throwsIOExcept
43、ionsuper();publicMyObjectOutputStream(OutputStreamout)throwsIOExceptionsuper(out);OverrideprotectedvoidwriteStreamHeader()throwsIOExceptionreturn;publicabstractclassPersonStringname;/姓名Stringgender;/性别StringbirthDate;/出生年月importjava.awt.*;importjava.awt.Event.*;publicclassPicturestaticFramef=newFram
44、e("成都信息工程学院校园图书馆欢迎您");staticLabellb1=newLabel("成都信息工程学院已经走过了60个春秋");staticLabellb2=newLabel("滋润着一代又一代有理想的年轻人");staticLabellb3=newLabel("相信你也会有所收获de");staticButtonb1=newButton("进入页面");staticButtonb2=newButton("退出登录");importjava.io.FileNotFou
45、ndException;importjava.io.IOException;publicinterfaceReaderpublicabstractvoidreturnBook();/还书publicabstractvoidborrowBook()throwsBorrowedBookOutOfLimitException;/借书publicabstractvoidsearchBookByAuthor()throwsIOException,ClassNotFoundException;/以作者的形式搜索图书publicabstractvoidsearchBookByPublished()throw
46、sIOException,ClassNotFoundException;/以出版商的形式搜索图书publicabstractvoidsearchBookByNameOfBook()throwsFileNotFoundException,IOException,ClassNotFoundException;/以书名的形式搜索图书publicclassReturnThreadimplementsRunnableBookbook;publicReturnThread(BookBo)book=Bo;publicvoidrun()trybook.returnBook();Thread.sleep(10)
47、;catch(InterruptedExceptionio)System.out.println("ReturnThread出现异常");importjava.io.*;classStudentextendsPersonimplementsReader,SerializableStringstudentNum;/学号Stringmajor;/专业intruturnBooknumber=0;/还书数量intborrowedBooks=0;/借书数量intborrowedBookLimit=10;/借书数量限制intNowStudentsNumber=200;floatMone
48、y=15;LibraryLib;inti=1;publicStudent()studentNum="0"major="noMajor"name="noName"gender="noGender"birthDate="noBirthDate"publicStudent(StringstudentNum,Stringmajor,Stringname,Stringgender,StringbirthDate)this.studentNum=studentNum;this.major=major;thi
49、=name;this.gender=gender;this.birthDate=birthDate;privatevoidwriteObject(ObjectOutputStreamout)throwsIOExceptionout.writeUTF(studentNum);out.writeUTF(major);out.writeUTF(name);out.writeUTF(gender);out.writeUTF(birthDate);privatevoidreadObject(ObjectInputStreamin)throwsIOExceptionstudentNum=in.
50、readUTF();major=in.readUTF();name=in.readUTF();gender=in.readUTF();birthDate=in.readUTF();publicStudent(Librarylib)this();/调用当前类的其他无参构造函数this.Lib=lib;publicvoidreturnBook()bytebuffer=newbyte128;Stringtomp5=null;booleantmp=true;while(tmp)System.out.println("请输入学生的学生信息:以空格隔开");System.out.pri
51、ntln("学生姓名学号班级:");tryFileOutputStreamf=newFileOutputStream("C:StudentReturn.txt");while(true)intn=System.in.read(buffer);if(buffer0='')break;f.write(buffer,0,n);f.write('n');f.close();System.out.println("已经保存你的还书情况!");catch(IOExceptionio)System.out.print
52、ln(io.toString();ruturnBooknumber+=1;System.out.println("你目前为止已经借了"+ruturnBooknumber);System.out.print("请问你是否还需要继续还书吗?:1(确认)Or其他(退出)");trytomp5=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();intmiddle4=Integer.parseInt(tomp5.trim();if(mid
53、dle4=1)tmp=true;elsetmp=false;publicvoidshowreturnBook()throwsIOExceptionchardata=newchar100;FileReaderfr=newFileReader("C:StudentReturn.txt");intnum=fr.read(data);System.out.println("Charactersread="+num);for(inti=0;i<data.length;i+)System.out.println("data"+i+"
54、;="+datai);fr.close();publicvoidborrowBook()throwsBorrowedBookOutOfLimitException/手动借书图书功能,引发线程bytebuffer=newbyte128;Stringtomp5=null;booleantmp=true;while(tmp)System.out.println("请输入学生的学生信息:以空格隔开");System.out.println("学生姓名学号班级:");tryFileOutputStreamf=newFileOutputStream(&qu
55、ot;C:StudentBorrow.txt");while(true)intn=System.in.read(buffer);if(buffer0='')break;f.write(buffer,0,n);f.write('n');f.close();System.out.println("已经保存你的借书情况!");catch(IOExceptionio)System.out.println(io.toString();borrowedBooks+=1;if(borrowedBooks>borrowedBookLimit)
56、System.out.println("对不起,你现在已经超期的图书没有归还,暂时不能借"+Money+"元");thrownewBorrowedBookOutOfLimitException();System.out.println("该学生已经借了"+borrowedBooks+"本书");/不运行System.out.print("请问你是否还需要继续借书吗?:1(确认)Or其他(退)");trytomp5=MainTest.initiate2();catch(IOExceptione)/
57、TODOAuto-generatedcatchblocke.printStackTrace();intmiddle4=Integer.parseInt(tomp5.trim();if(middle4=1)tmp=true;elsetmp=false;publicvoidsearchBookByAuthor()throwsIOException,ClassNotFoundExceptiontom3=MainTest.initiate2();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();intj;for(j=
58、0;j<Lib.nowBooknumber;j+)/booKj=(Book)ois.readObject();if(booKj.published.equals(tom3)System.out.println("亲!本图书馆有这种书,欢迎你找到了");System.out.println("图书名称:"+booKj.author+"n"+"图书出版商:"+booKj.published+"n"+"图书书名:"+booKOfBook);break;if(j>=Lib.nowBooknumber)System.out.prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省沈阳市皇姑区五校2026年初三下学期月考5(期末)语文试题含解析
- 民族医药科研项目承诺书6篇范文
- 产品技术创新与应用承诺书(5篇)
- 合法经营诚实交易承诺书范文8篇
- 基于云计算的企业远程协作解决方案
- 2026年生物医药研发外包行业现状与竞争格局分析
- 2026年月饼团购销售策略与客户开发
- 2026年大学生专业认同与学习动力报告
- 2026年爱国主义教育基地研学旅行案例
- 2026年家庭储能系统(户用储能)配套消防方案
- 2026广东中山市港口镇下南村招聘合同制人员3人考试备考试题及答案解析
- 2025-2026学年第二学期初中语文备课组期中教学质量分析与培优计划
- 2026湖北武汉市江汉城市更新有限公司及其下属子公司招聘11人考试参考题库及答案解析
- 初中七年级英语上册 Starter Module 1 Unit 1 教学设计:以“班级迎新派对”为情境的听说综合课
- 2026年安庆职业技术学院单招职业技能考试题库含答案详解(轻巧夺冠)
- 安徽省江南十校2026届高三3月联考数学试卷(含解析)
- 2026年南通科技职业学院单招综合素质考试题库附答案详解(模拟题)
- 研究生学术道德与学术规范课件
- (部编版)五年级语文(下册)语文园地一·口语交际一优质课件
- 《导体和绝缘体》说课课件
- 2022年广东省中山市纪念中学三鑫双语学校小升初数学试卷
评论
0/150
提交评论