Advertisement
agusbd

dinamyc structur dengan vector

Mar 18th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string.h>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. struct data{
  9.     int no,
  10.         umur;
  11.     char nama[30],
  12.          penyakit[30];
  13.   };
  14.  
  15. vector <data>  mhs;
  16.  
  17. void searching();
  18. void menu();
  19. void input();
  20. void tampil();
  21. void cari_string(char nama[],vector<int> lokasi);
  22. void cari_no(int, vector<int>);
  23.  
  24. int main (){
  25.     menu();
  26.     getch();
  27. }
  28.  
  29.  
  30. void menu(){
  31.     int pilih;
  32.     char yn;
  33.     do{
  34.     cout<<"MENU"<<endl;
  35.     cout<<"1. Input  "<<endl;
  36.     cout<<"2. Pencarian data  "<<endl;
  37.     cout<<"3. Output"<<endl;
  38.     cout<<"4. exit "<<endl;
  39.     cout<<"masukan pilihan : ";
  40.     cin>>pilih;
  41.     switch(pilih){
  42.     case 1:
  43.         input();
  44.         cout<<"kembali ? <y/n> ";cin>>yn;
  45.     break;
  46.     case 2:
  47.         searching();
  48.         cout<<"kembali ? <y/n> ";cin>>yn;
  49.     break;
  50.     case 3:
  51.         tampil();
  52.         cout<<"kembali ? <y/n> ";cin>>yn;
  53.     break;
  54.     case 4:
  55.         yn='n';
  56.     break;
  57.       }
  58.    } while(yn=='y');
  59. }
  60.  
  61. void input(){
  62.     data input;
  63.     char yn;
  64.     do{
  65.             cout<<"masukan nomor : ";cin>>input.no;
  66.             cout<<"masukan umur  : ";cin>>input.umur;
  67.             cin.ignore();
  68.             cout<<"masukan nama  : ";cin>>input.nama;
  69.             cin.ignore();
  70.             cout<<"penyakit      : ";cin>>input.penyakit;
  71.             mhs.push_back(input);
  72.             cout<<"masukan data lagi? <y/n> : ";cin>>yn;
  73.     } while(yn=='y');
  74. }
  75.  
  76. void tampil(){
  77.   for(int i = 0;i< mhs.size();i++){
  78.     cout<<mhs[i].no<<" "<<mhs[i].umur<<" "<<mhs[i].nama<<" "<<mhs[i].penyakit<<endl;
  79.   }
  80. }
  81.  
  82.  
  83. void searching(){
  84. char yn;
  85. do{
  86.     vector<int> lokasi;
  87.     lokasi.clear();
  88.     int menu,umur;
  89.     char target[30],penyakit[30];
  90.     cout<<"Pencarian Data"<<endl;
  91.     cout<<"1. Berdasarkan nama     : "<<endl;
  92.     cout<<"2. Berdasarkan umur     : "<<endl;
  93.     cout<<"3. Berdasarkan penyakit : "<<endl;
  94.     cout<<"4. Kembali"<<endl;
  95.     cout<<"masukan pilihan : ";cin>>menu;
  96.     switch(menu){
  97. case 1:
  98.     cout<<"masukan nama : ";
  99.     cin>>target;
  100.     cari_string(target,lokasi);
  101.     cout<<"kembali? <y/n> : ";cin>>yn;
  102.     break;
  103. case 2 :
  104.     cout<<"masukan umur : ";
  105.     cin>>umur;
  106.     cari_no(umur,lokasi);
  107.     cout<<"kembali? <y/n> : ";cin>>yn;
  108. case 3:
  109.     cout<<"masukan nama : ";
  110.     cin>>target;
  111.     cari_string(target,lokasi);
  112.     cout<<"kembali? <y/n> : ";cin>>yn;
  113.     break;
  114. case 4 :
  115.     yn='n';
  116.     break;
  117.     }
  118. }
  119. while(yn=='y');
  120. }
  121.  
  122. void cari_string(char x[],vector<int> lokasi){
  123.      bool ketemu;
  124.     for( int i =0; i< mhs.size();i++){
  125.         if(strncmp(strlwr(x),strlwr(mhs[i].nama),sizeof(x))==0){
  126.             ketemu = true;
  127.             lokasi.push_back(i);
  128.         }
  129.     }
  130.     if(ketemu){
  131.         cout<<"ketemu sebanyak "<<lokasi.size()<<endl;
  132.         for(int i=0;i<lokasi.size();i++){
  133.             cout<<mhs[lokasi[i]].no<<" "<<mhs[lokasi[i]].nama<<" "<<mhs[lokasi[i]].umur<<" "<<mhs[lokasi[i]].penyakit<<endl;
  134.         }
  135.     }
  136.     else{
  137.         cout<<"gak ada";
  138.     }
  139. }
  140.  
  141. void cari_no(int x,vector<int> lokasi){
  142.      bool ketemu;
  143.     for( int i =0; i< mhs.size();i++){
  144.         if(x == mhs[i].no ){
  145.             ketemu = true;
  146.             lokasi.push_back(i);
  147.         }
  148.     }
  149.     if(ketemu){
  150.         cout<<"ketemu sebanyak "<<lokasi.size()<<endl;
  151.         for(int i=0;i<lokasi.size();i++){
  152.             cout<<mhs[lokasi[i]].no<<" "<<mhs[lokasi[i]].nama<<" "<<mhs[lokasi[i]].umur<<" "<<mhs[lokasi[i]].penyakit<<endl;
  153.         }
  154.     }
  155.     else{
  156.         cout<<"gak ada";
  157.     }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement