mitkonikov

Untitled

Apr 4th, 2023
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. enum class Extension {
  7.     txt,
  8.     pdf,
  9.     exe
  10. };
  11.  
  12. class File {
  13. private:
  14.     char* name;
  15.     Extension extension;
  16.     char* owner;
  17.     int size;
  18.  
  19. public:
  20.     File() {
  21.         name = new char[100];
  22.         extension = Extension::txt;
  23.         owner = new char[100];
  24.         size = 0;
  25.     }
  26.  
  27.     File(char n[], Extension e, char o[], int s) {
  28.         name = new char[100];
  29.         owner = new char[100];
  30.         strcpy(name, n);
  31.         strcpy(owner, o);
  32.         extension = e;
  33.         size = s;
  34.     }
  35.  
  36.     File(const File& f) {
  37.         name = new char[100];
  38.         owner = new char[100];
  39.         strcpy(name, f.getName());
  40.         strcpy(owner, f.getOwner());
  41.         extension = f.getExtension();
  42.         size = f.getSize();
  43.     }
  44.  
  45.     ~File() {
  46.         delete name;
  47.         delete owner;
  48.     }
  49.  
  50.     char* getName() const {
  51.         return name;
  52.     }
  53.  
  54.     char* getOwner() const {
  55.         return owner;
  56.     }
  57.  
  58.     Extension getExtension() const {
  59.         return extension;
  60.     }
  61.  
  62.     int getSize() const {
  63.         return size;
  64.     }
  65.  
  66.     void operator=(const File& f) {
  67.         name = new char[100];
  68.         owner = new char[100];
  69.         strcpy(name, f.getName());
  70.         strcpy(owner, f.getOwner());
  71.         extension = f.getExtension();
  72.         size = f.getSize();
  73.     }
  74.  
  75.     void print() {
  76.         string e = "";
  77.         if (extension == Extension::txt) e = "txt";
  78.         if (extension == Extension::pdf) e = "pdf";
  79.         if (extension == Extension::exe) e = "exe";
  80.         cout << "File name: " << name << "." << e << endl;
  81.         cout << "File owner: " << owner << endl;
  82.         cout << "File size: " << size << endl;
  83.     }
  84.    
  85.     bool equals(const File& that) {
  86.         return true;
  87.     }
  88.  
  89.     bool equalsType(const File& that) {
  90.         return true;
  91.     }
  92. };
  93.  
  94. class Folder {
  95. private:
  96.     char* name;
  97.     int number = 0;
  98.     File* files;
  99.  
  100. public:
  101.     Folder(const char* name) {
  102.         this->name = new char[100];
  103.         strcpy(this->name, name);
  104.         this->files = new File[100];
  105.     }
  106.  
  107.     ~Folder() {
  108.         delete name;
  109.         delete files;
  110.     }
  111.  
  112.     void remove(const File& file) {
  113.         for (int i = 0; i < number; i++) {
  114.             if (files[i].equals(file)) {
  115.                 // shift the others to the left
  116.                 for (int k = i; k < number - 1; k++) {
  117.                     files[k] = files[k + 1];
  118.                 }
  119.                 number--;
  120.                 break;
  121.             }
  122.         }
  123.     }
  124.  
  125.     void add(const File& file) {
  126.         files[number++] = file;
  127.     }
  128.  
  129.     void print() {
  130.         cout << "Folder name: " << name << endl;
  131.         // DOPOLNI
  132.     }
  133. };
  134.  
  135. int main() {
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment