Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <fstream>
- #include <string>
- using namespace std;
- struct dane_osobowe {
- string imie;
- string nazwisko;
- string wzrost;
- string dzien_urodzenia;
- string miesiac_urodzenia;
- string rok_urodzenia;
- char plec='S';
- void wyswietl();
- };
- void dane_osobowe::wyswietl() {
- cout << endl << "Imie: " << imie << endl;
- cout << "Nazwisko: " << nazwisko << endl;
- cout << "Wzrost: " << wzrost << " cm." << endl;
- cout << "Data urodzenia: " << dzien_urodzenia << "." << miesiac_urodzenia << "." << rok_urodzenia << "r" << endl;
- if(plec=='m' || plec=='M'){
- cout << "Plec: Mezczyzna" << endl;
- } else if(plec=='k' || plec=='K') {
- cout << "Plec: Kobieta" << endl;
- }
- else
- cout << "Plec: Nieznana" << endl;
- }
- struct firma {
- string nazwa;
- string lokalizacja;
- string opis;
- dane_osobowe prezes;
- void wyswietl();
- };
- void firma::wyswietl() {
- cout << endl;
- cout << "Nazwa firmy: " << nazwa << endl;
- cout << "Lokalizacja: " << lokalizacja << endl;
- cout << opis << endl;
- cout << "Dane prezesa: ";
- prezes.wyswietl();
- }
- string *wczytaj(string &nazwa, int &n){
- fstream plik;
- plik.open(nazwa, ios::in);
- string linia;
- if(plik.good()){
- while(getline(plik,linia)){
- n++;
- }
- plik.clear();
- plik.seekg(0, ios::beg);
- string *tab=new string[n];
- for(int i=0; i<n; i++){
- getline(plik,tab[i]);
- }
- plik.close();
- return tab;
- } else {
- cout << "problem" << endl;
- return 0;
- }
- }
- firma *nazwa(string *baza1, string *baza2, int n, int n2){
- string linia =".";
- string dana;
- size_t pozycja = 0;
- size_t pozycja2=0;
- firma *firmy = new firma[n];
- for(int i=0; i<n; i++){
- unsigned j=0;
- pozycja=baza1[i].find(linia);
- for(; j<pozycja; j++){
- int k=0;
- dana[k] = baza1[i][j];
- k++;
- }
- firmy[i].nazwa = dana;
- pozycja=baza1[i].find(linia,pozycja+1);
- for(; j<pozycja; j++){
- int k=0;
- dana[k] = baza1[i][j];
- k++;
- }
- firmy[i].lokalizacja = dana;
- pozycja=baza1[i].find(linia,pozycja+1);
- for(; j<pozycja; j++){
- int k=0;
- dana[k] = baza1[i][j];
- k++;
- }
- firmy[i].opis = dana;
- pozycja=baza1[i].find(linia,pozycja+1);
- size_t rozmiar = sizeof(baza1[i]);
- size_t rozmiar_nazwiska = rozmiar-pozycja-1;
- string szukane_nazwisko1;
- for(unsigned r=pozycja; r<rozmiar_nazwiska; r++){
- szukane_nazwisko1[r] = baza1[i][pozycja+r];
- }
- string prezes;
- for(int l=0; l<n2; l++){
- if(baza2[l].find(szukane_nazwisko1)!=string::npos){
- prezes = baza2[l];
- }
- }
- for(int z=0; z<n2; z++){
- pozycja2=baza2[z].find(linia);
- for(unsigned l=0; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- pozycja2=baza2[z].find(linia,pozycja2+1);
- for(unsigned l; l<pozycja2; l++){
- int k=0;
- dana[k] = baza2[i][l];
- k++;
- }
- firmy[i].prezes.imie = dana;
- }
- }
- return firmy;
- }
- void wypisz(const string *baza, int n){
- cout << endl << endl;
- for(int i=0; i<n; i++){
- cout << baza[i] << endl;
- }
- cout << endl;
- }
- void zapisz(string *baza, int n, string nowa_nazwa){
- fstream plik;
- plik.open(nowa_nazwa, ios::out);
- if(plik.good()){
- for(int i=0; i<n; i++){
- plik << baza[i] << endl;
- }
- plik.close();
- } else {
- cout << "problem" << endl;
- }
- }
- int main(int argc,char *argv[]){
- fstream plik;
- string nazwa(argv[1]);
- string nazwa2(argv[2]);
- int rozmiar1=0;
- int rozmiar2=0;
- string *baza_prezesow=NULL;
- string *baza_firm=NULL;
- firma *firmy = NULL;
- baza_firm = wczytaj(nazwa, rozmiar1);
- wypisz(baza_firm, rozmiar1);
- baza_prezesow = wczytaj(nazwa2, rozmiar2);
- wypisz(baza_prezesow, rozmiar2);
- firmy = nazwa(baza_firm, baza_prezesow, rozmiar1, rozmiar2);
- cout << "r1: " << rozmiar1 << endl << "r2: " << rozmiar2 << endl;
- delete [] baza_firm;
- delete [] baza_prezesow;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement