|
Posted on
2007-06-18 04:45
ROCk_IE
阅读( 1148)
评论()
编辑
收藏
举报
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif) ![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif) 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Text; 7 using System.Windows.Forms; 8![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif) 9 namespace CircleTrans 10![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif) { 11 public partial class Simulation_Round_About : Form 12![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 13![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 14![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) /**////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 15 /// <summary> 16 /// 定义全局变量 17 /// </summary> 18 /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 19![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 20 int timeRecord = 0;//全局变量,纪录仿真时间 21 int totalCarNo = 0;//记录进入系统中的车的数目 22 Random r = new Random();//公共的随机数生成器 23![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 24 //统计变量 25![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) double[] statisticFlow = { 0, 0, 0, 0, 0 }; 26 int statisticCarOut = 0; 27 double statisticStayTime = 0; 28![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 29 //记录下个时刻各个节点的状态,在下个时刻初始时向各节点赋值。 30 //初始化环岛节点和进入环岛路段的节点,环岛划为24个节点。进入路段各划为三个节点。 31 Node[] circleNodes = new Node[25]; 32 Node[] lineNodes = new Node[13]; 33 Node[] tempCircleNodes = new Node[25]; 34 Node[] tempLineNodes = new Node[13]; 35![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 36 //创建excel文档,存储仿真数据 37 Excel.Application xlApp; 38 Excel.Workbook xlWorkbook = null; 39 Excel.Worksheet[] xlWorksheets=new Excel.Worksheet[3]; 40![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) int[] count = { 2, 2, 2 }; 41 string[] writeToExcelString=new string [38]; 42![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 43![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) /**////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 44![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 45 46![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 47![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 48![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 49 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 50 /// <summary> 51 /// 主体函数编写 52 /// </summary> 53 /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// 54 public Simulation_Round_About() 55![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 56 InitializeComponent(); 57![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 58 for (int i = 1; i <= 12; i++)//初始化节点 59![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 60 circleNodes[2 * i - 1] = new Node(); 61 circleNodes[2 * i] = new Node(); 62 lineNodes[i] = new Node(); 63 tempCircleNodes[2 * i - 1] = new Node(); 64 tempCircleNodes[2 * i] = new Node(); 65 tempLineNodes[i] = new Node(); 66 } 67![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 68 CreateOrOpenExcelFile();//创建或者打开excel文件,记录数据 69 } 70![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 71![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 72![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 73![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 74 private void Simulation_Round_About_FormClosed(object sender, FormClosedEventArgs e) 75![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 76 CloseExcelApp();//窗体关闭事件 77 } 78![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 79 80![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 81 private void Form1_Load(object sender, EventArgs e) 82![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 83![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 84 } 85![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 86![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 87 88 private void timerInterval_Tick(object sender, EventArgs e) 89![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 90 timeRecord += 1; 91 this.labeltime.Text = timeRecord.ToString(); 92![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 93 //Statistics(60);//每隔60秒进行一次数据统计,该统计只统计最近间隔时间内。 94 StatisticsLong (60);//每隔60秒进行一次数据统计,该统计从起始时刻到现在。 95![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 96![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 97 GenerateCar();//在四个入口处产生到达的车辆 98![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 99 ChangeCircle();//更新环岛上节点下一个时刻的状态,存到tempCircleNode里面。 100![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 101 ChangeLine();//更新入口节点下一个时刻的状态,存到tempLineCircle里面。 102![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 103 for (int i = 1; i <= 12; i++)//更新下个时刻的所有节点 104![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 105 NodeFuZhi(circleNodes[2 * i - 1], tempCircleNodes[2 * i - 1]); 106 NodeFuZhi(circleNodes[2 * i], tempCircleNodes[2 * i]); 107 NodeFuZhi(lineNodes[i], tempLineNodes[i]); 108 } 109 110 ChangeTotalNodes();//更新下个时刻的所有节点显示 111 112 GenerateTransLog();//将该时刻的交通状态记录到excel文件 113 } 114![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 115![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 116![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 117 public void GenerateTransLog() 118![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//将该时刻的交通状态记录到excel文件 119 writeToExcelString[0] = timeRecord.ToString(); 120 for (int i = 1; i <= 24; i++) 121![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 122 if (circleNodes[i].getHasCar().Equals(true)) 123![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 124 writeToExcelString[i] = circleNodes[i].getCar().getCarNo().ToString(); 125 } 126 else 127![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 128 writeToExcelString[i] = ""; 129 } 130 } 131 for (int i = 1; i <= 12; i++) 132![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 133 if (lineNodes[i].getHasCar().Equals(true)) 134![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 135 writeToExcelString[i + 24] = lineNodes[i].getCar().getCarNo().ToString(); 136 } 137 else 138![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 139 writeToExcelString[i + 24] = ""; 140 } 141 } 142 xlWorksheets[0].get_Range(xlWorksheets[0].Cells[count[0], 1], xlWorksheets[0].Cells[count[0], 37]).Value2 = writeToExcelString; 143 count[0] += 1; 144 } 145![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 146![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 147![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 148![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 149 public void Statistics(int intervalTime) 150![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 151 for (int i = 1; i <= 4; i++) 152![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 153 if (circleNodes[(i - 1) * 6 + 2].getHasCar().Equals(true) && circleNodes[(i - 1) * 6 + 3].getHasCar().Equals(false)) 154![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { //如果该时刻统计地点上一个路口有车,而统计地点没车,则将统计数据加1(因为下个时刻将会有车经过,故流量加1) 155 statisticFlow[i] += 1; 156 } 157 } 158![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 159 if (timeRecord % intervalTime == 0)//如果统计时刻到达 160![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 161 //更新统计数据 162 this.labelFloSta1.Text = Math.Round(3600 * statisticFlow[1] / (double)intervalTime, 0)+"/hr"; 163 this.labelFloSta2.Text = Math.Round(3600 * statisticFlow[2] / (double)intervalTime, 0)+"/hr"; 164 this.labelFloSta3.Text = Math.Round(3600 * statisticFlow[3] / (double)intervalTime, 0)+"/hr"; 165 this.labelFloSta4.Text = Math.Round(3600 * statisticFlow[4] / (double)intervalTime, 0)+"/hr"; 166 if (statisticCarOut == 0)//如果这段时间内没有车离开系统 167![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 168 this.labelStaAverageStayRate.Text = "统计时间内无车离开"; 169 } 170 else 171![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 172 this.labelStaAverageStayRate.Text = "平均等待:" + Math.Round(statisticStayTime / (double)statisticCarOut, 3); 173 } 174 //统计数据清空,进入下次统计 175 statisticFlow[1] = 0; 176 statisticFlow[2] = 0; 177 statisticFlow[3] = 0; 178 statisticFlow[4] = 0; 179 statisticCarOut = 0; 180 statisticStayTime = 0; 181 //记录框清空 182 this.textBoxInput.Text = ""; 183 this.textBoxOutput.Text = ""; 184 } 185 } 186![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 187![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 188![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 189![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 190 public void StatisticsLong(int intervalTime) 191![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 192 for (int i = 1; i <= 4; i++) 193![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 194 if (circleNodes[(i - 1) * 6 + 2].getHasCar().Equals(true) && circleNodes[(i - 1) * 6 + 3].getHasCar().Equals(false)) 195![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { //如果该时刻统计地点上一个路口有车,而统计地点没车,则将统计数据加1(因为下个时刻将会有车经过,故流量加1) 196 statisticFlow[i] += 1; 197 } 198 } 199 200 if (timeRecord % intervalTime == 0)//如果统计时刻到达 201![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 202 //更新统计数据 203 this.labelFloSta1.Text = Math.Round(3600 * statisticFlow[1] / (double)timeRecord , 0) + "/hr"; 204 this.labelFloSta2.Text = Math.Round(3600 * statisticFlow[2] / (double)timeRecord , 0) + "/hr"; 205 this.labelFloSta3.Text = Math.Round(3600 * statisticFlow[3] / (double)timeRecord , 0) + "/hr"; 206 this.labelFloSta4.Text = Math.Round(3600 * statisticFlow[4] / (double)timeRecord , 0) + "/hr"; 207 if (statisticCarOut == 0)//如果这段时间内没有车离开系统 208![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 209 this.labelStaAverageStayRate.Text = "统计时间内无车离开"; 210 } 211 else 212![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 213 this.labelStaAverageStayRate.Text = "平均等待:" + Math.Round(statisticStayTime / (double)statisticCarOut, 3); 214 } 215![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 216 //记录框清空 217 this.textBoxInput.Text = ""; 218 this.textBoxOutput.Text = ""; 219 } 220 } 221![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 222![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 223![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 224![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 225 public void GenerateCar() 226![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 227 double[] rates = new double[5]; 228 rates[1] = (double)trackBarRate1.Value / 20; 229 rates[2] = (double)trackBarRate2.Value / 20; 230 rates[3] = (double)trackBarRate3.Value / 20; 231 rates[4] = (double)trackBarRate4.Value / 20; 232![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 233![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 234 //在四个入口处生成车辆的函数 235 for (int i = 1; i <= 4; i++) 236![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 237![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 238 if (lineNodes[(3 * i - 2)].getHasCar().Equals(false)) //该入口路径最前端没车时,将会按照possion到达产生车辆,进入队列。 239![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 240 //double rr = exp(rates[i]); 241 if (r.NextDouble() <= rates[i])//产生随机数,判断车辆是否到达,如果到达车辆,则设置端口节点有车。 242![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 243 Car newCar = new Car(); 244![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 245 totalCarNo += 1; 246![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 247 newCar.setCarNo(totalCarNo); 248 newCar.setInNode(i); 249 newCar.setOutNode(r.Next(1, 5)); 250 newCar.setNodeNo((((newCar.getOutNode() - newCar.getInNode() + 4) % 4 == 0) ? 4 : (newCar.getOutNode() - newCar.getInNode() + 4) % 4) * 6+3); 251 newCar.setRemainNodeNo(newCar.getNodeNo()-3); 252 newCar.setInTime(timeRecord); 253 newCar.setCarImg(newCar.getOutNode()); 254 255 this.textBoxInput.Text += timeRecord .ToString() + "时刻," + newCar.getCarNo ().ToString() + "号车从" +newCar .getInNode ().ToString() +"进,将从"+newCar .getOutNode ().ToString ()+"出"+ System.Environment.NewLine; 256 257 writeToExcelString[0] = timeRecord.ToString(); 258 writeToExcelString[1] = newCar.getCarNo().ToString(); 259 writeToExcelString[2] = newCar.getInNode().ToString(); 260 writeToExcelString[3] = newCar.getOutNode().ToString(); 261 writeToExcelString[4] = newCar.getNodeNo().ToString(); 262 xlWorksheets[1].get_Range(xlWorksheets[1].Cells[count[1], 1], xlWorksheets[1].Cells[count[1], 5]).Value2 = writeToExcelString; 263 count[1] += 1; 264 265 lineNodes[3 * i - 2].setHasCar(true); 266 lineNodes[3 * i - 2].setCar(newCar); 267 } 268 } 269 } 270 } 271![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 272![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 273![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 274![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 275 public void ChangeCircle() 276![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 277 //为下个时刻环线上的节点改变状态 278 for (int i = 1; i <= 23; i++)//初始化节点 279![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 280 if (circleNodes[i].getHasCar().Equals(true) && circleNodes[i].getCar().getRemainNodeNo() == 0)//如果有车而且车将要出环岛 281![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 282 tempCircleNodes[i].setHasCar(false); 283 NodeFuZhi(tempCircleNodes[i + 1], circleNodes[i + 1]); 284 circleNodes[i].getCar().setOutTime(timeRecord);//离开环岛的时间 285 286 //记录离开的车辆 287 this.textBoxOutput.Text += timeRecord.ToString() + "时刻," + circleNodes[i].getCar().getCarNo().ToString() + "号车经过" + circleNodes[i].getCar().getNodeNo ().ToString() + "站从" + circleNodes[i].getCar().getOutNode().ToString() + "离开,花了" + (circleNodes[i].getCar().getOutTime() - circleNodes[i].getCar().getInTime()).ToString() + "秒" + System.Environment.NewLine; 288 //统计离开车辆的等待时间 289 statisticCarOut += 1; 290 statisticStayTime += (double)(circleNodes[i].getCar().getOutTime() - circleNodes[i].getCar().getInTime()) / (double )circleNodes[i].getCar().getNodeNo(); 291![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 292 //将离开的车记录到excel文件 293 writeToExcelString[0] = timeRecord.ToString(); 294 writeToExcelString[1] = circleNodes[i].getCar().getCarNo().ToString(); 295 writeToExcelString[2] = circleNodes[i].getCar().getInNode().ToString(); 296 writeToExcelString[3] = circleNodes[i].getCar().getOutNode().ToString(); 297 writeToExcelString[4] = circleNodes[i].getCar().getNodeNo().ToString(); 298 writeToExcelString[5] = (circleNodes[i].getCar().getOutTime() - circleNodes[i].getCar().getInTime()).ToString(); 299 writeToExcelString[6] = ((double)(circleNodes[i].getCar().getOutTime() - circleNodes[i].getCar().getInTime()) / (double)circleNodes[i].getCar().getNodeNo()).ToString(); 300 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[count[2], 1], xlWorksheets[2].Cells[count[2], 7]).Value2 = writeToExcelString; 301 xlWorksheets[2].Cells[count[2], 7] = (double)(circleNodes[i].getCar().getOutTime() - circleNodes[i].getCar().getInTime()) / (double)circleNodes[i].getCar().getNodeNo(); 302 count[2] += 1; 303 } 304 else 305![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 306 if (circleNodes[i].getHasCar().Equals(true) && circleNodes[i + 1].getHasCar().Equals(false)) 307![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 308 tempCircleNodes[i].setHasCar(false); 309 NodeFuZhi(tempCircleNodes[i + 1], circleNodes[i]); 310 tempCircleNodes[i + 1].getCar().setRemainNodeNo(tempCircleNodes[i + 1].getCar().getRemainNodeNo() - 1); 311![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 312 } 313 else 314![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 315 NodeFuZhi(tempCircleNodes[i + 1], circleNodes[i + 1]); 316 } 317 } 318 } 319 //对第24个节点单独处理 320 if (circleNodes[24].getHasCar().Equals(true) && circleNodes[24].getCar().getRemainNodeNo() == 0)//车将要出环岛 321![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 322 tempCircleNodes[24].setHasCar(false); 323 NodeFuZhi(tempCircleNodes[1], circleNodes[1]); 324 circleNodes[24].getCar().setOutTime(timeRecord);//离开环岛的时间 325![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 326 //记录离开的车辆 327 this.textBoxOutput.Text += timeRecord.ToString() + "时刻," + circleNodes[24].getCar().getCarNo().ToString() + "号车经过" + circleNodes[24].getCar().getNodeNo ().ToString() + "站从" + circleNodes[24].getCar().getOutNode().ToString() + "离开,花了" + (circleNodes[24].getCar().getOutTime() - circleNodes[24].getCar().getInTime()).ToString() + "秒" + System.Environment.NewLine; 328 //统计离开车辆的等待时间 329 statisticCarOut += 1; 330 statisticStayTime += (double)(circleNodes[24].getCar().getOutTime() - circleNodes[24].getCar().getInTime()) / (double)circleNodes[24].getCar().getNodeNo(); 331![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 332 //将离开的车记录到excel文件 333 writeToExcelString[0] = timeRecord.ToString(); 334 writeToExcelString[1] = circleNodes[24].getCar().getCarNo().ToString(); 335 writeToExcelString[2] = circleNodes[24].getCar().getInNode().ToString(); 336 writeToExcelString[3] = circleNodes[24].getCar().getOutNode().ToString(); 337 writeToExcelString[4] = circleNodes[24].getCar().getNodeNo().ToString(); 338 writeToExcelString[5] = (circleNodes[24].getCar().getOutTime() - circleNodes[24].getCar().getInTime()).ToString(); 339 writeToExcelString[6] = ((double)(circleNodes[24].getCar().getOutTime() - circleNodes[24].getCar().getInTime()) / (double)circleNodes[24].getCar().getNodeNo()).ToString(); 340 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[count[2], 1], xlWorksheets[2].Cells[count[2], 7]).Value2 = writeToExcelString; 341 xlWorksheets[2].Cells[count[2], 7] = (double)(circleNodes[24].getCar().getOutTime() - circleNodes[24].getCar().getInTime()) / (double)circleNodes[24].getCar().getNodeNo(); 342 count[2] += 1; 343 } 344 else 345![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 346 if (circleNodes[24].getHasCar().Equals(true) && circleNodes[1].getHasCar().Equals(false)) 347![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 348 tempCircleNodes[24].setHasCar(false); 349 NodeFuZhi(tempCircleNodes[1], circleNodes[24]); 350 tempCircleNodes[1].getCar().setRemainNodeNo(tempCircleNodes[1].getCar().getRemainNodeNo() - 1); 351 } 352 else 353![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 354 if (circleNodes[1].getHasCar().Equals(true) && circleNodes[2].getHasCar().Equals(false))//如果1节点可以前进 355![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 356 tempCircleNodes[1].setHasCar(false); 357 } 358 else 359![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 360 NodeFuZhi(tempCircleNodes[1], circleNodes[1]); 361 } 362 } 363 } 364 } 365![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 366![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 367![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 368![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 369 public void ChangeLine() 370![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 371 //为下个时刻四个入口线上的节点改变状态 372 for (int i = 1; i <= 4; i++) 373![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 374 if (lineNodes[3 * i].getHasCar().Equals(true) && circleNodes[((i - 1) == 0 ? 4 : (i - 1)) * 6 - 1].getHasCar().Equals(false) && circleNodes[((i - 1) == 0 ? 4 : (i - 1)) * 6].getHasCar().Equals(false)) 375![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//对最前面进入环岛的节点讨论,进入环岛的条件 376 tempLineNodes[3 * i].setHasCar(false); 377 NodeFuZhi(tempCircleNodes[((i - 1) == 0 ? 4 : (i - 1)) * 6], lineNodes[3 * i]); 378 } 379 else 380![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 381 NodeFuZhi(tempLineNodes[3 * i], lineNodes[3 * i]); 382 } 383![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 384 if (lineNodes[3 * i - 1].getHasCar().Equals(true) && lineNodes[3 * i].getHasCar().Equals(false)) 385![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//对第二个节点讨论 386 tempLineNodes[3 * i - 1].setHasCar(false); 387 NodeFuZhi(tempLineNodes[3 * i], lineNodes[3 * i - 1]); 388 } 389 else 390![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 391 NodeFuZhi(tempLineNodes[3 * i - 1], lineNodes[3 * i - 1]); 392 } 393![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 394 if (lineNodes[3 * i - 2].getHasCar().Equals(true) && lineNodes[3 * i - 1].getHasCar().Equals(false)) 395![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//对第三个节点讨论 396 tempLineNodes[3 * i - 2].setHasCar(false); 397 NodeFuZhi(tempLineNodes[3 * i - 1], lineNodes[3 * i - 2]); 398 } 399 else 400![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 401 NodeFuZhi(tempLineNodes[3 * i - 2], lineNodes[3 * i - 2]); 402 } 403 } 404 } 405![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 406![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 407![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 408![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 409 public void ChangeTotalNodes() 410![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 411 //为下个时刻环线上的节点改变状态 412 changePictureBox(pictureBox1, circleNodes[1]); 413 changePictureBox(pictureBox2, circleNodes[2]); 414 changePictureBox(pictureBox3, circleNodes[3]); 415 changePictureBox(pictureBox4, circleNodes[4]); 416 changePictureBox(pictureBox5, circleNodes[5]); 417 changePictureBox(pictureBox6, circleNodes[6]); 418 changePictureBox(pictureBox7, circleNodes[7]); 419 changePictureBox(pictureBox8, circleNodes[8]); 420 changePictureBox(pictureBox9, circleNodes[9]); 421 changePictureBox(pictureBox10, circleNodes[10]); 422 changePictureBox(pictureBox11, circleNodes[11]); 423 changePictureBox(pictureBox12, circleNodes[12]); 424 changePictureBox(pictureBox13, circleNodes[13]); 425 changePictureBox(pictureBox14, circleNodes[14]); 426 changePictureBox(pictureBox15, circleNodes[15]); 427 changePictureBox(pictureBox16, circleNodes[16]); 428 changePictureBox(pictureBox17, circleNodes[17]); 429 changePictureBox(pictureBox18, circleNodes[18]); 430 changePictureBox(pictureBox19, circleNodes[19]); 431 changePictureBox(pictureBox20, circleNodes[20]); 432 changePictureBox(pictureBox21, circleNodes[21]); 433 changePictureBox(pictureBox22, circleNodes[22]); 434 changePictureBox(pictureBox23, circleNodes[23]); 435 changePictureBox(pictureBox24, circleNodes[24]); 436![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 437 //为下个时刻入口处的节点改变状态 438 changePictureBox(linePicture1, lineNodes[1]); 439 changePictureBox(linePicture2, lineNodes[2]); 440 changePictureBox(linePicture3, lineNodes[3]); 441 changePictureBox(linePicture4, lineNodes[4]); 442 changePictureBox(linePicture5, lineNodes[5]); 443 changePictureBox(linePicture6, lineNodes[6]); 444 changePictureBox(linePicture7, lineNodes[7]); 445 changePictureBox(linePicture8, lineNodes[8]); 446 changePictureBox(linePicture9, lineNodes[9]); 447 changePictureBox(linePicture10, lineNodes[10]); 448 changePictureBox(linePicture11, lineNodes[11]); 449 changePictureBox(linePicture12, lineNodes[12]); 450 } 451![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 452![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 453![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 454![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 455 public void changePictureBox(PictureBox p, Node node) 456![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//改变节点状态的函数 457 if (node.getHasCar().Equals(false)) 458![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 459 p.Image = CircleTrans.Properties.Resources.car_0; 460 } 461 else 462![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 463 if (node.getCar().getCarImg() == 1) 464![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 465 p.Image = CircleTrans.Properties.Resources.car_1; 466 } 467 else if (node.getCar().getCarImg() == 2) 468![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 469 p.Image = CircleTrans.Properties.Resources.car_2; 470 } 471 else if (node.getCar().getCarImg() == 3) 472![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 473 p.Image = CircleTrans.Properties.Resources.car_3; 474 } 475 else if (node.getCar().getCarImg() == 4) 476![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 477 p.Image = CircleTrans.Properties.Resources.car_4; 478 } 479 } 480 } 481![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 482![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 483![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 484![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 485 private void trackBar1_Scroll(object sender, EventArgs e) 486![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {//调整仿真速度 487 this.timerInterval.Interval = this.trackBar1.Value * 150+50; 488 } 489![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 490![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 491![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 492![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 493 private void button1_Click(object sender, EventArgs e) 494![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 495 this.timerInterval.Interval = this.trackBar1.Value *150+50; 496 this.timerInterval.Enabled = true; 497 498 } 499![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 500![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 501![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 502![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 503 private void button2_Click(object sender, EventArgs e) 504![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 505 this.timerInterval.Enabled = false; 506 } 507![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 508![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 509![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 510![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 511 protected void CreateOrOpenExcelFile() 512![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 513 try 514![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 515 System.Reflection.Missing oMissing = System.Reflection.Missing.Value; 516![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 517 xlApp = new Excel.Application(); 518 xlWorkbook = xlApp.Workbooks.Add(oMissing); 519 520 for (int i = 1; i <= 3; i++) 521![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 522 xlWorksheets[i-1] = new Excel.Worksheet(); 523 xlWorksheets[i-1] = (Excel.Worksheet)xlWorkbook.Worksheets[i]; 524 } 525![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 526 xlWorksheets[0].Name = "交通状况记录"; 527 xlWorksheets[1].Name = "进入系统车辆记录"; 528 xlWorksheets[2].Name = "离开系统车辆记录"; 529![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 530 writeToExcelString[0]= "时刻"; 531 for(int i=1;i<=24;i++) 532![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 533 writeToExcelString[i] = "环线节点" + i.ToString() + "状态"; 534 } 535 for (int i = 1; i <= 12; i++) 536![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 537 writeToExcelString[i+24] = "入口节点" + i.ToString() + "状态"; 538 } 539 xlWorksheets[0].get_Range(xlWorksheets[0].Cells[1, 1], xlWorksheets[0].Cells[1, 37]).Value2 = writeToExcelString; 540 xlWorksheets[0].get_Range(xlWorksheets[0].Cells[1, 1], xlWorksheets[0].Cells[1, 37]).Font.Name = "黑體"; 541 xlWorksheets[0].get_Range(xlWorksheets[0].Cells[1, 1], xlWorksheets[0].Cells[1, 37]).Font.Bold = true; 542 xlWorksheets[0].get_Range(xlWorksheets[0].Cells[1, 1], xlWorksheets[0].Cells[1, 37]).Borders.LineStyle = 1; 543 xlWorksheets[0].Cells.EntireColumn.AutoFit(); 544 545 writeToExcelString[0]="时刻"; 546 writeToExcelString[1]="车辆号"; 547 writeToExcelString[2]="入口站号"; 548 writeToExcelString[3]="出口站号"; 549 writeToExcelString[4]="将要经过的总节点数"; 550 xlWorksheets[1].get_Range(xlWorksheets[1].Cells [1,1],xlWorksheets [1].Cells [1,5]).Value2 = writeToExcelString; 551 xlWorksheets[1].get_Range(xlWorksheets[1].Cells[1, 1], xlWorksheets[1].Cells[1, 5]).Font.Name = "黑體"; 552 xlWorksheets[1].get_Range(xlWorksheets[1].Cells[1, 1], xlWorksheets[1].Cells[1, 5]).Font.Bold = true; 553 xlWorksheets[1].get_Range(xlWorksheets[1].Cells[1, 1], xlWorksheets[1].Cells[1, 5]).Borders.LineStyle = 1; 554 xlWorksheets[1].Cells.EntireColumn.AutoFit(); 555![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 556 writeToExcelString[0] = "时刻"; 557 writeToExcelString[1] = "车辆号"; 558 writeToExcelString[2] = "入口站号"; 559 writeToExcelString[3] = "出口站号"; 560 writeToExcelString[4] = "经历的总节点数"; 561 writeToExcelString[5] = "总时间"; 562 writeToExcelString[6] = "等待率"; 563 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[1, 1], xlWorksheets[2].Cells[1, 7]).Value2 = writeToExcelString; 564 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[1, 1], xlWorksheets[2].Cells[1, 7]).Font.Name = "黑體"; 565 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[1, 1], xlWorksheets[2].Cells[1, 7]).Font.Bold = true; 566 xlWorksheets[2].get_Range(xlWorksheets[2].Cells[1, 1], xlWorksheets[2].Cells[1, 7]).Borders.LineStyle = 1; 567 xlWorksheets[2].Cells.EntireColumn.AutoFit(); 568![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 569 System.DateTime currentTime=new System.DateTime(); 570 currentTime =System .DateTime.Now ; 571![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 572 string nowTime = currentTime.ToString("D")+"-"+currentTime .Hour .ToString ()+"-"+currentTime.Minute.ToString ()+"-"+currentTime.Second .ToString (); 573 string saveAsPath = System.Windows.Forms.Application.StartupPath + "\\仿真日志" +nowTime+ ".xls"; 574 xlWorkbook.SaveAs(saveAsPath, oMissing, oMissing, oMissing, oMissing,oMissing, Excel.XlSaveAsAccessMode.xlShared, oMissing, oMissing, oMissing,oMissing, oMissing); 575 } 576![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 577 catch (Exception ex) 578![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 579 MessageBox.Show(ex.Message); 580![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 581 } 582 } 583![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 584![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 585![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 586![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 587 protected void CloseExcelApp() 588![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 589 try 590![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 591 xlWorkbook.Save(); 592 xlApp.Quit(); 593![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 594 } 595 catch (Exception ex) 596![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 597 MessageBox.Show(ex.Message); 598 } 599 finally 600![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 601 System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); 602 xlApp = null; 603 GC.Collect(); 604 } 605 } 606![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 607![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 608![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 609 610 protected double exp(double beta) 611![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 612 //return r.NextDouble(); 613 return -beta * System.Math.Log(r.NextDouble()); 614 } 615![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 616![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 617![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 618![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 619 public void NodeFuZhi(Node a, Node b) 620![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 621 a.setHasCar(b.getHasCar()); 622 a.getCar().setCarImg(b.getCar().getCarImg()); 623 a.getCar().setCarNo(b.getCar().getCarNo()); 624 a.getCar().setInNode(b.getCar().getInNode()); 625 a.getCar().setInTime(b.getCar().getInTime()); 626 a.getCar().setNodeNo(b.getCar().getNodeNo()); 627 a.getCar().setOutNode(b.getCar().getOutNode()); 628 a.getCar().setOutTime(b.getCar().getOutTime()); 629 a.getCar().setRemainNodeNo(b.getCar().getRemainNodeNo()); 630 } 631![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 632![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 633![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 634![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 635![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) /**//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 636 } 637 638![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 639![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 640![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 641![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 642![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 643![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 644![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 645![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 646![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 647![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 648 public class Node 649 //定义节点类,节点的属性包括车,包括 650![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 651 private Car car = new Car();//节点上的车 652 private bool hasCar = false;//记录该时刻节点上有无车 653![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 654 public Node() 655![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 656 hasCar = false; 657 } 658![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 659 public Car getCar() 660![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 661 return car; 662 } 663![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 664 public bool getHasCar() 665![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 666 return hasCar; 667 } 668![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 669 public void setCar(Car car) 670![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 671 this.car = car; 672 } 673![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 674 public void setHasCar(Boolean hasCar) 675![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 676 this.hasCar = hasCar; 677 } 678 } 679![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 680![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 681![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 682![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 683 684![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 685![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 686![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 687 public class Car//定义车类 688![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 689 private int carNo;//车的编号 690 private int inNode;//车进入环岛的节点位置 691 private int outNode;//车离开环岛的节点位置 692 private int nodeNo;//车在环岛中应该经过的节点数目 693 private int remainNodeNo;//车离开环岛前还需要经过的节点数目 694 private int inTime;//车进入环岛的时刻 695 private int outTime;//车离开环岛的时刻 696 private int carImg;//车的图片 697![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 698 public Car() 699![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 700 carNo = 0; 701 inNode = 0; 702 outNode = 0; 703 nodeNo = 0; 704 remainNodeNo = 0; 705 inTime = 0; 706 outTime = 0; 707 carImg = 0; 708 } 709![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 710 public int getCarNo() 711![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 712 return this.carNo; 713 } 714![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 715 public int getNodeNo() 716![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 717 return this.nodeNo; 718 } 719![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 720 public int getInTime() 721![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 722 return this.inTime; 723 } 724![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 725 public int getOutTime() 726![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 727 return this.outTime; 728 } 729 730 public int getInNode() 731![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 732 return this.inNode; 733 } 734![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 735 public int getOutNode() 736![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 737 return this.outNode; 738 } 739![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 740 public int getRemainNodeNo() 741![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 742 return this.remainNodeNo; 743 } 744![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 745 public int getCarImg() 746![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 747 return this.carImg; 748 } 749![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 750 public void setCarNo(int carNo) 751![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 752 this.carNo = carNo; 753 } 754![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 755 public void setNodeNo(int nodeNo) 756![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 757 this.nodeNo = nodeNo; 758 } 759![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 760 public void setInTime(int inTime) 761![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 762 this.inTime = inTime; 763 } 764![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 765 public void setOutTime(int outTime) 766![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 767 this.outTime = outTime; 768 } 769![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 770 public void setInNode(int inNode) 771![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 772 this.inNode=inNode; 773 } 774![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 775 public void setOutNode(int outNode) 776![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 777 this.outNode = outNode; 778 } 779![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 780 public void setRemainNodeNo(int remainNodeNo) 781![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 782 this.remainNodeNo = remainNodeNo; 783 } 784![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 785 public void setCarImg(int carImg) 786![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 787 this.carImg = carImg; 788 } 789 } 790![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 791![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 792![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 793![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) 794 }
|