亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? roundabout_showview.cpp

?? 09年數學建模美賽A題程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// roundabout_showView.cpp : implementation of the CRoundabout_showView class
//

#include "stdafx.h"

#include "roundabout_show.h"

#include "roundabout_showDoc.h"
#include "roundabout_showView.h"
#include "Set.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView
struct car{
	int index;
	int v;
	int des;
	int status;
	int entertime;
};
struct cell{
	bool iscar;
	car mtcar;
};
bool isshow=true;
int conterminal=4,L=100,C=140,runtime=3600*5,vmax=7,cmax=5,vinit=3,gap=1,carnum=0,p1=60,p2=95,p3=95,p4=100,p5=100,p6=100;
int p7=100,p8=100;
int diji=-1,sec=5,stime=5;
int redtime=0,greentime=50,signal[10];
cell cel[10000];
cell oldcel[10000];
int outroad[10];
int inroad[10];
int total,totalstay=0;
int num_of_create=0;
int num_of_leave=0;
int num_of_enter=0;
CStdioFile out1,out2;
int last1=0,last2=0,last3=0;
IMPLEMENT_DYNCREATE(CRoundabout_showView, CView)

BEGIN_MESSAGE_MAP(CRoundabout_showView, CView)
	//{{AFX_MSG_MAP(CRoundabout_showView)
	ON_COMMAND(ID_BEGIN, OnBegin)
	ON_COMMAND(IDSET, OnSet)
	ON_COMMAND(IDSTAT, OnStat)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView construction/destruction

CRoundabout_showView::CRoundabout_showView()
{
	// TODO: add construction code here
	isfirst=1;
	out1.Open("data1.txt",CFile::modeCreate | CFile::modeWrite);
	out2.Open("data2.txt",CFile::modeCreate | CFile::modeWrite);
	total=conterminal*4*L+C*2;
	outroad[1]=C-1;inroad[1]=1;
	int dis=(C-4*conterminal)/conterminal;
	for(int i=2;i<=conterminal;i++){
		outroad[i]=inroad[i-1]+dis+2;
		inroad[i]=outroad[i]+2;
	}
	for(i=1;i<=total;i++)
		cel[i].iscar=false;

}

CRoundabout_showView::~CRoundabout_showView()
{
	out1.Close();
	out2.Close();
}

BOOL CRoundabout_showView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView drawing

void CRoundabout_showView::OnDraw(CDC* pDC)
{
	CRoundabout_showDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	if(isfirst!=0)return;
	int i,j,x,y;
	x=10;y=10;
	for(i=1;i<=C;i++){
		pDC->Rectangle(x-5,y-5,x+5,y+5);
		x+=9;
	}
	x=10;
	y+=9;
	for(i=1;i<=C;i++){
		pDC->Rectangle(x-5,y-5,x+5,y+5);
		x+=9;
	}
	for(i=1;i<=conterminal;i++){
		x=10+(inroad[i]-1)*9;
		for(j=y+9;j<=y+L*9;j+=9)
			pDC->Rectangle(x-5,j-5,x+5,j+5);
		x+=9;
		for(j=y+9;j<=y+L*9;j+=9)
			pDC->Rectangle(x-5,j-5,x+5,j+5);
		x=10+(outroad[i]-1)*9;
		for(j=y+9;j<=y+L*9;j+=9)
			pDC->Rectangle(x-5,j-5,x+5,j+5);
		x+=9;
		for(j=y+9;j<=y+L*9;j+=9)
			pDC->Rectangle(x-5,j-5,x+5,j+5);
		
		
	}
	

}

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView printing

BOOL CRoundabout_showView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CRoundabout_showView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CRoundabout_showView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView diagnostics

#ifdef _DEBUG
void CRoundabout_showView::AssertValid() const
{
	CView::AssertValid();
}

void CRoundabout_showView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CRoundabout_showDoc* CRoundabout_showView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRoundabout_showDoc)));
	return (CRoundabout_showDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CRoundabout_showView message handlers

void CRoundabout_showView::OnBegin() 
{
	// TODO: Add your command handler code here
	
	isfirst=2;
	Invalidate();
	int i,j,index,rt;
	for(i=1;i<=total;i++)
		cel[i].iscar=false;
	last1=0,last2=0,last3=0;
	totalstay=0;
	num_of_create=0;
	num_of_leave=0;
	num_of_enter=0;
	if(redtime!=0){
		for(i=1;i<=conterminal;i++){
			if(rand()%100 > 50)
				signal[i]=rand()%redtime+1;
			else
				signal[i]=-(rand()%greentime+1);
		}
	}
	for(rt=1;rt<=runtime;rt++){
		//copy old values into temp
		for(index=1;index<=total;index++)
			oldcel[index]=cel[index];
		
		//update the lights
		for(i=1;i<=conterminal;i++){
			if(redtime==0)
				signal[i]=1;
			else if(signal[i]>0){
				signal[i]++;
				if(signal[i]>greentime)
					signal[i]=-1;
			}
			else{
				signal[i]--;
				if(signal[i]<-redtime)
					signal[i]=1;
			}
		
		}
		

		//create car
		for(j=1;j<=conterminal;j++)
			for(int temp=1+(j-1)*4*L;temp<=L+1+(j-1)*4*L;temp+=L)
				if(rand()%100>p1 && oldcel[temp].iscar==false){
					cel[temp].iscar=true;
					cel[temp].mtcar.index=carnum;
					cel[temp].mtcar.v=vinit;
					cel[temp].mtcar.status=1;
					cel[temp].mtcar.des=(j+rand()%(conterminal-1)+1)%conterminal;
					if(cel[temp].mtcar.des==0)cel[temp].mtcar.des=conterminal;
					carnum++;
					num_of_create++;
				}
		
		//update the incoming cars
		for(j=1;j<=conterminal;j++)
			for(int temp=1+(j-1)*4*L;temp<=L+1+(j-1)*4*L;temp+=L)
				for(int deal=temp;deal<=temp+L-2;deal++)
					if(oldcel[deal].iscar){
						int curgap=0;
						int p=deal+1;
						while(p<=temp+L-1){
							if(oldcel[p].iscar==false)
								curgap++;
							else
								break;
							p++;
						}
						if(curgap>=gap && oldcel[deal].mtcar.v<curgap&&oldcel[deal].mtcar.v<vmax)
							cel[deal].mtcar.v=min(oldcel[deal].mtcar.v+1,vmax);
						else
							cel[deal].mtcar.v=min(oldcel[deal].mtcar.v,curgap);
						if((rand()%100)>p2)
							cel[deal].mtcar.v=max(cel[deal].mtcar.v-1,0);
						cel[deal].iscar=false;
						cel[deal+cel[deal].mtcar.v].iscar=true;
						cel[deal+cel[deal].mtcar.v].mtcar=cel[deal].mtcar;
					}
		
		//update the car who whill enter the circle
		for(j=1;j<=conterminal;j++){
			int flag,deal=L+(j-1)*4*L;
			flag=0;
			if(oldcel[deal].iscar){
				bool isentry;
				int pt=rand()%100;
				if(pt<p4){
					isentry=f1(inroad[j]);
				}
				else if(pt<p5){
					isentry=f2(inroad[j]);
				}
				else if(pt<p6){
					isentry=f3(inroad[j]);
				}
				else {
					isentry=f4(inroad[j]);
				}
		//		isentry=f1(inroad[j]);
				if(redtime!=0)
					isentry=f1(inroad[j]);
				if(isentry && signal[j]>0)
				{
					num_of_enter++;
					cel[deal].iscar=false;
					cel[conterminal*4*L+inroad[j]+C].iscar=true;
					cel[conterminal*4*L+inroad[j]+C].mtcar=oldcel[deal].mtcar;
					cel[conterminal*4*L+inroad[j]+C].mtcar.status=2;
					cel[conterminal*4*L+inroad[j]+C].mtcar.v=1;
					cel[conterminal*4*L+inroad[j]+C].mtcar.entertime=rt;
					flag=1;
				}
				if(flag==0)
					cel[deal].mtcar.v=0;
			}
			deal+=L;
			flag=0;
			if(oldcel[deal].iscar){
				int pt=rand()%100;
				bool isentry;
					if(pt<p7){
					isentry=f_1(inroad[j]+1);
				}
				else
					isentry=f0(inroad[j]+1);
				if(redtime!=0)
					isentry=f_1(inroad[j]+1);
				if(isentry && signal[j]>0)
				{
					num_of_enter++;
					cel[deal].iscar=false;
					cel[conterminal*4*L+inroad[j]+1+C].iscar=true;
					cel[conterminal*4*L+inroad[j]+1+C].mtcar=oldcel[deal].mtcar;
					cel[conterminal*4*L+inroad[j]+1+C].mtcar.status=4;
					cel[conterminal*4*L+inroad[j]+1+C].mtcar.v=1;
					cel[conterminal*4*L+inroad[j]+1+C].mtcar.entertime=rt;
					flag=1;
				}
				if(flag==0)
					cel[deal].mtcar.v=0; 		
			}
			
		}

		//update the leaving cars

		for(j=1;j<=conterminal;j++)
			for(int temp=3*L+(j-1)*4*L;temp<=4*L+(j-1)*4*L;temp+=L)
				for(int deal=temp;deal>=temp-L+1;deal--)
					if(oldcel[deal].iscar){
						if(deal==temp-L+1){
							cel[deal].iscar=false;
						}
						else{
							CString tem;
							tem.Format("%d,%d,%d",j,temp,deal);
							int curgap=0;
							int p=deal-1;
							while(p>=temp-L+1){
								if(oldcel[p].iscar==false)
									curgap++;
								else
									break;
								p--;
							}
							if(curgap>=gap && oldcel[deal].mtcar.v<curgap&&oldcel[deal].mtcar.v<vmax)
								cel[deal].mtcar.v=min(oldcel[deal].mtcar.v+1,vmax);
							else
								cel[deal].mtcar.v=min(oldcel[deal].mtcar.v,curgap);
							if((rand()%100)>p2)
								cel[deal].mtcar.v=max(oldcel[deal].mtcar.v-1,0);
							cel[deal].iscar=false;
							if(deal-cel[deal].mtcar.v>=temp-L+1){
							cel[deal-cel[deal].mtcar.v].iscar=true;
							cel[deal-cel[deal].mtcar.v].mtcar=cel[deal].mtcar;
							}
						}
					}
	




		//update the cars int the circle
		for(j=conterminal*4*L+1;j<=conterminal*4*L+1+C;j+=C)
			for(int deal=j;deal<=j+C-1;deal++){
				if(oldcel[deal].iscar){
					if(oldcel[deal].mtcar.status==0 || oldcel[deal].mtcar.status==3 || oldcel[deal].mtcar.status==4){
						int tindex,cindex;
						tindex=cindex=deal-conterminal*4*L;
						int p,curgap=0;
						if(tindex<=C){
							tindex=(tindex+1)%C;
							if(tindex==0)
								tindex=C;
						}
						else{
							tindex-=C;
							tindex=(tindex+1)%C;
							if(tindex==0)
								tindex=C;
							tindex+=C;
						}
						p=tindex+conterminal*4*L;
						while(curgap<=C-1){
							if(oldcel[p].iscar==false)
								curgap++;
							else
								break;
							if(tindex<=C){
								tindex=(tindex+1)%C;
								if(tindex==0)
									tindex=C;
							}
							else{
								tindex-=C;
								tindex=(tindex+1)%C;
								if(tindex==0)
									tindex=C;
								tindex+=C;
							}
							p=tindex+conterminal*4*L;
						}
						car tcar;
						if(curgap>=gap && oldcel[deal].mtcar.v<curgap&&oldcel[deal].mtcar.v<cmax)
							tcar.v=min(oldcel[deal].mtcar.v+1,cmax);
						else
							tcar.v=min(oldcel[deal].mtcar.v,curgap);
						if((rand()%100)>p3)
							tcar.v=max(cel[deal].mtcar.v-1,0);
						tindex=cindex;
						if(tindex<=C){
								tindex=(tindex+tcar.v)%C;
								if(tindex==0)
									tindex=C;
							}
							else{
								tindex-=C;
								tindex=(tindex+tcar.v)%C;
								if(tindex==0)
									tindex=C;
								tindex+=C;
							}
						int des=tindex+conterminal*4*L,turn,flag=0;
						if(tcar.v!=0){
							if(cindex<=C){
								turn=conterminal*4*L+outroad[(oldcel[deal].mtcar.des)]+1;
								if((deal<=des && turn>=deal && turn<=des) || (deal>=des && turn>=deal && turn>=des) || (deal>=des && turn<=deal && turn<=des)){
									cel[deal].iscar=false;
									cel[turn].iscar=true;
									cel[turn].mtcar=oldcel[deal].mtcar;
									cel[turn].mtcar.v=1;
									cel[turn].mtcar.status=5;	
									flag=1;
								}
							}
							else{
								turn=conterminal*4*L+outroad[(oldcel[deal].mtcar.des)]+C;
								if((deal<=des && turn>=deal && turn<=des) || (deal>=des && turn>=deal && turn>=des) || (deal>=des && turn<=deal && turn<=des)){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级片在线观看| 亚洲另类在线视频| 亚洲男女毛片无遮挡| 日韩av网站在线观看| 成人精品一区二区三区中文字幕| 欧美系列亚洲系列| 国产精品久久久久久久久动漫| 日本女人一区二区三区| 91玉足脚交白嫩脚丫在线播放| 久久无码av三级| 日日嗨av一区二区三区四区| 91小视频在线观看| 久久精品男人天堂av| 蜜桃一区二区三区在线| 91久久精品国产91性色tv| 国产色综合一区| 国内成+人亚洲+欧美+综合在线| 在线视频一区二区三| 国产精品免费丝袜| 国产精品一级在线| 精品三级在线看| 热久久免费视频| 欧美日韩一级大片网址| 亚洲精品视频一区二区| 99久精品国产| 一区二区中文视频| 激情五月播播久久久精品| 欧美日韩精品一区二区天天拍小说 | 国产美女一区二区| 日韩片之四级片| 麻豆精品视频在线观看视频| 91精品国产高清一区二区三区蜜臀| 国产精品第四页| 9色porny自拍视频一区二区| 精品久久久久香蕉网| 麻豆91小视频| 日韩女优毛片在线| 国产精品正在播放| 国产欧美日韩综合精品一区二区| 国产精品白丝jk黑袜喷水| 国产视频亚洲色图| www.亚洲精品| 一区二区三区欧美亚洲| 欧美视频在线不卡| 日韩成人av影视| 日韩精品综合一本久道在线视频| 黄色精品一二区| 中文字幕av在线一区二区三区| 国产精品一区二区免费不卡| 国产精品久久久久影院| 色国产精品一区在线观看| 亚洲高清不卡在线观看| 日韩亚洲欧美高清| 国产xxx精品视频大全| 中文字幕在线一区二区三区| 色婷婷综合激情| 日韩成人伦理电影在线观看| ww亚洲ww在线观看国产| 99精品偷自拍| 蜜臀国产一区二区三区在线播放| xnxx国产精品| 91国产精品成人| 麻豆精品一二三| 亚洲欧美一区二区三区极速播放| 欧美日韩在线播| 国产成人午夜高潮毛片| 伊人开心综合网| 日韩美女一区二区三区| 成人avav影音| 男男gaygay亚洲| 国产精品福利影院| 91麻豆精品国产| 成人午夜电影网站| 午夜不卡av在线| 中文在线一区二区 | 亚洲免费色视频| 欧美一区二区三级| 97se狠狠狠综合亚洲狠狠| 日韩和欧美一区二区| 国产精品色在线观看| 欧美一区二区三区四区视频| 成人国产精品免费观看动漫| 日本特黄久久久高潮| 国产精品国产馆在线真实露脸| 91精品欧美久久久久久动漫| 91免费观看视频| 激情丁香综合五月| 日日夜夜免费精品| 亚洲日本一区二区| 国产日韩三级在线| 精品国产伦一区二区三区免费| 91精彩视频在线观看| 成人网在线播放| 久久疯狂做爰流白浆xx| 午夜私人影院久久久久| 亚洲免费大片在线观看| 中文字幕免费一区| 2020国产精品自拍| 日韩你懂的在线播放| 欧美视频一区在线| 91久久精品国产91性色tv| heyzo一本久久综合| 国产91丝袜在线播放九色| 蜜桃传媒麻豆第一区在线观看| 亚洲高清中文字幕| 亚洲午夜久久久久久久久电影院| 国产精品福利一区二区| 国产精品毛片久久久久久| 久久久国产综合精品女国产盗摄| 日韩三级中文字幕| 日韩一区二区视频| 日韩欧美电影一二三| 日韩一卡二卡三卡四卡| 这里是久久伊人| 欧美一区二区三级| 日韩精品一区二区三区四区| 91精品国产综合久久精品app| 欧美日韩一区精品| 91麻豆精品91久久久久久清纯| 欧美三级乱人伦电影| 欧美年轻男男videosbes| 欧美日韩精品一区二区三区| 精品婷婷伊人一区三区三| 欧美日韩免费电影| 日韩美女视频在线| 欧美大肚乱孕交hd孕妇| 久久蜜桃一区二区| 国产精品每日更新在线播放网址| 亚洲私人影院在线观看| 亚洲在线中文字幕| 青青草成人在线观看| 韩国在线一区二区| 99热在这里有精品免费| 日本黄色一区二区| 91精品久久久久久蜜臀| 日韩欧美国产小视频| 国产目拍亚洲精品99久久精品| 中文乱码免费一区二区| 亚洲精品高清视频在线观看| 午夜一区二区三区视频| 久久99精品视频| 99麻豆久久久国产精品免费| 欧美视频一区二区三区在线观看| 欧美一区二区久久久| 久久精品亚洲麻豆av一区二区| 中文字幕制服丝袜成人av | 久久久久久99精品| 国产精品福利电影一区二区三区四区| 一区二区三区日本| 极品尤物av久久免费看| 99亚偷拍自图区亚洲| 欧美一级艳片视频免费观看| 国产亚洲欧洲一区高清在线观看| 捆绑变态av一区二区三区| 国产一区二区三区不卡在线观看| 91欧美激情一区二区三区成人| 欧美人伦禁忌dvd放荡欲情| 久久久久久一级片| 首页综合国产亚洲丝袜| av一区二区三区黑人| 日韩免费一区二区三区在线播放| 国产精品成人免费在线| 久久99久久久欧美国产| 91在线免费播放| 精品国产亚洲在线| 亚洲成a人v欧美综合天堂| 成人精品视频一区二区三区| 3751色影院一区二区三区| 成人欧美一区二区三区黑人麻豆 | 免费成人在线影院| 99国产精品99久久久久久| 精品国产免费视频| 亚洲成人在线观看视频| 99国产精品一区| 26uuu久久天堂性欧美| 日韩电影一区二区三区四区| 一本大道久久a久久综合| 久久久精品国产免大香伊| 蜜臀av在线播放一区二区三区| 91美女视频网站| 中文字幕五月欧美| 国产精品一区一区| 日韩一区二区三区免费观看| 亚洲一区二区黄色| 93久久精品日日躁夜夜躁欧美| 国产日韩精品一区二区三区在线| 欧美aⅴ一区二区三区视频| 欧美人狂配大交3d怪物一区| 亚洲精品成人天堂一二三| 成人黄页在线观看| 欧美激情一区不卡| 丁香桃色午夜亚洲一区二区三区| 欧美精品一区二区三区蜜桃 | 亚洲精品国久久99热| 欧美日本在线观看| 一区二区三区在线免费播放| 色婷婷综合久久久| 亚洲一区在线观看网站| 色94色欧美sute亚洲13| 一区二区三区在线视频观看|