Facebook
From kala, 6 Years ago, written in C++.
">

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: view/view.php

Line Number: 33

from

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: view/view.php

Line Number: 33

- view diff
Embed
Download Paste or View Raw
Hits: 387
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. struct pozost {
  8.         string data;
  9.         string nazwamaratonu;
  10.         string czas;
  11.         pozost *nast;
  12.         pozost();
  13. };
  14. pozost::pozost()                //konstruktor
  15. {
  16.         nast = 0;
  17. }
  18. struct zawodnik {
  19.         string nazwisko;
  20.         zawodnik *nast;
  21.         pozost *dane;
  22.         zawodnik();
  23. };
  24. zawodnik::zawodnik()            //konstruktor
  25. {
  26.         nast = 0;
  27. }
  28.  
  29. void DodajPozost(pozost *&head, string &date, string &nameofmaraton, string &time);
  30. void DodajZawodnika(zawodnik *&head, string &vorname, string &date, string &nameofmaraton, string &time);
  31. void UtworzPlik(string &vorname, string &date, string &nameofmaraton, string &time);
  32. void Drukuj(zawodnik *head);
  33.  
  34.  
  35. int main()
  36. {
  37.         /*
  38.         _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_ALLOC_MEM_DF);
  39.         ifstream plikSPR;
  40.         plikSPR.open("DetectMemoryLeaks.h");
  41.         if (!plikSPR.is_open())
  42.         {
  43.         cerr << "Bład otwierania pliku";
  44.         exit(EXIT_FAILURE);
  45.         }
  46.         #include "DetectMemoryLeaks.h"
  47.         */
  48.         zawodnik *glowa = nullptr;
  49.  
  50.         string * pliki = new string[2];
  51.         pliki[0] = "2.txt";
  52.         pliki[1] = "3.txt";
  53.  
  54.         for (int i = 0; i < 2; i++)
  55.         {
  56.                 ifstream plik1;
  57.                 plik1.open(pliki[i]);
  58.                 if (!plik1.is_open())
  59.                 {
  60.                         cerr << "Bład otwierania pliku";
  61.                         exit(EXIT_FAILURE);
  62.                 }
  63.  
  64.  
  65.  
  66.                 string separator = ",";
  67.                 string linianazwa, liniadata, n1, n2, nazw, cza;
  68.                 int a, b;
  69.  
  70.                 getline(plik1, linianazwa);
  71.                 getline(plik1, liniadata);
  72.                 while (!plik1.eof())
  73.                 {
  74.                         plik1 >> a;             //sciąga niepotrzebne dane
  75.                         plik1 >> n1;    //sciąga przecinek
  76.                         plik1 >> nazw;
  77.                         nazw = nazw.substr(0, nazw.find(separator));
  78.                         plik1 >> b;             //sciąga niepotrzebne dane
  79.                         plik1 >> n2;    //sciąga przecinek
  80.                         plik1 >> cza;
  81.  
  82.                         DodajZawodnika(glowa, nazw, liniadata, linianazwa, cza);
  83.  
  84.                 }
  85.         }
  86.  
  87.         getchar(); getchar();
  88.  
  89.         Drukuj(glowa);
  90.         return 0;
  91. }
  92.  
  93. void DodajPozost(pozost *&head, string &date, string &nameofmaraton, string &time)
  94. {
  95.         pozost *p1 = head;
  96.  
  97.         if (head->data > date)
  98.         {
  99.                 p1->nast = head;
  100.                 head = p1;
  101.                 //head->data = date;
  102.                 //head->nazwamaratonu = nameofmaraton;
  103.                 head->czas = time;
  104.         }
  105.         else if (head->nast == nullptr)
  106.         {
  107.                 head->nast = new pozost;
  108.                 head->nast->data = date;
  109.                 head->nast->nazwamaratonu = nameofmaraton;
  110.                 head->nast->czas = time;
  111.         }
  112.         else
  113.         {
  114.                 pozost *p2 = head;
  115.                 pozost *p3 = head->nast;
  116.  
  117.                 while (p3 != nullptr)
  118.                 {
  119.                         if (p3->data < date)
  120.                         {
  121.                                 p3 = p3->nast;
  122.                                 p2 = p2->nast;
  123.                         }
  124.                         else
  125.                                 break;
  126.                 }
  127.                 if (p3)
  128.                 {
  129.                         p2->nast = new pozost;
  130.                         p2 = p2->nast;
  131.                         //      p2->data = date;
  132.                         //      p2->nazwamaratonu = nameofmaraton;
  133.                         p2->czas = time;
  134.                         p2->nast = p3;
  135.                 }
  136.                 else
  137.                 {
  138.                         p2->nast = new pozost;
  139.                         //      p2->data = date;
  140.                         //      p2->nazwamaratonu = nameofmaraton;
  141.                         p2->czas = time;
  142.                 }
  143.         }
  144. }
  145.  
  146. void DodajZawodnika(zawodnik *&head, string &vorname, string &date, string &nameofmaraton, string &time)
  147. {
  148.         if (head == nullptr)
  149.         {
  150.                 head = new zawodnik;
  151.                 head->nazwisko = vorname;
  152.                 head->nast = nullptr;
  153.                 head->dane = new pozost;
  154.                 head->dane->czas = time;
  155.                 head->dane->data = date;
  156.                 head->dane->nazwamaratonu = nameofmaraton;
  157.                 head->dane->nast = nullptr;
  158.                 return;
  159.                 //DodajPozost(head->dane, date, nameofmaraton, time);
  160.         }
  161.         else
  162.         {
  163.                 zawodnik *z1 = head;
  164.  
  165.                 while (1)
  166.                 {
  167.                         if (z1->nast == nullptr)
  168.                         {
  169.                                 z1->nast = new zawodnik;
  170.                                 z1 = z1->nast;
  171.                                 z1->nazwisko = vorname;
  172.                                 z1->nast = nullptr;
  173.                                 z1->dane = new pozost;
  174.                                 z1->dane->czas = time;
  175.                                 z1->dane->data = date;
  176.                                 z1->dane->nazwamaratonu = nameofmaraton;
  177.                                 z1->dane->nast = nullptr;
  178.                                 return;
  179.                                 //DodajPozost(z1->dane, date, nameofmaraton, time);
  180.                         }
  181.                         if (vorname == z1->nazwisko)
  182.                         {
  183.                                 DodajPozost(z1->dane, date, nameofmaraton, time);
  184.                                 return;
  185.                         }
  186.                         z1 = z1->nast;
  187.                 }
  188.         }
  189.  
  190.  
  191.         //UtworzPlik(vorname, date, nameofmaraton, time);
  192. }
  193. void Drukuj(zawodnik *head)
  194. {
  195.         if (head != nullptr)
  196.         {
  197.                 string nazwapliku = head->nazwisko;
  198.                 nazwapliku += ".txt";
  199.  
  200.  
  201.                 fstream plik;
  202.                 plik.open(nazwapliku, ios_base::app);           //app - dołącz tylko na końcu pliku
  203.                 if (!plik.is_open())
  204.                 {
  205.                         cerr << "Bład otwierania pliku";
  206.                         exit(EXIT_FAILURE);
  207.                 }
  208.  
  209.                 plik << head->nazwisko << endl << endl;
  210.  
  211.                 for (pozost* i = head->dane; i != nullptr; i = i->nast)
  212.                 {
  213.                         plik << i->data << " " << i->nazwamaratonu << " " << i->czas << endl;
  214.                 }
  215.                 plik.close();
  216.  
  217.                 Drukuj(head->nast);
  218.         }
  219. }
  220. void UtworzPlik(string &vorname, string &date, string &nameofmaraton, string &time)
  221. {
  222.         string nazwapliku = vorname;
  223.         nazwapliku += ".txt";
  224.  
  225.         fstream plik;
  226.         plik.open(nazwapliku, ios_base::app);           //app - dołącz tylko na końcu pliku
  227.         if (!plik.is_open())
  228.         {
  229.                 cerr << "Bład otwierania pliku";
  230.                 exit(EXIT_FAILURE);
  231.         }
  232.  
  233.         int licznik = 0;
  234.  
  235.         if (licznik == 0)
  236.         {
  237.                 plik << vorname;
  238.                 plik << "n";
  239.                 plik << date << " " << nameofmaraton << " " << time;
  240.         }
  241.         if (licznik != 0)
  242.         {
  243.                 plik << date << " " << nameofmaraton << " " << time;
  244.         }
  245.         licznik++; plik.close();
  246. }