JSP课程设计报告
题目:MPS的计算
专 业:计算机信息管理 班 级:096111 学 号:09611129 姓 名:吴李稳 指导老师:姜老师
完成时间: 20011.06.21
1
《MPS的计算》
一、需求描述
(一)、课程设计内容描述
本课程设计的内容是完成MPS的计算。
设计工具:页面设计——Macromedia Dreamweaver 8
数据库设计——Microsoft Office Access 2003
JSP辅助设计——Tomcat
(二)、系统功能实现描述
0.jsp——首页,对策略进行选择。
1.jsp——跳转页面,选择策略1跳转到2.jsp,选择策略2跳转到3.jsp。
2.jsp和3.jsp——输入已知量。
4.jsp和5.jsp——数据插入页面,连接数据库,把所填数据插入到数据库。 4-1.jsp和5-1.jsp——计算页面,进行MPS计算并插入到数据库,输出到页面。
6.jsp——查询页面。
6-1.jsp——查询结果页面。
(三)、MPS计算描述
1、本设计设置了10个时段,系统设置之后,可以计算毛需求量。计算毛需求量的基础数据是预测量和订单量。
本设计计算毛需求量有两个策略,策略1和策略2。策略1为毛需求量直接等于订单量,不用预测量。策略2为时段1、2,毛需求量等于订单量,在时区3、4、5、6,毛需求量等于订单量和预测量中的较大者,在时段7、8、9、10,毛需求量等于预测量。
2、计算计划接收量需要确认在编制计划日期之前已经下达的订单数量。
计算当期PAB往往也是当前数据的一种确认。当期PAB是指编制计划日期时可用的库存量。
接下来,逐个时段进行计算。计算本时段PAB初值表示,在一个时段中,PAB有两个值,一个是PAB初值,一个是PAB值。因为在计算PAB值时,如果计算结果是负值,需要借助计划产出量进行调整。
3、计算本时段净需求量。如果PAB初值大于安全库存量,表示不需要补充,因此净需求量为0。如果PAB初值小于安全库存量,则需要补充库存,这时净需求量由安全库存量减去PAB初值得到。
如果净需求量为0,表示不需要补充物料,因此PAB等于PAB初值。如果净需求量不为0,则需要计算计划产出量。
4、计算计划产出量需要依据企业的批量政策。计划产出量的计算条件: 计划产出量=N*生产批量
2
N*生产批量>=净需求量>(N-1)*生产批量 (N为大于或等于1的整数)
5、计算计划产出量之后,需要计算PAB值。这时,计算PAB值要考虑计划产出量的影响。PAB计算结果之后,需要判断计划期中的各个时段是否全部计算完毕。如果没有全部计算完毕,需要计算下一个时段的数据。
计划期循环完毕之后,可以计算计划投入量和可供销售量。
6、计算计划投入量,计划投入量=后一时段的计划产出量。
7、计算ATP,ATP=本时段计划产出量-本时段计划接收量-下一次出现计划产出量之前个时段订单量之和。
二、设计与实现难点
(一)、系统功能设计
1、页面跳转功能:
<%
String choose=request.getParameter("choose");
if("1".equals(choose)) {response.sendRedirect("2.jsp");}
else {response.sendRedirect("3.jsp");}
%>
2、连接数据库功能:
<%
Connection conn=null;
Statement stmt=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn =DriverManager.getConnection("jdbc:odbc:MPS_Data","","");
%>
<%stmt.close();
conn.close();%>
3、数据插入到数据库功能:
<%
stmt=conn.createStatement();
String sql="insert into mps1 (pid, name, start, end, xianyou, security, product, add, dn1, dn2, dn3,dn4,dn5,dn6,dn7,dn8,dn9,dn10) values ('"+pid+"', '"+name+"', '"+start+"', '"+end+"', '"+xianyou+"','"+security+"','"+product+"','"+add+"','"+dn1+"','"+dn2+"','"+dn3+"','"+dn4+"','"+dn5+"','"+dn6+"','"+dn7+"','"+dn8+"','"+dn9+"','"+dn10+"')";
stmt.executeUpdate(sql);
3
%>
4、MPS计算功能:
<%
String dn[]={dn1,dn2,dn3,dn4,dn5,dn6,dn7,dn8,dn9,dn10};
String t[]=new String[]{"t1","t2","t3","t4","t5","t6","t7","t8","t9","t10"};
float a[];
a=new float[10];
float b[]=new float[10];
float c[]=new float[10];
float d[]=new float[11];
float e[]=new float[10];
float f[]=new float[10];
float g[]=new float[10];
int i=0;
for(i=0;i<10;i++){
a[i]=Float.parseFloat(dn[i]);
或者if(i<=1){a[i]=Float.parseFloat(dn[i]);}
else if(i>=2&&i<=5){if (Integer.parseInt(tn[i])>Integer.parseInt(dn[i]))
{a[i]=Float.parseFloat(tn[i]);}
else {a[i]=Float.parseFloat(dn[i]);}}
else if(i>=4&&i<=9){a[i]=Float.parseFloat(tn[i]);}
if(i==0) {b[i]=Float.parseFloat(xianyou)-a[i];}
else {b[i]=e[i-1]-a[i];}
if(b[i]>=Float.parseFloat(security)){c[i]=0;d[i]=0;e[i]=b[i];f[i]=d[i];}
else{c[i]=Float.parseFloat(security)-b[i];d[i]=1*Float.parseFloat(product);e[i]=e[i-1]+d[i]-a[i];f[i]=d[i];}
if(i==0){g[i]=e[i];}
String sql2="insert into mps2(a,b,c,d,e,f,g,pid,dn,t) values('"+a[i]+"', '"+b[i]+"', '"+c[i]+"', '"+d[i]+"','"+e[i]+"','"+f[i]+"','"+g[i]+"','"+pid+"','"+dn[i]+"','"+t[i]+"')";stmt.executeUpdate(sql2); }
%>
5、查询功能:
<%
Statement stmt=con.createStatement();
String sql="select * from mps1 where pid='"+pid+"'";
ResultSet rs =stmt.executeQuery(sql);
if(rs.next())
%>
<%
4
Statement stmt1=con.createStatement();
String sql1="select * from mps2 where pid='"+pid+"'";
ResultSet rst =stmt1.executeQuery(sql1);
while(rst.next())
%>
(二)、设计实现难点
1、连接数据库。
<%
Connection conn=null;
Statement stmt=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn =DriverManager.getConnection("jdbc:odbc:MPS_Data","","");%>
查阅JSP课本与其他参考课本,这里的数据源名称要写对,不是写数据库名称。
2、数据插入到数据库。
String sql="insert into mps1 (pid, name, start, end, xianyou, security, product, add, dn1, dn2, dn3,dn4,dn5,dn6,dn7,dn8,dn9,dn10) values ('"+pid+"', '"+name+"', '"+start+"', '"+end+"', '"+xianyou+"','"+security+"','"+product+"','"+add+"','"+dn1+"','"+dn2+"','"+dn3+"','"+dn4+"','"+dn5+"','"+dn6+"','"+dn7+"','"+dn8+"','"+dn9+"','"+dn10+"')";
stmt.executeUpdate(sql);
检查sql语句是否正确,表mps1,表的属性是否对应。
3、计算公式的代码编写。
要根据MPS计算描述来设计公式,要注意报字符型转换为数型(Integer.parseInt,Float.parseFloat)才能进行计算。
4、同一个页面有两SQL语句同时查询两个表。
如果同时在同一个页面查询,要设置两个stmt和两个rs,如
Statement stmt1=conn.createStatement(); ResultSet rs =stmt.executeQuery ();
Statement stmt2=conn.createStatement();ResultSet rs =stmt.executeQuery();
5、数据从数据库输出到页面
提取数据一般用 rs.getString("")。
5
三、解决方式
1、连接数据库。
2、数据插入到数据库。
3、计算公式的代码编写。
4、同一个页面有两SQL语句同时查询两个表。
四、课程设计总结
通过本次的课程设计是我基本上巩固了今年所学的jsp和管理信息系统的MPS计算的基础知识及其对这些知识加深了理解。本次jsp的课程设计,本人对一个MPS计算的设计,有当时对这个程序的不知所措到最后的顺利完工,如:连接数据库,数据插入到数据库,计算公式的代码编写,同一个页面有两SQL语句同时查询两个表及数据从数据库输出到页面等等。
在这一设计过程中增强了我的自学能力及对知识的融会贯通能力。本次的动手开发实践活动同时也提高了我的动手能力、调试程序的能力、解决问题的能力和实际开发的应用能力,更掌握了用jsp进行系统开发的一般步骤和方法,可以肯定的说完成了课程设计的各项基本要求。
6
ID3算法的改进摘要本文基于ID3算法的原有思路再把属性的重要性程度值纳入了属性选择的度量标准中以期获得更适合实际应用的分类划分结…
本科课程设计及实验期末成绩评估系统的数据仓库和数据挖掘设计课程名称数据挖掘课程编号08060116学生姓名cwl学号20xx052…
目录第1章数据挖掘基本理论211数据挖掘的产生212数据挖掘的概念313数据挖掘的步骤3第2章系统分析421系统用户分析422系统…
数据挖掘课程设计报告题目姓名班级学号关联规则挖掘系统xxxxxx计算机0901xxxxxxxxxxx20xx年6月19日1一设计目…
数据挖掘聚类问题PlantsDataSet实验报告1数据源描述11数据特征本实验用到的是关于植物信息的数据集其中包含了每一种植物种…
目录第1章数据挖掘基本理论211数据挖掘的产生212数据挖掘的概念313数据挖掘的步骤3第2章系统分析421系统用户分析422系统…
ID3算法的改进摘要本文基于ID3算法的原有思路再把属性的重要性程度值纳入了属性选择的度量标准中以期获得更适合实际应用的分类划分结…
本科课程设计及实验期末成绩评估系统的数据仓库和数据挖掘设计课程名称数据挖掘课程编号08060116学生姓名cwl学号20xx052…
数据挖掘课程设计报告题目姓名班级学号关联规则挖掘系统xxxxxx计算机0901xxxxxxxxxxx20xx年6月19日1一设计目…
一设计目的1更深的了解关联规则挖掘的原理和算法2能将数据挖掘知识与计算机编程相结合编写出合理的程序3深入了解Apriori算法二设…