close

Вход

Забыли?

вход по аккаунту

?

Lab 3

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ РГРТУ
Кафедра АСУ
Отчет о лабораторной работе №7
"Сериализация и десериализация файлов в С#""
по дисциплине "Объектно-ориентированное программирование"
Выполнил ст.гр.136:
Степыгин М. А.
Проверил:
Аникеев С.В.
2013 Задание:
Информация о заказчике, подрядчике, работе .
Выполнение:
Рисунок 1 - Основная форма отображения информации
Рисунок 2 - Форма для добавления и редактирования информации о заказчике
Рисунок 3 - Форма для добавления Подрядчика
Рисунок 4 - Форма для добавления работы
Класс Info:
[Serializable]
public class Info: ServerManager
{
[XmlAttribute]
public string FIOzak;
[XmlAttribute]
public string vidrab;
[XmlAttribute]
public int PodrID;
[XmlAttribute]
public int rabID;
public string PodrName()
{
Podr podr;
ConPodr con = new ConPodr();
if (con.DicPodr.TryGetValue(this.PodrID, out podr)) return podr.namePodr; else return "";
}
public string RabName()
{
rabID rabID;
ConRabota con = new ConRabota();
if (con.DicrabID.TryGetValue(this.rabID, out rabID)) return rabID.nameRab; else return "";
}
}
public class InfoPodrComparer : IComparer<Info>
{
public int Compare(Info inf1, Info inf2)
{
int _result = inf1.PodrName().CompareTo(inf2.PodrName());
if (_result == 0)
_result = inf1.PodrID.CompareTo(inf2.PodrID);
return _result;
}
}
public class InforabIDComparer : IComparer<Info>
{
public int Compare(Info inf1, Info inf2)
{
int _result = inf1.RabName().CompareTo(inf2.RabName());
if (_result == 0)
_result = inf1.rabID.CompareTo(inf2.rabID);
return _result;
}
}
}
Класс Podrjadchik:
[Serializable]
public class Podr : ServerManager
{
[XmlAttribute]
public string namePodr;
public override string ToString()
{
return this.namePodr;
}
}
}
Класс Rabota:
{
[Serializable]
public class rabID: ServerManager
{
[XmlAttribute]
public string nameRab;
public override string ToString()
{
return this.nameRab;
}
}
}
Контейнер класса Info:
{
public class ConInfo
{
public List<Info> LI = new List<Info>();
private Dictionary<int, Info> _DicInfo = new Dictionary<int, Info>();
public Dictionary<int, Info> DicInfo { get { return _DicInfo; } }
public void Load()
{
using (FileStream fss = new FileStream(Constants.ZakFileName, FileMode.Open))
{
if (fss.Length != 0)
{
XmlSerializer xmlSInfo = new XmlSerializer(typeof(List<Info>));
LI = (List<Info>)xmlSInfo.Deserialize(fss);
}
}
foreach (Info i in LI)
{
DicInfo.Add(i.ID, i);
}
}
public void add(Info I)
{
LI.Add(I);
DicInfo.Add(I.ID, I);
}
public void edit(Info I)
{
DicInfo[I.ID] = I;
}
public void remove(Info I)
{
DicInfo.Remove(I.ID);
LI.Remove(I);
}
}
}
Контейнер класса Podr:
{
public class ConPodr
{
public List<Podr> LM = new List<Podr>();
private Dictionary<int, Podr> _DicPodr = new Dictionary<int, Podr>();
public Dictionary<int, Podr> DicPodr { get { return _DicPodr; } }
public void Load()
{
using (FileStream fss = new FileStream(Constants.PodrFileName, FileMode.Open))
{
if (fss.Length != 0)
{
XmlSerializer xmlPodr = new XmlSerializer(typeof(List<Podr>));
LM = (List<Podr>)xmlPodr.Deserialize(fss);
}
}
foreach (Podr i in LM)
{
DicPodr.Add(i.ID, i);
}
}
public void add(Podr M)
{
LM.Add(M);
DicPodr.Add(M.ID, M);
}
public void edit(Podr M)
{
DicPodr[M.ID] = M;
}
public void remove(Podr M)
{
DicPodr.Remove(M.ID);
LM.Remove(M);
}
}
}
Контейнер класса Rabota:
{
public class ConRabota
{
public List<rabID> LT = new List<rabID>();
private Dictionary<int, rabID> _DicRab = new Dictionary<int, rabID>();
public Dictionary<int, rabID> DicrabID { get { return _DicRab; } }
public void Load()
{
using (FileStream fss = new FileStream(Constants.RabFileName, FileMode.Open))
{
if (fss.Length != 0)
{
XmlSerializer xmlRab = new XmlSerializer(typeof(List<rabID>));
LT = (List<rabID>)xmlRab.Deserialize(fss);
}
}
foreach (rabID i in LT)
{
DicrabID.Add(i.ID, i);
}
}
public void add(rabID T)
{
LT.Add(T);
DicrabID.Add(T.ID, T);
}
public void edit(rabID T)
{
DicrabID[T.ID] = T;
}
public void remove(rabID T)
{
DicrabID.Remove(T.ID);
LT.Remove(T);
}
}
}
Метод сериализации:
public static void SaveSerInfo(List<Info> LI)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Info>));
FileStream fs = new FileStream(Constants.ZakFileName, FileMode.Create);
xmlSerializer.Serialize(fs, LI);
fs.Close();
}
public static void SaveSerPodr(List<Podr> LM)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Podr>));
FileStream fs = new FileStream(Constants.PodrFileName, FileMode.Create);
xmlSerializer.Serialize(fs, LM);
fs.Close();
}
public static void SaveSerRab(List<rabID> LT)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<rabID>));
FileStream fs = new FileStream(Constants.RabFileName, FileMode.Create);
xmlSerializer.Serialize(fs, LT);
fs.Close();
}
Документ
Категория
Рефераты
Просмотров
8
Размер файла
92 Кб
Теги
lab
1/--страниц
Пожаловаться на содержимое документа