a粒子散射实验模拟

作者在 2010-06-03 19:02:34 发布以下内容
#include<stdio.h>
#include<graphics.h>
#include<dos.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>

#define PI  3.1415926
#define angle1 3.1415926/5
#define angle2 3.1415926/10
#define angle3 3.1415926/180
extern int s=9;
void output_result(int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9,int n10);
void draw_machine();
void output_text();
void seperate();
void move_aHE2();
void move_aHE3();
void move_aHE4();
void move_aHE5();
void move_aHE6();
void move_aHE7();
void move_aHE8();
void move_aHE9();
void move_aHE10();
void  move_aHE1()                        
{
  int y1[335];
  int y0=358;
  int index=0;
  int x0=310;
  for(index;index<335;index++)
     y1[index]=y0--;
  index=0;
  for(index;index<335;index++)
    {
      setcolor(GREEN);
      ellipse(310,210,-80,260,160,160);
      setcolor(8);
      circle(310,210,20);
      setcolor(WHITE);
      circle(x0+s,y1[index+1],1);
      setcolor(BLACK);
      circle(x0+s,y1[index],1);
      delay(1000);
     }
   setcolor(BLACK);
   circle(x0+s,y1[335],1);
   s=-s;
}  

void draw_table()
{
  setcolor(WHITE);
  outtextxy(5,380,"***************************");
  outtextxy(5,395,"*BOX  * 1 * 2 * 3 * 4 * 5 *");
  outtextxy(5,410,"***************************");
  outtextxy(5,425,"*COUNT*   *   *   *   *   *");
  outtextxy(5,440,"***************************");
  outtextxy(400,380,"***************************");
  outtextxy(400,395,"*BOX  * 6 * 7 * 8 * 9 *10 *");
  outtextxy(400,410,"***************************");
  outtextxy(400,425,"*COUNT*   *   *   *   *   *");
  outtextxy(400,440,"***************************");
}
int main(void)
{
  int seed=0;
  int i=0;
  int n=0;
  int m=0;
  int j1,j2,j3,j4,j5,
      j6,j7,j8,j9,j10;
int gdriver=VGA;
int gmode=VGAHI;
initgraph(&gdriver,&gmode,"  ");
output_text();
getch();
cleardevice();
draw_machine();
seperate();
draw_table();
getch();
for(i;i<80;i++)
{
  seed=time(NULL);
  srand((unsigned int)seed);
  m=1+rand()%26;
  switch(m)
  {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:  
    case 8:  
    case 9:  
    case 10:
    case 11:
    case 12:
    case 13: {move_aHE1();
              j1++;
              break;}
    case 14:    
    case 15: {move_aHE2();
              j2++;
              break;}
    case 16:
    case 17: {move_aHE3();
              j3++;
              break;}
    case 18:
    case 19: {move_aHE4();
              j4++;
              break;}
    case 20:
    case 21: {move_aHE5();
              j5++;
              break;}
    case 22: {move_aHE6();
              j6++;
              break;}
    case 23: {move_aHE7();
               j7++;
               break;}
    case 24: {move_aHE8();
               j8++;
             break;}
    case 25: {move_aHE9();
               j9++;  
              break;}
    case 26: {move_aHE10();
               j10++;
               break;}
     };

}
getch();
output_result(j1,j2,j3,j4,j5,j6,j7,j8,j9,j10);
getch();
cleardevice();
setcolor(WHITE);
settextstyle(0,0,8);
outtextxy(200,200,"RENY");
settextstyle(0,0,2);
outtextxy(120,320,"E-mail:situjinxian@yahoo.cn");
getch();
closegraph();
return 0;
}
void draw_machine()                   /*a粒子源*/      
{
   setcolor(5);
   setlinestyle(0,0,3);
   circle(310,210,2);
   setcolor(8);
   circle(310,210,20);
   setcolor(GREEN);
   ellipse(310,210,-80,260,190,190);
   ellipse(310,210,-85,265,160,160);
   setcolor(LIGHTBLUE);
   setlinestyle(0,0,3);
   rectangle(300,360,320,390);
   rectangle(280,390,340,400);
   setcolor(YELLOW);
   setlinestyle(0,0,1);
   line(300,363,320,363);
   line(300,366,320,366);
   line(280,390,340,400);
   line(280,400,340,390);
  
}
void seperate()
{  
   int str[5];
   int j=1;
   int i=0;
   int k=1;
   int cx1[10];
   int cy1[10];
   int cx2[10];
   int cy2[10];
   int cx22[10];
   int cy22[10];
   for(;i<10;i++)
   {
    cx1[i]=310+160*cos(angle1*i);
    cy1[i]=210+160*sin(angle1*i);
    cx2[i]=310+190*cos(angle1*i);
    cy2[i]=210+190*sin(angle1*i);
    setcolor(GREEN);
    line(cx1[i],cy1[i],cx2[i],cy2[i]);
   }
   i=0;
   for(i;i<10;i++)
    {
     cx22[i]=310+200*cos(angle2*k);
     cy22[i]=210+200*sin(angle2*k);
     sprintf(str,"%d",j);
     setcolor(YELLOW);
     outtextxy(cx22[i],cy22[i]-2,str);
     j++;
     k+=2;
    }
}

void move_aHE2()
{
  int  y2[286];
  int  yy0=358;
  int  i1=0;
  y2[286]=380;
  for(i1;i1<143;i1++)
    y2[i1]=yy0--;
  for(i1;i1<286;i1++)
    y2[i1]=yy0++;
  i1=0;
  for(i1;i1<286;i1++)
  {
   setcolor(GREEN);
   ellipse(310,210,-80,260,160,160);
   setcolor(8);
   circle(310,210,20);
   setcolor(WHITE);
   circle(310,y2[i1+1],1);
   setcolor(BLACK);
   circle(310,y2[i1],1);
   delay(1000);
  }
   setcolor(BLACK);
   circle(310,380,1);
}
void move_aHE3()
{
  int  y3[223];
  int  x3[223];
  int  y=358;
  int  i2=0;
  int  x=303;
  int  j=0;

  for(i2;i2<143;i2++)
  {
    y3[i2]=y--;
    x3[i2]=x;
  }
  for(i2;i2<223;i2++)
   {
     x3[i2]=208+95*cos(-angle3*j);
     y3[i2]=215+150*sin(-angle3*j);
     j++;
   }
  i2=0;
  for(i2;i2<223;i2++)
   {
     setcolor(GREEN);
     ellipse(310,210,-80,260,160,160);
     setcolor(8);
     circle(310,210,20);
     setcolor(WHITE);
     circle(x3[i2+1],y3[i2+1],1);
     setcolor(BLACK);
     circle(x3[i2],y3[i2],1);
     delay(1000);
   }
   setcolor(BLACK);
   circle(x3[223],y3[223],1);
}
void move_aHE4()
{
  int  y4[243];
  int  x4[243];
  int  yy=358;
  int  i3=0;
  int  xx=304;
  int  j=0;
  for(i3;i3<143;i3++)
  {
    y4[i3]=yy--;
    x4[i3]=xx;
  }
  for(i3;i3<243;i3++)
   {
     x4[i3]=170+134*cos(-angle3*j);
     y4[i3]=215+80*sin(-angle3*j);
     j++;
   }
  i3=0;
  for(i3;i3<243;i3++)
   {
     setcolor(GREEN);
     ellipse(310,210,-80,260,160,160);
     setcolor(8);
     circle(310,210,20);
     setcolor(WHITE);
     circle(x4[i3+1],y4[i3+1],1);
     setcolor(BLACK);
     circle(x4[i3],y4[i3],1);
     delay(1000);
   }
   setcolor(BLACK);
   circle(x4[243],y4[243],1);
}
void move_aHE5()
{
  int  y5[243];
  int  x5[243];
  int  yf=358;
  int  i4=0;
  int  xf=316;
  int  j=0;
  for(i4;i4<143;i4++)
  {
    y5[i4]=yf--;
    x5[i4]=xf;
  }
  for(i4;i4<243;i4++)
   {
     x5[i4]=450+134*cos(angle3*j+PI);
     y5[i4]=215+80*sin(angle3*j+PI);
     j++;
   }
  i4=0;
  for(i4;i4<243;i4++)
   {
     setcolor(GREEN);
     ellipse(310,210,-80,260,160,160);
     setcolor(8);
     circle(310,210,20);  
     setcolor(WHITE);
     circle(x5[i4+1],y5[i4+1],1);
     setcolor(BLACK);
     circle(x5[i4],y5[i4],1);
     delay(1000);
   }
   setcolor(BLACK);
   circle(x5[243],y5[243],1);

}

void move_aHE6()
{
  int  y6[223];
  int  x6[223];
  int  ys=358;
  int  i5=0;
  int  xs=317;
  int  j=0;

  for(i5;i5<143;i5++)
  {
    y6[i5]=ys--;
    x6[i5]=xs;
  }
  for(i5;i5<223;i5++)
   {
     x6[i5]=412+95*cos(angle3*j+PI);
     y6[i5]=215+150*sin(angle3*j+PI);
     j++;
   }
  i5=0;
  for(i5;i5<223;i5++)
   {
     setcolor(GREEN);
     ellipse(310,210,-80,260,160,160);
     setcolor(8);
     circle(310,210,20);
     setcolor(WHITE);
     circle(x6[i5+1],y6[i5+1],1);
     setcolor(BLACK);
     circle(x6[i5],y6[i5],1);
     delay(1000);
   }
   setcolor(BLACK);
   circle(x6[223],y6[223],1);

}
void  move_aHE7()
{
  int  y7[270];
  int  x7[270];
  int  yse=358;
  int  xse=306;
  int  i6=0;
  for(i6;i6<143;i6++)
  {
    y7[i6]=yse--;
    x7[i6]=xse;
  }
  for(i6;i6<270;i6++)
  {
    x7[i6]=xse--;
    y7[i6]=yse++;
  }
  i6=0;
  for(i6;i6<270;i6++)
  {
    setcolor(GREEN);
    ellipse(310,210,-80,260,160,160);
    setcolor(8);
    circle(310,210,20);
    setcolor(WHITE);
    circle(x7[i6+1],y7[i6+1],1);
    setcolor(BLACK);
    circle(x7[i6],y7[i6],1);
    delay(1000);
  }
  setcolor(BLACK);
  circle(x7[270],y7[270],1);
}

void  move_aHE8()
{
  int  y8[270];
  int  x8[270];
  int  ye=358;
  int  xe=314;
  int  i7=0;
  for(i7;i7<143;i7++)
  {
    y8[i7]=ye--;
    x8[i7]=xe;
  }
  for(i7;i7<270;i7++)
  {
    x8[i7]=xe++;
    y8[i7]=ye++;
  }
  i7=0;
  for(i7;i7<270;i7++)
  {
    setcolor(GREEN);
    ellipse(310,210,-80,260,160,160);
    setcolor(8);
    circle(310,210,20);  
    setcolor(WHITE);
    circle(x8[i7+1],y8[i7+1],1);
    setcolor(BLACK);
    circle(x8[i7],y8[i7],1);
    delay(1000);
  }
  setcolor(BLACK);
  circle(x8[270],y8[270],1);
}
void  move_aHE9()
{
  int  y9[215];
  int  x9[215];
  int  yn=358;
  int  xn=307;
  int  i8=0;
  for(i8;i8<143;i8++)
  {
    y9[i8]=yn--;
    x9[i8]=xn;
  }
  for(i8;i8<215;i8++)
  {
    x9[i8]=xn;
    y9[i8]=yn++;
    xn-=2;  
  }
  i8=0;
  for(i8;i8<215;i8++)
  {
    setcolor(GREEN);
    ellipse(310,210,-80,260,160,160);
    setcolor(8);
    circle(310,210,20);
    setcolor(WHITE);
    circle(x9[i8+1],y9[i8+1],1);
    setcolor(BLACK);
    circle(x9[i8],y9[i8],1);
    delay(1000);
  }
  setcolor(BLACK);
  circle(x9[215],y9[215],1);
}

void  move_aHE10()
{
  int  y10[215];
  int  x10[215];
  int  yt=358;
  int  xt=313;
  int  i9=0;
  for(i9;i9<143;i9++)
  {
    y10[i9]=yt--;
    x10[i9]=xt;
  }
  for(i9;i9<215;i9++)
  {
    x10[i9]=xt;
    y10[i9]=yt++;
    xt+=2;  
  }
  i9=0;
  for(i9;i9<215;i9++)
  {
    setcolor(GREEN);
    ellipse(310,210,-80,260,160,160);
    setcolor(8);
    circle(310,210,20);
    setcolor(WHITE);
    circle(x10[i9+1],y10[i9+1],1);
    setcolor(BLACK);
    circle(x10[i9],y10[i9],1);
    delay(1000);
  }
  setcolor(BLACK);
  circle(x10[215],y10[215],1);
}

void output_result(int n1,int n2,int n3,int n4,int n5,int n6,int n7,int n8,int n9,int n10)
{
int str[5];
setcolor(WHITE);
sprintf(str,"%d",n10);
outtextxy(67,425,str);
sprintf(str,"%d",n8);
outtextxy(100,425,str);
sprintf(str,"%d",n2);
outtextxy(134,425,str);
sprintf(str,"%d",n7);
outtextxy(163,425,str);
sprintf(str,"%d",n9);
outtextxy(193,425,str);
sprintf(str,"%d",n4);
outtextxy(465,425,str);
sprintf(str,"%d",n3);
outtextxy(493,425,str);
sprintf(str,"%d",n1);
outtextxy(522,425,str);
sprintf(str,"%d",n6);
outtextxy(558,425,str);
sprintf(str,"%d",n5);
outtextxy(590,425,str);
}
void  output_text()
{
   outtextxy(80,200,"   It was quite the most incredible event that  ever  happened");
   outtextxy(80,215,"to me in my life .It was almost as incredible as if you  fired");              
   outtextxy(80,230,"a 15-inch shell at apiece of tissue paper and it came back and");
   outtextxy(80,245,"hit you.");
   outtextxy(450,265,"Emest Rutherford");
   outtextxy(450,280,"(1871--1937)");
   outtextxy(450,295,"ENGLAND");
   outtextxy(5,425,"RENYSOFTCORPORATION  16-5-2010");
   setcolor(YELLOW);
   circle(163,422,5);
   outtextxy(160,419,"R");
}
















默认分类 | 阅读 771 次
文章评论,共0条
游客请输入验证码
文章分类
最新评论