package readcsv;
import tool.*;
import echelon.echelon;
public class pro {
int datanumber;
String[] data=new String[5000];
String[] code=new String[5000];
double[] point=new double[5000];
double[] v=new double[5000];
int number;
String[] city=new String[5000];
int[] number_dir=new int[2001];
int[][] dir=new int[2001][21];
int number_g;
int[][] group=new int[2001][2001];
int[] number_group=new int[2001];
int[] live=new int[2001];
public static void main(String[] args) {
pro r=new pro();
}
pro(){
readfile sub=new readfile();
sub.makedata("data.csv","UTF-8");
data=sub.data;
datanumber=sub.datanumber;
int s;
for(s=13;s<datanumber+1;s++){
data[s]=rev_csv(data[s]);
String[] x=data[s].split(",");
code[s]=x[0];
v[s]=num(x[2]);
}
readfile sub2=new readfile();
sub2.makedata("citycode.csv","UTF-8");
data=sub2.data;
number=sub2.datanumber;
for(s=2;s<number+1;s++){
city[s-1]=data[s];
}
number=number-1;
int sx;
for(s=1;s<number+1;s++){
point[s]=0;
for(sx=13;sx<datanumber+1;sx++){
if(city[s].equals(code[sx]))point[s]=v[s];
}
}
readfile sub3=new readfile();
sub3.makedata("link.csv","UTF-8");
data=sub3.data;
datanumber=sub3.datanumber;
for(s=2;s<datanumber+1;s++){
String[] x=data[s].split(",");
int s1=numx(x[0]);
int s2=numx(x[1]);
int s3=numx(x[2]);
dir[s1][s2]=s3;
number_dir[s1]=s2;
}
echelon sub5=new echelon();
sub5.dir=dir;
sub5.number_dir=number_dir;
sub5.point=point;
sub5.number=number;
sub5.makedata();
group=sub5.group;
number_group=sub5.number_group;
number_g=sub5.number_g;
System.out.println(number);
for(int g1=1;g1<800;g1++){
check(g1);
count(g1);
}
for(int g1=1;g1<number_g+1;g1++){
int h=0;
if(live[g1]>10)h=h+1;
if(number_group[g1]>10)h=h+1;
if(h==2)System.out.println(g1+","+number_group[g1]);
}
}
int count(int g1){
int sx,n;
live[g1]=100;
n=0;
for(sx=1;sx<g1+1;sx++){
if(live[sx]>50)n=n+1;
}
return n;
}
void check(int g1){
int sx,tx;
for(sx=1;sx<g1;sx++){
for(tx=1;tx<number_group[sx]+1;tx++){
int s1=group[sx][tx];
if(ch_g(g1,s1)>50)live[sx]=0;
}
}
}
int ch_g(int g1,int s1){
int sx;
int ch=0;
for(sx=1;sx<number_group[g1]+1;sx++){
int s2=group[g1][sx];
if(s1==s2)ch=100;
}
return ch;
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
double num(String str){
double nx;
nx=0;
try{
nx=Double.parseDouble(str);
}catch (Exception e) {}
return nx;
}
String rev_csv(String str){
String str5=str;
int px=str5.indexOf("\"");
while(px>-1){
str5=rev(str5);
px=str5.indexOf("\"");
}
return str5;
}
String rev(String str){
int p1=str.indexOf("\"");
int p2=str.indexOf("\"",p1+1);
String str1=str.substring(0,p1);
String str2=str.substring(p1+1,p2);
String str3=str.substring(p2+1,str.length());
str2=str2.replace(",","");
return str1+str2+str3;
}
}
最終更新:2016年05月31日 08:45