J2EE课程设计.docx
《J2EE课程设计.docx》由会员分享,可在线阅读,更多相关《J2EE课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
J2EE课程设计
湖南农业大学课程论文
学院:
信息科学与技术学院班级:
软件10-2
姓名:
学号:
课程论文题目:
图书馆管理系统程序设计
课程名称:
J2EE编程技术
评阅成绩:
成绩评定教师签名:
日期:
年月日
图书馆管理系统程序设计
学生:
(信息科学与技术学院,学号)
摘要:
随着信息管理技术日趋成熟,以及信息管理技术在个个领域的广泛应运,对与日趋庞大的图书馆管理,势必需要合理高效的管理技术。
如今许多高校的图书馆管理系统还停留在以CS阶段,随着internet的广泛应用,以及以CS为结构的系统应用性、维护性上的繁杂性,导致以BS为结构的图书馆管理系统必定取代以CS为结构的图书馆管理系统。
关键字:
管理系统BS结构
1、J2EE简介
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
1.1J2EE的概念
目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
1.2J2EE的优势
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
保留现存的IT资产,高效的开发,支持异构环境,可伸缩性,稳定的可用性
1.3J2EE的结构
这种基于组件,具有平台无关性的J2EE结构使得J2EE程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE服务器以容器的形式为所有的组件类型提供后台服务.因为你不用自己开发这种服务,所以你可以集中精力解决手头的业务问题。
2.系统概述
2.1系统开发背景和意义
图书管理是每个高校必须切实面对的工作,但如今许多高校的图书馆管理系统还停留在以CS为结构的系统上。
随着internet的应用日趋广泛,以及高校内、高校与高校间信息的交流日趋密切,以CS为结构的信息管理系统以不能满足需求,所以,高校图书馆管理系统必须通过更新换代,将BS为结构的系统改为以CS为结构的系统,这样会大大提高系统的维护性以及系统应用的广泛性。
由于图书这用特殊的物品,其表现在数据量非常庞大,所以对数据库的要求比较严格,由于oracle数据库其检索迅速、查找方便、可靠性高、保密性好,所以,选择oracle数据库为其存取数据。
随着java技术在internet上的广泛应用以及java安全性高、执行效率高的优点,同时,java可以在任意平台上应用,所以可以任意组合硬件和操作系统,既可以在windows下开发,部署在linux下,极大了节省了操作系统的费用以及硬件的费用。
3.系统需求分析
3.1任务概述
整个图书馆管理系统的业务流程抽象描述如下:
1.新书购进后,进行分类、同一编码和入库。
2.学生借阅图书后,记录相关信息。
3.学生归还时,对比查看该书是否超期,超期后,按规定罚款。
根据以上调查分析,给出业务流程图,如图:
3.2数据描述(数据流图+数据字典)
经过调查,我们了解了基本的业务程序,接下来给出系统的逻辑模型。
构造系统的逻辑模型的工具主要是数据流图和数据字典,下面给出图书馆管理系统的基本模型,如图:
根据基本模型,对其逐步细化,得到数据流图,如图:
根据系统流程图,通过数据字典对数据进一步描述:
图书:
图书表结构
描述:
记录图书的相关信息
定义:
图书信息表图书编号、图书名称、ISBN号、作者、出版社、类型、价格、库存量、副本存量、总量
位置:
LibWeb表空间
借书登记:
借书登记表结构
描述:
记录图书的借阅信息
定义:
借阅登记表借阅编号、学生编号、图书编号、借阅时间、归还时间、是否归还
位置:
LibWeb表空间
学生信息:
学生信息表结构
描述:
记录学生信息
定义:
学生信息表学生学号、学生姓名、性别、入校时间、毕业时间
位置:
LibWeb表空间
归还登记:
归还登记表结构
描述:
记录所有已归还图书的借阅情况
定义:
归还信息表编号、图书名称、归还时间、归还学生编号、归还学生姓名
位置:
LibWeb数据空间
用户信息:
用户表结构
描述:
记录所有用户
定义:
用户信息表账号、真实姓名、密码、描述
位置:
LibWeb数据空间
角色信息:
角色表结构
描述:
记录所有角色
定义:
角色信息表角色名称、角色描述
位置:
LibWeb数据空间
3.3功能需求
经过以上详细的调查和分析,在数据流程和数据分析的基础上,确定达到的功能为一下几点:
新书入库登记:
对与需求入库的书籍,进行数据登记,确认后书籍入库。
图书信息的查询和修改功能:
当图书资料发生变化、当图书丢失,应立即修改信息。
图书借阅和归还登记:
学生借阅图书时需要登记,学生归还图书时也需要登记。
学生的增加、修改、删除等:
新生入学时的信息和直接导入。
用户的增加、修改、删除等:
用户可根据权限来操作。
3.4性能需求
为了保证系统能够长期、高效、安全、稳定、可靠的运行,图书馆管理系统应满足一下性能需求:
1.系统处理数据的准确性和及时性:
系统处理的准确性和及时性是系统的必要性能。
在系统设计阶段,就应该充分考虑到,包括数据存储量、访问量等,是系统能够满足图书管管理系统对数据的处理量。
2.系统的开放性和系统的可扩充性:
可扩充性是系统健壮性的重要体现,系统开发中应充分考虑到系统的可扩充性。
可扩充性包括系统设计和测试阶段的扩充以及系统使用后的扩充。
任何系统在开发阶段对需求都是完全明确的,即使系统交付使用后,用户也会提出增加功能,所以,在系统设计阶段就应该考虑到系统的可扩充性。
系统的易用性和易维护性:
图书馆管理系统由图书馆管理员和学生使用,而使用者对系统结构并不了解,这就要求系统提供良好的用户接口和友好的界面设计。
要实现这一点,要求操作简洁明了,数据校验通俗易懂。
4.系统总体设计
4.1业务流程
根据需求分析,以及反复的研究和探讨,确认其流程图如下:
根据流程图,现具体功能描述如下:
1.用户登录:
系统对用户的合法性进行校验,登录后,系统会根据用户所拥有的权限来分配权限。
2.书籍入库:
填写书籍信息,可通过excel批量导入到数据库中。
3.图书借阅:
对已经入库的数据,学生可借阅。
4.图书归还:
对已经归还的书籍进行登记。
5.管理措施:
对定义系统规定的超期时间、超期处罚办法、丢失赔偿办法。
4.2系统功能模块图
依据需求分析阶段得到的数据流图,在保证系统基本功能的前提下,结合系统设计流程,给出系统功能模块图,如图:
4.3系统的流程图
5.程序主图标
5.1程序流程图
该设计阶段的任务是根据需求具体实现所需要的程序。
经过这个阶段的设计,应该得出目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译某种程序设计语言书写的程序。
总体来说就是把各个模块的细节加以描述。
由于本系统采用的是j2ee来设计程序,java是面向对象的变成语言,所以给出系统的主程序流程图,如图:
5.2概念模型E-R图
在需求阶段已经完成该系统所有的数据分析。
根据该阶段建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。
下面给出概念结构设计的E-R图,如图所示:
图
(一)
图
(二)
图(三)
6.编码实现
图书管理模块主要代码
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<%@pageimport="com.dao.BookDAO"%>
<%@pageimport="com.dao.BookTypeDAO"%>
<%@pageimport="com.actionForm.BookForm"%>
<%@pageimport="com.actionForm.BookTypeForm"%>
<%@pageimport="com.dao.BookCaseDAO"%>
<%@pageimport="com.actionForm.BookCaseForm"%>
<%@pageimport="com.dao.PublishingDAO"%>
<%@pageimport="com.actionForm.PublishingForm"%>
<%@pageimport="java.util.*"%>
<%
Stringstr=null;
BookTypeDAObookTypeDAO=newBookTypeDAO();
Collectioncoll_type=(Collection)bookTypeDAO.query(str);
if(coll_type==null||coll_type.isEmpty()){
out.println("");
}else{
Iteratorit_type=coll_type.iterator();
inttypeID=0;
Stringtypename1="";
BookCaseDAObookcaseDAO=newBookCaseDAO();
Stringstr1=null;
Collectioncoll_bookcase=(Collection)bookcaseDAO.query(str1);
if(coll_bookcase==null||coll_bookcase.isEmpty()){
out.println("");
}else{
Iteratorit_bookcase=coll_bookcase.iterator();
intbookcaseID=0;
Stringbookcasename="";
PublishingDAOpubDAO=newPublishingDAO();
Stringstr2=null;
Collectioncoll_pub=(Collection)pubDAO.query(str2);
if(coll_pub==null||coll_pub.isEmpty()){
out.println("");
}else{
Iteratorit_pub=coll_pub.iterator();
Stringisbn="";
Stringpubname="";
BookFormbookForm=(BookForm)request.getAttribute("bookQueryif");
%>
functioncheck(form){
if(form.barcode.value==""){
alert("请输入条形码!
");form.barcode.focus();returnfalse;
}
if(form.bookName.value==""){
alert("请输入图书姓名!
");form.bookName.focus();returnfalse;
}
if(form.price.value==""){
alert("请输入图书定价!
");form.price.focus();returnfalse;
}
}
图书馆管理系统
<%@includefile="banner.jsp"%>
<%@includefile="navigation.jsp"%>
|
5px;">
当前位置:
图书管理>图书档案管理>修改图书信息>>>
|
|
action=bookModify">
<%intID=bookForm.getId().intValue();
Stringbookname=chStr.toChinese(bookForm.getBookName());
Stringbarcode=bookForm.getBarcode();
if(barcode==null)barcode="";
intTypeId=bookForm.getTypeId();
Stringtypename=chStr.toChinese(bookForm.getTypeName());
Stringauthor=chStr.toChinese(bookForm.getAuthor());
Stringtranslator=chStr.toChinese(bookForm.getTranslator());
StringISBN=bookForm.getIsbn();
Stringpublishing=chStr.toChinese(bookForm.getPublishing());
Floatprice=bookForm.getPrice();
intpages=bookForm.getPage();
intbookcaseid=bookForm.getBookcaseid();
Stringbookcase=chStr.toChinese(bookForm.getBookcaseName());
StringinTime=bookForm.getInTime();
Stringoperator=chStr.toChinese(bookForm.getOperator());
%>
">
条 形 码:
">
|
|
图书名称:
"size="60">
*
|
图书类型:
<%while(it_type.hasNext()){ BookTypeFormbookTypeForm=(BookTypeForm)it_type.next(); typeID=bookTypeForm.getId().intValue(); typename1=chStr.toChinese(bookTypeForm.getTypeName()); %> "<%if(TypeId==typeID)out.println("selected");%>> <%=typename1%><%}%> |
作者:
"> |
译者:
"> |
出版社:
<% while(it_pub.hasNext()){ PublishingFormpubForm=(PublishingForm)it_pub.next(); isbn=pubForm.getIsbn(); pubname=chStr.toChinese(pubForm.getPubname()); %> "<%if(isbn.equals(ISBN))out.println("selected");%>> <%=pubname%><%}%> |
价格:
"> (元)* |
页码:
"> |
书架:
<%while(it_bookcase.hasNext()){ BookCaseFormbookCaseForm=(BookCaseForm)it_bookcase.next(); bookcaseID=bookCaseForm.getId().intValue(); bookcasename=chStr.toChinese(bookCaseForm.getName()); %> "<%if(bookcaseid==bookcaseID)out.println("selected");%>> <%=bookcasename%><%}%> "> |
|