Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- #include <sstream>
- using namespace std;
- ofstream Vystup_html;/**< @brief vystupny subor */
- fstream miestnosti_subor;/**< @brief vstupny subor pre miestnosti */
- fstream rezervacie_subor;/**< @brief vstupny subor pre rezervacie */
- int pocet_miestnosti = 0;
- int pocet_rezervacii = 0;
- struct Miestnosti {
- string *id;
- string *patro;
- string *cislo_miestnosti;
- string *kapacita_sedadel;
- string *cena_za_den_rezervace;
- }miestnosti;
- //*id_miestnosti, *den_rezervacie.
- struct Rezervacie{
- string *id_miestnosti;
- string *den_rezervacie;
- }rezervacie;
- void nacitanie(string subor1, string subor2)
- {
- int pocet = 0;
- string prazdny_riadok = " ";
- miestnosti_subor.open(subor1);
- while (!miestnosti_subor.eof())
- {
- getline(miestnosti_subor, prazdny_riadok);
- pocet++;
- }
- pocet_miestnosti = pocet;
- miestnosti_subor.close();
- rezervacie_subor.open(subor2);
- pocet = 0;
- while (!rezervacie_subor.eof())
- {
- getline(rezervacie_subor, prazdny_riadok);
- pocet++;
- }
- pocet_rezervacii = pocet;
- rezervacie_subor.close();
- miestnosti.cena_za_den_rezervace = new string[pocet_miestnosti];
- miestnosti.cislo_miestnosti = new string[pocet_miestnosti];
- miestnosti.id = new string[pocet_miestnosti];
- miestnosti.kapacita_sedadel = new string[pocet_miestnosti];
- miestnosti.patro = new string[pocet_miestnosti];
- rezervacie.den_rezervacie = new string[pocet_rezervacii];
- rezervacie.id_miestnosti = new string[pocet_rezervacii];
- int i = 0;
- miestnosti_subor.open(subor1);
- while (i < pocet_miestnosti - 1)//nacitanie do poli
- {////*id, *patro, *cislo_mistnosti, *kapacita sedadel, *cena za den rezervace)
- getline(miestnosti_subor, miestnosti.id[i], ',');
- getline(miestnosti_subor, miestnosti.patro[i], ',');
- getline(miestnosti_subor, miestnosti.cislo_miestnosti[i], ',');
- getline(miestnosti_subor, miestnosti.kapacita_sedadel[i], ',');
- getline(miestnosti_subor, miestnosti.cena_za_den_rezervace[i], '\n');
- i++;
- }
- miestnosti_subor.close();
- rezervacie_subor.open(subor2);
- i = 0;
- while (i < pocet_rezervacii - 1)//nacitanie do poli
- {
- getline(rezervacie_subor, rezervacie.id_miestnosti[i], ',');
- getline(rezervacie_subor, rezervacie.den_rezervacie[i], '\n');
- i++;
- }
- rezervacie_subor.close();
- }
- void Vypis_hlavicky(string vystup)
- {
- Vystup_html.open(vystup);
- 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>Rezervacie miestnosti</title>";
- Vystup_html << endl << "</head>" << endl << "<body bgcolor=" << '"' << "white" << '"' << ">";
- }
- void Vypis_paty()
- {
- Vystup_html << endl << "</table>";
- Vystup_html << endl << "</body>";
- Vystup_html << endl << "</html>";
- Vystup_html.close();
- cout << "Ulozeni do souboru HTML probehlo uspesne." << endl;
- }
- void Rezervacia_miestnosti_na_zvoleny_den(string subor1, string subor2, string vystup)
- {
- string date = "";
- string chyba = "";
- bool dalej = false;
- while (!dalej)
- {
- cout << "Zadaj datum v tvare [DD:MM:YYYY]: ";
- cin >> date;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (date.length() != 10)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else if (date.length() == 10)
- {
- string den = "";/**< @brief pomocna premenna na ulozenie dna */
- den += date[0];
- den += date[1];
- string mesiac = "";/**< @brief pomocna premenna na ulozenie mesiaca */
- mesiac += date[3];
- mesiac += date[4];
- string rok = "";/**< @brief pomocna premenna na ulozenie roku */
- rok += date[6];
- rok += date[7];
- rok += date[8];
- rok += date[9];//atoi(myString.c_str());
- if (isdigit(den[1]) && isdigit(den[0]) && isdigit(mesiac[1]) && isdigit(mesiac[0]) && isdigit(rok[0])
- && isdigit(rok[1]) && isdigit(rok[2]) && isdigit(rok[3]) && date[2] == ':'&& date[5] == ':'){
- if (atoi(den.c_str()) > 0 && atoi(den.c_str()) <= 32 && atoi(mesiac.c_str()) <= 12 &&
- atoi(mesiac.c_str()) > 0 && atoi(rok.c_str()) > 2013){
- dalej = true;
- }
- }
- }
- }
- for (int i = 0; i < pocet_miestnosti-1; i++)
- {
- cout << "ID: " << miestnosti.id[i] << ", cislo miestnosti: " << miestnosti.cislo_miestnosti[i] << " ,kapacita sedadiel: " << miestnosti.kapacita_sedadel[i] << " ,cena za den objednavky: " <<miestnosti.cena_za_den_rezervace[i]<< endl;
- }
- int volba = 0;
- while (dalej)
- {
- cout << "Zadaj ID miestnosti: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (volba >pocet_miestnosti-1 || volba<1)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else{
- bool nachadza = false;
- for (int i = 0; i < pocet_rezervacii; i++)
- {
- if (atoi(rezervacie.id_miestnosti[i].c_str()) == volba && rezervacie.den_rezervacie[i]==date)
- {
- nachadza = true;
- }
- }
- if (!nachadza)
- {
- dalej = false;
- }
- else if (nachadza)
- {
- cout << "dana miestnost je uz bohuzial obsadena" << endl;
- }
- }
- }
- rezervacie_subor.open(subor2);
- rezervacie_subor.seekg(0, rezervacie_subor.end);
- stringstream ss;
- ss << volba;
- string s2;
- ss >> s2;
- rezervacie_subor << s2;
- rezervacie_subor << "," << date << endl;
- rezervacie_subor.close();
- }
- void Vyhladanie_volnych_miestnosti_na_urcity_datum(string subor1, string subor2, string vystup)
- {
- Vypis_hlavicky(vystup);
- string date = "";
- string chyba = "";
- while (1)
- {
- cout << "Zadaj datum v tvare [DD:MM:YYYY]: ";
- cin >> date;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> chyba;
- }
- else if (date.length()!=10)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else
- if (date.length() == 10)
- {
- string den = "";/**< @brief pomocna premenna na ulozenie dna */
- den += date[0];
- den += date[1];
- string mesiac = "";/**< @brief pomocna premenna na ulozenie mesiaca */
- mesiac += date[3];
- mesiac += date[4];
- string rok = "";/**< @brief pomocna premenna na ulozenie roku */
- rok += date[6];
- rok += date[7];
- rok += date[8];
- rok += date[9];//atoi(myString.c_str());
- if (isdigit(den[1]) && isdigit(den[0]) && isdigit(mesiac[1]) && isdigit(mesiac[0]) && isdigit(rok[0])
- && isdigit(rok[1]) && isdigit(rok[2]) && isdigit(rok[3]) && date[2] == ':'&& date[5] == ':'){
- if (atoi(den.c_str()) > 0 && atoi(den.c_str()) <= 32 && atoi(mesiac.c_str()) <= 12 &&
- atoi(mesiac.c_str()) > 0 && atoi(rok.c_str()) > 0 && atoi(rok.c_str()) < 2015)
- {
- break;
- }
- }
- }
- }
- Miestnosti vybrane_miestnosti;
- vybrane_miestnosti.cena_za_den_rezervace = new string[pocet_miestnosti];
- vybrane_miestnosti.cislo_miestnosti = new string[pocet_miestnosti];
- vybrane_miestnosti.id = new string[pocet_miestnosti];
- vybrane_miestnosti.kapacita_sedadel = new string[pocet_miestnosti];
- vybrane_miestnosti.patro = new string[pocet_miestnosti];
- //naalokovanie pameti pre pole vybranch prvkov
- int index = 0;
- for (int i = 0; i < pocet_miestnosti - 1; i++)
- {
- bool nachadza = false;
- for (int j = 0; j < pocet_rezervacii; j++)
- {
- if (miestnosti.id[i] == rezervacie.id_miestnosti[j])
- {
- if (rezervacie.den_rezervacie[j] == date)
- {
- nachadza = true;
- break;
- }
- }
- }
- if (!nachadza)
- {
- vybrane_miestnosti.cena_za_den_rezervace[index] = miestnosti.cena_za_den_rezervace[i];
- vybrane_miestnosti.cislo_miestnosti[index] = miestnosti.cislo_miestnosti[i];
- vybrane_miestnosti.id[index] = miestnosti.id[i];
- vybrane_miestnosti.kapacita_sedadel[index] = miestnosti.kapacita_sedadel[i];
- vybrane_miestnosti.patro[index] = miestnosti.patro[i];
- index++;
- }
- }
- //vlozit vybrane hodnoty do poli a urcit ich pocet do indexu
- Vystup_html << "<h2 align=\"center\"><b> Vyhladanie miestnosti na datum " << date << "</b></h2>";
- Vystup_html << endl << "<table border=1 align=\"center\">";
- Vystup_html << endl << "<tr>";
- Vystup_html << endl << "<td>" << "ID" << "</td>" << "<td>" << "Patro" <<
- "</td>" << "<td>" << "Cislo miestnosti" << "</td>" << "<td>" << "Kapacita sedadel" <<
- "</td>" << "<td>" << "Cena za den rezervacie" << "</td>" << "</tr>";
- //*id, *patro, *cislo_mistnosti, *kapacita sedadel, *cena za den rezervace)
- for (int i = 0; i < index; i++)
- {
- Vystup_html << endl << "<td>" << vybrane_miestnosti.id[i] << "</td>" << "<td>" << vybrane_miestnosti.patro[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cislo_miestnosti[i] << "</td>" << "<td>" << vybrane_miestnosti.kapacita_sedadel[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cena_za_den_rezervace[i] << "</td>" << "</tr>";
- }
- //spracovanie a vypisanie dat do html
- Vypis_paty();
- }
- void Vyhladanie_volnych_miestnosti_do_urcitej_ceny(string subor1, string subor2, string vystup)
- {
- Vypis_hlavicky(vystup);
- Miestnosti vybrane_miestnosti;
- string cena = "";
- int volba = 0;
- while (1)
- {
- cout << "Zadaj cenu: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> cena;
- }
- else if (volba <1)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else break;
- }
- vybrane_miestnosti.cena_za_den_rezervace = new string[pocet_miestnosti];
- vybrane_miestnosti.cislo_miestnosti = new string[pocet_miestnosti];
- vybrane_miestnosti.id = new string[pocet_miestnosti];
- vybrane_miestnosti.kapacita_sedadel = new string[pocet_miestnosti];
- vybrane_miestnosti.patro = new string[pocet_miestnosti];
- //naalokovanie pameti pre pole vybranch prvkov
- int index = 0;
- for (int i = 0; i < pocet_miestnosti; i++)
- {
- if (atoi(miestnosti.cena_za_den_rezervace[i].c_str()) <= volba)
- {
- bool nachadza = false;
- for (int j = 0; j < pocet_rezervacii; j++)
- {
- if (miestnosti.id[i] == rezervacie.id_miestnosti[j])
- {
- nachadza = true;
- break;
- }
- }
- if (!nachadza)
- {
- vybrane_miestnosti.cena_za_den_rezervace[index] = miestnosti.cena_za_den_rezervace[i];
- vybrane_miestnosti.cislo_miestnosti[index] = miestnosti.cislo_miestnosti[i];
- vybrane_miestnosti.id[index] = miestnosti.id[i];
- vybrane_miestnosti.kapacita_sedadel[index] = miestnosti.kapacita_sedadel[i];
- vybrane_miestnosti.patro[index] = miestnosti.patro[i];
- index++;
- }
- }
- }
- //-----vlozit vybrane hodnoty do poli a urcit ich pocet do inexu
- Vystup_html << "<h2 align=\"center\"><b> Vyhladanie miestnosti podla zadanej ceny: " << cena << "</b></h2>";
- Vystup_html << endl << "<table border=1 align=\"center\">";
- Vystup_html << endl << "<tr>";
- Vystup_html << endl << "<td>" << "ID" << "</td>" << "<td>" << "Patro" <<
- "</td>" << "<td>" << "Cislo miestnosti" << "</td>" << "<td>" << "Kapacita sedadel" <<
- "</td>" << "<td>" << "Cena za den rezervacie" << "</td>" << "</tr>";
- //*id, *patro, *cislo_mistnosti, *kapacita sedadel, *cena za den rezervace)
- for (int i = 0; i < index; i++)
- {
- Vystup_html << endl << "<td>" << vybrane_miestnosti.id[i] << "</td>" << "<td>" << vybrane_miestnosti.patro[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cislo_miestnosti[i] << "</td>" << "<td>" << vybrane_miestnosti.kapacita_sedadel[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cena_za_den_rezervace[i] << "</td>" << "</tr>";
- }
- Vypis_paty();
- }
- void Vyhladanie_volnych_miestnosti_podle_kapacity_osob(string subor1, string subor2, string vystup)
- {
- Vypis_hlavicky(vystup);
- string prazdna_odpoved="";
- int volba=0;
- while (1)
- {
- cout << "Zadaj kapacitu osob: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> prazdna_odpoved;
- }
- else if (volba < 1)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else break;
- }
- Miestnosti vybrane_miestnosti;
- vybrane_miestnosti.cena_za_den_rezervace = new string[pocet_miestnosti];
- vybrane_miestnosti.cislo_miestnosti = new string[pocet_miestnosti];
- vybrane_miestnosti.id = new string[pocet_miestnosti];
- vybrane_miestnosti.kapacita_sedadel = new string[pocet_miestnosti];
- vybrane_miestnosti.patro = new string[pocet_miestnosti];
- //naalokovanie pameti pre pole vybranch prvkov
- int index = 0;
- for (int i = 0; i < pocet_miestnosti; i++)
- {
- if (atoi(miestnosti.kapacita_sedadel[i].c_str()) <= volba)
- {
- bool nachadza = false;
- for (int j = 0; j < pocet_rezervacii; j++)
- {
- if (miestnosti.id[i] == rezervacie.id_miestnosti[j])
- {
- nachadza = true;
- break;
- }
- }
- if (!nachadza)
- {
- vybrane_miestnosti.cena_za_den_rezervace[index] = miestnosti.cena_za_den_rezervace[i];
- vybrane_miestnosti.cislo_miestnosti[index] = miestnosti.cislo_miestnosti[i];
- vybrane_miestnosti.id[index] = miestnosti.id[i];
- vybrane_miestnosti.kapacita_sedadel[index] = miestnosti.kapacita_sedadel[i];
- vybrane_miestnosti.patro[index] = miestnosti.patro[i];
- index++;
- }
- }
- }
- //----vlozit vybrane hodnoty do poli a urcit ich pocet do inexu
- Vystup_html << "<h2 align=\"center\"><b> Vyhladanie miestnosti podla kamacity osob: " << volba << "</b></h2>";
- Vystup_html << endl << "<table border=1 align=\"center\">";
- Vystup_html << endl << "<tr>";
- Vystup_html << endl << "<td>" << "ID" << "</td>" << "<td>" << "Patro" <<
- "</td>" << "<td>" << "Cislo miestnosti" << "</td>" << "<td>" << "Kapacita sedadel" <<
- "</td>" << "<td>" << "Cena za den rezervacie" << "</td>" << "</tr>";
- //*id, *patro, *cislo_mistnosti, *kapacita sedadel, *cena za den rezervace)
- for (int i = 0; i < index; i++)
- {
- Vystup_html << endl << "<td>" << vybrane_miestnosti.id[i] << "</td>" << "<td>" << vybrane_miestnosti.patro[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cislo_miestnosti[i] << "</td>" << "<td>" << vybrane_miestnosti.kapacita_sedadel[i] <<
- "</td>" << "<td>" << vybrane_miestnosti.cena_za_den_rezervace[i] << "</td>" << "</tr>";
- }
- Vypis_paty();
- }
- int main()
- {
- string subor1 = "miestnosti.csv";
- string subor2 = "rezervacie.csv";
- string vystup = "Vyhladane_miestnosti.html";
- nacitanie(subor1, subor2);
- //1.Úkolom bude možnosť rezervácie miestnosti na zvolený deň (ak už nieje obsadená).
- //2.Vyhladanie voľných miestností na určitý dátum
- //3.Vyhladanie voľných miestností do určitej ceny
- //4.Vyhladanie voľných miestností podle kapacity osob
- //export bude automaticky
- cout << " Program pre nacitanie, upravu a ulozenie zaznamu o Rezervacii miestnosti" << endl << endl;
- cout << " Export do html je automaticky." << endl;
- cout << "Menu:" << endl
- << "1. Rezervacia miestnosti na zvoleny den" << endl
- << "2. Vyhladanie volnych miestnosti na urcity datum" << endl
- << "3. Vyhladanie volnych miestnosti do urcitej ceny" << endl
- << "4. Vyhladanie volnych miestnosti podle kapacity osob" << endl
- << "5. Konec programu" << endl;
- int volba = 0;
- string prazdna_odpoved = "";
- while (1)
- {
- cout << "Zadaj volbu: ";
- cin >> volba;
- if (cin.fail())
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- cin >> prazdna_odpoved;
- }
- else if (volba > 5 || volba<1)
- {
- cin.clear();
- cout << "Chybny vstup" << endl;
- }
- else break;
- }
- switch (volba)
- {
- case 1:
- Rezervacia_miestnosti_na_zvoleny_den(subor1, subor2, vystup);
- break;
- case 2:
- Vyhladanie_volnych_miestnosti_na_urcity_datum(subor1, subor2, vystup);
- break;
- case 3:
- Vyhladanie_volnych_miestnosti_do_urcitej_ceny(subor1, subor2, vystup);
- break;
- case 4:
- Vyhladanie_volnych_miestnosti_podle_kapacity_osob(subor1, subor2, vystup);
- break;
- case 5:
- return 0;
- break;
- default: cout << "Nevybrali jste si ani jednu z moznosti." << endl;
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement