- Содержание
- Часть работы
- Список литературы
1. АНАЛИЗ ПОСТАВЛЕННОЙ ЗАДАЧИ 3
2. ДИАГРАММА КЛАССОВ 4
3. ОПИСАНИЕ ПРОГРАМНОГО КОДА КЛАССОВ 6
4. ТЕСТИРОВАНИЕ ФУНКЦИОНАЛЬНОСТИ КЛАССОВ И 11
БИБЛИОТЕКИ 11
5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ-ПРОГРАММИСТА ПРИ ИСПОЛЬЗОВАНИИ СОЗДАННОЙ БИБЛИОТЕКИ КАК РЕСУРСА 12
5.1. Назначение и условия применения 12
5.2. Характеристика: 12
5.3. Обращение к библиотеке: 12
5.4. Входные и выходные данные: 13
ЗАКЛЮЧЕНИЕ 14
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 15
Фрагмент для ознакомления
Name = name;this.Diameter = diameter; }publicoverridestringConvertToText() {return"Star " + this.Name + ": " + this.Diameter; } }}usingCosmicLib;using System;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Xml;namespaceCosmicLib{publicclassStarSystem {private Star star = null;private List planets = null;privatestring XMLFILE = null;publicStarSystem(string XMLFILE) {this.XMLFILE = XMLFILE; Reload(); }public Star Star { get { return star; } }public List Planets { get { return planets; } }publicvoid Reload() { star = new Star(); planets = new List();parseXML(XMLFILE); }publicvoidPrintStarSystem() {Console.WriteLine(star.Name + "\t\tDiameter: " + star.Diameter);foreach (OrbitalRotatingBody p in planets) {Console.WriteLine(" |--" + p);foreach (OrbitalRotatingBody m inp.moons)Console.WriteLine(" |--" + m); } }publicvoid Save() {stringxmlfile = this.XMLFILE;XmlDocumentxdoc = newXmlDocument();xdoc.Load(xmlfile);XmlNodeListxml_planets = xdoc.GetElementsByTagName("star").Item(0).ChildNodes;IEnumeratorienum = xml_planets.GetEnumerator();while (ienum.MoveNext()) {XmlNode p = (XmlNode)ienum.Current; String s = p.LocalName;if (s == "name")p.InnerText = star.Name;elseif (s == "diameter")p.InnerText = star.Diameter.ToString(newSystem.Globalization.CultureInfo("en-US"));elseif (s == "texture") ;// sun.Texture = p.InnerText;elseif (s == "planet") {saveOrbitalBody(p, planets); } }xdoc.Save(xmlfile); }privatevoidsaveOrbitalBody(XmlNode p, List bodies) {IEnumeratorienum = p.GetEnumerator();OrbitalRotatingBodysave_body = null;while (ienum.MoveNext()) {System.Globalization.CultureInfocuinfo = newSystem.Globalization.CultureInfo("en-US");XmlNode m = (XmlNode)ienum.Current; String s = m.LocalName;if (s == "name") {save_body = bodies.Find(it => it.Name.Equals(m.InnerText));if (save_body == null) thrownew Exception("Внутренняяошибка"); }elseif (s == "diameter") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.Diameter.ToString(cuinfo); }elseif (s == "orbit") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.Orbit.ToString(); }elseif (s == "texture") ;// new_planet.Texture = m.InnerText;elseif (s == "orbitalspeed") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.OrbitalSpeed.ToString(cuinfo); }elseif (s == "inclination") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.Inclination.ToString(cuinfo); }elseif (s == "axialtilt") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.AxialTilt.ToString(cuinfo); }elseif (s == "rotationvelocity") {if (save_body == null) thrownew Exception("Внутренняяошибка");m.InnerText = save_body.RotationVelocity.ToString(cuinfo); }elseif (s == "moon") {if (save_body == null) thrownew Exception("Внутренняяошибка");saveOrbitalBody(m, save_body.moons); } } }privatevoidparseXML(String xmlfile) {XmlDocumentxdoc = newXmlDocument();xdoc.Load(xmlfile);XmlNodeListxml_planets = xdoc.GetElementsByTagName("star").Item(0).ChildNodes;IEnumeratorienum = xml_planets.GetEnumerator();while (ienum.MoveNext()) {XmlNode p = (XmlNode)ienum.Current; String s = p.LocalName;if (s == "name")star.Name = p.InnerText;elseif (s == "diameter")star.Diameter = double.Parse(p.InnerText, newSystem.Globalization.CultureInfo("en-US"));elseif (s == "texture") ;// sun.Texture = p.InnerText;elseif (s == "planet") {planets.Add(parsePlanet(p)); } } }privatestaticOrbitalRotatingBodyparsePlanet(XmlNode p) {IEnumeratorienum = p.GetEnumerator();OrbitalRotatingBodynew_body = newOrbitalRotatingBody();while (ienum.MoveNext()) {System.Globalization.CultureInfocuinfo = newSystem.Globalization.CultureInfo("en-US");XmlNode m = (XmlNode)ienum.Current; String s = m.LocalName;if (s == "name")new_body.Name = m.InnerText;elseif (s == "diameter")new_body.Diameter = double.Parse(m.InnerText, cuinfo);elseif (s == "orbit")new_body.Orbit = ulong.Parse(m.InnerText);elseif (s == "texture") ;// new_planet.Texture = m.InnerText;elseif (s == "orbitalspeed")new_body.OrbitalSpeed = double.Parse(m.InnerText, cuinfo);elseif (s == "inclination")new_body.Inclination = double.Parse(m.InnerText, cuinfo);elseif (s == "axialtilt")new_body.AxialTilt = double.Parse(m.InnerText, cuinfo);elseif (s == "rotationvelocity")new_body.RotationVelocity = double.Parse(m.InnerText, cuinfo);elseif (s == "moon") {new_body.AddMoon(parsePlanet(m));} }returnnew_body; } }}
1.Алексей Васильев C#. Объектно-ориентированное программирование / Алексей Васильев. - М.: Питер, 2017. - 320 c.
2.Джозеф, Албахари C# 5.0. Справочник. Полное описание языка / Албахари Джозеф. - М.: Диалектика / Вильямс, 2018. - 112 c.
3.Прайс, М. С# 9 и .NET 5 : разработка и оптимизация / М. Прайс. – 5-е изд. – Санкт-Петербург : Питер, 2022. – 832 с.
4.Тепляков, С. Паттерны проектирования на платформе .NET / – Санкт-Петербург : Питер, 2021. – 320 с. : ил.
5.Албахари, Д. С# 9.0. Справочник : полное описание языка / пер. с англ. – Москва ; Санкт-Петербург : Диалектика, 2021. – 1056 с.
6.Рихтер, Д. CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# / Д. Рихтер. – 4-е изд. – Санкт-Петербург : Питер,2019. – 896 с
7.C# | Modern, open-source programming language for .NET URL: https://dotnet.microsoft.com/en-us/languages/csharp
8.Learn C# Programming URL: https://www.programiz.com/csharp-programming