Advertisement
akevintg

(MATERIAL REVIEW) UAP II

Jun 11th, 2014
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.25 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. #include<time.h>
  4. #define abc cin.sync();cin.clear();
  5.  
  6. using namespace std;
  7.  
  8. class brg{
  9. protected:
  10.     string tujuan;
  11.     string barang;
  12.     int berat;
  13. public:
  14.     void setData(string a,string b, int c){
  15.         tujuan=a;
  16.         barang=b;
  17.         berat=c;
  18.     }
  19.     int getBerat(){
  20.         return berat;
  21.     }
  22.     string getTujuan(){
  23.         return tujuan;
  24.     }
  25.     string getBarang(){
  26.         return barang;
  27.     }
  28. };
  29.  
  30. class domestic:public brg{
  31. private :
  32.     string cD;//code domestic
  33. public :
  34.     void setCD(string a,string b){
  35.         char x;
  36.         srand(time(NULL));
  37.         x=rand()%9+48;
  38.         cD=a.substr(0,3)+"-"+b.substr(0,2)+"-DM"+x;
  39.         x=rand()%9+48;
  40.         cD+=x;
  41.     }
  42.     string getCD(){
  43.         return cD;
  44.     }
  45.     ~domestic(){
  46.         cD="";
  47.         tujuan="";
  48.         barang="";
  49.         berat=0;
  50.     }
  51. };
  52.  
  53. class international:public brg{
  54. private :
  55.     string cI;//code domestic
  56. public :
  57.     void setCI(string a,string b){
  58.         char x;
  59.         srand(time(NULL));
  60.         x=rand()%9+48;
  61.         cI=a.substr(0,3)+"-"+b.substr(0,2)+"-IT"+x;
  62.         cI+=x;
  63.     }
  64.     string getCI(){
  65.         return cI;
  66.     }
  67.     ~international(){
  68.         cI="";
  69.         tujuan="";
  70.         barang="";
  71.         berat=0;
  72.     }
  73. };
  74.  
  75. void e(){
  76.     system("cls");
  77.     for(int i=0;i<25;i++)
  78.         cout<<endl;
  79. }
  80.  
  81. void view(domestic a[],international b[],int c, int d){
  82.     e();
  83.     cout<<"BARANG DOMESTIK"<<endl<<"No. | Barang | Tujuan | Berat | KODE |"<<endl<<"======================================================="<<endl;
  84.     int i=0;
  85.     if(c!=0){
  86.         while(i<c){
  87.             cout<<i+1<<" | "<<a[i].getBarang()<<" | "<<a[i].getTujuan()<<" | "<<a[i].getBerat()<<" | "<<a[i].getCD()<<" | "<<endl;
  88.             i++;
  89.         }
  90.     }
  91.     else
  92.         cout<<"Tidak ada barang Domestik"<<endl;
  93.     cout<<endl<<"BARANG INTERNATIONAL"<<endl<<"No. | Barang | Tujuan | Berat | KODE |"<<endl<<"======================================================="<<endl;
  94.     i=0;
  95.     if(d!=0){
  96.         while(i<d){
  97.             cout<<i+1<<" | "<<b[i].getBarang()<<" | "<<b[i].getTujuan()<<" | "<<b[i].getBerat()<<" | "<<b[i].getCI()<<" | "<<endl;
  98.             i++;
  99.         }
  100.     }
  101.     else
  102.         cout<<"Tidak ada barang international"<<endl;
  103. }
  104.  
  105. void menu(int cd,int cI){
  106.     e();
  107.     int countD,countI;
  108.     static domestic dom[10];
  109.     static international itr[10];
  110.     countD=cd;
  111.     countI=cI;
  112.     cout<<"MAIN MENU"<<endl<<"====================================="<<endl<<endl;
  113.     cout<<"1. Registrasi barang "<<endl
  114.         <<"2. View Barang "<<endl
  115.         <<"3. Delete Barang"<<endl
  116.         <<"4. EXIT"<<endl;
  117.     cout<<"Masukan Input : ";
  118.     int answer;
  119.     cin>>answer;abc;
  120.     switch(answer){
  121.     case 1:{
  122.         e();
  123.         string a,b,c;
  124.         int d=100;
  125.         while(a!="DMS"&&a!="INT"){
  126.             cout<<"Kategori Barang [DMS/INT] : ";
  127.             getline(cin,a);abc;
  128.         }
  129.         while(c.length()<5||c.length()>20){
  130.             cout<<"Masukan Nama Barang [5...20]: ";
  131.             getline(cin,c);abc;
  132.         }
  133.         while(b.length()<5||b.length()>20){
  134.             cout<<"Masukan Nama Tujuan [5...20]: ";
  135.             getline(cin,b);abc;
  136.         }
  137.         while(d<0||d>20){  
  138.             cout<<"Masukan Berat Barang [0..20]: ";
  139.             cin>>d;abc;
  140.         }
  141.         if(a=="DMS"){
  142.             dom[countD].setData(b,c,d);
  143.             dom[countD].setCD(b,c);
  144.             countD++;
  145.         }
  146.         else if(a=="INT"){
  147.             itr[countI].setData(b,c,d);
  148.             itr[countI].setCI(b,c);
  149.             countI++;
  150.         }
  151.         }
  152.        
  153.         menu(countD,countI);
  154.         break;
  155.     case 2:
  156.         view(dom,itr,countD,countI);
  157.         cin.get();
  158.         menu(countD,countI);
  159.         break;
  160.     case 3:
  161.         {
  162.         e();
  163.         int flag1=-1;
  164.         int flag2=-1;
  165.         if(countD!=0||countI!=0){view(dom,itr,countD,countI);
  166.         string code;
  167.         do{
  168.             cout<<endl<<"Masukan Code Barang : ";
  169.             getline(cin,code);
  170.             int x=0;
  171.             do{
  172.                 if(dom[x].getCD()==code){
  173.                     flag1=x;
  174.                     break;
  175.                 }
  176.                 x++;
  177.             }while(x<countD);
  178.             x=0;
  179.             do{
  180.                 if(itr[x].getCI()==code){
  181.                     flag2=x;
  182.                     break;
  183.                 }
  184.                 x++;
  185.             }while(x<countI);
  186.         }while(flag1==-1&&flag2==-1);
  187.         if(flag1!=-1){
  188.             domestic temp;
  189.             do{
  190.                 temp=dom[flag1];
  191.                 dom[flag1]=dom[flag1+1];
  192.                 dom[flag1+1]=temp;
  193.                 flag1++;
  194.             }while(flag1<countD);
  195.             dom[countD].~domestic();
  196.             countD--;
  197.         }
  198.         else if(flag2!=-1){
  199.             international temp;
  200.             do{
  201.                 temp=itr[flag2];
  202.                 itr[flag2]=itr[flag2+1];
  203.                 itr[flag2+1]=temp;
  204.                 flag2++;
  205.             }while(flag2<countD);
  206.             itr[countI].~international();
  207.             countI--;
  208.         }
  209.         cout<<"Sukses Hapus Data";
  210.         }
  211.         else
  212.             cout<<"Belum Ada Data";
  213.         }
  214.         cin.get();
  215.         menu(countD,countI);
  216.         break;
  217.     case 4:
  218.         break;
  219.     default:
  220.         menu(countD,countI);
  221.         break;
  222.     }
  223. }
  224.  
  225. int main(){
  226.     menu(0,0);
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement