Advertisement
Aseron

Telefon

Oct 6th, 2017
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4.  
  5. /*
  6. Hozz létre egy Telefon osztályt, ami egy telefont reprezentál.
  7. A telefonnak legyen száma (9 jegyû szám, vagy 9 karakteres tömb), valamint felhasználható internet mennyiségét (double, megabájtban számolva).
  8. Az osztálynak legyen:
  9. Egy olyan konstruktora, ami a paraméterként várja a számot, és a felhasználható internet mennyiségét
  10. Egy olyan konstruktora, ami a konzolról olvassa be az adatokat.
  11. Egy internetHasznál() függvénye, amely a paraméterben megadott számmal csökkenti a felhasználható internet mennyiségét.
  12. Amennyiben paraméter nélkül hívjuk meg a függvényt, pontosan 1.2 megabájttal csökkenjen a felhasználható keret.
  13. Egy feltölt() függvény, amely pontosan 500 megabájtot ad hozzá a felhasználható internethez,
  14.  de ügyelj rá, hogy a felhasználható keret legfeljebb 1500 megabájt legyen. Ezen érték felé ne emelkedhessen a szám!
  15. Egy adatok() függvény, ami kiírja az alapértelmezett kimenetre a számot és a felhasználható internet mennyiségét.
  16. Származtass le az Telefon osztályból egy SzuperNetezõTelefon osztályt, ami tárolja magáról, hogy használhat-e 4G-t vagy sem (bool).
  17.  
  18. Az osztálynak legyen:
  19. Egy olyan konstruktora, ami a paraméterként várja a számot, a felhasználható internet mennyiségét, és azt, hogy használhat-e 4G-t.
  20. Egy save függvénye, ami a paraméterül kapott fájlba elmenti az adatokat.
  21. Felüldefiniált internetHasznál() függvénye, amely a paraméterben megadott számmal csökkenti a felhasználható internet mennyiségét.
  22. Amennyiben paraméter nélkül hívjuk meg a függvényt, pontosan 23.5 megabájttal csökkenjen a felhasználható keret.
  23. Felüldefiniált feltölt() függvénye, amely pontosan 500 megabájtot ad hozzá a felhasználható internethez, korlátozás nélkül.
  24. Készíts egy main függvényt, ami az elkészült osztályokat (függvényeivel együtt) teszteli!
  25. */
  26.  
  27. using namespace std;
  28.  
  29. class Telefon{
  30.  
  31.     protected:
  32.         int number[9];
  33.         double data;
  34.     public:
  35.         Telefon(int[],double);
  36.         Telefon();
  37.         void internetHasznal();
  38.         void internetHasznal(double);
  39.         void feltolt();
  40.         void adatok();
  41.  
  42. };
  43.  
  44. Telefon :: Telefon(int number[9], double data){
  45.  
  46.     cout << "A megadott telefonszám: ";
  47.  
  48.         for(int i = 0; i<9; i++){
  49.             this->number[i] = number[i];
  50.             cout << number[i];
  51.         }
  52.  
  53.     cout << endl;
  54.  
  55.     this->data = data;
  56.  
  57.     cout << "A megadott felhasználható adatmennyiség: " << data << " MB" << endl;
  58.  
  59. }
  60.  
  61. Telefon :: Telefon(){
  62.  
  63.     cout << "Adja meg a 9 jegyű telefonszámot, szóközzel elválasztva!" << endl;
  64.         for(int i = 0; i<9; i++){
  65.             cin >> number[i];
  66.         }
  67.  
  68.     cout << "Adja meg a felhasználható internet mennyiségét megabájtban!" << endl;
  69.     cin >> data;
  70.  
  71. }
  72.  
  73. void Telefon :: internetHasznal(double hasznal){
  74.  
  75.     if((data-hasznal) <= 0){
  76.         data = 0;
  77.     } else data-=hasznal;
  78.  
  79.     if(data == 0){
  80.         cout << "Nincs felhasználható adatkeret az internet eléréséhez!" << endl;
  81.     }else cout << "Felhasználást követő adatkeret: " << data << endl;
  82. }
  83.  
  84. void Telefon :: internetHasznal(){
  85.  
  86.     if((data-1.2) <= 0){
  87.         data = 0;
  88.     } else data-=1.2;
  89.  
  90.     if(data == 0){
  91.         cout << "Nincs felhasználható adatkeret az internet eléréséhez!" << endl;
  92.     }else cout << "Felhasználást követő adatkeret: " << data << endl;
  93.  
  94. }
  95.  
  96. void Telefon :: feltolt(){
  97.  
  98.  
  99.     if((data+500)>=1500){
  100.         data = 1500;
  101.     }else data+=500;
  102.  
  103.     cout << "Feltöltés utáni aktuális adatkereted: " << data << " MB" << endl;
  104.  
  105. }
  106.  
  107. void Telefon :: adatok(){
  108.  
  109.     cout << "Telefonszám: ";
  110.  
  111.         for(int i = 0; i<9; i++){
  112.             cout << number[i];
  113.         }
  114.  
  115.     cout << endl;
  116.  
  117.     cout << "Adatkeret: " << data << " MB" << endl;
  118.  
  119. }
  120.  
  121. class SzuperNetezoTelefon : public Telefon{
  122.  
  123.         bool negyG;
  124.  
  125.     public:
  126.  
  127.         SzuperNetezoTelefon(int[],double,bool);
  128.         void save(char*);
  129.         void internetHasznal();
  130.         void internetHasznal(double);
  131.         void feltolt();
  132. };
  133.  
  134. SzuperNetezoTelefon :: SzuperNetezoTelefon(int number[9], double data, bool negyG): Telefon(number,data) {
  135.     this->negyG = negyG;
  136. }
  137.  
  138.  
  139. void SzuperNetezoTelefon ::save (char* fname){
  140.     ofstream o(fname);
  141.  
  142.     for(int i = 0; i<9; i++){
  143.         o << number[i];
  144.     }
  145.  
  146.     o << endl << data << endl;
  147.     o.close();
  148. }
  149.  
  150. void SzuperNetezoTelefon :: internetHasznal(double hasznal){
  151.  
  152.     if((data-hasznal) <= 0){
  153.         data = 0;
  154.     } else data-=hasznal;
  155.  
  156.     if(data == 0){
  157.         cout << "Nincs felhasználható adatkeret!" << endl;
  158.     }else cout << "Felhasználást követő adatkeret: " << data << endl;
  159. }
  160.  
  161. void SzuperNetezoTelefon :: internetHasznal(){
  162.  
  163.     if((data-23.5) <= 0){
  164.         data = 0;
  165.     } else data-=23.5;
  166.  
  167.     if(data == 0){
  168.         cout << "Nincs felhasználható adatkeret!" << endl;
  169.     }else cout << "Felhasználást követő adatkeret: " << data << endl;
  170.  
  171. }
  172.  
  173. void SzuperNetezoTelefon :: feltolt(){
  174.  
  175.     data+=500;
  176.  
  177.     cout << "Feltöltés utáni aktuális adatkereted: " << data << " MB" << endl;
  178.  
  179. }
  180.  
  181. int main()
  182. {
  183.     setlocale(LC_ALL,"hun");
  184.  
  185.     int telefonszam[9] = {1,2,3,4,5,6,7,8,9};
  186. /*
  187.     Telefon *t = new Telefon(telefonszam,1500.0);
  188.     // Telefon *t = new Telefon();
  189.     t->internetHasznal(500.0);
  190.     // t->internetHasznal();
  191.     t->feltolt();
  192.     t->adatok();
  193.     delete t;
  194. */
  195.  
  196.     SzuperNetezoTelefon *t = new SzuperNetezoTelefon(telefonszam,3000.0,true);
  197.     t->save("num_dat.txt");
  198.     t->internetHasznal(1000.0);
  199.     // t->internetHasznal();
  200.     t->feltolt();
  201.     delete t;
  202.  
  203.     return 0;
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement