Guest User

Untitled

a guest
Dec 14th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.34 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Runtime.Serialization.Formatters.Binary;
  7.  
  8. namespace ConsoleApplication1
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. int countCapacities; // поле для храрнеия информации о количестве доступных емкостей джесткого диска производителя
  15. int countInterfaces; // поле для храрнеия информации о количестве доступных интерфейсов джесткого диска производителя
  16. // создание объекта класса HardDrive с помощью перегруженного конструктора
  17. // Запросим у пользователя количество доступных для изготовления емкостей жесткого диска
  18. Console.WriteLine("Введиет количество доступных емкостей джесткого диска производителя Тошиба");
  19. countCapacities = Convert.ToInt32(Console.ReadLine());
  20. // Запросим у пользователя количество доступных для изготовления интерфейсов жесткого диска
  21. Console.WriteLine("Введиет количество доступных интерфейсов, которые поддерживает производитель Тошиба");
  22. countInterfaces = Convert.ToInt32(Console.ReadLine());
  23. // создадим объект фирмы Тошиба
  24. HardDrive toshiba = new HardDrive("Toshiba", countCapacities, countInterfaces);
  25.  
  26. // создадим объект фирмы Cегейт, для этого
  27. // Запросим у пользователя количество доступных для изготовления емкостей жесткого диска
  28. Console.WriteLine("Введиет количество доступных емкостей джесткого диска производителя Сегейт");
  29. countCapacities = Convert.ToInt32(Console.ReadLine());
  30. // Запросим у пользователя количество доступных для изготовления интерфейсов жесткого диска
  31. Console.WriteLine("Введиет количество доступных интерфейсов, которые поддерживает производитель Сегейт");
  32. countInterfaces = Convert.ToInt32(Console.ReadLine());
  33. HardDrive seagate = new HardDrive("Seagate", countCapacities, countInterfaces);
  34.  
  35. // Создадим объект класса HardDrives (набор информации о производителях жестких дисков)и распечатаем информацию о производителях
  36.  
  37. HardDrives hardDrives = new HardDrives();
  38. hardDrives[0] = toshiba;
  39. hardDrives[1] = seagate;
  40.  
  41. // создаем объект BinaryFormatter
  42. BinaryFormatter formatter = new BinaryFormatter();
  43. // получаем поток, куда будем записывать сериализованный объект
  44. using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
  45. {
  46. formatter.Serialize(fs, hardDrives);
  47.  
  48. Console.WriteLine("Объект сериализован");
  49. }
  50. using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
  51. {
  52. HardDrives desializedHardDrives = (HardDrives)formatter.Deserialize(fs);
  53.  
  54. for (int i = 0; i < 2; i++)
  55. {
  56. hardDrives[i].PrintAvailableCapacities();
  57. }
  58. }
  59.  
  60. Console.ReadLine();
  61. }
  62. }
  63. [Serializable]
  64. public class HardDrives {
  65. HardDrive[] hardDrives = new HardDrive[2];
  66. public HardDrive this[int pos] {
  67. get
  68. {
  69. if (pos >= 0 && pos < 2) { return hardDrives[pos]; } else { throw new IndexOutOfRangeException("Вне диапазона!"); }
  70. }
  71. set
  72. {
  73. hardDrives[pos] = value;
  74. }
  75. }
  76. }
  77. [Serializable]
  78. public class HardDrive
  79. {
  80. private string manufacturer;
  81. private int[] capacities; // megabytes
  82. private int available_capacities_count; // поле объекта для хранения информации о размере массива capacities
  83. private string[] interfaces; // интерфейсы
  84. private int available_interfaces_count; // поле объекта для хранения информации о размере массива interfaces
  85.  
  86.  
  87. public HardDrive(string manufacturer, int available_capacities_count, int available_interfaces_count)
  88. {
  89. this.manufacturer = manufacturer;
  90. this.available_capacities_count = available_capacities_count;
  91. this.available_interfaces_count = available_interfaces_count;
  92. this.capacities = new int[available_capacities_count];
  93. this.interfaces = new string[available_interfaces_count];
  94. fillCapacities();
  95. fillInterfaces();
  96.  
  97. }
  98. private void fillCapacities() {
  99. Console.WriteLine("Введите все емкости доступные для изготовления " + "(" + available_capacities_count + ")");
  100. for (int i = 0; i < available_capacities_count; i++) {
  101. try
  102. {
  103. int intTemp = Convert.ToInt32(Console.ReadLine());
  104. capacities[i] = intTemp;
  105. }
  106. catch (Exception e) {
  107. Console.WriteLine(e.Message);
  108. }
  109. }
  110.  
  111. }
  112. private void fillInterfaces()
  113. {
  114. Console.WriteLine("Введите все интерфейсы поддерживаемые производителем " + "(" + available_interfaces_count + ")");
  115. for (int i = 0; i < available_interfaces_count; i++)
  116. {
  117. try
  118. {
  119. interfaces[i] = Console.ReadLine();
  120. }
  121. catch (Exception e)
  122. {
  123. Console.WriteLine(e.Message);
  124. }
  125. }
  126. }
  127. public void PrintAvailableCapacities() {
  128. Console.WriteLine("Производитель " + manufacturer + " предлагает следущиее емкости своих жестких дисков: " + " \n");
  129. for (int i = 0; i < available_capacities_count; i++) {
  130. Console.WriteLine(capacities[i] + " Мегабайт\n");
  131. }
  132. Console.WriteLine("и его жесткие диски поддерживают следущие интерфейсы: " + " \n");
  133. for (int i = 0; i < available_interfaces_count; i++)
  134. {
  135. Console.WriteLine("Стандарт " + interfaces[i] + " \n");
  136. }
  137. }
  138. }
  139. }
Add Comment
Please, Sign In to add comment