Advertisement
Mirbek

Lab

Mar 22nd, 2022
1,304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.30 KB | None | 0 0
  1. #include <graphics.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. void k(int x1, int y1, int x2, int y2, char *s, int col);
  6.  
  7.     void newparam(){
  8.         k(50, 420,150,460, "NEW PARAM", 15);
  9.         k(200, 420, 300,460, "GRAFIC", 15);
  10.         k(350, 420, 450, 460, "EXIT", 15);
  11.         setcolor(15);
  12.         k(50, 420,150,460, "NEW PARAM", 4);
  13.  
  14.     }
  15.  
  16.     void graphic(){
  17.         k(50, 420,150,460, "NEW PARAM", 15);
  18.         k(200, 420, 300,460, "GRAFIC", 15);
  19.         k(350, 420, 450, 460, "EXIT", 15);
  20.         setcolor(15);
  21.         k(200, 420, 300,460, "GRAFIC", 4);
  22.     }
  23.  
  24.     void exit() {
  25.         k(50, 420,150,460, "NEW PARAM", 15);
  26.         k(200, 420, 300,460, "GRAFIC", 15);
  27.         k(350, 420, 450, 460, "EXIT", 15);
  28.         setcolor(15);
  29.         k(350, 420, 450, 460, "EXIT", 4);
  30.     }
  31.  
  32.     void gr(){
  33.     rectangle (50,30,250,280);
  34.     line(150,30,150,280);
  35.     line(320,0,320,400);
  36.     line(50, 70, 250, 70);
  37.     line(0, 400, 639, 400);
  38.     rectangle(50, 360, 150, 395);
  39.     rectangle(50, 320, 150, 355);
  40.      setcolor(15);
  41.  
  42.     char a[] = "a=", b[] = "b=", y[] = "Y", x[] = "X", o[] = "0";
  43.  
  44.     outtextxy(55, 331, a);
  45.     outtextxy(55, 371, b);
  46.     outtextxy(465, 35, y);
  47.     outtextxy(605, 204, x);
  48.     outtextxy(95, 45, x);
  49.     outtextxy(195, 45, y);
  50.     outtextxy(470, 201, o);
  51.  
  52.     line(479, 30, 479, 360);
  53.     line(350, 200, 610, 200);
  54.  
  55.     line(479, 30, 475, 35);
  56.     line(479, 30, 483, 35);
  57.     line(475, 35, 483, 35);
  58.  
  59.     line(610, 200, 605, 196);
  60.     line(610, 200, 605, 204);
  61.     line(605, 196, 605, 204);
  62.     setcolor(0);
  63.     floodfill(478, 34, 15);
  64.     floodfill(480, 34, 15);
  65.     floodfill(606, 199, 15);
  66.     floodfill(606, 201, 15);
  67.  
  68.     }
  69.  
  70.  
  71. void k(int x1, int y1, int x2, int y2, char *s, int col)
  72. {
  73.     setcolor(col);
  74.     rectangle(x1,y1,x2,y2);
  75.     setcolor(15);
  76.     outtextxy(x1+10,(y2-y1)/2+y1, s);
  77. }
  78.  
  79.  
  80.  
  81. void knopkiupr()
  82. {
  83.     char ch;
  84.     int xr;
  85.     int yr;
  86.     int p=1;
  87.     do{
  88.  
  89.         getmouseclick(WM_LBUTTONDOWN,xr,yr);
  90.         if ( (xr>=350)&&(xr<=450)&&(yr>=420)&&(yr<=460) )//exit
  91.             ch='e';
  92.         if ( (xr>=50)&&(xr<=150)&&(yr>=420)&&(yr<=460) )//new param
  93.             ch='e';
  94.         if ( (xr>=200)&&(xr<=300)&&(yr>=420)&&(yr<=460) )//graphic
  95.             ch='e';
  96.  
  97.  
  98.  
  99.         if (kbhit()){
  100.         ch = getch();
  101.         switch (ch)
  102.         {
  103.         case 'n': newparam(); break;
  104.  
  105.         case 'g':graphic(); break;
  106.  
  107.         case 'e':exit(); break;
  108.  
  109.         case 77 :if (p<3) p++;
  110.                  k(50, 420,150,460, "NEW PARAM", 15);
  111.                  k(200, 420, 300,460, "GRAFIC", 15);
  112.                  k(350, 420, 450, 460, "EXIT", 15);
  113.                  switch (p)
  114.                  {
  115.                      case 1: k(50, 420,150,460, "NEW PARAM", 4); break;
  116.                      case 2:  k(200, 420, 300,460, "GRAFIC", 4);  break;
  117.                      case 3: k(350, 420, 450, 460, "EXIT", 4);break;
  118.  
  119.                  } break;
  120.         case 75: if (p>1) p--;
  121.                  k(50, 420,150,460, "NEW PARAM", 15);
  122.                  k(200, 420, 300,460, "GRAFIC", 15);
  123.                  k(350, 420, 450, 460, "EXIT", 15);
  124.                  switch (p)
  125.                  {
  126.                      case 1: k(50, 420,150,460, "NEW PARAM", 4); break;
  127.                      case 2:  k(200, 420, 300,460, "GRAFIC", 4);  break;
  128.                      case 3: k(350, 420, 450, 460, "EXIT", 4);break;
  129.  
  130.                  }
  131.                  break;
  132.  
  133.         case 13: switch (p){
  134.                 case 1: newparam();break;
  135.                 case 2: graphic();break;
  136.                 case 3: ch='e';break;
  137.         }
  138.         }}
  139.     } while (ch != 27);
  140.  
  141. }
  142.  
  143. int main(void)
  144. {
  145.     int GrDr, GrMod, rez;
  146.     GrDr = DETECT;
  147.  
  148.     initgraph(&GrDr, &GrMod, " "); // GrDr - графический драйвер;
  149.                                                           //GrMod -графический режим;
  150.  // третий параметр- путь до графического       //драйвера;
  151.  
  152.     rez = graphresult();
  153.     if (rez != grOk)
  154.     {
  155.         printf("\n Error graph modeи");
  156.         return(1);
  157.     }
  158.  
  159.  
  160.     gr();
  161.  
  162.     k(50, 420,150,460, "NEW PARAM", 4);
  163.     k(200, 420, 300,460, "GRAFIC", 15);
  164.     k(350, 420, 450, 460, "EXIT", 15);
  165.     knopkiupr();
  166.  
  167.  
  168.         closegraph();
  169.     return(0);
  170. }
  171.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement