Advertisement
agusbd

tugas6

Dec 27th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <iomanip>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. const int x=60;
  9. const int y=20;
  10. int jum_titik=0,xx,xy;
  11. int lokasi[6][2];
  12. char kordinat[y][x];
  13. char titik[6]={'A','B','C','D','E','F'};
  14. void isispasi();
  15. void tampil();
  16. void menu();
  17. void tambahtitik(int,int);
  18. void hapustitik(char);
  19. void lihatkordinat();
  20. int cekpos(char);
  21.  
  22.  
  23. int main()
  24. {
  25.  int x,
  26.      a,
  27.      b;
  28.  char name;
  29.      isispasi();
  30. do{
  31. tampil();
  32. menu();
  33. cout<<"\npilih :";
  34. cin>>x;
  35. switch(x)
  36. {
  37. case 1:
  38.     cout<<"masukan x dan y (x,y) : ";
  39.     scanf("%i , %i",&a,&b);
  40.     tambahtitik(a,b);
  41.     break;
  42. case 2:
  43.     cout<<"masukan nama titik :";
  44.     cin>>name;
  45.     hapustitik(name);
  46.  
  47.     break;
  48. case 3:
  49.     isispasi();
  50.     jum_titik=0;
  51.     xx=0;
  52.     xy=0;
  53.     for(int i=0;i<6;i++)
  54.     {
  55.         kordinat[i][0]='\0';
  56.         kordinat[i][1]='\0';
  57.     }
  58.  
  59.     break;
  60. case 4:
  61.     lihatkordinat();
  62.     break;
  63. }
  64. }
  65.  
  66. while(true);
  67.  
  68.  
  69.  
  70. }
  71.  
  72. void isispasi()
  73. {
  74.     for(int i=0;i<y;i++)
  75.     {
  76.         for(int j=0;j<x;j++)
  77.         {
  78.             kordinat[i][j]=' ';
  79.         }
  80.     }
  81.  
  82. }
  83.  
  84. void tampil()
  85. {
  86.     int a=0;
  87.     for(int i=0;i<=y+1;i++)
  88.     {
  89.         if(i<=y){
  90.         for(int j=0;j<x;j++)
  91.         {
  92.             if(j==0)
  93.             {
  94.                 cout<<setw(2)<<y-a;
  95.                 a++;
  96.             }
  97.             else
  98.             {
  99.             cout<<kordinat[i][j];
  100.             }
  101.         }
  102.         cout<<endl;
  103.         }
  104.         else
  105.         {
  106.             cout<<""<<setw(2)<<0;
  107.             for(int k=0;k<=x/3;k++)
  108.             {
  109.               cout<<""<< setw(3)<<k;
  110.             }
  111.             cout<<endl;
  112.         }
  113.     }
  114.  
  115. }
  116.  
  117.  
  118. void menu()
  119. {
  120.     cout<<endl<<endl;
  121.     cout<<""<<setw(30)<<"TUGAS BESAR"<<endl;
  122.     cout<<""<<setw(15)<<"1. Buat titik baru"<<setw(30)<<"3. Hapus semua titik"<<endl;
  123.     cout<<""<<setw(15)<<"2. hapus sebuah titik"<<setw(30)<<"4. lihat kordinat titik"<<endl;
  124.  
  125. }
  126.  
  127. void tambahtitik(int a,int b)
  128. {
  129.     kordinat[y-xx][xy*3]=' ';
  130.     kordinat[y-b][(a+1)*3]=titik[jum_titik];
  131.     lokasi[jum_titik][0]=b;
  132.     xx+=b;
  133.     lokasi[jum_titik][1]=a;
  134.     xy+=a;
  135.     jum_titik++;
  136.     if(jum_titik>1)
  137.     {
  138.         kordinat[y-xx][xy*3]='X';
  139.     }
  140.  
  141. }
  142.  
  143. void lihatkordinat()
  144. {   int num=1;
  145.     for(int i=0;i<jum_titik;i++)
  146.     {
  147.         if(titik[i]!='\0')
  148.         {cout<<num<<". titik "<<titik[i]<<"("<<lokasi[i][0]<<","<<lokasi[i][1]<<")"<<endl;
  149.         num++;
  150.         }
  151.     }
  152.  
  153.  
  154. }
  155.  
  156. void hapustitik(char x)
  157. {
  158.     int pos = cekpos(x);
  159.  
  160.     int a,b;
  161.     a = lokasi[pos][1];
  162.     b = lokasi[pos][0];
  163.     if(pos==-1||kordinat[y-b][(a+1)*3]!=x)
  164.     {
  165.         cout<<"titik tidak ada"<<endl;
  166.     }
  167.     else{
  168.     kordinat[y-xx][xy*3]=' ';
  169.     kordinat[y-b][(a+1)*3]= ' ';
  170.     xx-=b;
  171.     lokasi[jum_titik][1]=a;
  172.     xy-=a;
  173.     jum_titik--;
  174.     if(jum_titik>1)
  175.     {
  176.         kordinat[y-xx][xy*3]='X';
  177.     }
  178.     }
  179.  
  180.  
  181. }
  182.  
  183. int cekpos(char x)
  184. {
  185.     for(int i=0; i<6;i++)
  186.     {
  187.         if(x==titik[i])
  188.             return i;
  189.     }
  190.  
  191.     return -1;
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement