Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Dinaminė atmintis


ifsmilga

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 162 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki,

gal pasakysite kur klaida, nes nebe matau

/******************************************************************************
Turime tekstiniame faile(personalas.txt) darbuotojų žiniaraštį:
vardas (16 simbolių), pareigos,  dirbta valandų.
Kitame tekstiniame faile (ikainiai.txt) turime darbų įvertinimo normatyvus:
pareigu pavadinimas, valandos įkainis.
Suformuoti atlyginimų sąrašą(skaiciavimai.txt) ir jį sutvarkyti pagal atlyginimo dydį ir
vardą: vardas, dirbtas valandų kiekis, atlyginimas.
Reikalavimai programai:
1. naudokite įrašus (struktūras) ir masyvus su įrašo (struktūros) tipo elementais;
2. sukurkite pradinių duomenų skaitymo procedūrą (funkciją void C++) - naudokite rodykliu tipa;
3. sukurkite altyginimo skaciavimo procedūrą (funkciją void C++) - naudokite rodykliu tipa
4. sukurkite rezultatų rašymo į failą procedūrą (funkciją void C++) - naudokite rodykliu tipa;
5. sukurkite funkciją, rikiuojančią atlyginimus didėjimo tvarka - naudokite rodykliu tipa.
*******************************************************************************/
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <iomanip>

using namespace std;

struct Darbuotojas {
    string vardas;
    string pareigos;
    double val;
    double ikainis;
    double alga;
};

void skaitytiDarbuotojus (int n, int* ptr, ifstream& fd1);
void skaitytiIkainius(int n, int* ptr, ifstream& fd2);
void skaiciuoti(Darbuotojas D[], int* ptr, int n);
void rikiuotiDarbuotojus(Darbuotojas D[], int* ptr, int n);
void spausdinimas(Darbuotojas D[], int* ptr, int n);

int main() {
    
    Darbuotojas D[51];
    int n;
    int* ptr;
    ifstream fd1("personalas.txt");
    fd1 >> n;
    //char eil[20];
    for (int i = 0; i < n; i++) {
        fd1.ignore(80, '\n');
        fd1.get(eil, 13);
        fd1 >> D[i].vardas;
        D[i].vardas = eil;
        fd1 >> D[i].val;
        
    }
    fd1.close();
    
   ifstream fd2("ikainiai.txt");
    for (int i = 0; i < n; i++) {
        fd2 >> D[i].pareigos;
        fd2 >> D[i].ikainis;
    }
    fd2.close();
    
      ptr = new int[n];
         for (int i = 0; i < n; ++i) 
             ptr[i] = i;

    
    skaitytiDarbuotojus(n, ptr, fd1);
    skaitytiIkainius(n, ptr, fd2);
    skaiciuoti(D, ptr, n);
    rikiuotiDarbuotojus(D, ptr, n);
    spausdinimas(D, ptr, n);
    
    delete[] ptr;
    return 0;
}

void skaitytiDarbuotojus(Darbuotojas D[], int &n){
    ifstream fd1("personalas.txt");
    fd1 >> n;
    //char vardas[20], pareigos[13]; //vardui 19, pareigoms 12
    double val, ikainis;
    int k;
    for (int i = 0; i < n; i++) {
        fd1.ignore(80, '\n');
        //fd1 >> vardas >> pareigos >> val;
        fd >>D[i].vardas >> D[i].pareigos >> D[i].val;
        //D[i].vardas = vardas;
       // D[i].pareigos = pareigos;
        //D[i].val = val;
    }
    
    fd1.close();
    
     ifstream fd2("ikainiai.txt");
    fd2 >> k;
    for (int j = 0; j < k; j++) {
        fd2 >> pareigos >> ikainis;
        
        for (int i = 0; i < n; i++) {
            if (D[i].pareigos == pareigos) {
                D[i].ikainis = ikainis;
            }
        }
    }
    fd2.close();
}


void skaitytiDarbuotojus(int n, int* ptr, ifstream& fd1){
    for (int i = 0; i < n; i++) {
       fd1 >> *(ptr+i);
    }
}   
    

void skaitytiIkainius(int n, int* ptr, ifstream& fd2){
    for (int i = 0; i < n; ++i) {
        fd2 >> *(ptr + i); 
    }
      
}

void skaiciuoti(Darbuotojas D[], int* ptr, int n){
    for (int i = 0; i < n; ++i) {
        D[*(ptr + i)].alga = D[*(ptr + i)].val * D[*(ptr + i)].ikainis;
}
    
    }

void rikiuotiDarbuotojus(Darbuotojas D[], int* ptr, int n) {
    for (int i = 0; i < n - 1; ++i) {
        for (int j = i + 1; j < n; ++j) {
            if (D[*(ptr + i)].alga < D[*(ptr + j)].alga || (D[*(ptr + i)].alga == D[*(ptr + j)].alga && D[*(ptr + i)].vardas > D[*(ptr + j)].vardas)) {
                swap(ptr[i], ptr[j]); //sukeista vietomis
            }
        }
    }
}
void spausdinimas(Darbuotojas D[], int* ptr, int n) {
    ofstream fr("skaiciavimai.txt");
    for (int i = 0; i < n; ++i) {
        fr <<"------------------------------------------------- \n";
        fr << "Vardas " << D[*(ptr + i)].vardas << " | " << "Dirbta " <<left <<setw(6) << fixed << setprecision(2)<< D[*(ptr + i)].val << " | "  << "  Alga "   <<fixed << setprecision(2)<< D[*(ptr + i)].alga << "eurai"<< endl;
    }
    fr.close(); 
}

personalas


Vilma direktorė     8.00    
Ingrida pavaduotoja 4.00    
Ligita  mokytoja    10.36    
Jurgita sekretorė   8.00    
Jonas ūkvedys        4.00    
Kotryna logopedė    6.00

 

ikainiai

6
direktorė   15.25
pavaduotoja 12.36
mokytoja    9.05
sekretorė   5.45
ūkvedys     5.45
logopedė    7.12

neskaiciuoja algos

Nuoroda į komentarą
Dalintis per kitą puslapį

 

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>

using namespace std;

struct Darbuotojas {
    string vardas;
    string pareigos;
    double val;
    double ikainis;
    double alga;
};

void skaitytiDarbuotojus(Darbuotojas D[], int &n);
void skaitytiIkainius(Darbuotojas D[], int n, ifstream& fd2);
void skaiciuoti(Darbuotojas D[], int n);
void rikiuotiDarbuotojus(Darbuotojas D[], int n);
void spausdinimas(Darbuotojas D[], int n);

int main() {
    
    Darbuotojas D[51];
    int n;
    
    ifstream fd1("personalas.txt");
    fd1 >> n;

    for (int i = 0; i < n; i++) {
        fd1.ignore(80, '\n');
        getline(fd1, D[i].vardas, '\t');
        fd1 >> D[i].pareigos >> D[i].val;
    }
    fd1.close();
    
    ifstream fd2("ikainiai.txt");
    skaitytiIkainius(D, n, fd2);
    fd2.close();
    
    skaiciuoti(D, n);
    rikiuotiDarbuotojus(D, n);
    spausdinimas(D, n);
    
    return 0;
}

void skaitytiIkainius(Darbuotojas D[], int n, ifstream& fd2) {
    for (int i = 0; i < n; ++i) {
        fd2 >> D[i].pareigos >> D[i].ikainis;
    }
}

void skaitytiDarbuotojus(Darbuotojas D[], int &n){
    ifstream fd1("personalas.txt");
    fd1 >> n;

    for (int i = 0; i < n; i++) {
        fd1.ignore(80, '\n');
        getline(fd1, D[i].vardas, '\t');
        fd1 >> D[i].pareigos >> D[i].val;
    }
    
    fd1.close();
}

void skaiciuoti(Darbuotojas D[], int n){
    for (int i = 0; i < n; ++i) {
        D[i].alga = D[i].val * D[i].ikainis;
    }
}

void rikiuotiDarbuotojus(Darbuotojas D[], int n) {
    for (int i = 0; i < n - 1; ++i) {
        for (int j = i + 1; j < n; ++j) {
            if (D[i].alga < D[j].alga || (D[i].alga == D[j].alga && D[i].vardas > D[j].vardas)) {
                swap(D[i], D[j]);
            }
        }
    }
}

void spausdinimas(Darbuotojas D[], int n) {
    ofstream fr("skaiciavimai.txt");
    for (int i = 0; i < n; ++i) {
        fr <<"------------------------------------------------- \n";
        fr << "Vardas " << D[i].vardas << " | " << "Dirbta " << left << setw(6) << fixed << setprecision(2) << D[i].val << " | " << "  Alga " << fixed << setprecision(2) << D[i].alga << "eurai" << endl;
    }
    fr.close(); 
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 162 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...