Advertisement
patryk

Virtual Keyboard

Oct 9th, 2011
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.56 KB | None | 0 0
  1. #include <iostream>
  2. #include<dos.h>
  3. #include <conio.h>
  4. #include<stdio.h>
  5. #include<string>
  6. #include<string.h>
  7. #include<windows.h>
  8.  
  9. // --------- DZWIEKI --------- //
  10.  
  11. #define C 16.35
  12. #define Cis 17.325
  13. #define D 18.35625
  14. #define Dis 19.44375
  15. #define E 20.6
  16. #define F 21.825
  17. #define Fis 23.125
  18. #define G 24.5
  19. #define Gis 25.95625
  20. #define A 27.5
  21. #define B 29.1375
  22. #define H 30.86875
  23. #define C2 32.70625
  24.  
  25. // --------- DZWIEKI ----------//
  26.  
  27. class keyboard
  28.   {
  29.   public:
  30.         int tempo, Hz;
  31.         char key, oktawa, dzwiek, wybor;
  32.  
  33.         keyboard();
  34.         void graj();
  35.         void menu();
  36.         void rysuj();
  37.         void oktawy();
  38.         void utwory();
  39.         void pomoc();
  40.   };
  41. //-----------class keyboard----------------//
  42. keyboard::keyboard()
  43.   {
  44.   clrscr();
  45.   }
  46. //-------------konstruktor---------------//
  47.  
  48.  
  49. void keyboard::graj()
  50. {
  51. rysuj(); // rysowanie klawiszy
  52. tempo = 0;
  53. pomoc();
  54. do{
  55.   gotoxy(60, 3);
  56.   textcolor(15); cprintf("Tempo: "); textcolor(14); cprintf("%d", tempo);
  57.   gotoxy(60,4);
  58.   textcolor(15); cprintf("Oktawa: ");  textcolor(14); cprintf("%c", oktawa);
  59.   gotoxy(1, 16);
  60.   gotoxy(60,5);
  61.   textcolor(15); cprintf("Grany dzwiek: ");textcolor(13); cprintf("%c", dzwiek);
  62.   gotoxy(1, 16);
  63. //  textcolor(15); cprintf("Aby zobaczyc pomoc wcisnij: "); textcolor(14); cprintf("F1");
  64.   key = getch();
  65.   gotoxy(60, 6);
  66.   printf("                 ");
  67.  
  68.   switch(key)
  69.         {
  70.         case 122:
  71.                         {
  72.                         Beep(C * Hz, tempo);
  73.                         dzwiek = 'C';
  74.                         break;
  75.                         }
  76.         case 115:
  77.                         {
  78.                         Beep(Cis * Hz, tempo);
  79.                         dzwiek = 'C';
  80.                         break;
  81.                         }
  82.         case 120:
  83.                         {
  84.                         Beep(D * Hz, tempo);
  85.                         dzwiek = 'D';
  86.                         break;
  87.                         }
  88.         case 100:
  89.                         {
  90.                         Beep(Dis * Hz, tempo);
  91.                         dzwiek = 'D';
  92.                         break;
  93.                         }
  94.         case 99:
  95.                         {
  96.                         Beep(E * Hz, tempo);
  97.                         dzwiek = 'E';
  98.                         break;
  99.                         }
  100.         case 118:
  101.                         {
  102.                         Beep(F * Hz, tempo);
  103.                         dzwiek = 'F';
  104.                         break;
  105.                         }
  106.         case 103:
  107.                         {
  108.                         Beep(Fis * Hz, tempo);
  109.                         dzwiek = 'F';
  110.                         break;
  111.                         }
  112.         case 98:
  113.                         {
  114.                         Beep(G * Hz, tempo);
  115.                         dzwiek = 'G';
  116.                         break;
  117.                         }
  118.         case 104:
  119.                         {
  120.                         Beep(Gis * Hz, tempo);
  121.                         dzwiek = 'G';
  122.                         break;
  123.                         }
  124.         case 110:
  125.                         {
  126.                         Beep(A * Hz, tempo);
  127.                         dzwiek = 'A';
  128.                         break;
  129.                         }
  130.         case 106:
  131.                         {
  132.                         Beep(B * Hz, tempo);
  133.                         dzwiek = 'B';
  134.                         break;
  135.                         }
  136.         case 109:
  137.                         {
  138.                         Beep(H * Hz, tempo);
  139.                         dzwiek = 'H';
  140.                         break;
  141.                         }
  142.         case 44:
  143.                         {
  144.                         Beep(C2 * Hz, tempo);
  145.                         dzwiek = 'C';
  146.                         break;
  147.                         }
  148.         case 9:
  149.                         {
  150.                         gotoxy(67, 3);
  151.                         printf("         ");
  152.                         gotoxy(67, 3);
  153.                         scanf("%d", &tempo);
  154.                         break;
  155.                         }
  156.         case 49:
  157.                         {
  158.                         Hz = 1;
  159.                         oktawa = 'S';
  160.                         break;
  161.                         }
  162.         case 50:
  163.                         {
  164.                         Hz = 2;
  165.                         oktawa = 'K';
  166.                         break;
  167.                         }
  168.         case 51:
  169.                         {
  170.                         Hz = 4;
  171.                         oktawa = 'W';
  172.                         break;
  173.                         }
  174.         case 52:
  175.                         {
  176.                         Hz = 8;
  177.                         oktawa = 'M';
  178.                         break;
  179.                         }
  180.         case 53:
  181.                         {
  182.                         Hz = 16;
  183.                         oktawa = 'R';
  184.                         break;
  185.                         }
  186.         case 54:
  187.                         {
  188.                         Hz = 32;
  189.                         oktawa = 'D';
  190.                         break;
  191.                         }
  192.         case 55:
  193.                         {
  194.                         Hz = 64;
  195.                         oktawa = 'T';
  196.                         break;
  197.                         }
  198.         case 56:
  199.                         {
  200.                         Hz = 128;
  201.                         oktawa = 'C';
  202.                         break;
  203.                         }
  204.         case 57:
  205.                         {
  206.                         Hz = 256;
  207.                         oktawa = 'P';
  208.                         break;
  209.                         }
  210.         case 48:
  211.                         {
  212.                         Hz = 512;
  213.                         oktawa = 'S';
  214.                         break;
  215.                         }
  216.        case 96:
  217.                         {
  218.                         oktawy();
  219.                         break;
  220.                         }
  221.         case 59:
  222.                         {
  223.                         pomoc();
  224.                         break;
  225.                         }
  226.         default:
  227.                         {
  228.                         gotoxy(60, 6);
  229.                         textcolor(11);
  230.                         cprintf("Niewlasciwy wybor");
  231.                         break;
  232.                         }
  233.  
  234.         }
  235.  
  236.   }while(key!='q');
  237. getch();
  238. }
  239. //-----------void graj---------------//
  240.  
  241. void keyboard::pomoc()
  242. {
  243. gotoxy(1, 16);
  244. textcolor(15); cprintf("Aby zmienic tempo wcisnij: ");textcolor(14); cprintf("TAB");
  245. gotoxy(1, 17);
  246. textcolor(15); cprintf("Aby zmienic oktawe wcisnij: ");textcolor(14); cprintf("TYLDA");
  247. gotoxy(1, 18);
  248. textcolor(13); cprintf("Badz, ");
  249. gotoxy(1, 19);
  250. textcolor(15); cprintf("Wcisnij jeden z klawiszy: ");
  251. gotoxy(1, 20);
  252. textcolor(14); cprintf("1 - Subkontra");
  253. gotoxy(20, 20);
  254. cprintf("2 - Kontra");
  255. gotoxy(1, 21);
  256. cprintf("3 - Wielka");
  257. gotoxy(20, 21);
  258. cprintf("4 - Mala");
  259. gotoxy(1, 22);
  260. cprintf("5 - Razkreslna");
  261. gotoxy(20, 22);
  262. cprintf("6 - Dwukreslna");
  263. gotoxy(1, 23);
  264. cprintf("7 - Trzykreslna");
  265. gotoxy(20, 23);
  266. cprintf("8 - Czterokreslna");
  267. gotoxy(1, 24);
  268. cprintf("9 - Pieciokreslna");
  269. gotoxy(20, 24);
  270. cprintf("0 - Szesckreslna");
  271. }
  272. void keyboard::menu()
  273. {
  274. clrscr();
  275. gotoxy(1,1);
  276. textcolor(12);
  277. textbackground(3);
  278. cprintf("       VIRTUAL KEYBOARD                                                         ");
  279. textbackground(0);
  280. gotoxy(1,3);
  281. textcolor(15); cprintf("Co chcesz zrobic: ");
  282. gotoxy(1, 4);
  283. textcolor(14); cprintf("* G - Grac na Instrumencie");
  284. gotoxy(1, 5);
  285. textcolor(14); cprintf("* P - Posluchac Utworow");
  286. gotoxy(1,6);
  287. textcolor(14); cprintf("* Q - Wylaczyc Program");
  288. gotoxy(1, 7);
  289. printf(": ");
  290. scanf("%c", &wybor);
  291. switch(wybor)
  292.         {
  293.         case 'g':
  294.         case 'G':
  295.                 {
  296.                 graj();
  297.                 break;
  298.                 }
  299.         case 'p':
  300.         case 'P':
  301.                 {
  302.                 gotoxy(1, 9);
  303.                 textcolor(15);cprintf("Co chcesz zagrac: ");
  304.                 gotoxy(1, 10);
  305.                 textcolor(14);cprintf("*S - Sweet Child 'O Mine");
  306.                 gotoxy(1, 11);
  307.                 textcolor(14);cprintf("*K - Wlazl Kotek na Plotek");
  308.                 gotoxy(1, 12);
  309.                 printf(": ");
  310.  
  311.                 scanf("%c", &wybor);
  312.                 scanf("%c", &wybor);
  313.                 utwory();
  314.                 break;
  315.                 }
  316.         }
  317.  
  318.  
  319. }
  320. //-------------void menu------------//
  321.  
  322.  
  323. void keyboard::oktawy()
  324. {
  325. Hz = 0;
  326. gotoxy(68, 4);
  327. printf("           ");
  328. gotoxy(68,4);
  329. scanf("%c", &oktawa);
  330. scanf("%c", &oktawa);
  331. textbackground(16);
  332. switch(oktawa)
  333.         {
  334.         case 'sk':
  335.         case 'SK':
  336.         case 'Sk':
  337.         case 'sK':
  338.                 {
  339.                 Hz = 1;
  340.  
  341.                 break;
  342.                 }
  343.         case 'k':
  344.         case 'K':
  345.                 {
  346.                 Hz = 2;
  347.                 break;
  348.                 }
  349.         case  'w':
  350.         case  'W':
  351.                 {
  352.                 Hz = 4;
  353.  
  354.                 break;
  355.                 }
  356.         case  'm':
  357.         case  'M':
  358.                 {
  359.                 Hz = 8;
  360.  
  361.                 break;
  362.                 }
  363.         case  'r':
  364.         case  'R':
  365.                 {
  366.                 Hz = 16;
  367.  
  368.                 break;
  369.                 }
  370.         case  'd':
  371.         case  'D':
  372.                 {
  373.                 Hz = 32;
  374.  
  375.                 break;
  376.                 }
  377.         case  't':
  378.         case  'T':
  379.                 {
  380.                 Hz = 64;
  381.  
  382.                 break;
  383.                 }
  384.         case  'c':
  385.         case  'C':
  386.                 {
  387.                 Hz = 128;
  388.  
  389.                 break;
  390.                 }
  391.         case  'p':
  392.         case  'P':
  393.                 {
  394.                 Hz = 256;
  395.  
  396.                 break;
  397.                 }
  398.         case  's':
  399.         case  'S':
  400.                 {
  401.                 Hz = 512;
  402.  
  403.                 break;
  404.                 }
  405.         default :
  406.                 {
  407.                 menu();
  408.                 break;
  409.                 }
  410.         }
  411. }
  412.  
  413.  
  414. void keyboard::utwory()
  415. {
  416. switch(wybor)
  417.   {
  418.         case 's':
  419.         case 'S':
  420.                 {
  421.                 for(int i=1; i<=1;i++)
  422.                   {
  423.                   for(int i =1 ; i<=2; i++)
  424.                     {
  425.                     Beep(32* 18.35625, 230);
  426.                     Beep(64*18.35625, 230);
  427.                     Beep(32* 27.5, 230);
  428.                     Beep(32* 24.5, 230);
  429.                     Beep(128* 24.5, 230);
  430.                     Beep(128* 17.325, 230);
  431.                     Beep(128* 23.125, 230);
  432.                     Beep(128* 17.325, 230);
  433.                     }
  434.                   for(int i=1;i<=2;i++)
  435.                     {
  436.                     Beep(32* 27.5, 230);
  437.                     Beep(64*18.35625, 230);
  438.                     Beep(32* 27.5, 230);
  439.                     Beep(32* 24.5, 230);
  440.                     Beep(128* 24.5, 230);
  441.                     Beep(128* 17.325, 230);
  442.                     Beep(128* 23.125, 230);
  443.                     Beep(128* 17.325, 230);
  444.                     }
  445.                   for(int i=1;i<=2;i++)
  446.                     {
  447.                     Beep(128* 18.35625, 230);
  448.                     Beep(64*18.35625, 230);
  449.                     Beep(32* 27.5, 230);
  450.                     Beep(32* 24.5, 230);
  451.                     Beep(128* 24.5, 230);
  452.                     Beep(128* 17.325, 230);
  453.                     Beep(128* 23.125, 230);
  454.                     Beep(128* 17.325, 230);
  455.                     }
  456.                   for(int i =1 ; i<=2; i++)
  457.                     {
  458.                     Beep(32* 18.35625, 230);
  459.                     Beep(64*18.35625, 230);
  460.                     Beep(32* 27.5, 230);
  461.                     Beep(32* 24.5, 230);
  462.                     Beep(128* 24.5, 230);
  463.                     Beep(128* 17.325, 230);
  464.                     Beep(128* 23.125, 230);
  465.                     Beep(128* 17.325, 230);
  466.                     }
  467.                   }
  468.                 for(int i =1 ; i<=2; i++)
  469.                   {
  470.                   Beep(32* 18.35625, 230);
  471.                   Beep(64*18.35625, 230);
  472.                   Beep(32* 27.5, 230);
  473.                   Beep(32* 24.5, 230);
  474.                   Beep(128* 24.5, 230);
  475.                   Beep(128* 17.325, 230);
  476.                   Beep(128* 23.125, 230);
  477.                   Beep(128* 17.325, 230);
  478.                   }
  479.                 for(int i=1;i<=2;i++)
  480.                   {
  481.                   Beep(32* 27.5, 230);
  482.                   Beep(64*18.35625, 230);
  483.                   Beep(32* 27.5, 230);
  484.                   Beep(32* 24.5, 230);
  485.                   Beep(128* 24.5, 230);
  486.                   Beep(128* 17.325, 230);
  487.                   Beep(128* 23.125, 230);
  488.                   Beep(128* 17.325, 230);
  489.                   }
  490.                 for(int i=1;i<=2;i++)
  491.                   {
  492.                   Beep(128* 18.35625, 230);
  493.                   Beep(64*18.35625, 230);
  494.                   Beep(32* 27.5, 230);
  495.                   Beep(32* 24.5, 230);
  496.                   Beep(128* 24.5, 230);
  497.                   Beep(128* 17.325, 230);
  498.                   Beep(128* 23.125, 230);
  499.                   Beep(128* 17.325, 230);
  500.                   }
  501.                 Beep(128* 20.6, 230);
  502.                 Beep(32* 27.5, 230);
  503.                 Beep(64* 18.35625, 230);
  504.                 Beep(32* 27.5, 230);
  505.                 Beep(128* 20.6, 230);
  506.                 Beep(32* 27.5, 230);
  507.                 Beep(128* 23.125, 230);
  508.                 Beep(32* 27.5, 230);
  509.                 Beep(128* 24.5, 230);
  510.                 Beep(32* 27.5, 230);
  511.                 Beep(128* 23.125, 230);
  512.                 Beep(32* 20.6, 230);
  513.                 Beep(128* 20.6, 230);
  514.                 Beep(32* 27.5, 230);
  515.                 Beep(64* 18.35625 , 230);
  516.                 Beep(32* 27.5, 230);
  517.                 Beep(64 * 18.35625, 230);
  518.                 menu();
  519.                 break;
  520.                 }
  521.         case 'k':
  522.         case 'K':
  523.                 {
  524.                 Beep(32 * 24.5, 400);
  525.                 Beep(32* 20.6, 400);
  526.                 Beep(32* 20.6, 400);
  527.                 Beep(32* 21.825, 400);
  528.                 Beep(32* 18.35625, 400);
  529.                 Beep(32* 18.35625, 400);
  530.                 Beep(32* 16.35, 200);
  531.                 Beep(32* 20.6, 200);
  532.                 Beep(32* 24.5, 200);
  533.                 Beep(20, 1000);
  534.                 Beep(32* 16.35, 200);
  535.                 Beep(32* 20.6, 200);
  536.                 Beep(32* 24.5, 200);
  537.                 Beep(20, 1000);
  538.                 Beep(32 * 24.5, 400);
  539.                 Beep(32* 20.6, 400);
  540.                 Beep(32* 20.6, 400);
  541.                 Beep(32* 21.825, 400);
  542.                 Beep(32* 18.35625, 400);
  543.                 Beep(32* 18.35625, 400);
  544.                 Beep(32* 16.35, 200);
  545.                 Beep(32* 20.6, 200);
  546.                 Beep(32* 16.35, 200);
  547.                 menu();
  548.                 break;
  549.                 }
  550.   }
  551. menu();
  552. menu();
  553. menu();
  554. }
  555. void keyboard::rysuj()
  556. {
  557. clrscr();
  558. gotoxy(1,1);
  559. textcolor(12);
  560. textbackground(3);
  561. cprintf("       VIRTUAL KEYBOARD                                                         ");
  562. printf(" _______________________________________________________\n");
  563. printf("|     |   |   |   |     |     |   |   |   |   |   | |\n");
  564. printf("|     |   |   |   |     |     |   |   |   |   |   | |\n");
  565. printf("|     |   |   |   |     |     |   |   |   |   |   | |\n");
  566. printf("|     |   |   |   |     |     |   |   |   |   |   | |\n");
  567. printf("|     | S |   | D |     |     | G |   | H |   | J | |\n");
  568. printf("|     |   |   |   |     |     |   |   |   |   |   | |\n");
  569. printf("|     |___|   |___|     |     |___|   |___|   |___| |\n");
  570. printf("|   |   |   |   |   |   |   |\n");
  571. printf("|       |   |   |   |   |   |   |\n");
  572. printf("|   Z   |   X   |   V   |   B   |   N   |   M   |   <   |\n");
  573. printf("|   |   |   |   |   |   |   |\n");
  574. printf("|_______|_______|_______|_______|_______|_______|_______|\n");
  575. textbackground(16);
  576. }
  577. //-----------void rysuj--------------//
  578.  
  579.  
  580.  
  581. int main()
  582. {
  583.   //------------------OKNO STARTOWE-------------------------//
  584. char znaki[40]="-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/";
  585. gotoxy(26,2);
  586. textcolor(8);
  587. cprintf("\n       VIRTUAL KEYBOARD");
  588. gotoxy(27.5,10);
  589. textcolor(3);
  590. cprintf("\nWykonanie: Patryk Gliszczynski\n");
  591. gotoxy(20, 16);
  592. printf("|__________________________________________|");
  593. gotoxy(20,17);
  594. printf("|                                          |");
  595. for(int i=0;i<20;i++)
  596.   {
  597.   gotoxy(30.5,13);
  598.   textcolor(3);
  599.   cprintf("     Loading... %c",znaki[i]);
  600.   Sleep(100);
  601.   }
  602. keyboard instrument;
  603. instrument.menu();
  604. }
  605.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement