s filmami : ID;Matthew;McConaughey;4.11.1969;USA
s hercami : ID;Interstellar;2014;sci-fi, thriller;USA;148;6 8 4 (čísla na konci sú ID hercov ktorí v tom filme hrali)
/visual studio 2013/
Kód: Vybrať všetko
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
#define SUBOR_HERCI "herci.csv"
#define SUBOR_FILMY "filmy.csv"
struct Herec {
int id_;
string meno_;
string priezvisko_;
string datum_narodenia_;
string miesto_narodenia_;
};
struct Film {
int id_;
string nazov_;
int rok_;
string zaner_;
string povod_;
int trvanie_;
vector<Herec *>obsadenie_;
void detail_filmu()
{
cout << id_ << ": " << nazov_ << " (" << zaner_ << ")" << endl;
cout << endl;
cout << "Natoceny ........: " << rok_ << endl;
cout << "Zem povodu ....: " << povod_ << endl;
cout << "Dlzka filmu ....: " << trvanie_ << " minut" << endl;
cout << endl;
cout << "Ucinkuju: "; vypis_hercov();
cout << endl;
cout << endl;
}
void vypis_hercov()
{
for (unsigned int i = 0; i < obsadenie_.size(); i++)
cout << obsadenie_[i]->meno_ << " " << obsadenie_[i]->priezvisko_ << ", ";
}
};
void nacitaj_hercov();
void nacitaj_filmy();
bool je_subor_prazdny(ifstream &);
vector<Herec>zoznam_vsetkych_hercov;
vector<Film>zoznam_vsetkych_filmov;
int main()
{
nacitaj_hercov();
nacitaj_filmy();
system("PAUSE");
return 0;
}
void nacitaj_hercov()
{
ifstream herci_file;
herci_file.open(SUBOR_HERCI);
if (herci_file.fail())
{
cerr << "Subor " << SUBOR_HERCI << " sa nepodarilo otvorit.\nPravdepodobne neexistuje." << endl;
}
else if (je_subor_prazdny(herci_file))
{
cout << "Subor s hercami je prazdny." << endl;
}
else
{
while (herci_file)
{
string line;
while (getline(herci_file, line))
{
Herec temp;
stringstream ss(line);
string hs;
getline(ss, hs, ';');
int id = stoi(hs);
temp.id_ = id;
getline(ss, hs, ';');
temp.meno_ = hs;
getline(ss, hs, ';');
temp.priezvisko_ = hs;
getline(ss, hs, ';');
temp.datum_narodenia_ = hs;
getline(ss, hs, ';');
temp.miesto_narodenia_ = hs;
zoznam_vsetkych_hercov.push_back(temp);
}
}
}
}
void nacitaj_filmy()
{
ifstream filmy_file;
filmy_file.open(SUBOR_FILMY);
if (filmy_file.fail())
{
cerr << "Subor " << SUBOR_FILMY << " sa nepodarilo otvorit.\nPravdepodobne neexistuje." << endl;
}
else if (je_subor_prazdny(filmy_file))
{
cout << "Subor s filmami je prazdny." << endl;
}
else
{
while (filmy_file)
{
string line;
while (getline(filmy_file, line))
{
stringstream ss(line);
string hs;
getline(ss, hs, ';');
int id = stoi(hs);
temp.id_ = id;
getline(ss, hs, ';');
temp.nazov_ = hs;
getline(ss, hs, ';');
int rok = stoi(hs);
temp.rok_ = rok;
getline(ss, hs, ';');
temp.zaner_ = hs;
getline(ss, hs, ';');
temp.povod_ = hs;
getline(ss, hs, ';');
int delka = stoi(hs);
temp.trvani_ = delka;
while (ss)
{
ss >> hs;
for (int i = 0; i < zoznam_vsetkych_hercov.size(); i++)
{
if (zoznam_vsetkych_hercov[i].id_ == stoi(hs))
temp.obsadenie_.push_back(&zoznam_vsetkych_hercov[i]);
}
}
zoznam_vsetkych_filmov.push_back(temp);
}
}
}
}
bool je_subor_prazdny(ifstream & subor)
{
return subor.peek() == ifstream::traits_type::eof();
}