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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? test.c

?? TC-ucos-philos-詳細(xì)注釋.rar 用TC編譯ucos并在圖像化界面下演示哲學(xué)家就餐問題
?? C
字號:
/*this code is a demo of dining pholospher problem in UCOS-II
copyright Zengzhi Wang 2008.6.11
note:compile and run in TC3.0 with Graphics Functions on
*/
#include <GRAPHICS.H>
#include <MATH.H>
#include "includes.h"


#define pi 3.141592653
#define CenterX 400							/*桌子的圓心坐標(biāo)*/
#define CenterY 250
#define r 100								/*桌子的半徑*/

#define  TASK_STK_SIZE   512				//任務(wù)堆棧長度

OS_STK   StartTaskStk[TASK_STK_SIZE];		//定義任務(wù)堆棧區(qū)
OS_STK	 PhilosStk[5][TASK_STK_SIZE];
INT8U	 PhilosID[]={1,2,3,4,5};			/*哲學(xué)家編號1-5*/	
OS_FLAGS ChopGrp[]={3,6,12,24,17};			/*每個哲學(xué)家申請的筷子標(biāo)志位,用移位方法亦可*/

INT16S   key;								//用于退出uCOS_II的鍵	

INT8U   err;								/*存儲錯誤信息*/
INT8U	x=0,y=0,z=0;						//字符顯示位置
INT8U	i=0;								/*計(jì)數(shù)器*/

int driver=0,mode=0;						/*顯示驅(qū)動和模式 CGA*/
int philosx[5],philosy[5];					/*哲學(xué)家坐標(biāo)*/
int x1[5],y1[5];							/*筷子外端坐標(biāo)*/
int x2[5],y2[5];							/*筷子里端坐標(biāo)*/

OS_FLAG_GRP *WFlag;							/*筷子的事件標(biāo)志組*/
OS_FLAGS Chops=31;							/*標(biāo)志組初始值,所有筷子有效*/

void  StartTask(void *data);				/*初始化任務(wù),運(yùn)行完畢后將自己掛起*/
void  Philos(void *data);					/*哲學(xué)家進(jìn)程,5個均相同*/
void  PickChop(INT8U id);					/*拿起筷子-畫黑線將白線覆蓋*/
void  PutChop(INT8U id);					/*放下筷子-畫白線再次顯示筷子*/
void  Thinking(INT8U id);					/*覆蓋原來的圖形(Eating),再次畫圓*/
void  Hungry(INT8U id);						/*將圓填充為Wide_DOT模式*/
void  Eating(INT8U id);						/*將圓填充為實(shí)心*/
void  Quitkey(void);						/*檢測退出*/

/************************主函數(shù)*********************************************/
void  main (void)
{
    OSInit();								//初始化uCOS_II
    PC_DOSSaveReturn();						//保存Dos環(huán)境
    PC_VectSet(uCOS, OSCtxSw);				//安裝uCOS_II中斷
	/*哲學(xué)家坐標(biāo)和筷子坐標(biāo)初始化計(jì)算*/
	for(i=0;i<5;i++)						
	{
		philosx[i]=(int)(CenterX+r*sin(pi*(72*i)/180));
		philosy[i]=(int)(CenterY-r*cos(pi*(72*i)/180));
		x1[i]=(int)(CenterX+(r+20)*sin(pi*(72*i-36)/180));
    	y1[i]=(int)(CenterY-(r+20)*cos(pi*(72*i-36)/180));
		x2[i]=(int)(CenterX+(r-20)*sin(pi*(72*i-36)/180));
    	y2[i]=(int)(CenterY-(r-20)*cos(pi*(72*i-36)/180));
	}

	WFlag=OSFlagCreate((OS_FLAGS)31,&err);		/*創(chuàng)建事件標(biāo)志組并檢驗(yàn)是否創(chuàng)建成功*/
	if(err==OS_NO_ERR)
		PC_DispStr(20,24,"Flag create no error",DISP_BGND_BLACK+DISP_FGND_YELLOW);
    OSTaskCreate(StartTask,0,&StartTaskStk[TASK_STK_SIZE - 1],5);		
    OSStart();			
}
/************************************************************************************
哲學(xué)家及筷子顯示算法:

			 O

  O                    O

        O        O
每兩個哲學(xué)家之間的夾角為72度,
取圓心到每個哲學(xué)家半徑和圓心到第一個(最上面的)哲學(xué)家的半徑之間的夾角計(jì)算每個哲學(xué)家的位置
筷子的位置其實(shí)是哲學(xué)家逆時針旋轉(zhuǎn)36度的位置。
哲學(xué)家在坐標(biāo)處畫圓即可
筷子頭尾坐標(biāo)分別是一個圍著大桌的哲學(xué)家逆時針36度,和一個小桌的哲學(xué)家逆時針36度的結(jié)果
*/
//*****************************StartTask********************************************
void  StartTask(void *pdata)
{
	char temp[50];
	pdata=pdata;
    OS_ENTER_CRITICAL();
    PC_VectSet(0x08, OSTickISR);
    PC_SetTickRate(OS_TICKS_PER_SEC);
    OS_EXIT_CRITICAL();
//  OSStatInit();
	/*創(chuàng)建哲學(xué)家進(jìn)程并檢測*/
	for(i=0;i<5;i++)
	{
		err=OSTaskCreate(Philos,(void *)&PhilosID[i],&PhilosStk[i][TASK_STK_SIZE - 1],i+6);
//需用OutText顯示
//		if(err==OS_NO_ERR)
//			//test if task is created successfully
//		{
//			sprintf(temp,"Philosopher %d create error",PhilosID[i]);
//			PC_DispStr(0,20+i,temp,DISP_BGND_BLACK+DISP_FGND_YELLOW);
//			sprintf(temp,"%d",err);
//        		PC_DispStr(30,20+i,temp,DISP_BGND_BLACK+DISP_FGND_WHITE);
//		}

	}
	initgraph(&driver,&mode,"d:\\TCPP30E\\BGI");	/*初始化圖形模式*/
	/*顯示標(biāo)題*/
	setcolor(YELLOW);
	outtextxy(150,30,"Demo of Dining Philosphy in Ucos-II");
	outtextxy(190,40,"by Zengzhi Wang 2008.6.10");
	/*demo of 三種狀態(tài)*/
	setcolor(WHITE);
	outtextxy(20,80,"Thinking...");
	circle(120,85,10);
	/**/
	outtextxy(20,110,"Hungry...");
	circle(120,115,10);
	setfillstyle(WIDE_DOT_FILL,WHITE);
	floodfill(120,115,WHITE);
	/**/
	outtextxy(20,140,"Eating...");
	circle(120,145,10);
	setfillstyle(SOLID_FILL,WHITE);
	floodfill(120,145,WHITE);
	/*圖像顯示初始化,所有哲學(xué)家思考狀態(tài),筷子全部有效*/
	for(i=0;i<5;i++)
	{
		circle(philosx[i],philosy[i],20);
		line(x1[i],y1[i],x2[i],y2[i]);
	}
	OSTimeDly(1000);		 /*延時防止程序進(jìn)入后馬上開始吃而看不到效果*/
	OSTaskSuspend(OS_PRIO_SELF);	
}
//*****************************Philos********************************************
//the Philosopher first has to pick up the chopstick on his left hand then right
void  Philos(void *pdata)
{
	INT8U PhID;
	char temp[50];
   	PhID = *(INT8U *)pdata;		/*讀取哲學(xué)家編號*/

    for (;;) 
	{
		Quitkey();
		/*哲學(xué)家開始Hungry*/
		Hungry(PhID-1);
		OSTimeDly(400);
		/*申請筷子并開始吃*/
		OSFlagPend(WFlag,ChopGrp[PhID-1], OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,0,&err);
		PickChop(PhID-1);	/*拿右筷子*/
		PickChop(PhID%5);	/*拿左筷子*/
		Eating(PhID-1);
		OSTimeDly(400);
		/*吃完放筷子繼續(xù)思考*/
		PutChop(PhID%5);
		PutChop(PhID-1);
		Thinking(PhID-1);
		OSFlagPost(WFlag,ChopGrp[PhID-1],OS_FLAG_SET,&err);
		/**/
		OSTimeDly(400);
       	Quitkey();

        }
}
//***************************PickChop()********************************************
void PickChop(INT8U id)
{
	setcolor(BLACK);
	line(x1[id],y1[id],x2[id],y2[id]);
}
//***************************PutChop()********************************************
void PutChop(INT8U id)
{
	setcolor(WHITE);
	line(x1[id],y1[id],x2[id],y2[id]);
}

//***************************Thinking()********************************************
void Thinking(INT8U id)
{
	setfillstyle(SOLID_FILL,BLACK);
	floodfill(philosx[id],philosy[id],BLACK);
	setcolor(WHITE);
	circle(philosx[id],philosy[id],20);
}
//***************************Hungry()********************************************
void Hungry(INT8U id)
{
	setfillstyle(WIDE_DOT_FILL,WHITE);
	floodfill(philosx[id],philosy[id],WHITE);
}
//***************************Eating()********************************************
void Eating(INT8U id)
{
	setfillstyle(SOLID_FILL,WHITE);
	floodfill(philosx[id],philosy[id],WHITE);
}

//*****************************Quitkey()********************************************
void Quitkey(void)
{
	if(PC_GetKey(&key)==TRUE)
	{
		if(key==0x1B)
			{restorecrtmode();PC_DOSReturn();}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩在线| 亚洲国产精品成人综合色在线婷婷| 国产乱码一区二区三区| 亚洲丝袜美腿综合| 精品噜噜噜噜久久久久久久久试看| av电影在线不卡| 麻豆专区一区二区三区四区五区| 亚洲精品中文字幕乱码三区| 精品福利av导航| 欧美日韩亚洲高清一区二区| 国产福利精品一区| 免费在线成人网| 亚洲午夜精品17c| 国产精品美女久久久久高潮| 日韩欧美不卡在线观看视频| 在线观看欧美日本| 国产98色在线|日韩| 免费成人小视频| 亚洲亚洲精品在线观看| 亚洲国产精品99久久久久久久久| 欧美一级爆毛片| 欧美色图免费看| 日本高清不卡aⅴ免费网站| 黄色资源网久久资源365| 午夜精品久久久久久久久久| 亚洲视频一区二区免费在线观看| 日本一二三四高清不卡| 欧美精品一区二区三区视频| 91精品免费观看| 欧美日韩在线播放三区四区| 色综合久久久网| 99精品视频在线播放观看| 成人免费高清视频在线观看| 国产一区二区三区四区在线观看| 奇米一区二区三区| 亚洲成人黄色影院| 亚洲成人在线免费| 一区二区三区日本| 亚洲精品国产一区二区精华液 | 欧美成人a在线| 538在线一区二区精品国产| 色播五月激情综合网| 91免费版在线| 91亚洲国产成人精品一区二区三| 成人网在线播放| 成人小视频在线| proumb性欧美在线观看| av电影在线观看一区| 91麻豆视频网站| 色菇凉天天综合网| 在线看不卡av| 欧美日韩国产在线观看| 666欧美在线视频| 日韩欧美第一区| 久久精品一区二区三区不卡 | 美国精品在线观看| 久久99精品久久久| 国产自产2019最新不卡| 狠狠狠色丁香婷婷综合久久五月| 国产一区二区91| 波多野结衣中文字幕一区 | 欧美一级理论片| 精品噜噜噜噜久久久久久久久试看 | 蜜臀av国产精品久久久久| 蜜桃精品在线观看| 激情综合网激情| 成人精品在线视频观看| 色婷婷国产精品久久包臀| 欧美三级中文字幕在线观看| 日韩女优制服丝袜电影| 欧美国产日韩精品免费观看| 一区二区三区产品免费精品久久75| 亚洲一级不卡视频| 韩国女主播一区二区三区| 成人夜色视频网站在线观看| 色一区在线观看| 日韩视频免费观看高清在线视频| 2024国产精品| 亚洲免费观看视频| 免费在线看成人av| www.日本不卡| 欧美精品乱人伦久久久久久| 久久久蜜臀国产一区二区| 亚洲欧洲日韩女同| 日本午夜一区二区| 成人中文字幕在线| 欧美精品久久一区| 国产欧美精品一区| 亚洲成人免费在线观看| 国产精品亚洲专一区二区三区| 91影院在线观看| 欧美不卡激情三级在线观看| 亚洲人成网站在线| 久久精品国产精品亚洲红杏| 99精品视频免费在线观看| 欧美一区二区在线看| 国产精品入口麻豆九色| 日韩高清在线观看| 91视频在线观看免费| 精品久久久久久久久久久久久久久久久 | 成人免费观看男女羞羞视频| 717成人午夜免费福利电影| 国产精品无码永久免费888| 日本美女一区二区三区视频| 色哟哟精品一区| 久久精品人人做| 喷水一区二区三区| 欧美中文字幕一区| 国产精品久久久久精k8 | 91麻豆免费看片| 国产欧美精品在线观看| 日本美女一区二区三区视频| 在线观看一区不卡| 国产精品网站在线观看| 极品少妇一区二区三区精品视频| 欧美三级乱人伦电影| 亚洲少妇最新在线视频| 粉嫩嫩av羞羞动漫久久久| 日韩西西人体444www| 一区二区三区不卡视频| 99热精品一区二区| 久久精品综合网| 国产一区二区三区精品欧美日韩一区二区三区| 欧美在线视频你懂得| 亚洲精品老司机| 一道本成人在线| 中文字幕在线不卡一区二区三区 | 日本不卡免费在线视频| 欧美视频一区二区在线观看| 亚洲桃色在线一区| 99久久久无码国产精品| 国产精品国产三级国产有无不卡| 国产成人精品免费| 久久久久88色偷偷免费 | 欧美三级一区二区| 亚洲线精品一区二区三区| 色婷婷久久综合| 亚洲免费观看视频| 色8久久精品久久久久久蜜| 亚洲欧美偷拍卡通变态| 色婷婷一区二区| 亚洲已满18点击进入久久| 欧美午夜宅男影院| 性欧美疯狂xxxxbbbb| 3d动漫精品啪啪1区2区免费| 免费看黄色91| 精品粉嫩aⅴ一区二区三区四区| 国产最新精品免费| 久久男人中文字幕资源站| 韩国欧美一区二区| 国产欧美日本一区视频| 97aⅴ精品视频一二三区| 一区二区高清免费观看影视大全| 91久久精品一区二区| 亚洲成在线观看| 日韩视频免费直播| 国产精品亚洲第一区在线暖暖韩国| 中文字幕乱码久久午夜不卡| 成人黄色片在线观看| 亚洲男人电影天堂| 欧美高清dvd| 国产在线视视频有精品| 中文字幕不卡的av| 91蝌蚪porny成人天涯| 亚洲高清视频的网址| 日韩免费一区二区三区在线播放| 国产传媒一区在线| 亚洲色图制服诱惑| 欧美精三区欧美精三区| 国产在线不卡一区| 亚洲天堂中文字幕| 欧美一区二区三区在线看| 国产一区二区伦理| 一区二区三区电影在线播| 欧美一区国产二区| 成人av午夜影院| 日韩在线一二三区| 欧美经典一区二区| 911国产精品| 高潮精品一区videoshd| 亚洲综合免费观看高清完整版在线| 日韩三级高清在线| jlzzjlzz亚洲日本少妇| 亚洲成人精品在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 91小宝寻花一区二区三区| 亚洲高清免费在线| 国产女主播在线一区二区| 欧美丝袜丝交足nylons图片| 国产成人综合自拍| 视频一区中文字幕| 国产精品成人一区二区艾草| 日韩一区二区三区在线视频| 99久久久精品| 免播放器亚洲一区| 亚洲激情网站免费观看| 国产午夜亚洲精品理论片色戒| 欧美日韩一卡二卡三卡| 99久久综合狠狠综合久久| 美女网站视频久久|