Pereiti prie turinio

Programavimas konteineriai


Rekomenduojami pranešimai

Sveiki, krapstausi su sia uzduotimi.

Mano klase atrodo taip (neesu uztikrintas ar cia viskas tvarkoje):

#pragma once
#include <string>
#include <vector>

using namespace std;

class Konteineris{
public:
static const int CMAX = 100;
private:
string moksleiviai[CMAX]; // moksleiviai, kurie studijuos studijų programoj
string studijos;
string programa;
public:
Konteineris() : studijos(""), programa("") {}
Konteineris(string studijos, string programa) :
	 studijos(studijos), programa(programa) {}
~Konteineris(){}
        void DetiMoksleiviai(int i, string moksleivis)
{ Konteineris::moksleiviai[i] = i; }
string ImtiStudijos(){ return studijos; }
string ImtiPrograma(){ return programa; }

vector <string> Sudaryti(Konteineris & moksleiviai, Konteineris & studijos, Konteineris programa);
};

Kodel Sudaryti() funkcijoj siunciami tik moksleiviai, studijos ir programa? o nera jokio int , kuris nurodytu moksleiviai masyvo dydi? Aciu uz atsakymus.

post-90967-0-59083700-1388156733_thumb.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, krapstausi su sia uzduotimi.

Mano klase atrodo taip (neesu uztikrintas ar cia viskas tvarkoje):

#pragma once
#include <string>
#include <vector>

using namespace std;

class Konteineris{
public:
static const int CMAX = 100;
private:
string moksleiviai[CMAX]; // moksleiviai, kurie studijuos studijų programoj
string studijos;
string programa;
public:
Konteineris() : studijos(""), programa("") {}
Konteineris(string studijos, string programa) :
	 studijos(studijos), programa(programa) {}
~Konteineris(){}
        void DetiMoksleiviai(int i, string moksleivis)
{ Konteineris::moksleiviai[i] = i; }
string ImtiStudijos(){ return studijos; }
string ImtiPrograma(){ return programa; }

vector <string> Sudaryti(Konteineris & moksleiviai, Konteineris & studijos, Konteineris programa);
};

Kodel Sudaryti() funkcijoj siunciami tik moksleiviai, studijos ir programa? o nera jokio int , kuris nurodytu moksleiviai masyvo dydi? Aciu uz atsakymus.

vector'ius yra dinamine talpykla, jai nurodyt kiekio nereikia.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

vector'ius yra dinamine talpykla, jai nurodyt kiekio nereikia.

tai tada man reiktu sukti cikla

for(int i=0; i<Sudaryti.size(); i++){

}

bet sarasas yra vektorius, o moksleiviu masyvo dydis (jis nera vektorus) nera zinomas. Nelabai supratau.

Redagavo saltis77
Nuoroda į pranešimą
Dalintis kituose puslapiuose

void DetiMoksleiviai(int i, string moksleivis)
       { Konteineris::moksleiviai[i] = i; } // manau, čia turėtų būti
                                            // Konteineris::moksleiviai[i] = moksleivis; ?

Dekui, taip tu teisus

 

Bet ar pats konteineris yra tinkamas pagal uzduoti? Ten parasyta kad klaseje gali buti TIK VIENAS masyvas. Kaip tai gali buti jei man darant ta sarasa reikia ir mokiniu stojimo balo masyvo ir ju vardu masyvo ir studiju programu masyvo ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Struktūrų masyvas?

Bet uzduotis kuria ikeliau neleidzia naudoti strukturu masyvo. Kazkaip reiktu apsieti be jo :D tik nezinau kaip. Gal uzduotis kazkaip ne taip suformuluota? Nors cia KTU bandomojo egzamino uzduotis, tai nemanau kad jie ten bet ka detu.

Redagavo saltis77
Nuoroda į pranešimą
Dalintis kituose puslapiuose

čia dar klaida pas tave:

vector <string> Sudaryti(Konteineris & moksleiviai, Konteineris & studijos, Konteineris programa); // <--- 

 

duotosios užduoties funkcijos trečias parametras yra

string programa

, o ne

Konteineris programa

.

 

 

parašiau čia programą, gal kiek nelogiška, bet masyvas tai vienas :lol:

 

#include <string>
#include <vector>
#include <iostream>
#include <utility>
using namespace std;

const int MAXN = 100;

class Konteineris
{
public:
     Konteineris() : viso(0) {}
     void detiDuomenis(const string& v, int b)
     { duomenys[viso] = make_pair(v, b); viso++; }
     string imtiVarda(int i) const { return duomenys[i].first; }
     int imtiBala(int i) const { return duomenys[i].second; }
     int visoDuomenu() const { return viso; }


private:
     pair<string, int> duomenys[MAXN];
     int viso;
};

vector<string> Sudaryti(const Konteineris& moksleiviai,
                        const Konteineris& studijos, const string& programa)
{
   vector<string> atrinkti;
   cout << "Programa: " << programa << endl << endl;
   for (int i = 0; i < studijos.visoDuomenu(); i++)
   {
       cout << "Atrenkami studijuoti i " << studijos.imtiVarda(i) << ": " << endl;
       for (int j = 0; j < moksleiviai.visoDuomenu(); j++)
       {
           if (moksleiviai.imtiBala(j) > studijos.imtiBala(i))
           {
               cout << moksleiviai.imtiVarda(j) << endl;
               atrinkti.push_back(moksleiviai.imtiVarda(j));
           }
       }
   }
   return atrinkti;
}

int main()
{
   Konteineris moksleiviai, studijos;

   studijos.detiDuomenis("'Idomios studijos'", 77);
   studijos.detiDuomenis("'Neidomios studijos'", 44);

   moksleiviai.detiDuomenis("Balys Kaulas", 74);
   moksleiviai.detiDuomenis("Juozas Norvegija", 97);
   moksleiviai.detiDuomenis("Petras Kepenys", 45);

   vector<string> atrinkti = Sudaryti(moksleiviai, studijos, "Naujametine");
}

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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