Pereiti prie turinio

2015 m. IT VBE 2 užd.


Rekomenduojami pranešimai

Sveiki.

 

Ryt laikau IT VBE. Pasidariau greit 2015 m. 2 užduotį. Atsakymus gaunu reikiamus, tik mūsų mokytoja beveik nemokė programuoti, tuo užsiėmiau pats. Todėl norėtųsi kad kas peržiūrėtų sprendimą. Ar viskas gerai, už nieką neprarasčiau taškų? Stengiaus viską daryti tinkamai, noriu pretenduoti į 100.

 

Iš anksto ačiū už bet kokius komentarus.

 

#include <fstream>
#include <string>

using namespace std;

// Struktūra duomenims saugoti
struct Avys 
{
   string vardas;
   string dnrFrag;
   int dnrKoef;
};

// Funkcijų aprašai
void sutapimas(int &n, int &m, Avys avis[]);
void surikiuoti(int &n, int &m, Avys avis[]);
void skaitymas(int &n, int &m, int &tiriamaAvis, Avys avis[]);
void spausdinimas(int &n, Avys avis[]);

//Pagrindinė funkcija
int main()
{
   setlocale(LC_ALL, "Lithuanian");
   int n, m, tiriamaAvis;
   Avys avis[20];
   skaitymas(n, m, tiriamaAvis, avis);
   sutapimas(n, m, avis);
   surikiuoti(n, m, avis);
   spausdinimas(n, avis);
}

// Funkcija duomenų nuskaitymui
void skaitymas(int &n, int &m, int &tiriamaAvis, Avys avis[])
{
   ifstream duomenys("U2.txt");
   char vardas[11];
   duomenys >> n >> m >> tiriamaAvis;
   char koeficientas[m+1];
   duomenys.ignore(80, '\n');
   for(int i=0; i<n; i++)
   {
       duomenys.get(vardas, 11);
       avis[i].vardas=vardas;
       duomenys.ignore(1);
       duomenys.get(koeficientas, m+1);
       avis[i].dnrFrag=koeficientas;
       duomenys.ignore(80, '\n');
   }
   swap(avis[0], avis[tiriamaAvis-1]); // Tiriama avis perkeliama į pirmą masyvo poziciją
   duomenys.close();
}

// Funkcija koeficiento sutapimo nustatymui
void sutapimas(int &n, int &m, Avys avis[])
{
   for(int i=0; i<n; i++)
   {
       avis[i].dnrKoef=0;
       for(int j=0; j<m; j++)
       {
           if(avis[i].dnrFrag[j]==avis[0].dnrFrag[j]) avis[i].dnrKoef++;
       }
   }
}

// Funkcija rikiavimui
void surikiuoti(int &n, int &m, Avys avis[])
{
   for(int i=1; i<n; i++) // Rikiavimas pagal DRN koeficiento sutapimą
   {
       for(int j=i+1; j<n; j++)
       {
           if(avis[i].dnrKoef<avis[j].dnrKoef) swap(avis[i], avis[j]);
       }
   }
   for(int i=1; i<n; i++) // Rikiavimas pagal avies vardą
   {
       for(int j=i+1; j<n; j++)
       {
           if(avis[i].dnrKoef==avis[j].dnrKoef)
           {
               if(avis[i].vardas>avis[j].vardas) swap(avis[i], avis[j]);
           }
       }
   }    
}

// Funkcija duomenų išvedimui
void spausdinimas(int &n, Avys avis[])
{
   ofstream rezultatai("U2rez.txt");
   rezultatai << avis[0].vardas << endl;
   for(int i=1; i<n; i++)
   {
       rezultatai << avis[i].vardas << " " << avis[i].dnrKoef << endl;
   }
   rezultatai.close();
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose
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ą...