Witam
Jestem laikiem jeśli chodzi o programowanie, ale chciałbym się nauczyć. Dostaliśmy kiedyś zadanie na ćwiczeniach a ja chce je zmodyfikować, żeby poćwiczyć przed egzaminem. Zapewne dostane niezły ochrzan za styl i wykonanie, ale jak pisałem, uczę się
Wykonanie jest kompletnie moje, wiec polecenia z ćwiczenia nie wkleję, lecz podam to co sam zamierzałem zrobić.
Wykonałem 3 klas (kura, krowa, swinia). Każda klasa ma jakieś zminne prywatne (np: krowa ma: ilosc [czyli ilosc krow],waga,mleko,wiek).
class krowa
{
private:
int waga;
int wiek;
int mleko;
int ilosc;
public:
krowa()
{
cout << "Sprawdzamy stan krow! " << endl << endl;
}
void wypisz_krowe(int wiek[],int waga[], int mleko[],int s);
int podaj_ilosc();
void dodaj_wiek();
void dodaj_waga();
void dodaj_mleko();
int wypisz_wiek() { return wiek;}
int wypisz_waga() { return waga;}
int wypisz_mleko() { return mleko;}
};
W main wklepuje ilość krów a potem na rzecz obiektu mucka (klasa krowa), wywołuje dodawanie wagi, mleka i wieku krowy do tablicy (oczywiscie w petli ktora dziala od 0 do Ilosc).
krowa mucka;
cout << "Podaj ile masz krow [1-10] ";
x=mucka.podaj_ilosc();
int waga[x], wiek[x], mleko[x];
for(i=0;i
{
cout <<"Podaj wiek " << i+1 << " krowy [1-5 lat]" << endl;
mucka.dodaj_wiek();
wiek[i]=mucka.wypisz_wiek();
cout <<"Podaj wage " << i+1 << " krowy [30-90 Kg]" << endl;
mucka.dodaj_waga();
waga[i]=mucka.wypisz_waga();
cout <<"Podaj ilosc mleka w litrach na tydzien " << i+1 << " krowy [20-35 L]" << endl;
mucka.dodaj_mleko();
mleko[i]=mucka.wypisz_mleko();
}
if(x>0) mucka.wypisz_krowe(wiek,waga,mleko,x);
Potem w osobnej metodzie wyswietlam tabele:
cout << "L.p | Gatunek | wiek | waga | mleko | zysk |" << endl;
cout << "-------------------------------------------------|" << endl;
for(int i=0;i
{
cout << i+1 <<" | KROWA | " << wiek[i]<< " | " << waga[i]<<" | " << mleko[i]<< endl;
}[/code]
To jest taka podstawa do tego co chciałbym zrobić :)
Wszystko działa poprawnie, nie da się wpisać zbyt wielkiej/małej wagi, zbyt małej/wielkiej ilość mleka czy złego wieku. Wszystko ustaliłem w metodach każdej klasy.
Moje zadanie to:
Chciałbym stworzyć (najlepiej) klase lub kilka funkcji która:
1. Pobrała by mi wartości wagę/wiek/mleko i z gotowego wzoru (zrobiłem jakiś taki - ważne że by pobrało dane) obliczyło zysk (na 1 krowie).
2. Wyświetliło listę krów/świń/kur razem z obliczonym zyskiem.
Zamieszczam swój kod:
nagłowek
[code]#ifndef _MOJE_BBL_H_ #define _MOJE_BBL_H_ #include #ifndef C16 #include #include #include using namespace std; #else #include #endif inline void stop(void) {; cout << “Nacisnij [Enter]”;cin.get();}; #endif
Main
#include "Moja_BBL.h"
#include "krowa.cpp"
#include "swinia.cpp"
#include "kura.cpp"
int main()
{
int i=0,x=0,z=0,c=0;
krowa mucka;
cout << "Podaj ile masz krow [1-10] ";
x=mucka.podaj_ilosc();
int waga[x], wiek[x], mleko[x];
for(i=0;i
{
cout <<"Podaj wiek " << i+1 << " krowy [1-5 lat]" << endl;
mucka.dodaj_wiek();
wiek[i]=mucka.wypisz_wiek();
cout <<"Podaj wage " << i+1 << " krowy [30-90 Kg]" << endl;
mucka.dodaj_waga();
waga[i]=mucka.wypisz_waga();
cout <<"Podaj ilosc mleka w litrach na tydzien " << i+1 << " krowy [20-35 L]" << endl;
mucka.dodaj_mleko();
mleko[i]=mucka.wypisz_mleko();
}
if(x>0) mucka.wypisz_krowe(wiek,waga,mleko,x);
cout << endl << "-----------------------------------------" << endl << endl;
swinia prosie;
cout << "Podaj ile masz swin [1-5] ";
z=prosie.podaj_ilosc();
int waga2[z], wiek2[z], mieso2[z];
for(i=0;i
{
cout <<"Podaj wiek " << i+1 << " swini [1-3 lat]" << endl;
prosie.dodaj_wiek();
wiek2[i]=prosie.wypisz_wiek();
cout <<"Podaj wage " << i+1 << " swini [25-75 Kg]" << endl;
prosie.dodaj_waga();
waga2[i]=prosie.wypisz_waga();
cout <<"Podaj ilosc miesa w kg " << i+1 << " swini [20-65 Kg]" << endl;
prosie.dodaj_mieso();
mieso2[i]=prosie.wypisz_mieso();
}
if(z>0) prosie.wypisz_swinie(wiek2,waga2,mieso2,z);
cout << endl << "-----------------------------------------" << endl << endl;
kura kurak;
cout << "Podaj ile masz kur [1-100] ";
c=kurak.podaj_ilosc();
int waga3[c], wiek3[c], jajka3[c];
for(i=0;i
{
cout <<"Podaj wiek " << i+1 << " kury [1-24 miesiecy]" << endl;
kurak.dodaj_wiek();
wiek3[i]=kurak.wypisz_wiek();
cout <<"Podaj wage " << i+1 << " kury [2-6 Kg]" << endl;
kurak.dodaj_waga();
waga3[i]=kurak.wypisz_waga();
cout <<"Podaj ilosc jejek " << i+1 << " kury [0-7 sztuk]" << endl;
kurak.dodaj_jajka();
jajka3[i]=kurak.wypisz_jajka();
}
if(c>0)kurak.wypisz_kure(wiek3,waga3,jajka3,c);
return 0;
}
Krowa
#include "Moja_BBL.h"
class krowa
{
private:
int waga;
int wiek;
int mleko;
int ilosc;
public:
krowa()
{
cout << "Sprawdzamy stan krow! " << endl << endl;
}
void wypisz_krowe(int wiek[],int waga[], int mleko[],int s);
int podaj_ilosc();
void dodaj_wiek();
void dodaj_waga();
void dodaj_mleko();
int wypisz_wiek() { return wiek;}
int wypisz_waga() { return waga;}
int wypisz_mleko() { return mleko;}
//double oblicz(int _waga, int _wiek, int _mleko);
//narazie oblicz jest tutaj, bo ogolnie jakos nie poradzilem sobie z nia
};
int krowa::podaj_ilosc()
{
cin >> ilosc;
while(ilosc>9){
cout << "BLAD! Twoja stajnia pomiesci maxymalnie 9 krow! Podaj od 1 do 9!" << endl;
cin >> ilosc;
}
if(ilosc<1)
{
cout << "#INFO# Niestety, nie posiadasz krow" << endl;
}
return ilosc;
}
void krowa::dodaj_wiek()
{
cin >> wiek;
while(wiek>5 || wiek <= 0){
cout << "BLAD! Zly zakres! Podaj od 1 do 5!" << endl;
cin >> wiek;
}
if(wiek>4) cout << "#INFO# Pomysl o sprzedarzy, lub uboju Twojej krowy" << endl;
if(wiek<2) cout << "#INFO# Twoja krowa jest jeszcze mloda, nie licz na wielka ilosc mleka" << endl;
cout << endl;
}
void krowa::dodaj_waga()
{
cin >> waga;
while(waga>90 || waga <= 29){
cout << "BLAD! Zly zakres! Podaj od 30 do 90!" << endl;
cin >> waga;
}
if(waga<50) cout << "#INFO# Twoja krowa jest wychudzona!"<< endl;
if(waga>80) cout << "#INFO# Twoja krowa jest zbyt otyla!" << endl;
cout << endl;
}
void krowa::dodaj_mleko()
{
cin >> mleko;
while(mleko>45 || mleko <= 10){
cout << "BLAD! Zly zakres! Podaj od 20 do 35!" << endl;
cin >> mleko;
}
if(mleko>35) cout << "#INFO# To chyba cud!, az tyle mleka!" << endl;
if(mleko<20) cout << "#INFO# Krowa jest chyba chora ;/" << endl;
cout << endl;
}
/* wzor do obliczen (to ten wzor)
void krowa::oblicz(int *wiek, int * waga, int * mleko)
{
if(*wiek=1 || *wiek =5) a=0.5;
if(*wiek=2 || *wiek =4) a=0.7;
if(*wiek=3) a=1;
if(*waga>70 || *waga <50) b=1.75;
if(*waga<70 && *waga >50) b=2;
zysk = a * (*waga/10) * (*mleko*b);
cout << zysk;
}
*/
void krowa::wypisz_krowe(int wiek[],int waga[], int mleko[],int s)
{
cout << "L.p | Gatunek | wiek | waga | mleko | zysk |" << endl;
cout << "-------------------------------------------------|" << endl;
for(int i=0;i
{
cout << i+1 <<" | KROWA | " << wiek[i]<< " | " << waga[i]<<" | " << mleko[i]<< endl;
}
}
[/code]
Swinia
[code]#include “Moja_BBL.h” class swinia { private: int waga; int wiek; int mieso; int ilosc; public: swinia() { cout << “Sprawdzamy stan swin! " << endl << endl; } void wypisz_swinie(int wiek[],int waga[], int mieso[],int s); int podaj_ilosc(); void dodaj_wiek(); void dodaj_waga(); void dodaj_mieso(); int wypisz_wiek() { return wiek;} int wypisz_waga() { return waga;} int wypisz_mieso() { return mieso;} }; int swinia::podaj_ilosc() { cin >> ilosc; while(ilosc>5){ cout << “BLAD! Twoja stajnia pomiesci maxymalnie 5 swin! Podaj od 1 do 5!” << endl; cin >> ilosc; } if(ilosc<1) { cout << “#INFO# Niestety, nie posiadasz swin” << endl; } return ilosc; } void swinia::dodaj_wiek() { cin >> wiek; while(wiek>3 || wiek <= 0){ cout << “BLAD! Zly zakres! Podaj od 1 do 3!” << endl; cin >> wiek; } if(wiek>2) cout << “#INFO# Najwyzszy czas, ubic swinie!” << endl; if(wiek<2) cout << “#INFO# Musisz poczekac conajmniej rok!” << endl; cout << endl; } void swinia::dodaj_waga() { cin >> waga; while(waga>75 || waga <= 24){ cout << “BLAD! Zly zakres! Podaj od 25 do 65!” << endl; cin >> waga; } if(waga<30) cout << “#INFO# Twoja swinia jest wychudzona!”<< endl; if(waga>65) cout << “#INFO# Twoja swinia to niezly okaz!” << endl; cout << endl; } void swinia::dodaj_mieso() { cin >> mieso; while(mieso>65 || mieso <= 20){ cout << “BLAD! Zly zakres! Podaj od 25 do 55!” << endl; cin >> mieso; } while((waga-(waga/10)) { cout << “Nie mozliwe jest by bylo wiecej miesa od wagi swini!” << endl; cin >> mieso; } if(mieso>55) cout << “#INFO# Wspalniale, niezly kawal miesa!” << endl; if(mieso<25) cout << “#INFO# Ta swinia to byl niewypal” << endl; cout << endl; } void swinia::wypisz_swinie(int wiek[],int waga[], int mieso[],int s) { cout << “L.p | Gatunek | wiek | waga | mieso” << endl; cout << “-----------------------------------------” << endl; for(int i=0;i { cout << i+1 <<” | SWINIA | " << wiek[i]<< " | " << waga[i]<<" | " << mieso[i]<< endl; } }
Kura
#include "Moja_BBL.h"
class kura
{
private:
int waga;
int wiek;
int jajka;
int ilosc;
public:
kura()
{
cout << "Sprawdzamy stan kur! " << endl << endl;
}
void wypisz_kure(int wiek[],int waga[], int jajka[],int c);
int podaj_ilosc();
void dodaj_wiek();
void dodaj_waga();
void dodaj_jajka();
int wypisz_wiek() {return wiek;}
int wypisz_waga() { return waga;}
int wypisz_jajka() { return jajka;}
};
int kura::podaj_ilosc()
{
cin >> ilosc;
while(ilosc>100){
cout << "BLAD! Twoja stajnia pomiesci maxymalnie 100 kur! Podaj od 1 do 100!" << endl;
cin >> ilosc;
}
if(ilosc<1)
{
cout << "#INFO# Niestety, nie posiadasz kur" << endl;
}
if(ilosc<10)
{
cout << "#INFO# Oplaca Ci sie trzymac tyle kur?" << endl;
}
return ilosc;
}
void kura::dodaj_wiek()
{
cin >> wiek;
while(wiek>24 || wiek <= 0){
cout << "BLAD! Zly zakres! Podaj od 1 do 24!" << endl;
cin >> wiek;
}
if(wiek>20) cout << "#INFO# Twoja kura ma prawie 2 lata, zrob sobie rosol :)" << endl;
if(wiek<7) cout << "#INFO# Nie licz ze mniej niz polroczna kura da jakies jajko..." << endl;
cout << endl;
}
void kura::dodaj_waga()
{
cin >> waga;
while(waga>7 || waga <= 1){
cout << "BLAD! Zly zakres! Podaj od 2 do 5!" << endl;
cin >> waga;
}
if(waga<1) cout << "#INFO# Ta kura w ogole zyje? Daj jej zboze!"<< endl;
if(waga>6) cout << "#INFO# Ta kura to chyba jakis mutant! "<< waga <<" kg!" << endl;
cout << endl;
}
void kura::dodaj_jajka()
{
cin >> jajka;
if(wiek < 7)
{
jajka=0;
cout << "#INFO# Twoja kura nie znosi jeszcze jajek ;/" << endl;
}
else {
while(jajka>7 || jajka <= 0)
{
cout << "BLAD! Zly zakres! Podaj od 0 do 7!" << endl;
cin >> jajka;
}
}
if(jajka>6) cout << "#INFO# Twoja kura chyba znosi zlote jaja!" << endl;
if(jajka<0) cout << "#INFO# No niestety, nie ma nic" << endl;
cout << endl;
}
void kura::wypisz_kure(int wiek[],int waga[], int jajka[],int c)
{
cout << "L.p | Gatunek | wiek | waga | jajka" << endl;
cout << "-----------------------------------------" << endl;
for(int i=0;i
{
cout << i+1 <<" | KURA | ";
if(wiek[i]<10)
{
cout << "0";
}
cout << wiek[i]<< " | " << waga[i]<<" | " << jajka[i]<< endl;
}
}
Nie wiem jak za pomoca jakieś klasy/czy funkcji zaprzyjaznionej (ktora powstała by w osobnym pliku) pobrać odpowiednie dane z tabelek (bo kazde zwierze np: krowa ma rozne parametry [wage/wiek/mleko] ktore porzebne sa we wzorze (przygotowany tylko jeden wzor w krowie))