一个塑料期货交易程序分析图程序(PHP+JAVA)

程序

PHP+JAVA的程序

.....................

Java Program:

/*
以下程序为余姚塑料城期货交易数据的定时追踪分析程序
是对数据的初步分析,绘图分析则交给进一步的php程序来完成
本程序完成策划于2005-5-17(友谊日)
本程序可以作为K线图原始数据库
*/
import java.net.*;
import java.io.*;
import java.nio.*;
import java.text.*;
import java.util.*;
import java.util.Date;
import java.util.regex.*;
class suliao
  {
    final static int LINE=11;
    public static void main(String args[])
      {
        String url="http://www.ex-cp.com//yy_data/quot.txt";
        String url1="http://www.51kk7.com/Forum/User/CompanyInfo.aspx?companyId=0";
        for(;;)
        {
 try
   {
     Thread.sleep(10000);
            String ori[][]=new String[LINE][14];
            int sta=0;
            //
     for(;;)
     {
     Thread.sleep(1000);
     Date date;
            SimpleDateFormat hua=new SimpleDateFormat("H m s");
     String time=hua.format(date=new Date());
     String[] hua1=time.split("\s");
     int i=Integer.parseInt(hua1[0])*3600+Integer.parseInt(hua1[1])*60+Integer.parseInt(hua1[2]);
     if(i<34100)
       break;
     if(i>39900)
       break;
            URL hp=new URL(url);
     URLConnection hpCon=hp.openConnection();
     int len=hpCon.getContentLength();
     InputStream input=hpCon.getInputStream();
     int c;
     StringBuffer hu=new StringBuffer("");
     String hu1[]=new String[LINE];
     int k=0;
     while(((c=input.read())!=-1)&&(--len>0))
       {
  if(c==10)
    {
      hu1[k]=hu.toString();
      hu=new StringBuffer("");
      k++;
    }
  else
    {
      char c1=(char)c;
      hu.append(c1);
    }
       }
     hu1[LINE-1]=hu.toString();
     String hu2[][]=new String[LINE][14];
     suliao he=new suliao();
     for(int k1=0;k1<LINE;k1++)
       hu2[k1]=he.zz(hu1[k1]);
     /*
     for(int k2=0;k2<10;k2++)
       {
  for(int k3=0;k3<14;k3++)
    System.out.print(hu2[k2][k3]+"\t");
  System.out.println("");
       }
     */
     int k2;
     if(sta==0)
       {
  ori=hu2;
  sta=1;
  for(k2=0;k2<LINE;k2++)
    he.writeinfo(hu2[k2],i);
       }
     else if(sta==1)
       {
  //he.writeinfo(hu2[0]);
  //let's start the compare program,go go go
  for(k2=0;k2<LINE;k2++)
    {
                    //System.out.println(hu2[k2][12]+"-"+ori[k2][12]);
      if(true)//he.zv(hu2[k2][12])!=he.zv(ori[k2][12]))
        {
          he.writeinfo(hu2[k2],i);
        }
    }
  ori=hu2;
       }
     }
     //
   }
 catch(Exception e)
   {
     //System.out.println("wrong wrong wrong!!!");
     e.printStackTrace();
   }
 }
      }
    public String[] zz(String a)
      {
 String[] hello=a.split("\,");
 for(int i=0;i<hello.length;i++)
   hello[i]=hello[i].trim();
 return hello;
      }
    public int zv(String a)
      {
 return Integer.parseInt(a);
      }
    public void writeinfo(String[] a,int i)//写入文本数据库中
      {
        Calendar cn=Calendar.getInstance();
        int mon=cn.get(Calendar.MONTH)+1;
        String dir=cn.get(Calendar.YEAR)+"-"+mon+"-"+cn.get(Calendar.DAY_OF_MONTH);
        String file=cn.get(Calendar.YEAR)+"-"+mon+"-"+cn.get(Calendar.DAY_OF_MONTH)+"/"+a[0]+".txt";
        File hu=new File(file);
        File ha=new File(dir);
        try
        {
        if(!ha.exists())
   ha.mkdir();
        if(!hu.exists())
   hu.createNewFile();
 //Date date;
        //SimpleDateFormat hua=new SimpleDateFormat("H m s");
 //String time=hua.format(date=new Date());
 //String[] hua1=time.split("\s");
 //int i=Integer.parseInt(hua1[0])*3600+Integer.parseInt(hua1[1])*60+Integer.parseInt(hua1[2]);
 int k;
 StringBuffer kv=new StringBuffer("");
 for(k=0;k<14;k++)
   {
     kv.append(a[k]+"\t");
   }
 kv.append(i+"\n");
 System.out.println(kv.toString());
 FileWriter rar=new FileWriter(hu,true);
 rar.write(kv.toString());
 rar.close();
 }
 catch(Exception e)
   {
     e.printStackTrace();
   }
      }
  }

PHP Program

<?
$GO=$_POST['GO'];
if(!$GO)
  $GO=$_GET['GO'];
if($GO==1)
  {
    $dir=$_POST['time'];
    $file1=$_POST['file'];
    $handle=opendir('./'.$dir);
    print"<form action=index.php method=post>
          <input type=hidden name=GO value=1>
   时间:<input type=\"text\" value=\"$dir\" readonly name=\"time\" />
   品种:<select name=file onChange=\"this.form.submit()\">
   <option value=\"\">选择品种</option>";
    while ($file = readdir($handle)) {
    if(($file!=".")&&($file!=".."))
      {
 $file=explode(".",$file);
 $file=$file[0];
        echo "<option value=$file>$file</option>";
      }
    }
    print"</select></form>";
    closedir($handle);
    if($file1)
      {
 print"<hr><img src=index.php?GO=2&time=$dir&file=$file1>";
      }
  }
elseif($GO==2)
  {
    set_time_limit(10);
    $time=$_GET['time'];
    $file=$_GET['file'].".txt";
    $file1=explode(".",$file);
    $str=$file1[0].':'.$time.' 绘制时间('.date("Y-m-d H:i:s").')';
    $afile="./".$time."/".$file;
    $a=file($afile);
    for($i=0;$i<count($a);$i++)
      {
 $b=explode("\t",$a[$i]);
 if($i==0)
   {
     $p=0;
     $hu[$p][0]=$b[12];
     $hu[$p][1]=$b[13];
     $hu[$p][2]=$b[14];
     $p++;
   }
 else
   {
     $b1=explode("\t",$a[$i-1]);
     if($b[12]!=$b1[12])
       {
  $dis=$b[12]-$b1[12];
  $hu[$p][0]=$dis;
  $hu[$p][1]=$b[13];
  $hu[$p][2]=$b[14];
  $p++;
       }
   }
      }
    /*
    echo"<table border=1><tr><td>成交量</td><td>报价</td><td>时间</td></tr>";
    for($i=0;$i<$p;$i++)
      {
 $h=floor($hu[$i][2]/3600);
 $h1=$hu[$i][2]-$h*3600;
 $m=floor($h1/60);
 $s=$h1-$m*60;
 $TIME=$h.':'.$m.':'.$s;
 echo"<tr><td>".$hu[$i][0]."</td><td>".$hu[$i][1]."</td><td>".$TIME."</td></tr>";
      }
    echo"</table>";
    */
    //绘图开始
    Header("Content-type: image/gif");
    $im=imagecreate(600,400);
    $backcolor=ImageColorAllocate($im,236,236,236);
    $linecolor1=ImageColorAllocate($im,255,0,0);//涨区间线,红线
    $linecolor2=ImageColorAllocate($im,0,255,0);//跌区间线,绿线
    $linecolor3=ImageColorAllocate($im,0,0,255);//平区间线,蓝线
    $linecolor4=ImageColorAllocate($im,247,198,166);//表格线
    $linecolor5=ImageColorAllocate($im,156,54,143);//报价曲线
    //$linecolor4=ImageColorAllocate($im,,,);
    imagefill($im,0,0,$backcolor);
    //标尺线开始(曲线部分)
    imageline($im,30,10,30,110,$linecolor1);
    imageline($im,30,110,30,210,$linecolor2);
    imageline($im,30,110,570,110,$linecolor3);
    imageline($im,570,110,570,10,$linecolor1);
    imageline($im,570,110,570,210,$linecolor2);
    imagestring($im,2,5,105,0,$linecolor3);
    imagestring($im,2,572,105,0,$linecolor3);
    for($i=0;$i<=4;$i++)
      {
 $up="+".(5-$i)*40;
 $down="-".($i+1)*40;
 imageline($im,30,(10+20*$i),570,(10+20*$i),$linecolor4);
 imagestring($im,2,5,(5+20*$i),$up,$linecolor1);
 imagestring($im,2,572,(5+20*$i),$up,$linecolor1);
 imageline($im,30,(130+20*$i),570,(130+20*$i),$linecolor4);
 imagestring($im,2,5,(125+20*$i),$down,$linecolor2);
 imagestring($im,2,572,(125+20*$i),$down,$linecolor2);
      }
    $t[0]="9:30";
    $t[1]="9:45";
    $t[2]="10:00";
    $t[3]="10:15";
    $t[4]="10:30";
    $t[5]="10:45";
    $t[6]="11:00";
    for($i=0;$i<=6;$i++)
      {
 if(($i!=0)&&($i!=6))
   {
     imageline($im,(30+90*$i),10,(30+90*$i),210,$linecolor4);
   }
 $t1=$t[$i];
 imagestring($im,2,(15+90*$i),212,$t1,$linecolor3);
      }
    //标尺线开始(成交量部分)
    for($i=0;$i<=5;$i++)
      {
 $ii=290+20*$i;
 $iii=(5-$i)*10;
 imageline($im,30,$ii,570,$ii,$linecolor4);
 imagestring($im,2,5,$ii-5,$iii,$linecolor1);
 imagestring($im,2,575,$ii-5,($iii*10),$linecolor3);
      }
    imageline($im,30,290,30,390,$linecolor4);
    imageline($im,570,290,570,390,$linecolor4);
    for($i=1;$i<=5;$i++)
      {
 $ii=30+90*$i;
        imagedashedline($im,$ii,290,$ii,390,$linecolor4);
      }
    //标尺线结束
    //曲线绘制开始
    $a=file($afile);
    for($i=0;$i<count($a);$i++)
      {
 $b=explode("\t",$a[$i]);
 $b1=$b[13];
 $b2=$b[14];
 $x=($b2-34100)/10;
 $y=-$b1*0.5+110;
 if($i==0)
   {
     $x1=$x;
     $y1=$y;
   }
 else
   {
     imageline($im,$x,$y,$x1,$y1,$linecolor5);
     $x1=$x;
     $y1=$y;
   }
      }
    //成交量绘制开始
    $sum=0;
    for($i=0;$i<$p;$i++)
      {
 $y=390-2*$hu[$i][0];
 $x=($hu[$i][2]-34100)/10;
 imageline($im,$x,390,$x,$y,$linecolor1);
 $sum+=$hu[$i][0];
 $ysum=390-0.2*$sum;
 if($i==0)
   {
     $x1=$x;
     $y1=$ysum;
   }
 else
   {
     imageline($im,$x1,$y1,$x,$y1,$linecolor3);
     imageline($im,$x,$y1,$x,$ysum,$linecolor3);
     $x1=$x;
     $y1=$ysum;
   }
      }
    imageline($im,$x1,$y1,570,$y1,$linecolor3);
    //结算价格曲线绘制
    $sum=0;
    $allprice=0;
    for($i=0;$i<$p;$i++)
      {
 $sum+=$hu[$i][0];
 $allprice+=$hu[$i][1]*$hu[$i][0];
 if($sum==0)$nowprice=0;
 else
   $nowprice=$allprice/$sum;
        $x=($hu[$i][2]-34100)/10;
 $y=-$nowprice*0.5+110;
 if($i==0)
   {
     $x1=$x;
     $y1=$y;
   }
 else
   {
     imageline($im,$x1,$y1,$x,$y1,$linecolor1);
     imageline($im,$x,$y1,$x,$y,$linecolor1);
     $x1=$x;
     $y1=$y;
   }
      }
    imageline($im,$x1,$y1,570,$y1,$linecolor1);
    //绘制结束
    //************图片解释部分开始*******************//
    $str0=iconv("GB2312","UTF-8",$str);
    $str1=iconv("GB2312","UTF-8","上图红线表示结算价格线,紫线表示价格曲线,下图红线表示当时成交量,蓝线表示总成交量");
    imagettftext($im,10,0,30,240,$linecolor1,"D:/winnt/Fonts/simhei.ttf",$str0);
    imagettftext($im,10,0,30,255,$linecolor1,"D:/winnt/Fonts/simhei.ttf",$str1);
    //************图片解释部分结束*******************//
    ImageGif($im);
    ImageDestroy($im);
  }
else
  {
    //时间从2005-05-24开始
    print"<form action=index.php method=post>
   <input type=hidden name=GO value=1>
          选择时间:
   <select name=time>";
    for($i=0;$i<100;$i++)
      {
 $time1=date("Y-n-j",mktime(0,0,0,date("m"),date("d")-$i,date("Y")));
 $time2=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$i,date("Y")));
 if(is_dir($time1))
   print"<option value=\"$time1\">$time2</option>
         ";
      }
    print"</select>
   <p>
   <input type=submit name=submit value=提交>
          </form>";
  }
?>

时间: 2024-11-03 02:25:21

一个塑料期货交易程序分析图程序(PHP+JAVA)的相关文章

新官上任,转贴一篇:Java做一个最简单的通话程序

程序 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java中有一个专门的Java.net类库来管理网络编程的有关方法. 下面先介绍在Java中怎样用socket进行客户与服务器通信.最后再介绍一个一个最简单的通话程序. 一.怎样用socket进行客户与服务器通信 在Java中用socket进行客户/服务器之间的通信编程.Socket是两个实体之间进行通信的有效端点.通过socket可以获得源IP地址和源端口.终点IP地址和终点端口.用户可以将多个socket连入同一个端

求助各位高手,请问怎样用java实现一个基于正则表达式的查找程序呢?

问题描述 求助各位高手,请问怎样用java实现一个基于正则表达式的查找程序呢?谢谢! 解决方案 解决方案二:你想查找什么呀?问题说清楚一些解决方案三:publicstaticString[]getStrExpression(Stringregex,Stringstr){List<String>temp=newArrayList<String>();Patternp=Pattern.compile(regex);Matcherm=p.matcher(str);while(m.find

java 我执行一个非常简单的socket程序都出错!java.net.ConnectException: Connection refused:

问题描述 java  网络编程 我执行一个非常简单的socket程序都出错!要崩溃了!我关闭了防火墙也不行,试了Ping 127.0.0.1是可以的,而且我查了这个端口也没有被占用,怎么解决?java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.connect0(Native Method)at java.net.DualStackPlainSocketImpl.soc

初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点。

问题描述 初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点. import java.util.Scanner; class Yanzheng{ private String n; private String p; public void setNa(String na){ this.n = na; } public void setPa(String pa){ this.p = pa; } public String getNa(){ return n;

请问怎样用java实现一个基于正则表达式的查找程序呢?

问题描述 各位高手,请问怎样用java实现一个基于正则表达式的查找程序呢? 解决方案 解决方案二:可以去看看horstmann写得corejavaVolumI第12章最后一节RegularExpressions:importjava.io.*;importjava.net.*;importjava.util.regex.*;/**ThisprogramdisplaysallURLsinawebpagebymatchingaregularexpressionthatdescribesthe<ahr

黑马程序员 一、java 概述与基础知识

获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路.方法.和手段通 过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完 成某种特定的任务.这种人和计算机之间交流的过程就是编程.   2.Java 语言概述,历史.特点 是 SUN(Stanford Universit

对《一个完善的ODBC数据库程序》一文的补充

编者注:本文是作者对不久前发布的一篇文章的补充,在阅读本文之前,最好先看一下原来的文章:"一个完善的ODBC数据库程序". 从方便用户的角度考虑,应该在程序中采用动态创建数据源.经过编者的提醒,我查找了一些资料,还好最终实现了.代码如下: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; //取的数据库的路

使用NetBeans IDE创建并运行一个简单的web应用程序

在本教程中,您将使用 NetBeans IDE 创建并运行一个简单的 web 应用程序,Hello Web.本示例应用程序要求您输入一个名字,之后使用那个名字显示一条信息.首先,您需要使用一个输入框来实现这个页面.之后您使用一个用户可以选择名字的下拉列表来替换那个输入框.下拉列表中输入的名字来自数据库表. 本教程需要以下技术以及资源的支持 JavaServer Faces 组件/Java EE 平台 1.2 with Java EE 5*1.1 with J2EE 1.4 Travel 数据库

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析_Android

        在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码.细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我们如何使用Java语言来使用系统的Binder机制来进行进程间通信呢?这就是本文要介绍的Android系统应用程序框架层的用Java语言来实现的Binder接口了.        熟悉Android系统