Advertisement
Guest User

oep3

a guest
May 21st, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. /*
  2. 3. Feladat: Ki melyik versenyen fogta a legnagyobb harcsát?
  3. */
  4.  
  5. #include <iostream>
  6. #include "summation.hpp"
  7. #include "seqinfileenumerator.hpp"
  8. #include "stringstreamenumerator.hpp"
  9. #include "linsearch.hpp"
  10. #include "maxsearch.hpp"
  11.  
  12. using namespace std;
  13.  
  14. struct Fish {
  15.     string type;
  16.     int weight;
  17.     friend istream& operator >> (istream& in, Fish& fish) {
  18.         in >> fish.type >> fish.weight;
  19.         return in;
  20.     }
  21. };
  22.  
  23. class MaxCarp : public MaxSearch<Fish, int> {
  24.     virtual int func(const Fish& e) const {
  25.         return e.weight;
  26.     }
  27.     virtual bool  cond(const Fish& e) const {
  28.         return e.type == "harcsa";
  29.     }
  30. };
  31.  
  32. struct Competitor {
  33.     string name;
  34.     string competition;
  35.     int maxCarp;
  36.     friend istream& operator >> (istream& in, Competitor& competitor) {
  37.         string line;
  38.         getline(in, line);
  39.         stringstream str(line);
  40.         string temp;
  41.         str >> competitor.name >> competitor.competition;
  42.  
  43.         StringStreamEnumerator<Fish> sse(str);
  44.         MaxCarp maxcarp;
  45.         maxcarp.addEnumerator(&sse);
  46.         maxcarp.run();
  47.         if (maxcarp.found()) {
  48.             competitor.maxCarp = maxcarp.optElem().weight;
  49.         }
  50.         else {
  51.             competitor.maxCarp = 0;
  52.         }
  53.  
  54.         cout << competitor.name << " " << competitor.maxCarp << endl;
  55.  
  56.         return in;
  57.     }
  58. };
  59.  
  60. class FinalMax : public MaxSearch<Competitor, int> {
  61.     virtual int func(const Competitor& e) const {
  62.         return e.maxCarp;
  63.     }
  64. };
  65.  
  66.  
  67. int main()
  68. {
  69.     SeqInFileEnumerator<Competitor> sife("input.txt");
  70.     FinalMax finalmax;
  71.     finalmax.addEnumerator(&sife);
  72.     finalmax.run();
  73.     if (finalmax.optElem().maxCarp == 0) {
  74.         cout << "Nem fogott senki harcsat." << endl;
  75.     }
  76.     else {
  77.         cout << "Horgasz neve: " << finalmax.optElem().name << ", verseny neve: " << finalmax.optElem().competition << endl;
  78.         cout << finalmax.optElem().maxCarp << endl;
  79.     }
  80.  
  81.  
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement