Загрузка данных
Вот код на C# для студента-новичка, без комментариев, с меню выбора всех 4 заданий:
```csharp
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
class Program
{
struct Employee
{
public string Name;
public int Age;
public double Salary;
}
static void Main()
{
while (true)
{
Console.WriteLine("\nВыберите задание:");
Console.WriteLine("1 - Массив из 10 чисел");
Console.WriteLine("2 - Структура сотрудника");
Console.WriteLine("3 - Массив структур");
Console.WriteLine("4 - Копирование файла");
Console.WriteLine("0 - Выход");
Console.Write("Ваш выбор: ");
string choice = Console.ReadLine();
if (choice == "0") break;
switch (choice)
{
case "1":
Task1();
break;
case "2":
Task2();
break;
case "3":
Task3();
break;
case "4":
Task4();
break;
default:
Console.WriteLine("Неверный выбор!");
break;
}
}
}
static void Task1()
{
string file = "numbers.bin";
int[] numbers = new int[10];
for (int i = 0; i < 10; i++)
{
numbers[i] = i + 1;
}
using (BinaryWriter writer = new BinaryWriter(File.Open(file, FileMode.Create)))
{
for (int i = 0; i < numbers.Length; i++)
{
writer.Write(numbers[i]);
}
}
int[] readNumbers = new int[10];
using (BinaryReader reader = new BinaryReader(File.Open(file, FileMode.Open)))
{
for (int i = 0; i < readNumbers.Length; i++)
{
readNumbers[i] = reader.ReadInt32();
}
}
Console.WriteLine("Прочитанные числа:");
for (int i = 0; i < readNumbers.Length; i++)
{
Console.Write(readNumbers[i] + " ");
}
Console.WriteLine();
}
static void Task2()
{
string file = "employees.bin";
Employee[] employees = new Employee[3];
employees[0].Name = "Иван";
employees[0].Age = 25;
employees[0].Salary = 50000;
employees[1].Name = "Мария";
employees[1].Age = 30;
employees[1].Salary = 60000;
employees[2].Name = "Петр";
employees[2].Age = 35;
employees[2].Salary = 70000;
using (BinaryWriter writer = new BinaryWriter(File.Open(file, FileMode.Create)))
{
for (int i = 0; i < employees.Length; i++)
{
writer.Write(employees[i].Name);
writer.Write(employees[i].Age);
writer.Write(employees[i].Salary);
}
}
Employee[] readEmployees = new Employee[3];
using (BinaryReader reader = new BinaryReader(File.Open(file, FileMode.Open)))
{
for (int i = 0; i < readEmployees.Length; i++)
{
readEmployees[i].Name = reader.ReadString();
readEmployees[i].Age = reader.ReadInt32();
readEmployees[i].Salary = reader.ReadDouble();
}
}
Console.WriteLine("Сотрудники:");
for (int i = 0; i < readEmployees.Length; i++)
{
Console.WriteLine($"Имя: {readEmployees[i].Name}, Возраст: {readEmployees[i].Age}, Зарплата: {readEmployees[i].Salary}");
}
}
static void Task3()
{
string file = "array_struct.bin";
Employee[] employees = new Employee[2];
employees[0].Name = "Анна";
employees[0].Age = 28;
employees[0].Salary = 55000;
employees[1].Name = "Сергей";
employees[1].Age = 32;
employees[1].Salary = 65000;
using (BinaryWriter writer = new BinaryWriter(File.Open(file, FileMode.Create)))
{
writer.Write(employees.Length);
for (int i = 0; i < employees.Length; i++)
{
writer.Write(employees[i].Name);
writer.Write(employees[i].Age);
writer.Write(employees[i].Salary);
}
}
Employee[] readEmployees;
using (BinaryReader reader = new BinaryReader(File.Open(file, FileMode.Open)))
{
int count = reader.ReadInt32();
readEmployees = new Employee[count];
for (int i = 0; i < count; i++)
{
readEmployees[i].Name = reader.ReadString();
readEmployees[i].Age = reader.ReadInt32();
readEmployees[i].Salary = reader.ReadDouble();
}
}
Console.WriteLine("Массив структур:");
for (int i = 0; i < readEmployees.Length; i++)
{
Console.WriteLine($"Имя: {readEmployees[i].Name}, Возраст: {readEmployees[i].Age}, Зарплата: {readEmployees[i].Salary}");
}
}
static void Task4()
{
string sourceFile = "source.bin";
string destFile = "copy.bin";
byte[] data = { 10, 20, 30, 40, 50 };
using (BinaryWriter writer = new BinaryWriter(File.Open(sourceFile, FileMode.Create)))
{
for (int i = 0; i < data.Length; i++)
{
writer.Write(data[i]);
}
}
using (FileStream source = new FileStream(sourceFile, FileMode.Open))
using (FileStream dest = new FileStream(destFile, FileMode.Create))
{
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
{
dest.Write(buffer, 0, bytesRead);
}
}
Console.WriteLine($"Файл {sourceFile} скопирован в {destFile}");
using (BinaryReader reader = new BinaryReader(File.Open(destFile, FileMode.Open)))
{
Console.WriteLine("Содержимое скопированного файла:");
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
Console.Write(reader.ReadByte() + " ");
}
Console.WriteLine();
}
}
}
```