Dodatno - Seminarski - Rad - C++ Avio Karte

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Projekt

S obzirom da većina vas ima problema s unosom podataka vezanih za vaš projekt. Još
jednom ću reći. Dakle većina vas je dobro odradila, imate neke podatke koje ste spremili u
vašu tu zamišljenu bazu i kad se odabere broj koji se nalazi ispred ispiše podatke vezane za
taj podatak koji se nalazi unutra. I to većina ima i to sve radi. Ali je potrebno omogućiti još i
neki unos. Ako je to recimo tema jezera. Uz ta jezera koja ste vi već opisali, potrebno je
omogućiti da ja upišem recimo sama naziv jezera i da upišem podatak nalazi se u toj i toj
državi. Ili ako je u pitanju sport. Onda da ja sama mogu unijeti ime nekog sportaša i da mogu
unijeti klub za koji igra. Uz sve podatke i ispise koje ste mi vi već ponudili. Dakle uz one
switch- case dijelove koje ste manje više svi radili, samo dodati dio za unos.
U nastavku ovog dokumenta nalazi se kod koji je kolega uradio za primjer jednog unosa.
Dakle imao je unos podatka kad je željeni let i onda mu izbaci ponuđene letove. I onda ide
standard ispis ovisno o broju leta ispišu se neki podatci što je većina vas imala. Dakle to je taj
unos bez nekog spremanja u tu bazu koji ste trebali imati za vaše unose vezane za teme.
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
time_t vrijeme = time(0);
tm* trenutno = localtime(&vrijeme);
int trenutnaGodina = trenutno->tm_year+1900; //+1900 zato sto tm_year predstavlja
broj godina nakon 1900te
int trenutniMjesec = trenutno->tm_mon + 1;
int trenutniDan = trenutno->tm_mday;
unosdatuma:
cout << "Unesite datum leta: (format: dan/mjesec/godina) " << endl;
int dan, mjesec, godina;
cin >> dan >> mjesec >> godina;
if (dan < 1 || dan>31 || mjesec < 1 || mjesec>12 || godina < trenutnaGodina)
{
cout << "Uneseni datum nije validan"<<endl;
goto unosdatuma;
}
if (godina == trenutnaGodina) { //Ovaj if provjerava da li je uneseni datum
prosao
if (mjesec < trenutniMjesec) {
cout << "Uneseni datum nije validan" << endl;
goto unosdatuma;
}
if (mjesec == trenutniMjesec && dan<trenutniDan) {
cout << "Uneseni datum nije validan" << endl;
goto unosdatuma;
}
}
bool prijestupna = ((godina % 4 == 0) && (godina % 100 != 0)) || (godina % 400 ==
0);
if (mjesec == 1 || mjesec == 3 || mjesec == 5 || mjesec == 7 || mjesec == 8 || mjesec ==
10 || mjesec == 12)
{
if (dan <= 31) {
cout << "Uneseni datum je validan"<<endl;
}
else {
cout << "Uneseni datum nije validan" << endl; goto unosdatuma;
}
}
if (mjesec == 4 || mjesec == 6 || mjesec == 9 || mjesec == 11)
{
if (dan <= 30) {
cout << "Uneseni datum je validan"<<endl;
}
else { cout << "Uneseni datum nije validan" << endl; goto unosdatuma; }
}
else if (mjesec == 2) {
if (dan <= 28) { cout << "Uneseni datum je validan"<<endl;
}else if (dan == 29 && prijestupna == true) cout<<"Uneseni datum je
validan"<<endl;
else { cout << "Uneseni datum nije validan" << endl; goto unosdatuma; }
}
int brojLeta, cijena;
string let,trajanje,kofer,sjediste;
cout <<endl<< "Sarajevo-Frankfurt (1)" << endl;
cout << "Tuzla-Istanbul (2)" << endl;
cout << "Banja Luka-Paris (3)" << endl;
do {
cout << "Unesite redni broj zeljenog leta" << endl;
cin >> brojLeta;
}while(brojLeta < 1 || brojLeta>3);
switch (brojLeta)
{
case 1:
cijena = 145;
let = "Sarajevo-Frankfurt";
trajanje = "1h 30m";
cout << "Let: Sarajevo-Frankfurt" << endl;
cout << "Cijena leta: 145KM" << endl;
cout << "Trajanje leta: 1h 30m" << endl;
break;
case 2:
cijena = 200;
let = "Tuzla-Istanbul";
trajanje = "3h 20m";
cout << "Let: Tuzla-Istanbul" << endl;
cout << "Cijena leta: 200KM" << endl;
cout << "Trajanje leta: 3h 20m" << endl;
break;
case 3:
cijena = 400;
let = "Banja Luka-Paris";
trajanje = "2h 15m";
cout << "Let: Banja Luka-Paris" << endl;
cout << "Cijena leta: 400KM" << endl;
cout << "Trajanje leta: 2h 15m" << endl;
break;
}
cout << "Da li zelite dodatni kofer do 23 kg (40KM)? da / ne "<<endl;
do{
cin >> kofer;
if (kofer == "da") cijena += 40;
} while (kofer != "da" && kofer != "ne");
cout << "Da li zelite rezervisati zeljeno sjediste? da/ne \nUkoliko ne, sjediste ce biti
nasumicno dodjeljeno" << endl;
do {
cin >> sjediste;
} while (sjediste != "da" && sjediste != "ne");
int red;
char mjestoSjedista;
if (sjediste == "da") {
do {
cout << "Unesite zeljeno sjediste: red(1-30), sjediste(A-F)" << endl;
cin >> red;
cin >> mjestoSjedista;
} while (red < 1 || red>30 || int(mjestoSjedista) < 65 || int(mjestoSjedista) >
70);
}
else {
srand(time(NULL));
red = rand() % 30;
int sjedisteBr = rand() % 6;
cout << endl << "Sjedistebr=" << sjedisteBr;
mjestoSjedista = char(sjedisteBr + 64);

}
cout << "Let je uspjesno bukiran, informacije leta: " << endl;
cout << "Datum leta: " << dan << "/" << mjesec << "/" << godina << endl;
cout << "Let: " << let<<endl;
cout << "Ukupna cijena leta: " << cijena << " KM" << endl;
cout << "Trajanje leta: " << trajanje << endl;
cout << "Dodatni kofer: " << kofer<<endl;
cout << "Sjediste: " << red << mjestoSjedista<<endl;
system("PAUSE");
return 0;
}

Neke kolege su slali i radove u kojima su podatci vezani za njihovu temu unošeni u bazu i ti
isti su spremani u nju i bili ponuđeni u meniju za iščitavanje. Tako da za one studente koji
žele raditi stvarni unos u bazu i ispisivanje podataka iz nje, mogu vidjeti jedan primjer koji se
nalazi ispod. Dakle ponavljam ovo je s unosom i spremanjem u bazu i s ispisom iz nje. Ja
sam napravila unos i kod za temu Parfumerija koju niste imali na popisu.

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

#define BROJ_PROIZVODA 20

void ispisMenija(string naziviProizvoda[], int brojUnesenihProizvoda)


{
cout << "0. DODAJ NOVI PARFEM" << endl;
cout<<"Broj ispred parfema daje detaljne podatke o njemu"<<endl;

for (int i = 0; i < brojUnesenihProizvoda; i++)


{
cout << i + 1 << ". " << naziviProizvoda[i] << endl;
}

cout << "100. Izlaz" << endl;


cout<<"Unesite radnju koju želite"<<endl;
cout<<"0 za novi proizvod - 100 za izlaz iz programa"<<endl;
cout<<"1-2... detaljan prikaz"<<endl;

void ispisProizvoda(string naziv, double cijena, int naStanju, int


pakovanje_ml)
{
cout << "Naziv parfema: " << naziv << endl
<< "Cijena: " << cijena << " KM " << endl
<< "Dostupno na stanju: " << naStanju <<" parfema"<< endl
<< "Pakovanje u ml: " << pakovanje_ml << endl;
}

int ucitajPodatke(string naziviProizvoda[], int kolicineProizvoda[], double


cijeneProizvoda[], int pakovanjeProizvoda[])
{
string vrijednost;
ifstream mojaBaza("parfemi.txt");
int brojac = 0;
if (mojaBaza.is_open())
{
while (getline(mojaBaza, vrijednost))
{
naziviProizvoda[brojac] = vrijednost;

getline(mojaBaza, vrijednost);
kolicineProizvoda[brojac] = stoi(vrijednost);

getline(mojaBaza, vrijednost);
cijeneProizvoda[brojac] = stod(vrijednost);

getline(mojaBaza, vrijednost);
pakovanjeProizvoda[brojac] = stoi(vrijednost);

brojac++;
}
mojaBaza.close();
}

return brojac;
}
void ispisLinije()
{
cout << "----------------------------" << endl;
}

int main()
{
int odabraniMeni;
string naziviProizvoda[BROJ_PROIZVODA];
int kolicineProizvoda[BROJ_PROIZVODA];
double cijeneProizvoda[BROJ_PROIZVODA];
int pakovanjeProizvoda[BROJ_PROIZVODA];

int brojUnesenihProizvoda = ucitajPodatke(naziviProizvoda,


kolicineProizvoda, cijeneProizvoda, pakovanjeProizvoda);

while (true) {
system("clear");
cout << "\n\n Dobro dosli u Parfumeriju!\n\n";
cout << "Meni:" << endl;
ispisMenija(naziviProizvoda, brojUnesenihProizvoda);

while (true) {
cout << ">";
cin >> odabraniMeni;

if ((odabraniMeni >= 0 && odabraniMeni <= brojUnesenihProizvoda) ||


odabraniMeni == 100)
{
break;
}
};

system("clear");

if (odabraniMeni == 0)
{
string naziv;
int kolicina;
double cijena;
int pakovanje;
cout << "Unesite novi proizvod:" << endl;
cout << " Unesite naziv parfema: ";
cin.clear();
cin.ignore();
getline(cin, naziv);
cout << " Koliko parfema je dostupno na stanju: ";

cin >> kolicina;


cout << " Cijena parfema:";
cin >> cijena;
cout << " Pakovanje u ml:";
cin >> pakovanje;

brojUnesenihProizvoda++;
int idx = brojUnesenihProizvoda - 1;
naziviProizvoda[idx] = naziv;
kolicineProizvoda[idx] = kolicina;
cijeneProizvoda[idx] = cijena;
pakovanjeProizvoda[idx] = pakovanje;

ofstream mojaBaza("parfemi.txt", ios::app);


if (mojaBaza.is_open()) {
mojaBaza << naziv << endl;
mojaBaza << kolicina << endl;
mojaBaza << cijena << endl;
mojaBaza << pakovanje << endl;
mojaBaza.close();
}
}
else if (odabraniMeni == 100)
{
izlaz:

ispisLinije();

cout << "Hvala na posjeti našoj parfumeriji!" << endl << endl;

return 0;
}
else
{
int idx = odabraniMeni - 1;
ispisProizvoda(naziviProizvoda[idx], cijeneProizvoda[idx],
kolicineProizvoda[idx], pakovanjeProizvoda[idx]);
ispisLinije();

while (true) {
cout << "Želite li nastaviti pretragu ili dodati novi proizvod? (d/n)"
<< endl;
string daNe;
cout << ">";
cin >> daNe;
if (daNe == "n")
{
goto izlaz;
}
else if (daNe == "d")
{
break;
}
};
}
}

You might also like