Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, darau užduotį ir niekaip nesigauną išvesti žodinių (raidinių) reikšmių į ekraną. Bandau su string, bet kai rašau cout << g1.ImtiRušis() << end; man meta ties '<<' error:

error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

 

Visas kodas:

#include <iostream>
using namespace std;

class Grūdai
{
private:
string rūšis; //Rūšies pavadinimas
int kaina, nuostoliai;
public:
void DėtiRūšis(string rūšiesReikšmė)	{rūšis = rūšiesReikšmė;}
void DėtiKainą(int kainosReikšmė)		{kaina = kainosReikšmė;}
void DėtiNuostolį(int nuostoliųReikšmė) {nuostoliai = nuostoliųReikšmė;}
string ImtiRūšis()	{ return rūšis;	}
int ImtiKainą()		{ return kaina; }
int ImtiNuostolį()	{ return nuostoliai; }
};

int main()
{
int a, b, c, min, vid;

setlocale(LC_ALL, "Lithuanian");
Grūdai g1;
g1.DėtiRūšis("Pirmoji");
g1.DėtiKainą(500);
g1.DėtiNuostolį(6);
cout << "Grūdų rūšis: " << g1.ImtiRūšis() << endl; !!!!!! ČIA KAŽKAS NEGERAI RODO !!!!!!
cout << "Grūdų kaina (Lt/t): " << g1.ImtiKainą() << endl;
cout << "Grūdų malimo nuostolis (%): " << g1.ImtiNuostolį() << endl;

Grūdai g2;
g2.DėtiRūšis("Antroji");
g2.DėtiKainą(1000);
g2.DėtiNuostolį(8);
cout << "Grūdų rūšis: " << g2.ImtiRūšis() << endl;
cout << "Grūdų kaina (Lt/t): " << g2.ImtiKainą() << endl;
cout << "Grūdų malimo nuostolis (%): " << g2.ImtiNuostolį() << endl;

Grūdai g3;
g3.DėtiRūšis("Trečioji");
g3.DėtiKainą(750);
g3.DėtiNuostolį(4);
cout << "Grūdų rūšis: " << g3.ImtiRūšis() << endl;
cout << "Grūdų kaina (Lt/t): " << g3.ImtiKainą() << endl;
cout << "Grūdų malimo nuostolis (%): " << g3.ImtiNuostolį() << endl << endl;

//Mažiausio nuostolio apskaičiavimas

a = g1.ImtiNuostolį();
b = g2.ImtiNuostolį();
c = g3.ImtiNuostolį();

min = 0;

if (a < b) {
	if (a < c) { min = min + a; 
	cout << "Mažiausias nuostolis yra pirmos rūšies grūdų: " << min << " %" << endl; }
} else if (b < c) { 
	min = min + b;
	cout << "Mažiausias nuostolis yra antros rūšies grūdų: " << min << " %" << endl; 
} else { min = min + c;
cout << "Mažiausias nuostolis yra trečios rūšies grūdų: " << min << " %" << endl; }

//-----------------------------
//Vidutinė vienos tonos grūdų pirkimo kaina

vid = (g1.ImtiKainą() + g2.ImtiKainą() + g3.ImtiKainą()) / 3;
cout << "Vidutinė vienos tonos grūdų pirkimo kaina: " << vid << " (Lt/t)" << endl;

//-----------------------------



cout << "Programa baigė darbą\n";
return 0;
}

Redagavo Swizz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neišveda, nes tiesiog jo neranda.

Jeigu a < b (praeina pirma sąlyga) ir a >= c (antra sąlyga nebepraeina), programa toliau esančių if sakinių nebevykdo.

Beto, nebūtina kurti naują kintamąjį, kad išvest duomenis į ekraną. Ir pas tave min = min + a prilygsta min = 0 + a, kam to reikia?

if (a < b && a < c)
   cout << "Mažiausias nuostolis yra pirmos rūšies grūdų: " << a << " %" << endl;
else if (b < c)
   cout << "Mažiausias nuostolis yra antros rūšies grūdų: " << b << " %" << endl; 
else
   cout << "Mažiausias nuostolis yra trečios rūšies grūdų: " << c << " %" << endl;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neišveda, nes tiesiog jo neranda.

Jeigu a < b (praeina pirma sąlyga) ir a >= c (antra sąlyga nebepraeina), programa toliau esančių if sakinių nebevykdo.

Beto, nebūtina kurti naują kintamąjį, kad išvest duomenis į ekraną. Ir pas tave min = min + a prilygsta min = 0 + a, kam to reikia?

if (a < b && a < c)
   cout << "Mažiausias nuostolis yra pirmos rūšies grūdų: " << a << " %" << endl;
else if (b < c)
   cout << "Mažiausias nuostolis yra antros rūšies grūdų: " << b << " %" << endl; 
else
   cout << "Mažiausias nuostolis yra trečios rūšies grūdų: " << c << " %" << endl;

Dėkui tau taip pat. :) Na aš programavime dar naujokas. Mokykloje nieko neišmokė C++, tai dabar nuo pagrindų ir keliauju užduotį darydamas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dar vienas klausimas. Turiu dabar padalinti skaičių 7 / 100, bet eilutė pas mane g1.ImtiNuostolį / 100, padalinus kiek suprantu turi gautis 0,07, bet pas mane išveda 0. Kame problema?

 

 

Nes integeriai yra sveiki skaičiai. Kurį nors skaičių į double ir rezultatą saugok double tipe.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš rašymo stiliaus tai čia KTU, bet negirdėjau, kad kas lieptu rašyti būtinai lietuviškom raidėm. Be to jei programų sistemų ir informatikų niekas neverčia programint lietuviškai, tai labai abejoju, kad ir multimedijom liepia.

Redagavo Cibulinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš rašymo stiliaus tai čia KTU, bet negirdėjau, kad kas lieptu rašyti būtinai lietuviškom raidėm. Be to jei programų sistemų ir informatikų niekas neverčia programint lietuviškai, tai labai abejoju, kad ir multimedijom liepia.

Galiu tik patvirtint ta fakta, kad nevercia lietuviskai rasyt. Pats niekada nerasiau lietuvisko alfabeto, paklausdavo, kodel taip darau, atsakydavau, kad nepatogu ir pasibaigdavo diskusija.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...