还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
*******************实践教学*******************软件学院2014年春季学期J__a课程设计说明书题目专业班级姓名学号指导教师成绩目录TOC\o1-3\h\z\u摘要2序言
41、需求分析
51.1功能需求5图书信息管理5数据库
51.2可行性分析
52、设计思路
62.1工作原路
62.2功能规划
63、详细设计
73.1数据分析7程序流程图
73.2算法思路
83.3类设计
103.4功能实现11主要代码及注释
114、运行调试与分析讨论
215、设计体会与小结22____24致谢25摘要当今时代是飞速发展的信息时代在各行各业中离不开信息处理,这正是计算机网被广泛应用于管理信息系统的外部环境计算机的最大好处在于利用它能够进行信息管理使用计算机进行信息处理,不仅提高了工作效率,而且大大的提高了其安全性尤其对于复杂的信息管理,计算机能够充分发挥它的优越性计算机进行信息管理与管理信息系统的__密切相关,系统的__是系统管理的前提本系统就是为了管理好图书馆信息而设计的图书馆作为一种信息资源的集聚地,图书和用户借阅资料繁多,包含很多的信息数据的管理关键词系统管理,信息管理,信息数据序言随着____的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题 现已有的图书管理系统,其功能已十分强大,为了便于___对图书管理系统进行妥善的管理和读者的查询,图书管理系统为___提供了管理日志、___添加、___切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能 大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能 设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总而这就是我们所说的数据库设计的第一阶段需求分析在这一阶段除了对具体情况诸如实行对___的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了 对于界面的设计我们应该追求的是美观、易读性强、清晰度高;原则是不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求再设计的过程中我们应该根据实际的情况进行设计,做到具体问题具体分析,不刻意追求原则
1、需求分析
1.1功能需求功能查询按__、按图书名增添包括图书的书名、__、出版社、__、页数、出版时间等信息删除删除已添加的图书记录修改对图书信息的更改图书基本信息包括的数据项有书名、__、出版社、__、页数、出版时间等信息
1.2可行性分析 由于本系统管理的对象单一都是图书生,且每个数据内容具有较强的关联性,涉及的过程不是很复杂因此,比较适合于采用数据库管理在技术难度方面,由于有指导老师的指导和相关____,因此完全可以实现本系统的设计使用J__a__而成的数据库是图书信息管理系统中的重要支持技术,在图书信息管理系统的__过程中,如何选择数据库是一个重要的问题,本系统采用MicrosoftAc__ss数据库来进行图书信息的管理,采用MicrosoftAc__ss数据库的理由是由于本系统的__是基于本地客户端的,仅仅利用数据库来进行数据的查询,增加,修改,删除,并不涉及数据库的高级操作,如触发器,存储过程,同时,由于本系统是基于本地化的,不涉及网络方面的应用,而MicrosoftAc__ss遵循SQL的语法,完全支持标准SQl的各种操作,完全满足上述需要本系统数据量不是很大,不用使用大型的数据库来存储数据
2、设计思路
2.1工作原路
2.2功能规划系统__的总体任务是实现图书信息管理的系统化,规范化和自动化 图书信息管理系统需要完成的功能主要有
1.图书信息的添加,信息书名、__、出版社、__、页数、出版时间等信息
2.图书信息的修改
3.图书信息的删除 对上述各功能进行集中、分块、按照结构化程序设计的要求
3、详细设计
3.1数据分析系统设计的总体任务是实现图书信息管理的系统化,规范化和自动化要求实现的功能有
1.图书信息的输入,包括图书编号、书名、__、出版社、出版日期、图书简介及图书类别等
2.图书信息的查询,包括根据用户的要求实现利用图书编号、书名、__、出版社、出版日期、图书简介及图书类别等信息的查询
3.图书信息的修改,要求能包括根据用户的要求实现利用图书编号、书名、__、出版社、出版日期、图书简介及图书类别等信息的修改等
3.2算法思路首先,考虑到由于操作人员的计算机知识可能较差要求有良好的人机界面,我决定使用图形界面的方式,采用J__a Swing来提供一个表格将图书信息全部显示出来,这样方便用户浏览,当用户对其中的图书信息感兴趣时,可以用鼠标__表格中的单元格,在表格的下面我提供了一个文件面板,上面放置了很多文本区域,将用户选择的信息全部显示在文本区域中,这样用户可以更加方便的对信息进行添加,修改,删除操作利用图形界面,提供一个更加友好的方式用户就不会面对黑乎乎的命令行界面,可以利用鼠标来实现图书信息的修改删除,这样的系统就可以降低对用户的要求,通过将系统的各种功能封装,只是提供给用户一个简单的按钮,用户通过简单的利用鼠标__按钮,就可以实现各种复杂的操作,这样就可以,提高系统的可用性 当然 复杂的实现过程对用户来说是不可以见的 第二,考虑到使用图形界面的方式,当有很多数据时,就有必要使用数据库来保存数据了,使用数据库可以很好的利用数据库的海量存储功能,保存信息更加的方便理由之二是由于本系统管理的对象图书都是学生,且每个数据内容具有较强的关联性,涉及的过程不是很复杂因此,比较适合于采用数据库管理理由之三是因为当对数据进行各种修改操作时,使用数据库可以更加方便的保存用户的各种修改操作理由之四是将数据库与图形界面向结合能提供一个更加友好的界面第三,关于图书信息的录入功能,我是在表格下面提供一个面板,在面板上放置很多文本按钮,用户可以在文本区域中录入图书信息,考虑到本系统实现的只是一个很简单的图书信息管理而对图书来说录入图书编号、书名、__、出版社、出版日期、图书简介及图书类别就已经足够了,其他的信息对于图书来说就不必要了在图书信息的录入时,考虑到图书信息的规范性,同时也考虑到实用性,对与图书来说,图书编号一般采用I__N开头,所以用户在录入图书信息时,也要要求用户对图书额编号采用I__N开头,I__N后面的内容用户可以根据自己喜好进行自定义,系统不做具体要求,由于数据表Book采用图书编号作为主键,所以对于用户输入的图书编号必须保证唯一性,唯一性是通过查询数据库来实现的当图书编号相同时,同时用户编号重复,要求用户重新输入用户在修改图书信息时要求不能修改图书编号,因为图书编号是主键,在更新图书信息时,是采用判断图书编号信息的来实现图书信息的修改的,关于图书信息的删除,很简单,利用图书主键就可以很快的删除图书信息最后一点是,在用户选择图书信息时,要求一次只能选择一条图书记录,因为选择多条图书记录不能确定到底显示哪一条数据的信息,这主要是通过设置表格的单选属性实现的第四,图书信息中包含出版日期,而一般图书日期是采用YYYY-MM-DD的形式,很少采用YYYY-MM-DD-HH-MM-SS形式的,所以出版日期也采用YYYY-MM-DD的形式而数据库在存储时间格式的数据时,会检测数据的有效性,如果数据错误,就会抛出异常,当出现这样的情况时,用户所做的所有操作将会全部撤销,而且当用户面对一堆错误信息时,往往不知道怎样处理,这样会导致用户的不满意,如果能在用户输入时就开始检测用户输入信息的有效性,就可以将错误消灭在萌芽状态时间的正确与否是通过判断出版日期的年份,月份,日来实现的,一般来说首先就要判断是否为闰年,闰年的判断是通过判断如果能被四整除同时不能被100整除,或者能整除100,满足时则为闰年,为闰年判断二月天数是否超过29天,不为闰年时则判断2月的天数是否大于28天其他月份则判断是否有31天这种情况,一般来说1月,3月,5月,7月,8月,10月,12月有31天,所以如果月份为上述值时,日期可以有31天,其他月份最大天数则为30天,同时还有判断用户输入的月份能是否合理,正常情况下,一年有12个月,所以必须判断用户输入的月份是否大于12,还有一种情况是年月日必须大于0,这也是一种对非正常情况的处理,防止恶意用户输入非法数据来实现非法目的,同时也能防止,用户无意间输入了非法数据第五,判断日期是否正确具有普遍意义,以为在用户修改图书的出版日期,通过出版日期来实现图书信息的查询时,也要判断日期是否合理,所以可以将判断日期合理的功能封装为一个函数,在判断时,直接调用函数就可以了其中在查询图书信息时,考虑到用户可能利用月份与日来查询信息,所以还必须通过一个利用月份与日来判断时间输入正确与否的函数,也与上面的函数极其相似这里就不讨论了第六,在查询图书信息时,要求能利用多种条件来实现复合查询,比如说利用出版时间与图书信息来查询,或者通过出版社与时间来查询,这就要求查询能灵活处理各种情况,既能够使用单关键字来查询,也能够使用多关键字来查询首先要解决的时如何判断用户的到底是想用单关键字还是使用多关键字来查询,思路是通过提供给用户一个复选框,当用户想使用某个关键字时,可以勾选关键字前面的复选框,从而实现单关键字与多关键字的判断,第二是由于多关键字可以组合出很多中情况,如果一一实现是不可能,同时也是不必要的,所以必须通过通用的查询函数来实现多关键字的查询,思路是通过判断关键字是否为空来实现的,如果关键字不为空就可以增加一个条件来实现多关键字的查询第七,在通过多关键字的查询时,要求在利用时间来查询时,能够查询小于 大于给点时间的记录,思路是提供一个组合框,将大于,小于,等于,大于等于,小于等于放入组合框中,通过监听组合框选项的变化得到用户的选择,从而实现查询大于,或者小于某个时间范围的记录,而默认查询是查询全部数据的当然用户根据自己喜好利用多关键字实现复合查询操作第八,在表格中数据很多时,要求能利用表格某列数据为关键字实现对数据的排序,这是利用RowSorterDefaultTableModel sorter = newTableRowSorterDefaultTableModeltablemodel;jTable
1.setRowSortersorter;实现的最后一点,是在进行图书信息的插入,修改,删除时,要求能显示执行结果,成功或者失败,在操作失败时要求能提供失败信息,主要是通过判断执行语句的返回值是否为真为说明执行成功,为假则说明操作失败,这时系统会打印堆栈信息,同时提示用户操作失败如果操作成功要求能自动刷新,将最新结果显示出来,这主要是通过refresh的__监听实现的,当操作成功时,重新执行查询操作,查询数据库中最新的结果并显示出来,以上是基本思路
3.3类设计图书类,主要提供setter与getter方法自定义画板类实现表格方法类封装连接MySQL数据库与按条件进行数据库查询操作提供多种选择进行复合条件查询实现在复合条件查询下的SQL语句并将结果用表格显示出来主类主要是提供增加,删除,修改,查询图书记录的功能
3.4功能实现创建图书信息表CreatetablebookBIDvarchar20pri__rykeyBnamevarchar20notnullBauthorvarchar16notnullPressvarchar20notnullBInfovarchar50notnullBDatedatenotnullBclassvarchar20notnull;publicclassLibraryInfor__tionimplementsActionListener{Frame__inFrame;FrameinputFrame;FramesearchFrame;TextArealiInfo;Labellb[]=newLabel
[7];Labellb2[]=newLabel
[2];TextFieldtf[]=newTextField
[7];TextFieldtf2[]=newTextField
[2];Buttonbtn[]=newButton
[3];Buttonbtn2[]=newButton
[2];Panelp1p2p3p4;IOOperationioo;Libraryli;Librarylibrary[]=newLibrary
[20];publicLibraryInfor__tion{/***建立主类*/__inFrame=newFrame图书信息管理系统;__inFrame.addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{System.exit0;}};MenuItemitem1=newMenuItem录入;MenuItemitem2=newMenuItem查询;MenuItemitem3=newMenuItem更改;MenuItemitem4=newMenuItem结束;MenuItemitem5=newMenuItem关于;item
1.addActionListenerthis;item
2.addActionListenerthis;item
3.addActionListenerthis;item
4.addActionListenerthis;item
5.addActionListenerthis;Fontf=newFont宋体Font.PLAIN18;Menumenu1=newMenu菜单;menu
1.setFontf;menu
1.additem1;menu
1.additem2;menu
1.additem3;menu
1.addSeparator;menu
1.additem4;Menumenu2=newMenu帮助;menu
2.setFontf;menu
2.additem5;Menumenu3=newMenu结束;MenuBarmb=newMenuBar;mb.addmenu1;mb.addmenu2;__inFrame.setMenuBarmb;liInfo=newTextArea;liInfo.setFontnewFontserifFont.PLAIN25;__inFrame.addliInfo;__inFrame.setSize400250;__inFrame.setLocation400400;__inFrame.setVisibletrue;__inFrame.setForegroundColor.red;__inFrame.setBackgroundColor.red;/***建立录入信息*/inputFrame=newFrame;inputFrame.addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{inputFrame.setVisiblefalse;}};p1=newPanelnewGridLayout72;p2=newPanel;Stringlbname[]={书号:书名:__:出版社:__:页数:出版时间:};Stringbtnname[]={保存删除退出};forinti=0;i7;i++{lb[i]=newLabellbname[i];tf[i]=newTextField15;p
1.addlb[i];p
1.addtf[i];}forinti=0;i3;i++{btn[i]=newButtonbtnname[i];btn[i].addActionListenerthis;p
2.addbtn[i];}btn
[2].setActionCom__nd输入;inputFrame.addp1BorderLayout.__NTER;inputFrame.addp2BorderLayout.SOUTH;inputFrame.pack;inputFrame.setLocationRelativeTo__inFrame;/***建立查找信息*/searchFrame=newFrame查询书名;searchFrame.addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{searchFrame.setVisiblefalse;}};p3=newPanelnewGridLayout22;p4=newPanel;Stringlbname2[]={书号:书名:};Stringbtnname2[]={查询退出};forinti=0;i2;i++{lb2[i]=newLabellbname2[i];tf2[i]=newTextField15;p
3.addlb2[i];p
3.addtf2[i];}forinti=0;i2;i++{btn2[i]=newButtonbtnname2[i];btn2[i].addActionListenerthis;p
4.addbtn2[i];}btn2
[1].setActionCom__nd查询;searchFrame.addp3BorderLayout.__NTER;searchFrame.addp4BorderLayout.SOUTH;searchFrame.pack;searchFrame.setLocationRelativeTo__inFrame;/***IOoperationo__ect*/ioo=newIOOperation;library=ioo.getAllLibrary;}publicvoidactionPerformedActionEvente{ife.getSour__instan__ofMenuItem{MenuItemmi=MenuIteme.getSour__;ifmi.getLabel.equals录入{inputFrame.setTitle录入;forinti=0;i7;i++tf[i].setText;p
2.removebtn
[1];btn
[0].setActionCom__nd输入;inputFrame.setVisibletrue;}elseifmi.getLabel.equals查询{searchFrame.setVisibletrue;}elseifmi.getLabel.equals更改{inputFrame.setTitle更改;ifli!=null{tf
[0].setTextli.getCode;tf
[1].setTextli.getName;tf
[2].setTextli.getWriter;tf
[3].setTextli.getPla__;tf
[4].setTextli.getMoney;tf
[5].setTextli.getAge+;tf
[6].setTextli.getTime+;}p
2.removebtn
[2];p
2.addbtn
[1];p
2.addbtn
[2];btn
[0].setActionCom__nd更改;inputFrame.setVisibletrue;}elseifmi.getLabel.equals结束System.exit0;elseifmi.getLabel.equals关于{finalDialogprogInfo=newDialog__inFrameProgInfotrue;progInfo.addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{progInfo.dispose;}};progInfo.setLayoutnewFlowLayout;FontmyFont=newFont楷体_GB2312Font.BOLD40;Labell=newLabel图书信息管理系统;l.setFontmyFont;progInfo.addl;progInfo.setSize400200;progInfo.setLocationRelativeTo__inFrame;progInfo.setVisibletrue;}}else{Buttonbtn=Buttone.getSour__;ifbtn.getLabel.equals保存{if!tf
[0].getText.equals!tf
[1].getText.equals!tf
[2].getText.equals!tf
[3].getText.equals!tf
[4].getText.equals!tf
[5].getText.equals!tf
[6].getText.equals{Libraryl=newLibrarytf
[0].getTexttf
[1].getTexttf
[2].getTexttf
[3].getTexttf
[4].getTextInteger.parseInttf
[5].getTextInteger.parseInttf
[6].getText;ifbtn.getActionCom__nd.equals输入{forinti=0;ilibrary.length;i++{iflibrary[i]==null{library[i]=l;break;}}ioo.writelibrary;}else{forinti=0;ilibrary.length;i++{iflibrary[i].equalsli{library[i]=l;break;}}ioo.writelibrary;}}inputFrame.setVisiblefalse;liInfo.setText;}elseifbtn.getLabel.equals删除{intindex=200;ifli!=null{forinti=0;ilibrary.length;i++{iflibrary[i]!=nulllibrary[i].equalsli{index=i;ifi!=library.length-1library[i]=library[i+1];elselibrary[i]=null;}ifi==indexlibrary[i+1]==nullbreak;elseifiindexilibrary.length-1{library[i]=library[i+1];ifi==library.length-1library[i]=null;}}ioo.writelibrary;}li=null;inputFrame.setVisiblefalse;liInfo.setText;/*forinti=0;ilibrary.length;i++{iflibrary[i]!=null}*/}elseifbtn.getLabel.equals查询{li=null;if!tf2
[0].getText.equals||!tf2
[1].getText.equals{Stringcondition=;if!tf2
[0].getText.equals{condition=tf2
[0].getText;}elsecondition=tf2
[1].getText;forinti=0;ilibrary.length;i++{iflibrary[i]!=null{iflibrary[i].getCode.equalscondition||library[i].getName.equalscondition{li=library[i];break;}}}}ifli!=null{liInfo.setText书号:+li.getCode+\n+书名:+li.getName+\n+__:+li.getWriter+\n+出版社:+li.getPla__+\n+__:+li.getMoney+\n+页数:+li.getAge+\n+出版时间:+li.getTime;}searchFrame.setVisiblefalse;}elseifbtn.getLabel.equals退出ifbtn.getActionCom__nd.equals输入inputFrame.setVisiblefalse;elsesearchFrame.setVisiblefalse;}}publicstaticvoid__inString[]args{newLibraryInfor__tion;}}/***图书信息接口*/classLibraryimplementsSerializable{privateStringcode;privateStringname;privateStringwriter;privateStringpla__;privateStringmoney;privateintAge;privateintTime;publicLibraryStringcodeStringnameStringwriterStringpla__Stringmoneyintageinttime{super;this.code=code;this.name=name;this.writer=writer;this.pla__=pla__;this.money=money;Age=age;Time=time;}publicStringgetPla__{returnpla__;}publicintgetAge{returnAge;}publicStringgetCode{returncode;}publicintgetTime{returnTime;}publicStringgetName{returnname;}publicStringgetWriter{returnwriter;}publicStringgetMoney{returnmoney;}publicbooleanequalsO__ecto__{ifo__!=nullo__instan__ofLibraryifthis.getCode.equalsLibraryo__.getCodethis.getName.equalsLibraryo__.getNamethis.getWriter.equalsLibraryo__.getWriterthis.getPla__.equalsLibraryo__.getPla__this.getMoney.equalsLibraryo__.getMoneythis.getAge==Libraryo__.getAgethis.getTime==Libraryo__.getTimereturntrue;returnfalse;}}/***classwhichisusedtodoI/Ooperation*/classIOOperation{privateFilefile=newFileC:\\liinfo.___;publicIOOperation{try{if!file.existsfile.createNewFile;}catchIOEx__ptione{e.printStackTra__;}}/***写菜单*/publicvoidwriteLibrary[]l{try{FileOutputStreamfos=newFileOutputStreamfile;O__ectOutputStreamo__Out=newO__ectOutputStreamfos;o__Out.writeO__ectl;o__Out.close;fos.close;}catchEx__ptione{e.printStackTra__;}}/***从菜单中读取所图书名信息*/publicLibrary[]getAllLibrary{Libraryll[]=newLibrary
[100];try{iffile.length0{FileInputStreamfis=newFileInputStreamfile;O__ectInputStreamois=newO__ectInputStreamfis;ll=Library[]ois.readO__ect;ois.close;fis.close;}}catchEx__ptione{e.printStackTra__;}returnll;}}
4、运行调试与分析讨论图
4.1运行界面主界面图
4.2界面菜单栏图
4.3图书信息录入图
4.4图书信息书号查询方法图
4.5图书信息书名查询方法图
4.6图书信息查询结果图
4.7图书信息更改图
4.8结束运行图书管理系统图
4.9帮助
5、设计体会与小结本次课程设计综合考察了我们对J__a程序设计知识的掌握熟练程度和实际运用能力其间,涉及到了J__a 中的很多知识点,如J__a的类与对象、J__a的异常处理机制、J__a中的__框架、J__a Swing 图形界面J__aODBC的应用,还涉及到图形的布局方式,J__a__监听与处理,Swing组件的使用方面的知识,在使用J__a Swing来设计图形界面时,要注意界面的布局方式,一般来说,很少使用单一的布局方式,大多数情况下是综合使用多种布局方式,Swing组件处理布局以外,还要根据实际要求处理是否该组件添加__处理,比如说是否处理组合框的变化,是否处理复选框的变化以及在如何响应组件状态的变化,这里可以举一个简单的例子,比如说性别组合框,当用户改变选择时,就要求根据用户的选择更新用户的性别信息,当然实际情况是不可能只是监听一个组件状态的变化的,这就要求根据组件的不同选择不同的监听方式,可以采用匿名类来处理,也可以采用外部类来处理 本次课程设计要求实现图书信息的管理,虽然完成了基本的图书信息管理功能,但还是有很多的不足,比如说图形界面不是很美观,出错处理不够,再有就是存储的图书信息的不是很多,只存储了常用的几种图书信息,这主要是考虑到实用性所以忽略了很多不常用的图书信息,如果在实际应时是则必须添上,如果信息不是很重要,在设计数据表时,可以指定可以为空,但是在显示是就不能简单的将图书信息全部显示出来,还有判断是否为空,以及为空时的处理,这样的程序当然很全面,但是作为一个课程设计,是没有必要储存如此多的图书信息的 最后一点我想说的就是程查询设计时与一些我们没有注意到的细节可能导致很多莫名其妙的错误,比如在使用多关键字进行查询时,我是使用以下语句ifbname!=null {sqlStr+=and Bname like %+bname+% ; },实现判断是否为空,从而利用给进条件实现查询,粗看之下并没有什么错误,但是在运行是却出现了异常,在找了很久被找出错误之后,我开始考虑是否是语法错误,而是使用MySQL的命令行模式来进行调试,在MySQL命令行中运行时却并没有出现错误,完全正确的查询出我想要的结果,在试了很久之后,终于发现了上面的语句有两个小的细节错误,第一个错误就是and Bname这里没有空格,正确格式应该是 and Bname,第二个错误是 %+bname+% 中含有多余的空格,正确答案是%+bname+%;两个错误都是由于空格引起的,一个是少了空格,另一个是含有多余的空格,可见平时一些我们忽略了的细节可能导致很多严重的错误,而这些错误是很难察觉到的,因为它们隐藏的是如此的深,完全符合语法格式,完全没有语法错误但就是执行错误这些小的细节很好的验证了那句话:”细节决定成败”____
[1]张跃平等.JSP程序设计[M].清华大学出版社20098
[2]金名等译.数据库系统设计、实现与管理第8版[M].清华大学出版社2012
[3] 耿祥义.J__A2实用教程.清华大学出版社,2006
[4] 朱仲杰.J__A2全方位学习.机械工业出版社,2006
[5] 张思民.J__A程序设计实践教程.清华大学出版社,2006
[6] 汤__.J__a语言程序设计.科学出版社,2006
[7] 刘艺.J__a程序设计大学教程.机械工业出版社,2006
[8] 耿祥义.J__a课程设计.清华大学出版社,2003 致谢历时二个星期的课程设计已经结束,我们小组通用不懈的努力终于顺利地完成了课程设计的任务在喜悦的同时,我们也要向曾经在设计过程中帮助过我们的衣老师和同学表示感谢! 在整个课程设计中衣老师对我们耐心指导和帮助才使我们能够顺利完成此次课程设计任务老师每天都冒着酷暑来到实训楼,给我讲解程序的时候经常讲到汗流浃背,尤其是他严谨的工作态度锐意创新的精神,使我们受益匪浅,在此特别向老师表示深深的感谢和由衷的敬意 感谢学校提供给我们这次课程设计机会,使我们有了良好的环境学习J__a程序设计和ac__ss数据库知识,使我们能够把学到的知识运用到实践中二周的实训期间我们在实训中遇到了许多困难,当被这些问题困扰的时候,我们就向老师和同学寻求帮助,老师很认真的为我们解答并告诉我们是哪里出了问题导致了错误,通过老师的细心指导使我们在J__a和ac__ss数据库设计方面的知识得到了扩充,懂得了许多以前不知道的知识,我们也在老师的细心指导中体会到了老师对学生那种从内心发出的关爱,让我们非常感动 在这段时,同学们也给了我们不少的帮助,虽然大家都很忙,但是当我们有问题时,大家还是细心地帮我们解决所遇到的问题,给予我们及时的帮助,在这里非常感谢所有的同学们在老师及同学的指导和帮助下,我们小组基本完成了此次课程设计的任务可以说这次的成绩不只属于我们自己,更多的属于老师的帮助至此,我要向老师说一声老师“您辛苦了”我相信我们以后的路会走的更顺畅,不管以后遇到了怎样的困难,我都会想起老师那肯定我们时的目光,我能为我们能有这样的老师而倍感自豪 最后再次感谢在课程设计过程中给予我们帮助的老师和同学们,他们的帮助不仅使我们开阔了视野,拓宽了思路,增长了学识,为我们今后的工作和学习打下了牢固的基础,也使我们增强了对系统__的兴趣,特别是J__a语言的系统__在这里再一次表示衷心的感谢图书信息管理系统图书信息删除图书信息修改图书信息查找图书信息添加选择操作开始退出系统图书信息添加图书信息修改图书信息删除改图书信息查询结束。