Silviyaa

ООП1-КП

Apr 13th, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <list>
  5. #include <iterator>
  6. #include <fstream>
  7.  
  8. using namespace std;
  9.  
  10. string GenresFilms[10] = { "Роман","Фантастика", "Драма","Мистерия","Криминален", "Екшън", "Ужаси", "Документален", "Трилър",  "Комедия"  };
  11.  
  12. class CFilms {
  13. private:
  14.     string m_nameFilms;
  15.     string m_producer;
  16.     int m_circulation; //тираж
  17.     int m_year;
  18.     string m_genre;
  19. public:
  20.     //подразбиращ конструктор
  21.     CFilms() {
  22.         m_nameFilms = " ";
  23.         m_producer = " ";
  24.         m_circulation = 0;
  25.         m_year = 0;
  26.         m_genre = " ";
  27.     }
  28.     //Експлицитен конструктор
  29.     CFilms(const string Name, const string Producer,const int Circulation, const int Year, const string Genre) {
  30.         m_nameFilms = Name;
  31.         m_producer = Producer;
  32.         m_circulation = Circulation;
  33.         m_year = Year;
  34.         m_genre = Genre;
  35.     }
  36.     //Копиращ конструктор
  37.     CFilms(const CFilms& Fcopy) {
  38.         m_nameFilms = Fcopy.m_nameFilms;
  39.         m_producer = Fcopy.m_producer;
  40.         m_circulation =Fcopy.m_circulation;
  41.         m_year = Fcopy.m_year;
  42.         m_genre = Fcopy.m_genre;
  43.     }
  44.  
  45.     //установяване на член променливите
  46.     const string & GetNameFilms()const {
  47.         return m_nameFilms;
  48.     }
  49.     const string & GetProducer()const {
  50.         return m_producer;
  51.     }
  52.     const int & GetCirculation()const {
  53.         return m_circulation;
  54.     }
  55.     const string& GetGenre()const {
  56.         return m_genre;
  57.     }
  58.     const string& GetProducer()const {
  59.         return m_producer;
  60.     }
  61.  
  62.     void SetNameFilms(string NameFilms) {
  63.         m_nameFilms = NameFilms;
  64.     }
  65.     void SetProducer(string Producer) {
  66.         m_producer = Producer;
  67.     }
  68.     void SetCirculation(int Circulation) {
  69.         m_circulation = Circulation;
  70.     }
  71.     void SetYear(int Year) {
  72.         m_year = Year;
  73.     }
  74.     void SetGenre(string Genre) {
  75.         m_genre = Genre;
  76.     }
  77.  
  78.     //извеждане на екран
  79.     friend ostream& operator<<(ostream& out,const CFilms& object){
  80.         return out << "Movie title is: "<< object.m_nameFilms
  81.             << ", Year: " << object.m_year
  82.             << ", Genre: " << object.m_genre << ", Produced by: " << object.m_producer << endl;
  83.     }
  84.  
  85.  
  86.     ostream& Output(const string& FileName) {
  87.         ofstream File(FileName);
  88.         if (File) {
  89.             File << "Movie title is: " << m_nameFilms << ", Year: " << m_year << ", Genre: " << m_genre << ", Produced by: " << m_producer << endl;
  90.         }
  91.         else throw"File not found!";
  92.     }
  93.  
  94.     //валидация на жанра
  95.     bool ValidationGenre(string Genere) {
  96.         for (int i =  1; i < 10; i++)
  97.         {
  98.             if (GenresFilms[i] == Genere) {
  99.                 return true;
  100.             }
  101.              return false;
  102.         }
  103.     }
  104.  
  105.     //изчисляване на възрастта на филма
  106.     int Age() {
  107.         int ageFilms;
  108.         ageFilms = 2021 - m_year;
  109.         return ageFilms;
  110.     }
  111.  
  112.     //извеждане на данните за филма на принтер
  113.     void PrinterOut() {
  114.         CFilms array[11];
  115.         ofstream PrinterFile("Print_Films");
  116.         for (int i = 0; i < 10; i++) {
  117.             PrinterFile << array[i];
  118.             PrinterFile << endl;
  119.         }
  120.         PrinterFile.close();
  121.  
  122.     }
  123.  
  124.     //оператор =
  125.     const CFilms operator = (const CFilms& obj) {
  126.         CFilms m_Temp(obj);
  127.         return m_Temp;
  128.     }
  129.  
  130.     //лофически оператор, който проверява дали филма е създаден пез текущата година
  131.     bool MovieYearCheck(int YEAR) {
  132.         if (m_year == YEAR) {
  133.             return true;
  134.         }
  135.         else return false;
  136.     }
  137.  
  138.     //оператор > (по тираж)
  139.     bool operator > (const CFilms& object) {
  140.         return m_circulation > object.m_circulation;
  141.     }
  142.     //оператор за съвпадение (по продуцент)
  143.     bool operator ==(const CFilms& object) {
  144.         return m_producer == object.m_producer;
  145.     }
  146.  
  147. };
  148.  
  149. class CRazprostranitel : CFilms{
  150. private:
  151.     vector<CFilms>m_vFilms;
  152.     string m_Name;
  153.     int m_numberFilms;
  154.     int m_Revenue;
  155.  
  156. public:
  157.     CRazprostranitel() {
  158.         m_Name = " ";
  159.         m_numberFilms = 0;
  160.         m_Revenue = 0;
  161.     }
  162.  
  163.     //Експлицитен
  164.     CRazprostranitel(vector<CFilms>Objects, const string Name, const int NumberFilms, const int Revenue) {
  165.         m_Name = Name;
  166.         m_numberFilms = NumberFilms;
  167.         m_Revenue = Revenue;
  168.     }
  169.  
  170.     //обект чрез друг обект
  171.     CRazprostranitel(const CRazprostranitel& object) {
  172.         m_vFilms = object.m_vFilms;
  173.         m_Name = object.m_Name;
  174.         m_numberFilms = object.m_numberFilms;
  175.         m_Revenue = object.m_Revenue;
  176.     }
  177.  
  178.     //установяване на член променливите
  179.     vector<CFilms>GetFilms()const {
  180.         return m_vFilms;
  181.     }
  182.     const string GetName()const {
  183.         return m_Name;
  184.     }
  185.     const int GetNumberFilms()const {
  186.         return m_numberFilms;
  187.     }
  188.     const int GetRevenue()const {
  189.         return m_Revenue;
  190.     }
  191.  
  192.     //проверка за повече от 1 път
  193.     bool ContentFilms(CFilms object) {
  194.         int iCount = 0;
  195.         /*for each (m_vFilms.begin(), m_vFilms.end(),)
  196.         {
  197.            
  198.         }*/
  199.        
  200.     }
  201.  
  202. };
Add Comment
Please, Sign In to add comment