Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int countCapacities; // поле для храрнеия информации о количестве доступных емкостей джесткого диска производителя
- int countInterfaces; // поле для храрнеия информации о количестве доступных интерфейсов джесткого диска производителя
- // создание объекта класса HardDrive с помощью перегруженного конструктора
- // Запросим у пользователя количество доступных для изготовления емкостей жесткого диска
- Console.WriteLine("Введиет количество доступных емкостей джесткого диска производителя Тошиба");
- countCapacities = Convert.ToInt32(Console.ReadLine());
- // Запросим у пользователя количество доступных для изготовления интерфейсов жесткого диска
- Console.WriteLine("Введиет количество доступных интерфейсов, которые поддерживает производитель Тошиба");
- countInterfaces = Convert.ToInt32(Console.ReadLine());
- // создадим объект фирмы Тошиба
- HardDrive toshiba = new HardDrive("Toshiba", countCapacities, countInterfaces);
- // создадим объект фирмы Cегейт, для этого
- // Запросим у пользователя количество доступных для изготовления емкостей жесткого диска
- Console.WriteLine("Введиет количество доступных емкостей джесткого диска производителя Сегейт");
- countCapacities = Convert.ToInt32(Console.ReadLine());
- // Запросим у пользователя количество доступных для изготовления интерфейсов жесткого диска
- Console.WriteLine("Введиет количество доступных интерфейсов, которые поддерживает производитель Сегейт");
- countInterfaces = Convert.ToInt32(Console.ReadLine());
- HardDrive seagate = new HardDrive("Seagate", countCapacities, countInterfaces);
- // Создадим объект класса HardDrives (набор информации о производителях жестких дисков)и распечатаем информацию о производителях
- HardDrives hardDrives = new HardDrives();
- hardDrives[0] = toshiba;
- hardDrives[1] = seagate;
- // создаем объект BinaryFormatter
- BinaryFormatter formatter = new BinaryFormatter();
- // получаем поток, куда будем записывать сериализованный объект
- using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
- {
- formatter.Serialize(fs, hardDrives);
- Console.WriteLine("Объект сериализован");
- }
- using (FileStream fs = new FileStream("people.dat", FileMode.OpenOrCreate))
- {
- HardDrives desializedHardDrives = (HardDrives)formatter.Deserialize(fs);
- for (int i = 0; i < 2; i++)
- {
- hardDrives[i].PrintAvailableCapacities();
- }
- }
- Console.ReadLine();
- }
- }
- [Serializable]
- public class HardDrives {
- HardDrive[] hardDrives = new HardDrive[2];
- public HardDrive this[int pos] {
- get
- {
- if (pos >= 0 && pos < 2) { return hardDrives[pos]; } else { throw new IndexOutOfRangeException("Вне диапазона!"); }
- }
- set
- {
- hardDrives[pos] = value;
- }
- }
- }
- [Serializable]
- public class HardDrive
- {
- private string manufacturer;
- private int[] capacities; // megabytes
- private int available_capacities_count; // поле объекта для хранения информации о размере массива capacities
- private string[] interfaces; // интерфейсы
- private int available_interfaces_count; // поле объекта для хранения информации о размере массива interfaces
- public HardDrive(string manufacturer, int available_capacities_count, int available_interfaces_count)
- {
- this.manufacturer = manufacturer;
- this.available_capacities_count = available_capacities_count;
- this.available_interfaces_count = available_interfaces_count;
- this.capacities = new int[available_capacities_count];
- this.interfaces = new string[available_interfaces_count];
- fillCapacities();
- fillInterfaces();
- }
- private void fillCapacities() {
- Console.WriteLine("Введите все емкости доступные для изготовления " + "(" + available_capacities_count + ")");
- for (int i = 0; i < available_capacities_count; i++) {
- try
- {
- int intTemp = Convert.ToInt32(Console.ReadLine());
- capacities[i] = intTemp;
- }
- catch (Exception e) {
- Console.WriteLine(e.Message);
- }
- }
- }
- private void fillInterfaces()
- {
- Console.WriteLine("Введите все интерфейсы поддерживаемые производителем " + "(" + available_interfaces_count + ")");
- for (int i = 0; i < available_interfaces_count; i++)
- {
- try
- {
- interfaces[i] = Console.ReadLine();
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- }
- }
- public void PrintAvailableCapacities() {
- Console.WriteLine("Производитель " + manufacturer + " предлагает следущиее емкости своих жестких дисков: " + " \n");
- for (int i = 0; i < available_capacities_count; i++) {
- Console.WriteLine(capacities[i] + " Мегабайт\n");
- }
- Console.WriteLine("и его жесткие диски поддерживают следущие интерфейсы: " + " \n");
- for (int i = 0; i < available_interfaces_count; i++)
- {
- Console.WriteLine("Стандарт " + interfaces[i] + " \n");
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment