Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <limits>
- #include "Matrica.h"
- #include <map>
- using namespace std;
- const string CD = "Duomenys.txt";
- const string RF = "Rezultatai.txt";
- const int CMAX = 100;
- void Skaityti(Matrica & M, Matrica & M2, string bankai[CMAX], int & kiekis);
- void SkaitytiMatrica(ifstream & fd, Matrica & M, int & kiekis);
- void Isvesti(Matrica M);
- void Atlyginimas(Matrica M, double atlyginimas[CMAX]);
- void IsvestiAtlyginimas(Matrica M, double atlyginimas[CMAX]);
- void Geriausias(Matrica M, double atlyginimas[CMAX], int & ind, double & did);
- void SpausdintiGeriausias(Matrica M, int ind, double did);
- void MaziausiaiDetaliu(Matrica M, int & mind);
- void SpMaziausiaiDetaliu(int mind);
- void AtrenkamSkirtingus(Matrica M, string bankai[], int & n);
- void TikSp(Matrica M, string bankai[], int n);
- void Pavedimai(Matrica M, double atlyginimas[CMAX], int n);
- void AntroFailoDuom(Matrica M, Matrica & M2, int kiekis);
- void SpausintiFailoDuom(Matrica M2);
- void GerDarbininkasPoz(Matrica M, int ind, int ind2);
- int main(){
- setlocale(LC_ALL, "Lithuanian");
- ofstream rf(RF);
- rf.close();
- int ind = -1, ind2 = -1, mind = -1, mind2 = -1, kiekis = 1;
- double atlyginimas[CMAX];
- double did = 0.0, did2 = 0.0;
- string bankai[CMAX];
- Matrica M, M2, N;
- string eil;
- int n = 0;
- Skaityti(M, M2, bankai, kiekis);
- Isvesti(M);
- //AntroFailoDuom(M, M2, kiekis);
- //SpausintiFailoDuom(M2);
- Atlyginimas(M, atlyginimas);
- IsvestiAtlyginimas(M, atlyginimas);
- Geriausias(M, atlyginimas, ind, did);
- SpausdintiGeriausias(M, ind, did);
- MaziausiaiDetaliu(M, mind);
- SpMaziausiaiDetaliu(mind);
- AtrenkamSkirtingus(M, bankai, n);
- TikSp(M, bankai, n);
- Pavedimai(M, atlyginimas, n);
- AntroFailoDuom(M, M2, kiekis);
- SpausintiFailoDuom(M2);
- Atlyginimas(M2, atlyginimas);
- IsvestiAtlyginimas(M2, atlyginimas);
- Geriausias(M2, atlyginimas, ind2, did2);
- SpausdintiGeriausias(M2, ind2, did2);
- MaziausiaiDetaliu(M2, mind2);
- SpMaziausiaiDetaliu(mind2);
- Pavedimai(M2, atlyginimas, n);
- GerDarbininkasPoz(M, ind, ind2);
- system("pause");
- return 0;
- }
- void Skaityti(Matrica & M, Matrica & M2, string bankai[CMAX], int & kiekis){
- ifstream fd(CD);
- int sk, men, failduom;
- double kaina;
- int d;
- string vard, bank, nr;
- fd >> sk >> men >> kaina;
- M.DetiSK(sk);
- M.DetiMen(men);
- M.DetiKaina(kaina);
- for(int k = 0; k < M.ImtiSK(); k++){
- fd >> ws;
- getline(fd, vard, ',');
- fd >> ws;
- kiekis++;
- getline(fd, bank, ',');
- fd >> ws;
- getline(fd, nr);
- M.DetiVardas(vard, k);
- M.DetiBankas(bank, k);
- M.DetiNr(nr, k);
- M2.DetiBankas(bank, k);
- bankai[k] = bank;
- M2.DetiNr(nr, k);
- M2.DetiVardas(vard, k);
- }
- SkaitytiMatrica(fd, M, kiekis);
- fd.close();
- }
- void SkaitytiMatrica(ifstream & fd, Matrica & M, int & kiekis){
- int d;
- for(int i = 0; i < M.ImtiSK(); i++){
- for(int j = 0; j < M.ImtiMen(); j++){
- fd >> d;
- M.DetiReiksme(i, j, d);
- }
- kiekis++;
- }
- }
- void Isvesti(Matrica M){
- ofstream rf(RF, ios::app);
- rf << string(25, '-') << "Pradiniai duomenys" << string(25, '-') << endl;
- rf << M.ImtiSK() << ' ' << M.ImtiMen() << ' ' << M.ImtiKaina() << endl;
- for(int k = 0; k < M.ImtiSK(); k++){
- rf << M.ImtiVardas(k) << ' ' << M.ImtiBankas(k) << ' ' << M.ImtiNr(k) << endl;
- }
- rf << endl;
- for(int v = 1; v <= M.ImtiMen(); v++){
- rf << " " << v << " ";
- }
- rf << endl;
- for(int i = 0; i < M.ImtiSK(); i++){
- rf << i+1 << " ";
- for(int j = 0; j < M.ImtiMen(); j++){
- rf << "| "<< M.ImtiReiksme(i, j) << ' ';
- }
- rf << '|' << endl;
- }
- rf << endl;
- rf.close();
- }
- void Atlyginimas(Matrica M, double atlyginimas[CMAX]){
- for(int i=0; i<M.ImtiSK(); i++){
- atlyginimas[i] = 0.0;
- for(int j=0; j<M.ImtiMen(); j++){
- atlyginimas[i] += M.ImtiKaina() * M.ImtiReiksme(i, j);
- }
- }
- }
- void IsvestiAtlyginimas(Matrica M, double atlyginimas[CMAX]){
- ofstream rf(RF, ios::app);
- rf << string(25, '-') << "Rezultatai" << string(25, '-') << endl;
- for(int i=0; i<M.ImtiSK(); i++){
- rf << M.ImtiVardas(i) << " " << atlyginimas[i] << " Lt"<< endl;
- }
- rf.close();
- }
- void Geriausias(Matrica M, double atlyginimas[CMAX], int & ind, double & did){
- for(int i=0; i<M.ImtiSK(); i++){
- if(did < atlyginimas[i]){
- did = atlyginimas[i];
- ind = i;
- }
- }
- }
- void SpausdintiGeriausias(Matrica M, int ind, double did){
- ofstream rf(RF, ios::app);
- if(ind != -1){
- rf << endl << "Geriausias darbuotojas yra " << M.ImtiVardas(ind) << " jo atlyginimas: " << did << " Lt" << endl;
- }
- rf.close();
- }
- void MaziausiaiDetaliu(Matrica M, int & mind){
- int sum[CMAX];
- int maz = numeric_limits<int>::max();
- for(int i=0; i<M.ImtiMen(); i++){
- sum[i] = 0;
- for(int j=0; j<M.ImtiSK(); j++){
- sum[i] += M.ImtiReiksme(j, i);
- }
- if(maz > sum[i]){
- maz = sum[i];
- mind = i;
- }
- }
- }
- void SpMaziausiaiDetaliu(int mind){
- ofstream rf(RF, ios::app);
- rf << endl << "Mažiausiai detalių buvo pagaminta: " << mind + 1 << " mėnesio dieną"<< endl;
- rf.close();
- }
- bool ArYra(string Bankas, string bankai[], int n){
- for(int i=0; i<6; i++){
- if(bankai[i] == Bankas)
- return true;
- }
- return false;
- }
- void AtrenkamSkirtingus(Matrica M, string bankai[], int & n){
- n = 6;
- for(int i=0; i<M.ImtiSK(); i++){
- if(ArYra(M.ImtiBankas(i), bankai, n) == false)
- bankai[n++] = M.ImtiBankas(i);
- }
- }
- void TikSp(Matrica M, string bankai[], int n){
- for(int i=0; i<6; i++){
- cout << bankai[i] << ": ";
- for(int j=0; j<M.ImtiSK(); i++){
- if(bankai[i] == M.ImtiBankas(i)){
- cout << M.ImtiVardas(i) << " " << M.ImtiNr(i) << endl;
- }
- }
- }
- }
- void Pavedimai(Matrica M, double atlyginimas[CMAX], int n){
- string laik[CMAX];
- ofstream rf(RF, ios::app);
- rf << endl << string(25, '-') << "Banko pavedimų sąrašas" << string(25, '-') << endl << endl;
- for(int i=0; i < M.ImtiSK(); i++){
- rf << "Vardas: " << M.ImtiVardas(i) << " Bankas: " << M.ImtiBankas(i) << " Pervedama suma: " << atlyginimas[i] << " Lt"<< endl;
- }
- rf << endl << string(70, '*') << endl << endl;
- rf.close();
- }
- void AntroFailoDuom(Matrica M, Matrica & M2, int kiekis){
- ifstream fd(CD);
- M2.DetiKaina(M.ImtiKaina());
- string e;
- int sk1, sk2;
- fd >> sk1;
- M2.DetiSK(sk1);
- for(int i=0; i<kiekis; i++){
- getline(fd, e);
- }
- fd >> sk2;
- M2.DetiMen(sk2);
- SkaitytiMatrica(fd, M2, kiekis);
- fd.close();
- }
- void SpausintiFailoDuom(Matrica M2){
- ofstream rf(RF, ios::app);
- rf << string(17, '-') << "Antro failo duomenys" << string(17, '-') << endl;
- for(int v = 1; v <= M2.ImtiMen(); v++){
- rf << " " << v << " ";
- }
- rf << endl;
- for(int i = 0; i < M2.ImtiSK(); i++){
- rf << i + 1 << ' ';
- for(int j = 0; j < M2.ImtiMen(); j++){
- rf << "| " << M2.ImtiReiksme(i, j) << ' ';
- }
- rf << '|' << endl;
- }
- rf << string(50, '-') << endl;
- rf.close();
- }
- void GerDarbininkasPoz(Matrica M, int ind, int ind2){
- ofstream rf(RF, ios::app);
- if(ind == ind2){
- rf << M.ImtiVardas(ind) << " savo pozicijos neužleido, jis ir antą mėnesį pagamino daugiausiai detalių." << endl;
- }else{
- rf << "Antrą mėnesį " << M.ImtiVardas(ind) << " užleido savo poziciją, nes antrą mėnesį daugiausiai detalių pagamino " << M.ImtiVardas(ind2) << '.' << endl;
- }
- rf.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement