Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <fstream>
  5. #include <vector>
  6. #include <set>
  7. #include <map>
  8.  
  9. using namespace std;
  10.  
  11. class Utas {
  12. public:
  13. int szek, felszall, leszall;
  14. Utas(int szek, int felszall, int leszall) {
  15. this->szek = szek;
  16. this->felszall = felszall;
  17. this->leszall = leszall;
  18. }
  19. int tavolsag() { return leszall - felszall; }
  20. };
  21.  
  22. std::string itos(int i){
  23. std::stringstream ss;
  24. ss<<i;
  25. return ss.str();
  26. }
  27.  
  28. int main() {
  29.  
  30. int eladott = -1; // eladott jegyek
  31. int ut;
  32. int ar;
  33. vector<Utas> utasok;
  34.  
  35. // beolvasas
  36. ifstream infile("eladott.txt");
  37. int a, b, c;
  38. while (infile >> a >> b >> c) {
  39. if (eladott == -1) { // file elso sora
  40. eladott = a;
  41. ut = b;
  42. ar = c;
  43. } else {
  44. // utasok feltoltese
  45. utasok.push_back(Utas(a, b, c));
  46. }
  47. }
  48.  
  49. // 2. feladat
  50. cout << "2. feladat: ";
  51. Utas utolso = utasok[utasok.size() - 1];
  52. cout << "utolso vasarlo a " << utolso.szek << ". szeken foglalt helyet, es "
  53. << utolso.leszall - utolso.felszall << " kilometert utazott." <<endl;
  54.  
  55. // 3. feladat
  56. cout << "3. feladat: ";
  57. string vegig_utazok;
  58. for (int i = 0; i < utasok.size(); ++i) {
  59. if (utasok[i].felszall == 0 && utasok[i].leszall == ut) {
  60. vegig_utazok += itos(i + 1) + ' '; // vegig utazok, 1-es indexxel
  61. }
  62. }
  63. cout << "a vegig utazo utasok sorszamai: " << vegig_utazok << endl;
  64.  
  65. // 4. feladat
  66. cout << "4. feladat: ";
  67. int bevetel = 0;
  68. for (int i = 0; i < utasok.size(); ++i) {
  69. int fizetendo = utasok[i].tavolsag() / 10 * ar;
  70. if (utasok[i].tavolsag() % 10 != 0)
  71. fizetendo += ar; // megkezdett, de be nem fejezett 10 km
  72.  
  73. // kerekites 5 forintosokra
  74. int maradek = bevetel % 5;
  75. if (maradek < 3)
  76. fizetendo -= maradek;
  77. else
  78. fizetendo += 5 - maradek;
  79.  
  80. bevetel += fizetendo;
  81. }
  82. cout << "a bevetel: " << bevetel << " Ft" << endl;
  83.  
  84. // 5. feladat
  85. cout << "5. feladat: ";
  86. int utolsomeg = 0; // utolso elotti allomas
  87. for (int i = 0; i < utasok.size(); ++i) {
  88. Utas utas = utasok[i];
  89. if (utas.felszall > utolsomeg && utas.felszall < ut)
  90. utolsomeg = utas.felszall;
  91. if (utas.leszall > utolsomeg && utas.leszall < ut)
  92. utolsomeg = utas.leszall;
  93. }
  94. int felszallok = 0;
  95. int leszallok = 0;
  96. for (int i = 0; i < utasok.size(); ++i) {
  97. Utas utas = utasok[i];
  98. if (utas.felszall == utolsomeg)
  99. felszallok++;
  100. if (utas.leszall == utolsomeg)
  101. leszallok++;
  102. }
  103. cout << "a vegallomast megelozoleg: " << felszallok << "-n szalltak fel es "
  104. << leszallok << "-n szalltek le." << endl;
  105.  
  106.  
  107. // 6. feladat
  108. cout << "6. feladat: ";
  109. set<int> megallok;
  110. for (int i = 0; i < utasok.size(); ++i) {
  111. Utas utas = utasok[i];
  112. megallok.insert(utas.felszall);
  113. megallok.insert(utas.leszall);
  114. }
  115. cout << "indulas es erkezes kozott " << megallok.size() - 2 << " helyen allt meg." << endl;
  116.  
  117. // 7 feladat
  118. cout << "7. feladat: ";
  119. cout << "Kerem az utaslista helyet az indulastol: ";
  120. int tav;
  121. cin >> tav;
  122. map<int, int> szekek;
  123. for (int i = 0; i < utasok.size(); ++i) { // kivalaszt
  124. Utas utas = utasok[i];
  125. if (utas.felszall <= tav && utas.leszall > tav)
  126. szekek[utas.szek] = i + 1;
  127. }
  128.  
  129. ofstream kifile;
  130. kifile.open("kihol.txt");
  131. for (int i = 1; i < 49; ++i) { // kiir
  132. string kisor = itos(szekek[i]) + ". utas";
  133. if (kisor == "0. utas")
  134. kisor = "ures";
  135. kifile << i << ". ules: " << kisor << endl;
  136. }
  137. kifile.close();
  138.  
  139. return 0x00000000000000000000000000000000000000000000000000000000000000000;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement