Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Результати виконання практичних завдань. Завдання 1. Створення тренувального консольного додатку для відображення текстового представлення об’єктів сутностей та їх колекцій





Завдання 1. Створення тренувального консольного додатку для відображення текстового представлення об’єктів сутностей та їх колекцій.

 

Для перевірки результатів формування текстового представлення об’єктів сутностей та їх колекцій додамо у рішення новий проект консольного застосування з іменем SubjectAreasTraining. У ньому клас Program ми зробимо частковим (partial): окремі частини для кожної предметної області.

У кожній частині опишем частковий статичний метод, з якого будем викликати усі методи виконання операцій над об’єктами ПО і відображення їх текстового представлення.

У основній частині класу Program помістимо попереднє оголошення часткових методів, а у головній функції – оператори їх виклику.

Такий підхід забезпечує автоматичне виключення з процесу компіляції тих операторів виклику часткових методів, для яких частини класу з їх реалізаціями не включені у проект.

 

namespace SubjectAreasTraining {

 

partial class Program {

 

static partial void StudyWorldDivision();

 

static void Main(string[] args) {

Console.Title = "SubjectAreasTraining";

Console.OutputEncoding = Encoding.UTF8;

 

StudyWorldDivision();

 

Console.ReadKey(true);

}

}

}

 

Завдання 2. Створення та використання методів формування текстового представлення об’єктів та колекцій об’єктів сутностей.

 

Реалізація методів формування текстового представлення об’єктів представлена в лістингах 1 – 4. Оператори створення статичних об’єктів та масивів об’єктів ПО «Поділ Світу» наведені у лістингу 5,.метод відображення текстового представлення об’єктів – у лістингу 6, а методів виконання операцій над колекціями об’єктів і відображення їх текстового представлення – у лістингу 7.

 

Лістинг 1 – Реалізація методів базового класу Entity

 

/// <summary>

/// Повертає ім'я типу для екземпляру сутностісті

/// з врахуванням контексту абзацного відступу

/// </summary>

/// <returns></returns>

public virtual string ToShortDataString() {

return String.Format("{0}{1}",

LineIndent.Current.Value,

this.GetType().Name);

}

 

/// <summary>

/// Повертає текстове представлення основних даних про

/// екземпляр сутностісті, значення його ідентифікатора

/// і даних про підпорядковані сутності (за їх наявності)

/// з врахуванням контексту абзацного відступу

/// </summary>

/// <returns></returns>

public string ToDataString() {

return String.Format("{0} Id: {1};{2}",

this.ToShortDataString(), Id,

CreateCollectionsDataString());

}

 

Лістинг 2 – Реалізація методу ToShortDataString класу UNDivisionObject

 

/// <summary>

/// Повертає ім'я та цифровий код екземпляру

/// сутностісті з врахуванням поточного відступу

/// </summary>

/// <returns></returns>

public override string ToShortDataString() {

return String.Format("{0}{1}; цифровий код: {2};",

LineIndent.Current.Value,

this.Name, this.NumericCode);

}

 

Лістинг 3 – Реалізація методу ToShortDataString класу Country

 

/// <summary>

/// Повертає основні дані про країну

/// з врахуванням контексту абзацного відступу

/// </summary>

/// <returns></returns>

public override string ToShortDataString() {

StringBuilder sb = new StringBuilder();

sb.AppendFormat("{0}{1};",

LineIndent.Current.Value, this.Name);

LineIndent.Current.Increase();

sb.AppendFormat(

"\n{0}цифровий код: {1}; Alpha-2: {2};",

LineIndent.Current.Value,

this.NumericCode, this.Alpha2Code);

sb.AppendFormat(

"\n{0}регіон: {1}; площа: {2:F1};",

LineIndent.Current.Value,

this.Macroregion.Name, this.Area);

LineIndent.Current.Decrease();

return sb.ToString();

}

 

Лістинг 4 – Реалізація методу ToShortDataString класу Organization

 

/// <summary>

/// Повертає основні дані про міжнародні організації

/// з врахуванням контексту абзацного відступу

/// </summary>

/// <returns></returns>

public override string ToShortDataString() {

StringBuilder sb = new StringBuilder();

sb.AppendFormat("{0}{1};",

LineIndent.Current.Value, this.Name);

LineIndent.Current.Increase();

sb.AppendFormat(

"\n{0}дата створення: {1}; дата розформування: {2};",

LineIndent.Current.Value,

this.CreationDate.ToString("d"),

this.TerminationDate.HasValue?

((DateTime)this.TerminationDate).ToString("d")

: "");

LineIndent.Current.Decrease();

return sb.ToString();

}

 

Лістинг 5 – Оператори створення об’єктів та масивів об’єктів ПО «Поділ Світу»

 

static Macroregion world =

new Macroregion("Світ", "001", null);

static Macroregion europe =

new Macroregion("Європа", "150", world);

static Macroregion easternEurope =

new Macroregion("Східна Європа", "151", europe);

static Macroregion westernEurope =

new Macroregion("Західна Європа", "155", europe);

static Macroregion asia =

new Macroregion("Азія", "142", world);

static Macroregion westernAsia =

new Macroregion("Західна Азія", "145", asia);

 

static Country ukraine =

new Country("Україна", "804", "ua", easternEurope)

{ Area = 603628 };

static Country russia =

new Country("Росія", "643", "ru", easternEurope)

{ Area = 17125407 };

static Country germany =

new Country("Німеччина", "276", "de", westernEurope)

{ Area = 357021 };

 

 

static Macroregion[] regionsArray = new Macroregion[] {

world, europe, easternEurope, asia, westernAsia

};

 

static Country[] countriesArray = new Country[] {

ukraine, russia, germany,

new Country("Франція", "250", "fr", westernEurope)

{ Area = 547030 },

new Country("Грузія", "268", "ge", westernAsia)

};

 

static Organization[] organizationsArray

= new Organization[] {

new Organization("Європейський Союз", "097",

new DateTime(1957, 3, 25)),

new Organization(

"Співдружність Незалежних Держав", "172",

new DateTime(1991, 12, 8)),

new Organization(

"Організація Чорноморського "

+ "економічного співробітництва", "",

new DateTime(1992, 6, 26))

};

 

 

Лістинг 6 – Реалізація методу відображення текстового представлення об’єктів ПО

 

static void StudyWorldDivisionDomain() {

Console.WriteLine("\n--- StudyWorldDivisionDomain ---\n");

 

Console.WriteLine("\nworld.ToShortDataString():");

Console.WriteLine(world.ToShortDataString());

 

Console.WriteLine("\neurope.ToShortDataString():");

Console.WriteLine(europe.ToShortDataString());

 

Console.WriteLine("\neasternEurope.ToShortDataString():");

Console.WriteLine(easternEurope.ToShortDataString());

 

Console.WriteLine("\nukraine.ToShortDataString():");

Console.WriteLine(ukraine.ToShortDataString());

 

Console.WriteLine("\nrussia.ToShortDataString():");

Console.WriteLine(russia.ToShortDataString());

 

Console.WriteLine("\ngermany.ToShortDataString():");

Console.WriteLine(germany.ToShortDataString());

}

 

Результату виклику методу відображення текстового представлення об’єктів ПО показаний на рисунку 1.

Рисунок 1 – Результату виклику методу StudyWorldDivisionDomain()

 

Лістинг 7 – Реалізація методів виконання операцій над колекціями об’єктів і відображення їх текстового представлення

 

static void AddRegionsToOrganizations() {

organizationsArray[0].AddRegion(europe);

organizationsArray[1].AddRegions(

new Region[] { easternEurope, westernAsia }

);

organizationsArray[2].AddRegion(world);

}

 

static void StudyWorldObjectsCollections() {

Console.WriteLine(

"\n--- StudyWorldDivisionObjectsCollections ---\n");

 

Console.Write("\nregionsArray.ToShortDataString():");

Console.WriteLine(regionsArray.ToShortDataString());

 

Console.Write(

"\nregionsArray.WriteLine(\"Георгафічні регіони\"):");

regionsArray.WriteLine("Георгафічні регіони");

 

Console.Write(

"\ncountriesArray.WriteLine(\"Країни\"):");

countriesArray.WriteLine("Країни");

 

List<UNDivisionObject> divisionObjectsList =

new List<UNDivisionObject>(regionsArray);

 

divisionObjectsList.WriteLine(

"\nОб'єкти статистичної класифікації ООН");

divisionObjectsList.AddRange(countriesArray);

divisionObjectsList.WriteLine(

"\nОб'єкти статистичної класифікації ООН");

divisionObjectsList.AddRange(organizationsArray);

divisionObjectsList.WriteLine(

"\nОб'єкти статистичної класифікації ООН");

 

SortedSet<Region> regionsSortedSet =

new SortedSet<Region>(regionsArray);

regionsSortedSet.WriteLine("\nГеоргафічні регіони");

 

SortedSet<UNDivisionObject> divisionObjectsSortedSet =

new SortedSet<UNDivisionObject>(divisionObjectsList);

divisionObjectsSortedSet.WriteLine(

"\nОб'єкти статистичної класифікації ООН (за назвою)");

 

SortedSet<UNDivisionObject> divisionObjectsSortedSet2 =

new SortedSet<UNDivisionObject>(divisionObjectsList,

new NumericCodeComparer());

divisionObjectsSortedSet2.WriteLine(

"\nОб'єкти статистичної класифікації ООН (за номером)");

}

 

Фрагмент результату виклику методів виконання операцій над колекціями об’єктів і відображення їх текстового представлення наведений на рисунку 2.

 

Рисунок 2 – Фрагмент результату виклику методу StudyWorldDivisionDomain()

 

Date: 2015-09-02; view: 352; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию