6 16

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

using System;

using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;

//���i��� 16
namespace LAB
{
[Serializable]
public class Worker : IComparable<Worker>
{
public string Surname;
private int _number;
private double _payment;

public double Payment


{
get { return _payment; }
set
{
if (value > 0)
{
_payment = value;
}
}
}
public int Number
{
get { return _number; }
set
{
if (value > 0)
{
_number = value;
}
}
}
public int Carma { get; set; }
public int Days { get; set; }
public Worker() { }
public Worker(string SurnameValue, int NumberValue, double PaymentValue,
int CarmaValue, int DaysValue)

{
Surname = SurnameValue;
Number = NumberValue;
Payment = PaymentValue;
Carma = CarmaValue;
Days = DaysValue;

public int CompareTo(Worker other)


{
if (Payment == other.Payment)
{
return 0;
}
else if (Payment > other.Payment)
{
return 1;
}
else
{
return -1;
}
}

public override string ToString()


{
return
string.Format(" ����i���� {0}\n " + "��������� ����� {1}\n" + "
�������� {2}\n" + " ����� {3}\n" + " ��i ������ {4}\n", Surname, _number, _payment,
Carma, Days);
}

}
class Program
{
static void Main(string[] args)
{
var WorkerList = new List<Worker>();
WorkerList.Add(new Worker("�������", 451, 17800, 10, 893));
WorkerList.Add(new Worker("������", 367, 15400, 7, 563));
WorkerList.Add(new Worker("������", 215, 19000, 8, 214));
WorkerList.Add(new Worker("�������", 114, 14600, 5, 144));
WorkerList.Add(new Worker("������", 251, 17800, 6, 535));
Worker[] work = WorkerList.ToArray();
Console.WriteLine("������ for:\n");
for (int i = 0; i < WorkerList.Count; i++)
{
Console.WriteLine(WorkerList[i]);
}
Console.WriteLine("������������ ������ �� �������� ����� foreach :\n");
foreach (var Worker in WorkerList)
{
Console.WriteLine(Worker);
}
Console.WriteLine("���� foreach:\n");
WorkerList.Sort();
foreach (var Worker in WorkerList)
{
Console.WriteLine(Worker);
}
{
Console.WriteLine("TXT \n");
var sampleWorker = new Worker("�������", 114, 14600, 5, 144);
var fout = new StreamWriter(@"C:\Users\vatyz\Desktop\Lab
6\Worker.txt");
fout.WriteLine(sampleWorker);
fout.Close();
var fin = new StreamReader(@"C:\Users\vatyz\Desktop\Lab
6\Worker.txt");
while (!fin.EndOfStream)
{
var s = fin.ReadLine();
Console.WriteLine(s);
}
fin.Close();

}
{
Console.WriteLine("BIN\n");
var samplWorker = new Worker("������", 251, 17800, 6, 535);
var binFormat = new BinaryFormatter();
var fStream = new FileStream(@"C:\Users\vatyz\Desktop\Lab
6\Worker.dat", FileMode.Create);
binFormat.Serialize(fStream, samplWorker);
fStream.Close();
}
{
var dataFile = File.OpenRead(@"C:\Users\vatyz\Desktop\Lab
6\Worker.dat");
var binFormat = new BinaryFormatter();
var WorkerBin = (Worker)binFormat.Deserialize(dataFile);
Console.WriteLine(WorkerBin);
}
{
Console.WriteLine("XML:\n");
XmlSerializer formatter = new XmlSerializer(typeof(Worker[]));

using (FileStream fs = new FileStream(@"C:\Users\vatyz\Desktop\Lab


6\Worker.xml", FileMode.OpenOrCreate))
{
formatter.Serialize(fs, work);
}

using (FileStream fs = new FileStream(@"C:\Users\vatyz\Desktop\Lab


6\Worker.xml", FileMode.OpenOrCreate))
{
Worker[] newwork = (Worker[])formatter.Deserialize(fs);

foreach (Worker p in newwork)


{
Console.WriteLine(p);
}
}
}

Console.ReadKey();

}
}
}

You might also like