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.

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