SHARE
TWEET

Untitled

a guest May 20th, 2019 104 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <math.h>
  5. #include <cstdlib>
  6. using namespace std;
  7. const float PI=3.4;
  8. struct SPiwo{
  9.   float  h;
  10.   float r;
  11.   string marka;
  12. };
  13. struct SKarton{
  14.   SPiwo* piwa;
  15.   unsigned kod;
  16.   unsigned ile_piw;
  17. };
  18. SPiwo* wczytaj_piwa(istream& fin,unsigned& n)
  19. {
  20.   SPiwo* piwa=0;
  21.   fin>>n;
  22.   if(n>0){
  23.     piwa=new SPiwo[n];
  24.     for(unsigned i=0;i<n;i++){
  25.       fin>>piwa[i].h>>piwa[i].r>>piwa[i].marka;
  26.       if(!fin.good()){
  27.     delete [] piwa;
  28.     piwa=0;
  29.     fin.clear();
  30.     exit(EXIT_FAILURE);
  31.       }
  32.     }
  33.   }
  34.   return piwa;
  35. }
  36. void pakuj_karton(SKarton& kartonik,SPiwo* piwo,const unsigned n){
  37.   static unsigned kod=1;
  38.   kartonik.kod=kod;
  39.   kartonik.ile_piw=n;
  40.   if(kartonik.ile_piw>0){
  41.     kartonik.piwa=new SPiwo[kartonik.ile_piw];
  42.     for(unsigned i=0;i<kartonik.ile_piw;i++){
  43.       kartonik.piwa[i].h=piwo[i].h;
  44.       kartonik.piwa[i].r=piwo[i].r;
  45.       kartonik.piwa[i].marka=piwo[i].marka;
  46.     }
  47.   }
  48.  
  49. }
  50.  
  51. void wypisz(SKarton& kartonik){
  52.   cout<<"Ilosc piw: "<<kartonik.ile_piw<<endl<<"Kod kartonu: "<<kartonik.kod;
  53. }
  54. void wypiszwszystko(SKarton& kartonik){
  55.   if(kartonik.ile_piw>0){
  56.     for(unsigned i=0;i<kartonik.ile_piw;i++){
  57.       cout<<kartonik.piwa[i].r<<"\t"<<kartonik.piwa[i].h<<"\t"<<kartonik.piwa[i].marka<<endl;
  58.     }
  59.   }
  60. }
  61. float objetoscPiwa(const SPiwo& piwo){
  62.   return (PI*piwo.r*piwo.r*piwo.h);
  63. }
  64. void BubbleSort(SKarton& kartonik){
  65.   for(unsigned i=0;i<kartonik.ile_piw;i++){
  66.     for(unsigned j=0;j<kartonik.ile_piw-1;j++){
  67.       if(kartonik.piwa[j].r>kartonik.piwa[j+1].r){
  68.     swap(kartonik.piwa[j],kartonik.piwa[j+1]);
  69.       }
  70.     }
  71.   }
  72. }
  73. float maxh(SKarton& kartonik){
  74.     float maks=kartonik.piwa[0].h;
  75.     for(unsigned i=0;i<kartonik.ile_piw;i++){
  76.       if(kartonik.piwa[i].h>maks){
  77.     maks=kartonik.piwa[i].h;
  78.       }
  79.     }
  80.     return maks;
  81. }
  82. float objetosckartonu(SKarton& kartonik){
  83.    float Vx=0;
  84.    for(unsigned i=0;i<kartonik.ile_piw;i++){
  85.      Vx=Vx+objetoscPiwa(kartonik.piwa[i]);
  86.    }
  87.    return Vx;
  88.  }
  89. int main(){
  90.   unsigned n=0;
  91.   SKarton kartonik={0,0,0};
  92.   SPiwo *piwka;
  93.   ifstream fin;
  94.   fin.open("karton.txt");
  95.   if(!fin.good()){
  96.     cerr<<"Blad otwarcia pliku!";
  97.   }
  98.   piwka=wczytaj_piwa(fin,n);
  99.   pakuj_karton(kartonik,piwka,n);
  100.   wypisz(kartonik);
  101.   cout<<endl;
  102.   wypiszwszystko(kartonik);
  103.   cout<<endl;
  104.   cout<<"Objetosc piwa wynosi: "<<objetoscPiwa(kartonik.piwa[2])<<endl;
  105.   fin.close();
  106.   cout<<"Posortowane: "<<endl;
  107.   BubbleSort(kartonik);
  108.   cout<<endl<<endl;
  109.   wypiszwszystko(kartonik);
  110.   cout<<"Wysokosc kartonu wynosi: "<<maxh(kartonik)<<endl;
  111.   cout<<"Objetosc kartonu wynosi: "<<objetosckartonu(kartonik)<<endl;
  112.   if(kartonik.piwa){
  113.     delete [] kartonik.piwa;
  114.   }
  115.   if(piwka){
  116.     delete [] piwka;
  117.     piwka=0;
  118.   }
  119.   return 0;
  120. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top