Vladislav_Bezruk

Second task Ravenclaw

Dec 4th, 2020 (edited)
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.91 KB | None | 0 0
  1. using System;
  2.  
  3. namespace RavenclawSecondPracticeTask
  4. {
  5.     class Data
  6.     {
  7.         private int maxAdress;
  8.         private string[] Names = new string[1];
  9.         private User[] Users = new User[1];
  10.  
  11.         public Data()
  12.         {
  13.             maxAdress = 0;
  14.  
  15.         }
  16.  
  17.         private void changeName(int adress, string name)
  18.         {
  19.             Console.WriteLine("Username in " + adress + " adress changed from " + Names[adress] + " to " + name);
  20.             Users[adress].setUsername(name);
  21.             Names[adress] = name;
  22.         }
  23.  
  24.         private void setMaxAdress(int adress)
  25.         {
  26.             maxAdress = adress;
  27.             Array.Resize(ref Names, adress + 1);
  28.             Array.Resize(ref Users, adress + 1);
  29.         }
  30.  
  31.         public string getName(int adress)
  32.         {
  33.             if (adress <= maxAdress && Users[adress] != null)
  34.             {
  35.                 Console.WriteLine("In adress " + adress + " name of user is " + Names[adress]);
  36.                 return Names[adress];
  37.             }
  38.             else
  39.             {
  40.                 Console.WriteLine("Eror invalid adress");
  41.                 return "";
  42.             }
  43.              
  44.  
  45.            
  46.         }
  47.  
  48.         public void Update(int adress , int newAdress , string newName)
  49.         {
  50.             if (adress >= 0 && adress >= 0 && newAdress >= 0)
  51.             {
  52.                 if (newAdress <= maxAdress && Users[newAdress] != null)
  53.                 {
  54.                     Console.WriteLine("Eror in this adress already has user");
  55.                 }
  56.                 else
  57.                 if (Users[adress] == null)
  58.                 {
  59.                     Console.WriteLine("Eror in this adress didn't create user");
  60.                 }
  61.                 else
  62.                 {
  63.                     if (adress != newAdress)
  64.                     {
  65.                         if (newAdress > maxAdress)
  66.                             setMaxAdress(newAdress);
  67.  
  68.                         Users[newAdress] = Users[adress];
  69.                         Users[adress] = null;
  70.                         Names[newAdress] = Names[adress];
  71.                         Names[adress] = "";
  72.  
  73.                         Console.WriteLine("Changed User's adress " + adress + " with username " + Names[newAdress] + " to new adress " + newAdress);
  74.  
  75.                     }
  76.  
  77.                     if (Names[newAdress] != newName)
  78.                     {
  79.                        changeName(newAdress, newName);
  80.                     }
  81.  
  82.                 }
  83.  
  84.             }
  85.             else
  86.                 Console.WriteLine("Eror invalid adress");
  87.            
  88.         }
  89.  
  90.         private int getNextAdress()
  91.         {
  92.             int ad = 0;
  93.             bool t = false;
  94.  
  95.             for (int i = 0; i <= maxAdress; i++)
  96.                 if (Names[i] == "")
  97.                 {
  98.                     t = true;
  99.                     ad = i;
  100.                     break;
  101.                 }
  102.             if (t == false)
  103.                 ad = maxAdress + 1;
  104.  
  105.             return ad;
  106.         }
  107.  
  108.         public int createUser()
  109.         {
  110.             int aUser , k;
  111.  
  112.             if (getNextAdress() > maxAdress)
  113.             {
  114.                 aUser = getNextAdress();
  115.                 Array.Resize(ref Names, aUser + 1);
  116.                 Array.Resize(ref Users, aUser + 1);
  117.                 maxAdress++;
  118.             }
  119.             else
  120.                 aUser = getNextAdress();
  121.  
  122.             Console.WriteLine("Created User in " + aUser + " adress");
  123.  
  124.             Names[aUser] = "New user";
  125.  
  126.             Users[aUser] = new User();
  127.  
  128.             Users[aUser].setUsername("New user");
  129.  
  130.             return aUser;
  131.         }
  132.  
  133.     }
  134.  
  135.     class User
  136.     {
  137.         private string _username;
  138.         private int _adress;
  139.  
  140.  
  141.         public User() {
  142.  
  143.         }
  144.        
  145.         public void setUsername(string username)
  146.         {
  147.             if (username != "")
  148.             {
  149.                 _username = username;
  150.                
  151.             }
  152.            
  153.         }
  154.  
  155.         public string getUsername()
  156.         {
  157.             Console.WriteLine("Your username - " + _username);
  158.             return _username;
  159.         }
  160.  
  161.         public int getAdress()
  162.         {
  163.             Console.WriteLine("Your adress - " + _adress);
  164.             return _adress;
  165.         }
  166.         public void setAdress(int adress)
  167.         {
  168.             if (adress >= 0)
  169.             {
  170.                 _adress = adress;
  171.                 Console.WriteLine("Aress changed to " + _adress);
  172.             }
  173.             else
  174.                 Console.WriteLine("Error invalid adress");
  175.         }
  176.  
  177.  
  178.     }
  179.  
  180.     class Program
  181.     {
  182.         static Data data = new Data();
  183.         static void Main(string[] args)
  184.         {
  185.             data.createUser();
  186.             data.createUser();
  187.             data.createUser();
  188.             data.Update(1, 5, "Vlad");
  189.             data.Update(2, 4, "Max");
  190.         }
  191.     }
  192. }
  193.  
Add Comment
Please, Sign In to add comment