Cómo manejar los datos de la pregunta de Modelado Matemático 2007B

Jaja, lo he hecho, código VF

* **************************** ************************************************** * *******************

* id (número automático pk) busline (línea de bus int 4) busname (nombre del sitio varchar 20) busorder (sitio order) int 4)

* 1 1 Estación de Ferrocarril 1

* 2 1 Plaza de la Victoria 2

* 3 1 Venta de Puente Pesquero 3

* ... ... ... ... ...

* 25 2 Plaza de la Victoria 1

* 26 2 Ciudad Eléctrica de Tianxiang 2

* 27 2 Wulitun 3

* ... ... ... ...

* Así se inserta la base de datos en el registro Todos los autobuses de la ciudad. Se pueden insertar datos de línea en él.

************************************* ******** ******************************************* ********* ***

*/

//Definir una nueva clase

//Implementar traslado en autobús

class buss{

//Definir variables miembro de conexión de base de datos

var $host

var $user

var; $passwd;

var $database;

var $conn

//Usa el constructor para inicializar variables y conectarte a la base de datos

función buss(){

$this->host="localhost";

$this->usuario="root";

$this ->passwd="";

$this->database="bus";

$this-&g

t;conn=mysql_connect($this->host, $this->user,$this->passwd) o

die("No se pudo conectar a $this->host"); >

mysql_select_db($this->database,$this->conn) o

die("No se pudo cambiar a la base de datos $this->database");

//Estadísticas de todos los nombres de paradas de autobús en la base de datos y almacenarlas en una matriz

//Devuelve el nombre de la parada

function busstotal(){

$SQL = "seleccionar * del grupo de bus por nombre de bus";

$count = 0;

$resultado = mysql_query($SQL);

while ($row = mysql_fetch_object($resultado)){

$bustotal[$count]= $row->busname;

$count++;

}

return $bustotal;

}

//Estadísticas de todas las rutas de autobús en la base de datos y almacenarlas en una matriz

//Volver a rutas de autobuses

function busslinetotal(){

$SQL = "seleccionar * del grupo de autobuses por línea de autobús";

$count = 0;

$resultado = mysql_query($SQL);

while($row = mysql_fetch_object($resultado)){

$buslinetotal[$count ]= $fila->busline;

p>

$count++;

}

return $buslinetotal;

}

//Estadísticas en cada línea de la base de datos Las estaciones que pasan se almacenan en la matriz

//La línea de parámetro es necesaria para distinguir cada autobús

//Devuelve el nombre de la estación

function bussperline($line){

$SQL = "select * from bus donde busline = '$line'";

$count = 0;

$resultado = mysql_query($SQL );

while($fila = mysql_fetch_object($resultado)){

$busperline[$count] = $fila->nombre del bus;

$cuenta++

;

}

return $busperline;

}

//Cuenta las combinaciones de todos los autobuses que pasan por una determinada parada

//El parámetro estación es obligatorio, indicando la estación por la que pasó

//Regreso a la línea de autobús

function passline($station){

$SQL = "seleccione * del bus donde nombre del bus = '$estación' grupo por línea de bus";

$count = 0;

$resultado = mysql_query($SQL);

while($row = mysql_fetch_object($resultado)){

$passline[$count]= $row->busline;

$count++;

}

return $passline

}

//Función para implementar el algoritmo de transferencia

// Es necesario proporcionar parámetros, consultar el punto inicial y final

función bussStationToStation($start,$end){

$flag1 = false;

$flag2 = false;

//Devolución de llamada de función

$busstotal = $this->busstotal();

$busslinetotal = $this->busslinetotal();

//Determinar si este sitio existe en la base de datos

for($i=0;$i

if($start==$busstotal [$i]) $bandera1 = verdadero;

if($end==$busstotal[$i]) $bandera2 = verdadero;

if($flag1 y $flag2) break;

}

//Un sitio no existe

if(!($flag1 y $flag2) ){

if(!$flag1) die("¡El sitio $start no existe! ");

if(!$flag2) die("¡$el sitio final no existe!");

}

//Ambos sitios existen situación

//Primero determina si hay un tren directo

$strTemp = "";

//Atraviesa todos los trenes

para ($i=0;$i

$flag3 = 0;

//Devolución de llamada de función

> $bussperline = $this->bussperline($busslinetotal[$i]);

//Recorre las estaciones por las que pasa cada tren

for($j=0;$j

if($start==$bussperline[$j]) $flag3 +=1;

if($end== $bussperline[$j]) $flag3 +=1;

if($flag3==2) descanso;

}

if($flag3= =2)

//Guardar trenes directos, divididos por ||

$strTemp = $strTemp.$busslinetotal[$i]."||";

}

if($strTemp==""){

//Si no hay tren directo, calcula una situación de transbordo

echo(" < strong>".$start. " a"

.$end." ¡No hay tren directo! Consulte las siguientes sugerencias de transferencia.

");

//Compruebe la estación de transferencia del primer nivel

//inicio Punto de inicio

//final punto final

//Devolución de llamada de función para obtener todas las combinaciones que pasan por el punto inicial y el punto final

$statpass = $this->passline($start );

$endpass = $this->passline($end);

//Obtiene todas las combinaciones de líneas que pasan por el puntos de inicio y fin

$resultbus = "";

for($a=0;$a

for($b=0;$b

//Juzga si hay una intersección entre dos líneas

$startper = $ this->bussperline($statpass[$a]);

$endper = $this->bussperline($endpass[$b]);

for($c=0 ;$c

for($d=0;$d

if($startper[$c]==$endper[$d]){

//Después de encontrar exitosamente la intersección

//Almacenando la información en la intersección

//Esta es solo una transferencia

$fistid = $statpass [$a];

$segundoid = $endpass[$b];

$changestation = $startper[$c];

$resultbus .= $fistid.";".$segundoid.";".$changestation."||"

}

}

}

}

}

if($resultbus=="")

{

//No se encontró línea de transferencia

echo("

Lo siento, " .$start. " a "

.$end. "¡No hay tren directo y no puedes llegar incluso si haces transbordo una vez!");

}

else{

//Encontrar la línea de transferencia

$resultbus = substr($resultbus,0,strlen($resultbus)-2 );//Eliminar el extremo derecho "||"$resultbus_ok1 = explode("||",$resultbus);//Dividir la cadena en matrices

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("< td width =150>Punto final");

echo ("

");

for($mm= 0;$ mm

$resultbus_ok2 = explotar(";",$resultbus_ok1[$mm]);

//Calcular el dos vehículos Punto de partida y punto final

$bus1 = $this->bussperline($resultbus_ok2[0]);

$bus2 = $this->bussperline($resultbus_ok2[1 ]);

//Pantalla

echo ("

") ;

echo ("

");

echo ( "

");

echo ("

");

echo ("&l

t;td width=150>" .$bus2[count($bus2)-1]. "");

echo("

");

}

echo("

Punto de partidaNúmero de trenEstación de transferencia Números de trenes
" .$bus1[0]. "") ; echo ("" .$resultbus_ok2[0]. "" .$resultbus_ok2[2]. " ==> " .$resultbus_ok2[1]. "
");

}

}

else{

//Si hay un tren directo, muestra directamente la situación del tren directo

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("

");

echo ("< td width=150>Detalles");

echo ("

");

$strTemp = substr($ strTemp,0,strlen($strTemp)-2);//Eliminar el "||" más a la derecha

$strTemp_ok1 = explotar("||",$strTemp );//Dividir la cadena en una matriz

for($nn=0;$nn

//Calcular el punto de partida y punto final del vehículo

$bus = $this->bussperline($strTemp_ok1[$nn]);

//Display

echo ("

Color = '#FFF9EE' onMouseOut = this.style.backgroundColor = ''>");

echo ("

");

echo ("

");

echo ("

");

echo ("

") ;

echo ("

");

echo ("

");

echo("< /tr>");

}

echo("

Número de trenPunto de partida aprobadoaprobadoPunto final
" .$strTemp_ok1[$nn ]. "" .$bus[0]. " " .$start. " ==> " .$end. "" .$bus[count($bus)-1]. "Detalles
");

}

}

}

/*

Después de definir la clase abstracta, es muy sencillo usarla

*/

$bus = new buss;

$bus->bussStationToStation("Train Station","Wulidun");

//Todo está bien, puedes ver los resultados directamente>