Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <istream>
  4. #include <string>
  5. #include <string.h>
  6. #include <cstdlib>
  7.  
  8. using namespace std;
  9.  
  10. //Tanulmányi rendszer osztály
  11. class TanulmanyiRendszer {
  12. protected:
  13. string url;
  14. public:
  15. TanulmanyiRendszer(string url);
  16. ~TanulmanyiRendszer();
  17. virtual bool bejelentkezes() = 0;
  18. virtual bool kurzusfelvetel(const char* courseCode) = 0;
  19.  
  20. };
  21.  
  22. //etr gyerek osztály
  23. class etr : public TanulmanyiRendszer {
  24. public:
  25. etr(string url) : TanulmanyiRendszer(url) {};
  26. etr():TanulmanyiRendszer("asd") {};
  27. bool bejelentkezes();
  28. bool kurzusfelvetel(const char* courseCode);
  29. void setUrl(string url) {
  30. this->url=url;
  31. }
  32. string getUrl() {
  33. return this->url;
  34. }
  35. };
  36. //neptun gyerekosztály
  37. class neptun : public TanulmanyiRendszer {
  38. private:
  39. const char* style;
  40. public:
  41. neptun(const char* , const char* );
  42. //neptun(const char* url, const char* style) : TanulmanyiRendszer(url) {};
  43. bool bejelentkezes();
  44. bool kurzusfelvetel(const char* courseCode);
  45. void temavalt(const char* style);
  46. };
  47.  
  48. class ETRArmy {
  49. public:
  50. int count;
  51. bool is_init=false;
  52. etr** ETRObject;
  53. ETRArmy(int);
  54. void init(string[]);
  55. ~ETRArmy();
  56. etr operator[] (int i) {
  57. if (this->ETRObject[i] == nullptr) {
  58. cout << "Itt már nincs ETR, kérlek nézz vissza később Neptunért, az egységes tanulmányi rendszerért!"<< endl;
  59. }
  60. return *(this->ETRObject[i]);
  61. };
  62.  
  63. void operator()(int a) {
  64. delete this->ETRObject[a];
  65. this->ETRObject[a] = nullptr;
  66. cout << "Egy ETR rendszert sikeresen eltávolítottunk, de aggodalomra semmi ok, hamarosan Neptunként visszatér közénk!" << endl;
  67. }
  68. };
  69.  
  70. void ETRArmy::init(string urls[]) {
  71. if(this->is_init == false) {
  72. for(int i=0;i<this->count;i++) {
  73. this->ETRObject[i] = new etr(urls[i]);
  74. }
  75. this->is_init = true;
  76. } else {
  77. cout << "Új ETR nem csatlakozhat a sereghez, és a meglévők is hamarosan Neptunná válnak!" << endl;
  78. }
  79. }
  80.  
  81. ETRArmy::ETRArmy(int count){
  82. this->count = count;
  83. this->ETRObject = new etr*[count];
  84. }
  85.  
  86. ETRArmy::~ETRArmy() {
  87. for (int i = 0; i < this->count; i++) {
  88. delete this->ETRObject[i];
  89. this->ETRObject[i] = nullptr;
  90. }
  91. delete[] this->ETRObject;
  92. }
  93.  
  94. TanulmanyiRendszer::TanulmanyiRendszer(string url) {
  95. this->url=url;
  96. //strcpy_s(this->url, sizeof(url), url);
  97. }
  98.  
  99. TanulmanyiRendszer::~TanulmanyiRendszer() {
  100. //delete[] url;
  101. }
  102.  
  103. bool etr::bejelentkezes() {
  104. cout << "Sikeres bejelentezés" << endl;
  105. return true;
  106. }
  107.  
  108. bool etr::kurzusfelvetel(const char* courseCode) {
  109. cout << "Az ETR tanulmányi rendszer 2017.04.06 - án 16:00 - kor leállt." << endl;
  110. return false;
  111. }
  112.  
  113. bool neptun::bejelentkezes() {
  114. double val = (double)rand() / RAND_MAX;
  115. int random;
  116. if (val < 0.90) {
  117. random = true;
  118. cout << "Sikeres bejelentkezés" << endl;
  119. }
  120. else {
  121. cout << "The service is unavailable." << endl;
  122. random = false;
  123. }
  124. return random;
  125. }
  126.  
  127. bool neptun::kurzusfelvetel(const char* courseCode) {
  128. double val = (double)rand() / RAND_MAX;
  129. bool returned = true;
  130.  
  131. if (val < 0.20) {
  132. returned = false;
  133. cout << "Hiba! A kurzusfelvétel nem sikerült, mert nem sikerült a tárgyfelvétel." << endl;
  134. }
  135. else {
  136. string line;
  137. ifstream f("list.txt");
  138. if (f.good()) {
  139. while (getline(f, line).good()) {
  140. if (line == courseCode) {
  141. cout << "Hiba! A kurzusfelvétel nem sikerült, mert nem sikerült a tárgyfelvétel." << endl;
  142. returned = false;
  143. }
  144. }
  145. f.close();
  146. }
  147.  
  148. if (returned == true) {
  149. fstream file;
  150. file.open("list.txt", ios::out | ios::binary);
  151. file << courseCode << endl;
  152. file.close();
  153. }
  154. }
  155. return returned;
  156. }
  157.  
  158. void neptun::temavalt(const char* style) {
  159. this->style = new char[strlen(style) + 1];
  160. //strcpy(this->style, style);
  161. this->style = style;
  162. cout << "Az új téma: " << this->style << endl;
  163. }
  164.  
  165. neptun::neptun(const char* url, const char* style) : TanulmanyiRendszer(url) {
  166. this->style = new char[strlen(style) + 1];
  167. //strcpy(this->style, style);
  168. this->style = style;
  169.  
  170. }
  171.  
  172. int main() {
  173. ETRArmy* m4 = new ETRArmy(3);
  174. string urls[] = {"abc", "xyz", "asd"};
  175. m4->init(urls);
  176. // m4(1);
  177. m4[1];
  178. //m4(2);
  179. m4[2];
  180. //m4(3);
  181. m4[3];
  182. m4->init(urls);
  183. delete m4;
  184.  
  185.  
  186. return 0;
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement