Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*! \mainpage Sport Tracker
- * \section Zadání
- * Aplikace pro záznam sportovních aktivit ukládá výsledky do CSV souboru. Ten obsahuje:
- * -unikátní ID sportovní aktivity,
- * -datum konání aktivity,
- * -typ aktivity (chůze, běh, kolo, inline),
- * -celkovou vzdálenost v km, dobu aktivity v minutách,
- * -odhad spálených kJ.
- * Pro data z vytvořeného/načteného CSV a vstupu uživatele z klávesnice vygenerujte přehled do HTML, který bude obsahovat:
- * -mesíční souhrn dle typu aktivit včetně dopočtené průmerné rychlosti;
- * -roční souhrn dle typu aktivit seřazených sestupně podle četnosti sportovních aktivit.
- * \section Prostředí
- * Microsoft Visual Studio 2013
- */
- #include <stdlib.h>
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- using namespace std;
- string Nazev_vstupniho_souboru1;//Udaje_o_aktivitach
- string Nazev_vstupniho_souboru2;//Udaje_o_typech
- string Nazev_vystupniho_souboru;
- ofstream Vystup_html;
- fstream Udaje_o_aktivitach;
- fstream Udaje_o_typech;
- /*!
- * \brief Struktura Aktivity
- */
- struct Aktivity {
- string *ID;/**< @brief proměnná pro uložení ID */
- string *Datum;/**< @brief proměnná pro uložení Datumu */
- string *Typ_Aktivity;/**< @brief proměnná pro uložení Typu Aktivity */
- string *CelkovaVzdalenost;/**< @brief proměnná pro uložení Celkové vzdálenosti aktivity */
- string *DobaTrvani;/**< @brief proměnná pro uložení Doby trvání aktivity */
- string *SpaleneKJ;/**< @brief proměnná pro uložení počtu Spálených kalorií v KJ */
- }Sportovni_Aktivity;
- /*!
- * \brief Struktura Typu Aktivity
- */
- struct TypyAktivit {
- string *ID;/**< @brief proměnná pro uložení ID */
- string *Nazev;/**< @brief proměnná pro uložení Názvu aktivity */
- int *cetnost;
- }Typy_Aktivit;
- /*!
- * \brief velikost
- * \param Nazev_souboru
- */
- int velikost(string Nazev_souboru)
- {
- int pocet_radku = -1;
- string pocet_radku1 = " ";
- fstream soubor;
- soubor.open(Nazev_souboru);
- while (!soubor.eof())
- {
- getline(soubor, pocet_radku1);
- pocet_radku++;
- }
- soubor.close();
- return pocet_radku;
- }
- /*!
- * \brief retyp
- * \param a
- * \return
- */
- string retyp(int a)
- {
- for (int i = 0; i < velikost(Nazev_vstupniho_souboru2); i++)
- {
- if (atoi(Typy_Aktivit.ID[i].c_str()) == a)
- {
- return Typy_Aktivit.Nazev[i];
- }
- }
- return "null";
- }
- /*!
- * \brief dynamickaAlokace
- */
- void dynamickaAlokace()
- {
- Sportovni_Aktivity.CelkovaVzdalenost = new string[velikost(Nazev_vstupniho_souboru1)];
- Sportovni_Aktivity.Datum = new string[velikost(Nazev_vstupniho_souboru1)];
- Sportovni_Aktivity.DobaTrvani = new string[velikost(Nazev_vstupniho_souboru1)];
- Sportovni_Aktivity.ID = new string[velikost(Nazev_vstupniho_souboru1)];
- Sportovni_Aktivity.SpaleneKJ = new string[velikost(Nazev_vstupniho_souboru1)];
- Sportovni_Aktivity.Typ_Aktivity = new string[velikost(Nazev_vstupniho_souboru1)];
- Typy_Aktivit.ID = new string[velikost(Nazev_vstupniho_souboru2)];
- Typy_Aktivit.Nazev = new string[velikost(Nazev_vstupniho_souboru2)];
- Typy_Aktivit.cetnost = new int[velikost(Nazev_vstupniho_souboru2)];
- }
- /*!
- * \brief nacitani
- */
- void nacitani()
- {
- dynamickaAlokace();
- int i = 0;
- int pocetPrvku = velikost(Nazev_vstupniho_souboru1);
- Udaje_o_aktivitach.open(Nazev_vstupniho_souboru1);
- while (i < pocetPrvku)//nacitani do poli
- {
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.ID[i], ',');
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.Datum[i], ',');
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.Typ_Aktivity[i], ',');
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.CelkovaVzdalenost[i], ',');
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.DobaTrvani[i], ',');
- getline(Udaje_o_aktivitach, Sportovni_Aktivity.SpaleneKJ[i], '\n');
- i++;
- }
- Udaje_o_aktivitach.close();
- Udaje_o_typech.open(Nazev_vstupniho_souboru2);
- i = 0;
- pocetPrvku = velikost(Nazev_vstupniho_souboru2);
- while (i < pocetPrvku)//nacitani do poli
- {
- getline(Udaje_o_typech, Typy_Aktivit.ID[i], ',');
- getline(Udaje_o_typech, Typy_Aktivit.Nazev[i], '\n');
- i++;
- }
- Udaje_o_typech.close();
- }
- /*!
- * \brief Funkce, která vypíše hlavičku do html
- */
- void Vypis_hlavicky()
- {
- Vystup_html.close();
- Vystup_html.open(Nazev_vystupniho_souboru);
- Vystup_html << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
- Vystup_html << endl << "<html>" << endl << "<head>";
- Vystup_html << endl << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
- Vystup_html << endl << "<title>Sportovni Aktivity</title>";
- Vystup_html << endl << "</head>" << endl << "<body bgcolor=" << '"' << "yellow" << '"' << ">";
- }
- /*!
- * \brief Funkce, která vypíše patu do html
- */
- void Vypis_paty()
- {
- Vystup_html << endl << "</body>";
- Vystup_html << endl << "</html>";
- Vystup_html.close();
- cout << "Ulozeni do souboru HTML probehlo uspesne." << endl;
- system("Pause");
- }
- /*!
- * \brief Funkce pro kontrolu času při výběru č.3(přidání aktivity)
- * Zvolený čas musí být ve tvaru DD.MM.YYYY = 10 znaků
- * \param cas
- */
- bool kontrolaCasu(string cas)
- {
- if (cas.length() == 10)
- {
- string den = "";
- den += cas[0];
- den += cas[1];
- string mesic = "";
- mesic += cas[3];
- mesic += cas[4];
- string rok = "";
- rok += cas[6];
- rok += cas[7];
- rok += cas[8];
- rok += cas[9];
- if (isdigit(den[1]) && isdigit(den[0]) && isdigit(mesic[1]) && isdigit(mesic[0]) && isdigit(rok[0])
- && isdigit(rok[1]) && isdigit(rok[2]) && isdigit(rok[3])){
- if (atoi(den.c_str()) > 0 && atoi(den.c_str()) <= 32 && atoi(mesic.c_str()) <= 12 &&
- atoi(mesic.c_str()) > 0 && atoi(rok.c_str()) > 0 && atoi(rok.c_str()) < 2015)
- {
- return true;
- }
- }
- }
- return false;
- }
- /*!
- * \brief Funkce, která přidá Typ aktivity
- * \param name
- */
- void pridaniTypu(string name)
- {
- Udaje_o_typech.open(Nazev_vstupniho_souboru2);
- Udaje_o_typech.seekg(0, Udaje_o_typech.end);
- Udaje_o_typech << velikost(Nazev_vstupniho_souboru2) + 1;
- Udaje_o_typech << "," << name << endl;
- Udaje_o_typech.close();
- }
- /*!
- * \brief Funkce, která přidá novou aktivitu
- * \param newAktivita
- */
- void pridaniAktivity(Aktivity newAktivita)
- {
- Udaje_o_aktivitach.open(Nazev_vstupniho_souboru1);
- Udaje_o_aktivitach.seekg(0, Udaje_o_aktivitach.end);
- Udaje_o_aktivitach << velikost(Nazev_vstupniho_souboru1) + 1;
- Udaje_o_aktivitach << "," << newAktivita.Datum[0] << "," << newAktivita.Typ_Aktivity[0]
- << "," << newAktivita.CelkovaVzdalenost[0] << "," << newAktivita.DobaTrvani[0]
- << "," << newAktivita.SpaleneKJ[0] << endl;
- Udaje_o_aktivitach.close();
- }
- /*!
- * \brief Funkce, která přidá typAktivity
- * \param number
- */
- string typAktivity(string number)
- {
- nacitani();
- int i = 0;
- while (velikost(Nazev_vstupniho_souboru2) > i)
- {
- if (atoi(Typy_Aktivit.ID[i].c_str()) == atoi(number.c_str())){
- return Typy_Aktivit.Nazev[i];
- }
- i++;
- }
- return "neznamy mesic";
- }
- /*!
- * \brief Funkce Bubble Sort
- */
- void bubblesort()
- {
- for (int i = 0; i < velikost(Nazev_vstupniho_souboru2); i++)
- {
- for (int j = i; j < velikost(Nazev_vstupniho_souboru2); j++)
- {
- TypyAktivit typ;
- typ.ID = new string[1];
- typ.Nazev = new string[1];
- typ.cetnost = new int[1];
- if (Typy_Aktivit.cetnost[i]>Typy_Aktivit.cetnost[j])
- {
- typ.cetnost[0] = Typy_Aktivit.cetnost[i];
- typ.ID[0] = Typy_Aktivit.ID[i];
- typ.Nazev[0] = Typy_Aktivit.Nazev[i];
- Typy_Aktivit.cetnost[i] = Typy_Aktivit.cetnost[j];
- Typy_Aktivit.ID[i] = Typy_Aktivit.ID[j];
- Typy_Aktivit.Nazev[i] = Typy_Aktivit.Nazev[j];
- Typy_Aktivit.cetnost[j] = typ.cetnost[0];
- Typy_Aktivit.ID[j] = typ.ID[0];
- Typy_Aktivit.Nazev[j] = typ.Nazev[0];
- }
- }
- }
- }
- /*!
- * \brief Funkce na výpočet průměrné rychlosti
- * \param a
- * \param b
- * \return
- */
- double prumerna_rychlost(double a, double b)
- {
- if (a == 0 || b == 0){ return 0.0; }
- return a / (b / 60);
- }
- /*!
- * \brief Měsíční souhrn dle typu aktivit včetně dopočtené průměrné rychlosti
- * V poli rocni_aktivity jsou všechny aktivity daného roku
- * V poli typy_aktivit jsou četnosti jednotlivých typů za daný rok
- * V poli typy_aktivit jsou seřazené aktivity podle četnosti pomocí Bubble Sortu
- * \param rok
- * \param mesic
- */
- void mesicni_souhrn(int rok, int mesic)
- {
- Aktivity rocni_aktivity;
- rocni_aktivity.CelkovaVzdalenost = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.Datum = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.DobaTrvani = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.ID = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.SpaleneKJ = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.Typ_Aktivity = new string[velikost(Nazev_vstupniho_souboru1)];
- nacitani();
- Vypis_hlavicky();
- int i = 0;
- int index = 0;
- while (velikost(Nazev_vstupniho_souboru1) > i){
- string rok1 = "";
- string mesic1 = "";
- rok1 += Sportovni_Aktivity.Datum[i][6];
- rok1 += Sportovni_Aktivity.Datum[i][7];
- rok1 += Sportovni_Aktivity.Datum[i][8];
- rok1 += Sportovni_Aktivity.Datum[i][9];
- mesic1 += Sportovni_Aktivity.Datum[i][3];
- mesic1 += Sportovni_Aktivity.Datum[i][4];
- if (rok == atoi(rok1.c_str()) && mesic == atoi(mesic1.c_str()))
- {
- rocni_aktivity.CelkovaVzdalenost[index] = Sportovni_Aktivity.CelkovaVzdalenost[i];
- rocni_aktivity.Datum[index] = Sportovni_Aktivity.Datum[i];
- rocni_aktivity.DobaTrvani[index] = Sportovni_Aktivity.DobaTrvani[i];
- rocni_aktivity.ID[index] = Sportovni_Aktivity.ID[i];
- rocni_aktivity.SpaleneKJ[index] = Sportovni_Aktivity.SpaleneKJ[i];
- rocni_aktivity.Typ_Aktivity[index++] = Sportovni_Aktivity.Typ_Aktivity[i];
- }
- i++;
- }
- for (int j = 0; j < velikost(Nazev_vstupniho_souboru2); j++)
- {
- Typy_Aktivit.cetnost[j] = 0;
- }
- for (int j = 0; j < index; j++)
- {
- for (int k = 0; k < velikost(Nazev_vstupniho_souboru2); k++)
- {
- if (Typy_Aktivit.ID[k] == rocni_aktivity.ID[j])
- {
- Typy_Aktivit.cetnost[k]++;
- }
- }
- }
- bubblesort();
- for (int q = 0; q < velikost(Nazev_vstupniho_souboru2); q++)
- {
- Vystup_html << "<h2 align=\"center\"><b>" << Typy_Aktivit.Nazev[q] << "</b></h2>";
- Vystup_html << endl << "<table border=1 align=\"center\">";
- Vystup_html << endl << "<tr>";
- Vystup_html << endl << "<td>" << "ID" << "</td>" << "<td>" << "Datum konani aktivity" <<
- "</td>" << "<td>" << "Typ aktivity" << "</td>" << "<td>" << "Celkova vzdalenost v Km" <<
- "</td>" << "<td>" << "Doba aktivity v min" << "</td>" << "<td>" << "Odhad spalenych Kj" << "</td></tr>";
- double vzdalenost = 0;
- double cas = 0;
- for (int w = 0; w < velikost(Nazev_vstupniho_souboru1); w++)
- {
- if (Typy_Aktivit.ID[q] == rocni_aktivity.Typ_Aktivity[w] && rocni_aktivity.ID[w] != "")
- {
- Vystup_html << endl << "<td>" << rocni_aktivity.ID[w] << "</td>" << "<td>" << rocni_aktivity.Datum[w] <<
- "</td>" << "<td>" << retyp(atoi(rocni_aktivity.Typ_Aktivity[w].c_str())) << "</td>" << "<td>" << rocni_aktivity.CelkovaVzdalenost[w] <<
- "</td>" << "<td>" << rocni_aktivity.DobaTrvani[w] << "</td>" << "<td>" << rocni_aktivity.SpaleneKJ[w] << "</td></tr>";
- vzdalenost += (double)atoi(rocni_aktivity.CelkovaVzdalenost[w].c_str());
- cas += (double)atoi(rocni_aktivity.DobaTrvani[w].c_str());
- }
- }
- Vystup_html << endl << "</table>";
- Vystup_html << "<h3 align=\"center\"><b> Prumerna rychlost:" << prumerna_rychlost(vzdalenost, cas) << "</b></h3>";
- }
- Vypis_paty();
- }
- /*!
- * \brief Roční souhrn dle typu aktivit seřazených sestupně podle četnosti sportovních aktivit
- * V poli rocni_aktivity jsou vsechny aktivity daného roku
- * V poli typy_aktivit jsou četnosti jednotlivých typů za daný rok
- * V poli typy_aktivit jsou seřazené aktivity podla četnosti pomocí Bubble Sortu
- * \param rok
- */
- void rocni_souhrn(int rok)
- {
- Aktivity rocni_aktivity;
- rocni_aktivity.CelkovaVzdalenost = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.Datum = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.DobaTrvani = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.ID = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.SpaleneKJ = new string[velikost(Nazev_vstupniho_souboru1)];
- rocni_aktivity.Typ_Aktivity = new string[velikost(Nazev_vstupniho_souboru1)];
- nacitani();
- Vypis_hlavicky();
- int i = 0;
- int index = 0;
- while (velikost(Nazev_vstupniho_souboru1) > i){
- string rok1 = "";
- rok1 += Sportovni_Aktivity.Datum[i][6];
- rok1 += Sportovni_Aktivity.Datum[i][7];
- rok1 += Sportovni_Aktivity.Datum[i][8];
- rok1 += Sportovni_Aktivity.Datum[i][9];
- if (rok == atoi(rok1.c_str()))
- {
- rocni_aktivity.CelkovaVzdalenost[index] = Sportovni_Aktivity.CelkovaVzdalenost[i];
- rocni_aktivity.Datum[index] = Sportovni_Aktivity.Datum[i];
- rocni_aktivity.DobaTrvani[index] = Sportovni_Aktivity.DobaTrvani[i];
- rocni_aktivity.ID[index] = Sportovni_Aktivity.ID[i];
- rocni_aktivity.SpaleneKJ[index] = Sportovni_Aktivity.SpaleneKJ[i];
- rocni_aktivity.Typ_Aktivity[index++] = Sportovni_Aktivity.Typ_Aktivity[i];
- }
- i++;
- }
- for (int j = 0; j < velikost(Nazev_vstupniho_souboru2); j++)
- {
- Typy_Aktivit.cetnost[j] = 0;
- }
- for (int j = 0; j < index; j++)
- {
- for (int k = 0; k < velikost(Nazev_vstupniho_souboru2); k++)
- {
- if (Typy_Aktivit.ID[k] == rocni_aktivity.ID[j])
- {
- Typy_Aktivit.cetnost[k]++;
- }
- }
- }
- bubblesort();
- for (int q = 0; q < velikost(Nazev_vstupniho_souboru2); q++)
- {
- Vystup_html << "<h2 align=\"center\"><b>" << Typy_Aktivit.Nazev[q] << "</b></h2>";
- Vystup_html << endl << "<table border=1 align=\"center\">";
- Vystup_html << endl << "<tr>";
- Vystup_html << endl << "<td>" << "ID" << "</td>" << "<td>" << "Datum konani aktivity" <<
- "</td>" << "<td>" << "Typ aktivity" << "</td>" << "<td>" << "Celkova vzdalenost v Km" <<
- "</td>" << "<td>" << "Doba aktivity v min" << "</td>" << "<td>" << "Odhad spalenych Kj" << "</td></tr>";
- for (int w = 0; w < velikost(Nazev_vstupniho_souboru1); w++)
- {
- if (Typy_Aktivit.ID[q] == rocni_aktivity.Typ_Aktivity[w] && rocni_aktivity.ID[w] != "")
- {
- Vystup_html << endl << "<td>" << rocni_aktivity.ID[w] << "</td>" << "<td>" << rocni_aktivity.Datum[w] <<
- "</td>" << "<td>" << retyp(atoi(rocni_aktivity.Typ_Aktivity[w].c_str())) << "</td>" << "<td>" << rocni_aktivity.CelkovaVzdalenost[w] <<
- "</td>" << "<td>" << rocni_aktivity.DobaTrvani[w] << "</td>" << "<td>" << rocni_aktivity.SpaleneKJ[w] << "</td></tr>";
- }
- }
- Vystup_html << endl << "</table>";
- }
- Vypis_paty();
- }
- /*!
- * \brief main
- */
- int main()
- {
- /*!
- * \brief Načítání souborů, které mají nastavenou relativní cestu
- * Načítání .csv souboru Nazev_vstupniho_souboru1, který obsahuje:
- * -ID sportovní aktivity
- * -datum konání aktivity
- * -typ aktivity (načítán ze souboru "Typy_sportovnich_aktivit.csv"
- * -celkovou vzdálenost v km
- * -dobu aktivity v minutách
- * -odhad spálených kJ
- * Načítání .csv souboru Nazev_vstupniho_souboru2, který obsahuje jednotlivé typy aktivit
- * (chůze, běh, kolo, inline)
- */
- Nazev_vstupniho_souboru1 = "Sportovni_aktivity.csv";
- Nazev_vstupniho_souboru2 = "Typy_sportovnich_aktivit.csv";
- Nazev_vystupniho_souboru = "Vystup.html";
- nacitani();
- while (1)
- {
- nacitani();
- system("cls");
- cout << "*****************************************************************" << endl
- << "* Sport Tracker *" << endl
- << "*****************************************************************" << endl << endl;
- cout << "Menu:" << endl
- << " 1. Vytvoreni vystupu webove stranky" << endl
- << " *Mesicni souhrn dle typu aktivit vcetne dopoctene" << endl
- << " prumerne rychlosti" << endl
- << " 2. Vytvoreni vystupu webove stranky" << endl
- << " *Rocni souhrn dle typu aktivit serazenych sestupne" << endl
- << " podle cetnosti sportovnich aktivit" << endl
- << " 3. Pridani aktivity" << endl
- << " 4. Konec" << endl;
- int volba = 0;
- string chyba = "";
- while (1)
- {
- cout << "Zadej volbu: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba > 5)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else break;
- }
- switch (volba)
- {
- case 1:
- int rok;
- int mesic;
- while (1)
- {
- cout << "Zadajte rok: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba < 0)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- {
- rok = volba;
- break;
- }
- }
- while (1)
- {
- cout << "Zadajte mesic: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba > 12 && volba < 0)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- {
- mesic = volba;
- break;
- }
- }
- mesicni_souhrn(rok, mesic);
- break;
- case 2:
- int rok1;
- while (1)
- {
- cout << "Zadajte rok: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba < 0)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- {
- rok1 = volba;
- break;
- }
- }
- rocni_souhrn(rok1);
- break;
- case 3:
- while (1)
- {
- cout << endl;
- cout << "1 - Pro pridani aktivity: " << endl;
- cout << "2 - Pro pridani Typu aktivity" << endl;
- cout << "Zadej volbu:";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba > 2)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else break;
- }
- if (volba == 1)
- {
- Aktivity novaAktivita;
- novaAktivita.CelkovaVzdalenost = new string[1];
- novaAktivita.Datum = new string[1];
- novaAktivita.DobaTrvani = new string[1];
- novaAktivita.ID = new string[1];
- novaAktivita.SpaleneKJ = new string[1];
- novaAktivita.Typ_Aktivity = new string[1];
- while (1)
- {
- string example = "";
- cout << "Zadaj datum konani aktivity v tvare [DD.MM.YYYY]: ";
- cin >> example;
- if (kontrolaCasu(example))
- {
- novaAktivita.Datum[0] = example;
- break;
- }
- }
- while (1)
- {
- cout << "Zadaj typ aktivity:" << endl;
- Udaje_o_typech.open(Nazev_vstupniho_souboru2);
- for (int i = 0; i < velikost(Nazev_vstupniho_souboru2); i++)
- {
- string num = "";
- string out = "";
- getline(Udaje_o_typech, num, ',');
- getline(Udaje_o_typech, out, '\n');
- cout << num << " - " << out << endl;
- }
- Udaje_o_typech.close();
- cout << "Zadej volbu: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba > velikost(Nazev_vstupniho_souboru2))
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- {
- novaAktivita.Typ_Aktivity[0] = to_string(volba);
- break;
- }
- }
- while (1)
- {
- double example = 0;
- cout << "Zadej celkovu vzdalenost v [Km]: ";
- cin >> example;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else if (example == 0)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else{
- novaAktivita.CelkovaVzdalenost[0] = to_string(example);
- break;
- }
- }
- while (1)
- {
- double example = 0;
- cout << "Zadej dobu aktivity v [min]: ";
- cin >> example;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else if (example == 0)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else{
- novaAktivita.DobaTrvani[0] = to_string(example);
- break;
- }
- }
- novaAktivita.ID[0] = velikost(Nazev_vstupniho_souboru1) + 1;
- novaAktivita.SpaleneKJ[0] = to_string((atoi(novaAktivita.DobaTrvani[0].c_str()) / 60.0) * 1500);
- pridaniAktivity(novaAktivita);
- }
- else{
- string name = "";
- while (1)
- {
- cout << "Zadej Nazev Typu: ";
- cin >> name;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- break;
- }
- pridaniTypu(name);
- }
- break;
- case 4:
- Vystup_html.close();
- return 0;
- break;
- default: cout << "Nevybrali jste si ani jednu z moznosti." << endl;
- break;
- }
- }
- system("Pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement