?? attemperarithmetic.cpp
字號:
{
d->Dspy0();
return 0;
}
UINT ts1(LPVOID pParam)
{
d->Dspy1();
return 0;
}
UINT ts2(LPVOID pParam)
{
d->Dspy2();
return 0;
}
UINT ts3(LPVOID pParam)
{
d->Dspy3();
return 0;
}
UINT ts4(LPVOID pParam)
{
d->Dspy4();
return 0;
}
UINT tsOut(LPVOID pParam)
{
d->DspyOut();
return 0;
}
void TC::OnKillFocus(CWnd* pNewWnd)
{
CDialog::OnKillFocus(pNewWnd);
TCSI tcsi;
// TODO: Add your message handler code here
UpdateData(TRUE);
//Get Value
this->m_Arr1.GetLBText(m_Arr1.GetCurSel(),st[0]);
this->m_Arr2.GetLBText(m_Arr2.GetCurSel(),st[1]);
this->m_Arr3.GetLBText(m_Arr3.GetCurSel(),st[2]);
this->m_Arr4.GetLBText(m_Arr4.GetCurSel(),st[3]);
this->m_Arr5.GetLBText(m_Arr5.GetCurSel(),st[4]);
tc0=(CString)st[0];
tc1=(CString)st[1];
tc2=(CString)st[2];
tc3=(CString)st[3];
tc4=(CString)st[4];
//init TCsort[]
if (tc0=="0")
TCsort[0]=0;
if (tc0=="1")
TCsort[0]=1;
if (tc0=="2")
TCsort[0]=2;
if (tc0=="3")
TCsort[0]=3;
if (tc0=="4")
TCsort[0]=4;
if (tc1=="0")
TCsort[1]=0;
if (tc1=="1")
TCsort[1]=1;
if (tc1=="2")
TCsort[1]=2;
if (tc1=="3")
TCsort[1]=3;
if (tc1=="4")
TCsort[1]=4;
if (tc2=="0")
TCsort[2]=0;
if (tc2=="1")
TCsort[2]=1;
if (tc2=="2")
TCsort[2]=2;
if (tc2=="3")
TCsort[2]=3;
if (tc2=="4")
TCsort[0]=4;
if (tc3=="0")
TCsort[3]=0;
if (tc3=="1")
TCsort[3]=1;
if (tc3=="2")
TCsort[3]=2;
if (tc3=="3")
TCsort[3]=3;
if (tc3=="4")
TCsort[3]=4;
if (tc4=="0")
TCsort[4]=0;
if (tc4=="1")
TCsort[4]=1;
if (tc4=="2")
TCsort[4]=2;
if (tc4=="3")
TCsort[4]=3;
if (tc4=="4")
TCsort[4]=4;
//init var in tcsi
for(int j=0;j<5;j++)
tcsi.m_ArrQ=tcsi.m_ArrQ+st[j];
tcsi.m_S1=m_Ser1;
tcsi.m_S2=m_Ser2;
tcsi.m_S3=m_Ser3;
tcsi.m_S4=m_Ser4;
tcsi.m_S5=m_Ser5;
tcsi.m_ts=m_TS;
s=m_TS;
SerT[0]=m_Ser1;
SerT[1]=m_Ser2;
SerT[2]=m_Ser3;
SerT[3]=m_Ser4;
SerT[4]=m_Ser5;
tcsi.DoModal();
//Thread Begin here
HWND hWnd=GetSafeHwnd();
tcInitThread = AfxBeginThread(tcInit,hWnd);
Sleep(200);
tc0Thread = AfxBeginThread(ts0,hWnd);
tc1Thread = AfxBeginThread(ts1,hWnd);
tc2Thread = AfxBeginThread(ts2,hWnd);
tc3Thread = AfxBeginThread(ts3,hWnd);
tc4Thread = AfxBeginThread(ts4,hWnd);
AfxBeginThread(tsOut,hWnd);
}
void CAttemperArithmeticView::DspyOut()
{
CClientDC dc(this);
//out
CString b,c,d,e,f;
//Server 1
if (SerT[0]==1)
b="1";
if (SerT[0]==2)
b="2";
if (SerT[0]==3)
b="3";
if (SerT[0]==4)
b="4";
if (SerT[0]==5)
b="5";
if (SerT[0]==6)
b="6";
//Server 2
if (SerT[1]==1)
c="1";
if (SerT[1]==2)
c="2";
if (SerT[1]==3)
c="3";
if (SerT[1]==4)
c="4";
if (SerT[1]==5)
c="5";
if (SerT[1]==6)
c="6";
//Server 3
if (SerT[2]==1)
d="1";
if (SerT[2]==2)
d="2";
if (SerT[2]==3)
d="3";
if (SerT[2]==4)
d="4";
if (SerT[2]==5)
d="5";
if (SerT[2]==6)
d="6";
//Server 4
if (SerT[3]==1)
e="1";
if (SerT[3]==2)
e="2";
if (SerT[3]==3)
e="3";
if (SerT[3]==4)
e="4";
if (SerT[3]==5)
e="5";
if (SerT[3]==6)
e="6";
//Server 5
if (SerT[4]==1)
f="1";
if (SerT[4]==2)
f="2";
if (SerT[4]==3)
f="3";
if (SerT[4]==4)
f="4";
if (SerT[4]==5)
f="5";
if (SerT[4]==6)
f="6";
dc.MoveTo(150,410);
dc.LineTo(800,410);
dc.MoveTo(150,510);
dc.LineTo(800,510);
dc.MoveTo(150,610);
dc.LineTo(800,610);
dc.MoveTo(250,410);
dc.LineTo(250,610);
dc.MoveTo(350,410);
dc.LineTo(350,610);
dc.MoveTo(150,410);
dc.LineTo(250,510);
dc.TextOut(180,420,"Work Info");
dc.TextOut(150,490,"Time Slice");
dc.TextOut(160,540,"RR");
dc.TextOut(160,560,"q=");
dc.TextOut(180,560,a);
dc.TextOut(260,420,"Thread Name");
dc.TextOut(260,455,"Arrived Time");
dc.TextOut(260,485,"Server Time");
dc.TextOut(260,520,"FinishedTime");
dc.TextOut(260,555,"Round Time");
dc.TextOut(260,585,"Value Time");
//Thread 0
dc.TextOut(400,420,"0");
dc.TextOut(400,455,st[0]);
dc.TextOut(400,485,b);
//Thread 1
dc.TextOut(460,420,"1");
dc.TextOut(460,455,st[1]);
dc.TextOut(460,485,c);
//Thread 2
dc.TextOut(520,420,"2");
dc.TextOut(520,455,st[2]);
dc.TextOut(520,485,d);
//Thread 3
dc.TextOut(580,420,"3");
dc.TextOut(580,455,st[3]);
dc.TextOut(580,485,e);
//Thread 4
dc.TextOut(640,420,"4");
dc.TextOut(640,455,st[4]);
dc.TextOut(640,485,f);
dc.TextOut(700,420,"Average");
}
void CAttemperArithmeticView::Dspy0()
{
CClientDC dc(this);
int y;
int f,finish;
finish=0;
f=0;
y=(TCsort[0]*20)+250;
Sleep(TCsort[0]*1000);
for(int i=0;i<SerT[0];i++)
{
dc.MoveTo(x,y);
for (int j=0;j<s;j++)
{
if (f!=SerT[0])
{
f++;
FinishedTime[0]++;
finish=FinishedTime[0];
x=x+20;
dc.LineTo(x,y);
}
}
// if (i+1<SerT[0])
Sleep(5000);
}
dc.TextOut(800,y-5,"Execute Finished!");
//calc finish time,round time,value time and putout it
RoundTime[0]=finish-TCsort[0];
ValueTime[0]=RoundTime[0]/SerT[0];
CString ff,rr,vv;
if (finish==1)
ff="1";
if (finish==2)
ff="2";
if (finish==3)
ff="3";
if (finish==4)
ff="4";
if (finish==5)
ff="5";
if (finish==6)
ff="6";
if (finish==7)
ff="7";
if (finish==8)
ff="8";
if (finish==9)
ff="9";
if (finish==10)
ff="10";
if (finish==11)
ff="11";
if (finish==12)
ff="12";
if (finish==13)
ff="13";
if (finish==14)
ff="14";
if (finish==15)
ff="15";
if (finish==16)
ff="16";
if (finish==17)
ff="17";
if (finish==18)
ff="18";
if (finish==19)
ff="19";
if (finish==20)
ff="20";
if (RoundTime[0]==1)
rr="1";
if (RoundTime[0]==2)
rr="2";
if (RoundTime[0]==3)
rr="3";
if (RoundTime[0]==4)
rr="4";
if (RoundTime[0]==5)
rr="5";
if (RoundTime[0]==6)
rr="6";
if (RoundTime[0]==7)
rr="7";
if (RoundTime[0]==8)
rr="8";
if (RoundTime[0]==9)
rr="9";
if (RoundTime[0]==10)
rr="10";
if (RoundTime[0]==11)
rr="11";
if (RoundTime[0]==12)
rr="12";
if (RoundTime[0]==13)
rr="13";
if (RoundTime[0]==14)
rr="14";
if (RoundTime[0]==15)
rr="15";
if (RoundTime[0]==16)
rr="16";
if (RoundTime[0]==17)
rr="17";
if (RoundTime[0]==18)
rr="18";
if (RoundTime[0]==19)
rr="19";
if (RoundTime[0]==20)
rr="20";
if (ValueTime[0]==1)
vv="1";
if (ValueTime[0]==2)
vv="2";
if (ValueTime[0]==3)
vv="3";
if (ValueTime[0]==4)
vv="4";
if (ValueTime[0]==5)
vv="5";
if (ValueTime[0]==6)
vv="6";
if (ValueTime[0]==7)
vv="7";
dc.TextOut(400,520,ff);
dc.TextOut(400,555,rr);
dc.TextOut(400,585,vv);
int avg;
avg=RoundTime[0]+RoundTime[1]+RoundTime[2]+RoundTime[3]+RoundTime[4];
avg=avg/5;
CString aveg;
if (avg==1)
aveg="1";
if (avg==2)
aveg="2";
if (avg==3)
aveg="3";
if (avg==4)
aveg="4";
if (avg==5)
aveg="5";
if (avg==6)
aveg="6";
if (avg==7)
aveg="7";
if (avg==8)
aveg="8";
if (avg==9)
aveg="9";
if (avg==10)
aveg="10";
if (avg==11)
aveg="11";
if (avg==12)
aveg="12";
if (avg==13)
aveg="13";
if (avg==14)
aveg="14";
if (avg==15)
aveg="15";
dc.TextOut(700,555,aveg);
}
void CAttemperArithmeticView::Dspy1()
{
CClientDC dc(this);
int y;
int f,finish1;
finish1=0;
f=0;
y=(TCsort[1]*20)+250;
Sleep(TCsort[1]*1000);
for(int i=0;i<SerT[1];i++)
{
dc.MoveTo(x,y);
// x=x+s*20;
for (int j=0;j<s;j++)
{
if (f!=SerT[1])
{
f++;
FinishedTime[0]++;
finish1=FinishedTime[0];
x=x+20;
dc.LineTo(x,y);
}
}
// if (i+1<=SerT[1])
Sleep(5000);
}
dc.TextOut(800,y-5,"Execute Finished!");
RoundTime[1]=finish1-TCsort[1];
ValueTime[1]=RoundTime[1]/SerT[1];
CString ff,rr,vv;
if (finish1==1)
ff="1";
if (finish1==2)
ff="2";
if (finish1==3)
ff="3";
if (finish1==4)
ff="4";
if (finish1==5)
ff="5";
if (finish1==6)
ff="6";
if (finish1==7)
ff="7";
if (finish1==8)
ff="8";
if (finish1==9)
ff="9";
if (finish1==10)
ff="10";
if (finish1==11)
ff="11";
if (finish1==12)
ff="12";
if (finish1==13)
ff="13";
if (finish1==14)
ff="14";
if (finish1==15)
ff="15";
if (finish1==16)
ff="16";
if (finish1==17)
ff="17";
if (finish1==18)
ff="18";
if (finish1==19)
ff="19";
if (finish1==20)
ff="20";
if (RoundTime[1]==1)
rr="1";
if (RoundTime[1]==2)
rr="2";
if (RoundTime[1]==3)
rr="3";
if (RoundTime[1]==4)
rr="4";
if (RoundTime[1]==5)
rr="5";
if (RoundTime[1]==6)
rr="6";
if (RoundTime[1]==7)
rr="7";
if (RoundTime[1]==8)
rr="8";
if (RoundTime[1]==9)
rr="9";
if (RoundTime[1]==10)
rr="10";
if (RoundTime[1]==11)
rr="11";
if (RoundTime[1]==12)
rr="12";
if (RoundTime[1]==13)
rr="13";
if (RoundTime[1]==14)
rr="14";
if (RoundTime[1]==15)
rr="15";
if (RoundTime[1]==16)
rr="16";
if (RoundTime[1]==17)
rr="17";
if (RoundTime[1]==18)
rr="18";
if (RoundTime[1]==19)
rr="19";
if (RoundTime[1]==20)
rr="20";
if (ValueTime[1]==1)
vv="1";
if (ValueTime[1]==2)
vv="2";
if (ValueTime[1]==3)
vv="3";
if (ValueTime[1]==4)
vv="4";
if (ValueTime[1]==5)
vv="5";
if (ValueTime[1]==6)
vv="6";
if (ValueTime[1]==7)
vv="7";
dc.TextOut(460,520,ff);
dc.TextOut(460,555,rr);
dc.TextOut(460,585,vv);
int avg;
avg=RoundTime[0]+RoundTime[1]+RoundTime[2]+RoundTime[3]+RoundTime[4];
avg=avg/5;
CString aveg;
if (avg==1)
aveg="1";
if (avg==2)
aveg="2";
if (avg==3)
aveg="3";
if (avg==4)
aveg="4";
if (avg==5)
aveg="5";
if (avg==6)
aveg="6";
if (avg==7)
aveg="7";
if (avg==8)
aveg="8";
if (avg==9)
aveg="9";
if (avg==10)
aveg="10";
if (avg==11)
aveg="11";
if (avg==12)
aveg="12";
if (avg==13)
aveg="13";
if (avg==14)
aveg="14";
if (avg==15)
aveg="15";
dc.TextOut(700,555,aveg);
}
void CAttemperArithmeticView::Dspy2()
{
CClientDC dc(this);
int y;
int f,finish2;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -