广工课程设计报告.docx
《广工课程设计报告.docx》由会员分享,可在线阅读,更多相关《广工课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
![广工课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-11/20/e7f24a89-7306-4094-8843-4fa7190bb49c/e7f24a89-7306-4094-8843-4fa7190bb49c1.gif)
广工课程设计报告
综合设计报告
课程名称:
信息系统开发与管理课程设计
题目名称:
简单提货管理系统
学生学院:
管理学院
专业:
信息管理与信息系统
班级:
2008级(4)班
学号:
3108006315
学生姓名:
陈力
指导教师:
张延林
2012年02月23日
简单提货管理系统
一、系统设计
1.1平台说明
本系统使用SQLServer2005建立数据库并用Java进行系统的编程设计。
由于java是跨平台的语言,具有很好的扩展性和移植性,利用java开发数据库应用程序有利于在不同的平台生成应用;java在网络编程方面的优势可以使得java开发的数据库应用程序更好的应用于各种网络应用,诸如网络通信、远程监控等。
JavaSeverPagesTM(JSP)和微软的ActiveSeverPages(ASP)在技术方面有许多相似之处。
两者都是为基于WEB应用实现动态交互网页制作提供的技术环境支持。
同等程度上来讲,两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术。
而且两者都能够替代CGI使网站建设与发展变的较为简单与快捷。
尽管JavaSeverPages技术和微软的ActiveSeverPages在许多方面都有相似的,但仍然存在很多不同之处,其中最本质上的区别在于:
两者是来源于不同的技术规范组织,其实现的基础:
WEB服务器平台要求不相同。
JSP技术是用JAVA语言作为脚本语言的,而ASP网页使用微软的VBScrip或Jscrip。
JAVA是成熟的,强大的,易扩充的编程语言,远优于基于BASIC的脚本语言。
如:
JAVA的可执行性优于VBScript或Jscript语言。
因为它们利用JAVA技术并且都被编译为JAVAServlets,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
JAVA使开发人员的工作在其他方面也变的一样容易,简单。
例如,当ASP应用程序在WINDOWSNT系统被怀疑可能会崩溃时,JAVA能有效的防止系统的崩溃。
JAVA语言通过提供防止内存的泄漏的方法,在内存管理方面也能大显身手。
加之,JSP为应用提供了健壮的意外事件处理机制。
1.2系统设计
理论上能够实现于超市、仓库等部门的货物管理系统,其目的在于实现超市、仓库等部门的货物更有效的管理,使超市、仓库货物能够更方便、更有效率的完成日常工作,以期实现完善日常生活中货物管理的各种功能。
1.2.1所需的实体类
管理员类(Admin):
记录管理员的登陆信息
货物类(conlist):
记录货物的各种信息
提货单类(Billlist):
提货单的各种信息
提货单明细类(Bookdetail):
记录所提取货物的详细信息
用户类(User):
记录用户的登陆及其详细信息
1.2.2系统总体结构——系统实现了网上管理员提货功能,如下图所示
登陆及验证模块
订单详细信息模块
货物添加模块
1.2.3基于实现平台的核心模块说明示例
序号
功能模块列表
Action
ActionForm
Model&Bean
1
登陆模块
BrowseInfoAction
Login.jsp
IndexModel
2
库存查询
Conlist.jsp
ConModel
3
新增货物
conAdd.jsp
AddModel
4
删除货物
conDel.jsp
DelModel
5
查询模块
—
SearchModel
6
提货篮模块
Getlist.jsp
AddtoModel
7
订单模块
Billlist.jsp
billModel
8
订单明细模块
Billdetail.jsp
DetailModel
1.3系统功能需求
系统主要包括以下几个页面:
(1)管理员登录页面
(2)管理员添加删除货物页面
(3)货物标题信息页面
(4)货物信息查询页面
(5)货物信息显示页面
1.4系统需求分析
一、用例图
主要参与者:
管理员
主要用例:
登录、货物信息、标题信息、查询货物信息
图2-1货物管理用例图
二、活动图
三、状态图
活动图如图2-3所示
四、顺序图
销售员通过发送一个通知货物消息通知管理员已经没有货物或者货物已经售出,管理员接受这个消息,进行增加和删除货物信息,然后对货物进行更新,更新完返回给销售员,告诉他已经更新完成
入库管理信息用例对象顺序图
二、数据库说明
货品类别表
TIHUO_TYPE
字段
说明
数据类型
长度
必填
默认值
主键
外键
Type_id
类别ID
bigint
TRUE
TRUE
FALSE
Type_name
类别名称
varchar(200)
200
FALSE
FALSE
FALSE
货品表
TIHUO_CONSUMER
字段
说明
数据类型
长度
必填
默认值
主键
外键
con_id
货品ID
bigint
TRUE
TRUE
FALSE
con_name
货品名称
varchar(200)
200
FALSE
FALSE
FALSE
con_count
货品数量
int
FALSE
FALSE
FALSE
type_id
类别ID
bigint
FALSE
FALSE
TRUE
提货单提货物品明细表
TIHUO_BUY
字段
说明
数据类型
长度
必填
默认值
主键
外键
buy_id
提货货品ID
bigint
TRUE
TRUE
FALSE
con_id
货品ID
varchar(200)
200
FALSE
FALSE
FALSE
buy_count
提货数量
int
FALSE
FALSE
FALSE
bill_id
提货单ID
bigint
FALSE
FALSE
TRUE
提货单表
TIHUO_BILL
字段
说明
数据类型
长度
必填
默认值
主键
外键
bill_id
提货单ID
bigint
TRUE
TRUE
FALSE
bill_name
提货单号
varchar(200)
200
FALSE
FALSE
FALSE
bill_addMan
提货单提货人
varchar(200)
200
FALSE
FALSE
FALSE
bill_addDate
提货单生成时间
datetime
FALSE
FALSE
FALSE
数据库关系图
数据库视图
v-con视图作为货物列表的查询
v_billdetail作为提货明细表的查询
三、程序说明
1、数据库类连接说明
数据库连接池用proxool数据库连接池,应用该数据库连接池要加载proxool-0.9.0RC3.jar,在WebRoot\WEB-INF\lib中,同时加载了sql2005jdbc.jar(2005连接驱动),也在WebRoot\WEB-INF\lib中,另外有两个类和在web.xml中需要设置。
两个类分别是SystemServerInit.class,DBConnPoolMang.class
SystemServerInit.class数据库连接池的初始化启动类,启动tomcat的时候同时启动数据库连接池。
DBConnPoolMang.class数据库连接池的连接,断开,回滚处理类
该两个类用proxool连接池时一般配有的。
Web.xml配置
proxool
ServletConfigurator
org.logicalcobwebs.proxool.configuration.ServletConfigurator
xmlFile
WEB-INF/proxool.xml
1
Admin
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
Admin
/admin
--启动项-->
SystemServerInit
com.SystemServerInit
--数据库服务组件-->
proxool
tihuo
2
具体参数解释请在网上参考proxool的配置。
2、数据处理类OpCon.class
数据的添加,修改,删除,查询的sql语句操作,全在该类里实现。
具体方法说明请看代码注释。
3、货品添加代码说明
通过页面conAdd.jsp的post提交表单到Add.jsp,在该页面中对提交的表单信息进行
获取
Stringcon_name=newString(request.getParameter("con_name").getBytes("ISO8859-1"),"GBK");
参数传递过程中会有中文编码问题,把传输中的中文转回GBK格式
过滤
if(con_name==null||con_name.equals("")){
out.write("");
}
插入数据库
if(conn!
=null){
OpConop=newOpCon(conn);
if(op.add(con)){
out.write("");
}else{
out.write("");
}
}
调用OpCon类中的add方法插入把数据插入数据库。
4、货品删除代码说明
删除操作与添加操作类似,在conList.jsp中通过
conDel.jsp?
id=<%=rsList.get(i).get("con_id")%>
把要删除的ID传入conDel.jsp获取,过滤参数,调用OpCon类中的del方法插入把数据从数据库删除。
5、提货篮代码说明
在conList.jsp里通过单击“放到提货篮”链接调用js函数getCount(id,name,type)把要放入提货篮的货物id,名称,类别提交到addTo.jsp进行处理。
addTo.jsp主要工作
接收conList.jsp传来的参数
Stringcon_id=(String)request.getParameter("con_id");
Stringcon_name=newString(request.getParameter("con_name").getBytes("ISO8859-1"),"utf-8");
Stringcon_count=(String)request.getParameter("con_count");
Stringtype_name=newString(request.getParameter("type_name").getBytes("ISO8859-1"),"utf-8");
把参数放入到hashmap里,成为一个HashMap对象
HashMapcon=newHashMap();
con.put("con_id",con_id);
con.put("con_name",con_name);
con.put("con_count",con_count);
con.put("type_name",type_name);
把登录时建立的session对象conList取出,并赋值到对象conList里
ArrayList>conList
=(ArrayList>)session.getAttribute("conList");
把放入了参数的HashMap对象添加到对象conList里
conList.add(con);
重新把conList对象记录进session里的conList里
session.setAttribute("conList",conList);
弹出放入成功提示,并跳转到“我的购物篮”页面(getList.jsp)
out.write("");
完成放入提货篮操作,放入第二样货品操作一样,session在系统没关闭前是一直存在的。
而“我的购物篮”页面(getList.jsp)是把session里的conList以ArrayList列表数组对象读出来的,所有就算关闭该页面,只要系统没有关闭,再打开,刚提货的物品还存在于购物篮里。
确定生成提货单,在getList.jsp里单击“确定提货”按钮,把列表中的con_id通过表弟提交到getAdd.jsp页面处理。
在getAdd.jsp里,调用OpCon类的方法提货单和提货单中货物明细插入到数据库里
try{
//链接数据库
Stringid=null;
if(conn!
=null){
OpConop=newOpCon(conn);
if(op.addBill(account)){//调用addBill方法把提货单信息插入到提货单表
//获取刚添加的提货单id
id=op.getMaxId();
for(inti=0;iif(!
op.addBuy(con_id[i],con_count[i],id)){
db.rollback();//数据回滚
out.write("");
}
op.reduce(con_id[i],con_count[i]);
}
}
}else{
db.rollback();
}
mit();
db.close();
session.setAttribute("conList",newArrayList>());//清空session中的conList对象。
out.write("");
}catch(SQLExceptione){
db.rollback();
db.close();
}
以上代码完成提货单生成操作。
提货单单号是通过日期时间生成,具体可以看OpCon类addBill方法
四、系统运行截图
登陆界面
货物列表
增加货物
货物删除
双关键字查询
提货篮列表
提货记录
提货明细记录
五、课程设计心得体会
经历了千辛万苦终于完成了本学期的课程设计任务,但是收获良多,此次的课程设计,不仅使我学会利用UML进行需求分析建模,更重要的是使我意识到需求分析对一个系统是起着至关重要的作用,做好需求分析,掌握良好的业务流程知识是一个优秀系统的前提,拥有了这两个方面的系统方有可能成为一个成功MIS系统。
通过这课程设计,我首先感觉到的是我的自学能力增强了很多,有点超乎我的想象。
由于本人的代码能力极弱,基本上都是靠这个假期呆在学校学习,我自学java语言,更深入学习html语言,java_web开发技术(例如servlet,jsp技术,还有JavaBean技术等),熟悉了java与jsp的开发环境以及工具。
了解了更多关于开始系统的先进流行的技术,明确了自己从事系统开发所要掌握的技术技能和学习发展的方向。
其次,更加习惯到网上和图书馆寻找解决实验过程中遇到的问题的解决方法,充分认识到图书馆和网络资源对一个人增长见识,提高知识水平的重要性。
本系统不能算是完善的,还存在着相当多的不足。
在没有开始做系统之前,自己完全一头雾水,根本不知从何下手。
但当真正去做时,面对的问题一个个地被解决掉,随之的成就感很快就冲走了之前的沮丧。
越挫越勇,迎难而上,只有自己不断地尝试,才有可能品尝到胜利的果实。
在这次系统设计过程中,编辑好页面和程序后,发觉在连接数据库的时候出现了一些问题,参数设置冲突,使程序无法正常的连接数据库。
我们通过查看书籍,上网等方式对代码进行修改,最终顺利连接数据库。
六、参考文献
[1]谭云杰.大象——ThinkinginUML.中国水利水电出版社,2009
[2]刁成嘉,刁奕.UML系统建模与分析设计课程设计.机械工业出版社,2008
[3]张立厚,莫赞,张延林,陶雷.管理信息系统开发与管理.清华大学出版社,2008