数据挖掘课程设计

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

 

第二篇:数据挖掘课程设计的教学探索

数据挖掘课程设计的教学探索

相关推荐