Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- #include<time.h>
- #define abc cin.sync();cin.clear();
- using namespace std;
- class brg{
- protected:
- string tujuan;
- string barang;
- int berat;
- public:
- void setData(string a,string b, int c){
- tujuan=a;
- barang=b;
- berat=c;
- }
- int getBerat(){
- return berat;
- }
- string getTujuan(){
- return tujuan;
- }
- string getBarang(){
- return barang;
- }
- };
- class domestic:public brg{
- private :
- string cD;//code domestic
- public :
- void setCD(string a,string b){
- char x;
- srand(time(NULL));
- x=rand()%9+48;
- cD=a.substr(0,3)+"-"+b.substr(0,2)+"-DM"+x;
- x=rand()%9+48;
- cD+=x;
- }
- string getCD(){
- return cD;
- }
- ~domestic(){
- cD="";
- tujuan="";
- barang="";
- berat=0;
- }
- };
- class international:public brg{
- private :
- string cI;//code domestic
- public :
- void setCI(string a,string b){
- char x;
- srand(time(NULL));
- x=rand()%9+48;
- cI=a.substr(0,3)+"-"+b.substr(0,2)+"-IT"+x;
- cI+=x;
- }
- string getCI(){
- return cI;
- }
- ~international(){
- cI="";
- tujuan="";
- barang="";
- berat=0;
- }
- };
- void e(){
- system("cls");
- for(int i=0;i<25;i++)
- cout<<endl;
- }
- void view(domestic a[],international b[],int c, int d){
- e();
- cout<<"BARANG DOMESTIK"<<endl<<"No. | Barang | Tujuan | Berat | KODE |"<<endl<<"======================================================="<<endl;
- int i=0;
- if(c!=0){
- while(i<c){
- cout<<i+1<<" | "<<a[i].getBarang()<<" | "<<a[i].getTujuan()<<" | "<<a[i].getBerat()<<" | "<<a[i].getCD()<<" | "<<endl;
- i++;
- }
- }
- else
- cout<<"Tidak ada barang Domestik"<<endl;
- cout<<endl<<"BARANG INTERNATIONAL"<<endl<<"No. | Barang | Tujuan | Berat | KODE |"<<endl<<"======================================================="<<endl;
- i=0;
- if(d!=0){
- while(i<d){
- cout<<i+1<<" | "<<b[i].getBarang()<<" | "<<b[i].getTujuan()<<" | "<<b[i].getBerat()<<" | "<<b[i].getCI()<<" | "<<endl;
- i++;
- }
- }
- else
- cout<<"Tidak ada barang international"<<endl;
- }
- void menu(int cd,int cI){
- e();
- int countD,countI;
- static domestic dom[10];
- static international itr[10];
- countD=cd;
- countI=cI;
- cout<<"MAIN MENU"<<endl<<"====================================="<<endl<<endl;
- cout<<"1. Registrasi barang "<<endl
- <<"2. View Barang "<<endl
- <<"3. Delete Barang"<<endl
- <<"4. EXIT"<<endl;
- cout<<"Masukan Input : ";
- int answer;
- cin>>answer;abc;
- switch(answer){
- case 1:{
- e();
- string a,b,c;
- int d=100;
- while(a!="DMS"&&a!="INT"){
- cout<<"Kategori Barang [DMS/INT] : ";
- getline(cin,a);abc;
- }
- while(c.length()<5||c.length()>20){
- cout<<"Masukan Nama Barang [5...20]: ";
- getline(cin,c);abc;
- }
- while(b.length()<5||b.length()>20){
- cout<<"Masukan Nama Tujuan [5...20]: ";
- getline(cin,b);abc;
- }
- while(d<0||d>20){
- cout<<"Masukan Berat Barang [0..20]: ";
- cin>>d;abc;
- }
- if(a=="DMS"){
- dom[countD].setData(b,c,d);
- dom[countD].setCD(b,c);
- countD++;
- }
- else if(a=="INT"){
- itr[countI].setData(b,c,d);
- itr[countI].setCI(b,c);
- countI++;
- }
- }
- menu(countD,countI);
- break;
- case 2:
- view(dom,itr,countD,countI);
- cin.get();
- menu(countD,countI);
- break;
- case 3:
- {
- e();
- int flag1=-1;
- int flag2=-1;
- if(countD!=0||countI!=0){view(dom,itr,countD,countI);
- string code;
- do{
- cout<<endl<<"Masukan Code Barang : ";
- getline(cin,code);
- int x=0;
- do{
- if(dom[x].getCD()==code){
- flag1=x;
- break;
- }
- x++;
- }while(x<countD);
- x=0;
- do{
- if(itr[x].getCI()==code){
- flag2=x;
- break;
- }
- x++;
- }while(x<countI);
- }while(flag1==-1&&flag2==-1);
- if(flag1!=-1){
- domestic temp;
- do{
- temp=dom[flag1];
- dom[flag1]=dom[flag1+1];
- dom[flag1+1]=temp;
- flag1++;
- }while(flag1<countD);
- dom[countD].~domestic();
- countD--;
- }
- else if(flag2!=-1){
- international temp;
- do{
- temp=itr[flag2];
- itr[flag2]=itr[flag2+1];
- itr[flag2+1]=temp;
- flag2++;
- }while(flag2<countD);
- itr[countI].~international();
- countI--;
- }
- cout<<"Sukses Hapus Data";
- }
- else
- cout<<"Belum Ada Data";
- }
- cin.get();
- menu(countD,countI);
- break;
- case 4:
- break;
- default:
- menu(countD,countI);
- break;
- }
- }
- int main(){
- menu(0,0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement