Advertisement
Guest User

Untitled

a guest
May 20th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement