Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <math.h>
- #include <cstdlib>
- using namespace std;
- const float PI=3.4;
- struct SPiwo{
- float h;
- float r;
- string marka;
- };
- struct SKarton{
- SPiwo* piwa;
- unsigned kod;
- unsigned ile_piw;
- };
- SPiwo* wczytaj_piwa(istream& fin,unsigned& n)
- {
- SPiwo* piwa=0;
- fin>>n;
- if(n>0){
- piwa=new SPiwo[n];
- for(unsigned i=0;i<n;i++){
- fin>>piwa[i].h>>piwa[i].r>>piwa[i].marka;
- if(!fin.good()){
- delete [] piwa;
- piwa=0;
- fin.clear();
- exit(EXIT_FAILURE);
- }
- }
- }
- return piwa;
- }
- void pakuj_karton(SKarton& kartonik,SPiwo* piwo,const unsigned n){
- static unsigned kod=1;
- kartonik.kod=kod;
- kartonik.ile_piw=n;
- if(kartonik.ile_piw>0){
- kartonik.piwa=new SPiwo[kartonik.ile_piw];
- for(unsigned i=0;i<kartonik.ile_piw;i++){
- kartonik.piwa[i].h=piwo[i].h;
- kartonik.piwa[i].r=piwo[i].r;
- kartonik.piwa[i].marka=piwo[i].marka;
- }
- }
- }
- void wypisz(SKarton& kartonik){
- cout<<"Ilosc piw: "<<kartonik.ile_piw<<endl<<"Kod kartonu: "<<kartonik.kod;
- }
- void wypiszwszystko(SKarton& kartonik){
- if(kartonik.ile_piw>0){
- for(unsigned i=0;i<kartonik.ile_piw;i++){
- cout<<kartonik.piwa[i].r<<"\t"<<kartonik.piwa[i].h<<"\t"<<kartonik.piwa[i].marka<<endl;
- }
- }
- }
- float objetoscPiwa(const SPiwo& piwo){
- return (PI*piwo.r*piwo.r*piwo.h);
- }
- void BubbleSort(SKarton& kartonik){
- for(unsigned i=0;i<kartonik.ile_piw;i++){
- for(unsigned j=0;j<kartonik.ile_piw-1;j++){
- if(kartonik.piwa[j].r>kartonik.piwa[j+1].r){
- swap(kartonik.piwa[j],kartonik.piwa[j+1]);
- }
- }
- }
- }
- float maxh(SKarton& kartonik){
- float maks=kartonik.piwa[0].h;
- for(unsigned i=0;i<kartonik.ile_piw;i++){
- if(kartonik.piwa[i].h>maks){
- maks=kartonik.piwa[i].h;
- }
- }
- return maks;
- }
- float objetosckartonu(SKarton& kartonik){
- float Vx=0;
- for(unsigned i=0;i<kartonik.ile_piw;i++){
- Vx=Vx+objetoscPiwa(kartonik.piwa[i]);
- }
- return Vx;
- }
- int main(){
- unsigned n=0;
- SKarton kartonik={0,0,0};
- SPiwo *piwka;
- ifstream fin;
- fin.open("karton.txt");
- if(!fin.good()){
- cerr<<"Blad otwarcia pliku!";
- }
- piwka=wczytaj_piwa(fin,n);
- pakuj_karton(kartonik,piwka,n);
- wypisz(kartonik);
- cout<<endl;
- wypiszwszystko(kartonik);
- cout<<endl;
- cout<<"Objetosc piwa wynosi: "<<objetoscPiwa(kartonik.piwa[2])<<endl;
- fin.close();
- cout<<"Posortowane: "<<endl;
- BubbleSort(kartonik);
- cout<<endl<<endl;
- wypiszwszystko(kartonik);
- cout<<"Wysokosc kartonu wynosi: "<<maxh(kartonik)<<endl;
- cout<<"Objetosc kartonu wynosi: "<<objetosckartonu(kartonik)<<endl;
- if(kartonik.piwa){
- delete [] kartonik.piwa;
- }
- if(piwka){
- delete [] piwka;
- piwka=0;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement