急!急!急!急! 100分
刚学JSP,有个JAVA程序想改成JAVABEAN形式,不知道怎么做,JAVA程序如下:
(给出思路也可以)谢谢!
import java.sql.*;
public class Dijkstra
{
int StaNum;
int EndNum;
double distance[]=new double[162];
int i=0;
int a[]=new int[410];
intb[]=new int[410];
String c[]=new String[410];
String d[]=new String[410];
float l[]=new float[410];
float leng[][]=new float[162][162];
String direct[][]=new String[162][162];
String name[][]=new String[162][162]; //路名
int pre[]=new int[162];
int Choose (int ps,int pe)
{
StaNum=ps;
EndNum=pe;
return 0;
}
double FindShortest()
{
for(int i=0;i <162;i++)
{
distance[i]=leng[StaNum][i];
if(distance[i]==100.0) pre[i]=-1;
else pre[i]=StaNum;
}
leng[StaNum][StaNum]=1;
int p=-1;
while(true)
{
double min=200.0;
p=-1;
for(int i=0;i <162;i++)
{
if(leng[i][i]==0&&distance[i] <min)
{
p=i;
min=distance[i];
}
}
if(p==-1)
{
System.out.print( "所输入结点到源结点没有路径!! ");
return 0;
}
leng[p][p]=1;
for(i=0;i <162;i++)
{
if(leng[i][i]==0&&distance[i]> distance[p]+leng[p][i])
{
distance[i]=distance[p]+leng[p][i];
pre[i]=p;
}
}
if(p==EndNum)
return min;
}
}
void db()
{
String strurl= "jdbc:odbc:taxi ";
try{
for(int m=0;m <162;m++)
for(int n=0;n <162;n++)
{
if(m==n)
leng[n][m]=0;
else
leng[m][n]=50;
}
ResultSet rs;
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
Connection conn=DriverManager.getConnection(strurl);
PreparedStatement ps=conn.prepareStatement( "select * from road ");
rs=ps.executeQuery();
System.out.println( "ok ");
i=0;
while(rs.next())
{
a[i]=Integer.parseInt(rs.getString( "start "));
b[i]=Integer.parseInt(rs.getString( "finish "));
c[i]=rs.getString( "r_name ");
d[i]=rs.getString( "direct ");
l[i]=Float.parseFloat(rs.getString( "r_length "));
leng[a[i]][b[i]]=l[i];
name[a[i]][b[i]]=c[i];
direct[a[i]][b[i]]=d[i];
i++;
}
rs.close();
conn.close();
}catch(Exception e)
{
System.out.println(e);
}
}
int PrintLine ()
{
System.out.print( "所选结点到源结点的最短路径的序列是: ");
int p=EndNum;
System.out.println(EndNum);
do
{
System.out.println(pre[p]);
p=pre[p];
}while(p!=1);
return 0;
}
public static void main(String args[])
{
Dijkstra d=new Dijkstra();
d.db();
d.Choose(1,60);
double s= d.FindShortest();
System.out.println( "最短路径的长是 "+s);
int t=d.PrintLine();
}
}
[解决办法]
你把所有的属性和方法都改成static的 就可以了
反正你只是一个最短路径的算法 对吧
[解决办法]
所谓的javabean不就是一个java嘛。
对所有变量都有一个set和一个get的public函数,就是了。
例如:
public class FuckBoss
{
private String boss_girlfriend;
public void setBossGirlfriend(String boss_girlfriend)
{
this.boss_girlfriend=boss_girlfriend;
}
public String getBossGirlfriend()
{
return boss_girlfriend;
}
}
ps:
对于你定义的:
int a[]=new int[410];
intb[]=new int[410];
为什么写死是410?你确定数据库里的记录就是少于等于410?如果多于410你的程序就出错了。
[解决办法]
所有要用到的变量都初始化,再加个SET,GET方法
[解决办法]
JAVABEAN应该是jsp调用的吧,你的jsp页面呢。
[解决办法]
添加get、set方法。其他无所谓了。
[解决办法]
学习
int a[]=new int[410]; 推荐用集合,
------解决方案--------------------
专门写一个bean
写上get set 方法。
然后在联系在一块
[解决办法]
bean就是有set get方法,哈哈
[解决办法]
属性私有
[解决办法]
一楼已经回答了 不加其他方法的话改成static 要不加入 SET 和GET方法
[解决办法]
你找一个jsp+servlet+javabean的项目看看就知道怎么弄了。!