Хеш-таблиці
17.1. Клас SortedList<TKey,TValue> - відсортований список
17.2. Клас Dictionary<TKey,TValue> - словник
17.3. Клас SortedDictionary<TKey,TValue> - відсортований словник
Методичні рекомендації до виконання лабораторної роботи
1. Уважно прочитайте лекцію 8 та цю лабораторну роботу.
2. Виконайте і проаналізуйте всі наведені в лекції приклади.
Приклад.
Створити колекцію SortedList об’єктів класу Student. Заповнити колекцію даними з текстового файлу. Додати ще 2 елементи. Вивести на консоль. Перевірити, чи є елемент з ключем 4. Якщо є, видалити його з колекції.
Клас Student. В класі 3 конструктори.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab9_SortedList
{
class Student
{
//Властивості
public int Id {get; set;}
public string FistName { get; set; } //ім'я
public string LastName { get; set; } //прізвище
public string Role { get; set; } // роль
public int Course { get; set; }
public int Rating { get; set; }
public Student(int Id, string f, string n, int cource, int rating, string r)
{
//конструктор для ініціалізації об’єктів в коді
this.Id=Id;
FistName=f;
LastName=n;
Role=r;
Course=cource;
Rating=rating;
}
public Student(string s)
{
//конструктор для ініціалізації об’єктів з файлу
string[] split = s.Split(new Char[] { '*' });
Id = int.Parse(split[0].Trim());
FistName = split[1].Trim();
LastName = split[2].Trim();
Course = int.Parse(split[3].Trim());
Rating = int.Parse(split[4].Trim());
Role = split[5].Trim();
}
public Student()
{
//конструктор тільки для створення колекції
}
public string GetRole(int course)
{
if (course <= 4)
Role = "бакалавр";
else
Role = "магістр";
return Role;
}
public void St_Rating(int student_rating)
{
if (student_rating >= 82)
Console.WriteLine("Привіт відмінникам");
else
if (student_rating <= 45)
Console.WriteLine("Перездача! Треба краще вчитися!");
else
Console.WriteLine("Можна вчитися ще краще!");
}
}
}
Код програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Lab9_SortedList
{
class Program
{
static void Main(string[] args)
{
SortedList<int, Student> List_SI_51 = new SortedList<int, Student>();
string s;
int Id;
string[] split;
StreamReader f = new StreamReader("TextListStudents.txt");
while ((s = f.ReadLine()) != null)
{
split = s.Split(new Char[] { '*' }); // розбивка на слова
Id = int.Parse(split[0].Trim()); //виділення ключа
List_SI_51.Add(Id, new Student(s)); //заповнення колекції
}
f.Close();
//додаємо 2 елементи
List_SI_51.Add(3, new Student(3, "Д’яченко", "Валерій",2,76, "бакалавр"));
List_SI_51.Add(4, new Student(4, "Ніколаєв", "Андрій", 2, 65, "бакалавр"));
foreach (KeyValuePair<int, Student> kvp in List_SI_51)
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value.FistName);
}
if (List_SI_51.ContainsKey(4)) // перевірка чи є в колекції елемент з ключем 4
List_SI_51.Remove(4); //якщо є - видаляємо його
Console.WriteLine("Після видалення елемента з ключем 4");
foreach (KeyValuePair<int, Student> kvp in List_SI_51)
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value.FistName);
}
Console.ReadKey();
}
}
}
Текстовий файл TextListStudents.txt
1*Базяк *Валентин*2*65*бакалавр*
2*Кириченко *Станіслав*2*60*Бакалавр*
Номер варіанта відповідає номеру прізвища студента у списку групи
№ варіан-ту |
Зміст завдання |
1 |
1 Клас SortedList <TKey,TValue> Створити текстовий файл з 10 записами про тварин: Ім’я, Вид, Порода, вага У якості роздільника використати кому чи пробіл. Наприклад, Мурка, Кішка, Сіамська, 3 Рекс, Собака, Вівчарка,50 Створити клас Тварина з відповідними властивостями. Реалізувати колекцію SortedList<T> — для зберігання колекції об'єктів класу Тварина. В якості ключа Tkey взяти Ім’я тварини. Реалізувати заповнення колекції об'єктами з файлу. Додати ще 2 об’єкти допомогою методу Add. Вивести на консоль відсортовану колекцію. Видалити тварину Мурка. Обчислити ємність колекції. Перевірити, чи є в колекції тварина Джек. Якщо її не має – вставити в колекцію. Вивести на консоль оновлену колекцію. Перевірити, чи вона відсортована за ключем. 2. Клас Dictionary<TKey, TValue> Створити колекцію Dictionary<TKey, TValue> для зберігання прізвищ студентів вашої групи та рейтингів. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання продуктів (5 записів): Код_ID Категорія Назва Постачальник Наприклад: T_001, Хліб, Бородинський, Київхліб T_200, Кондитерські вироби, Цукерки Метеорит, Рошен Створити клас Product з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний продукт за ключем за допомогою методу ContainsKey. Відібрати продукти за значенням (метод ContainsValue), наприклад, Хліб. 5. Створити словник термінів стосовно класів-колекцій з використанням SortedDictionary<TKey, TValue>, . TKey - клас колекції TValue – її опис Наприклад: SortedDictionary Відсортований словник І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль.
|
2 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про робітників (10 записів): Прізвище та Ім’я, Вік, Кваліфікація, Зарплата Наприклад, Іванов Іван,23,слюсар, 3000 Петров Василь, 24, електрик, 3500 Створити клас Робітник з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey - ім’я і прізвище, TValue – об’єкти класу Робітник. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Видалити 1 елемент. Знайти в колекції всіх слюсарів. Перевірити, чи є в колекції Петров Василь. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Модем. 5. Створити словник україно-російських термінів з програмування з використанням SortedDictionary<TKey, TValue> . TKey - український термін TValue – російський Наприклад: Програмування Программирование Мова програмування Язык программирования І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
3 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про співробітників компанії (10 записів) Прізвище, Ім’я, Вік, Посада, Зарплата Наприклад, Іванов, Іван,23,програміст, 9000 Петров, Василь, 24, економіст, 6500 Семенов Іван, 28, програміст, 15000 Створити клас Співробітникз відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey - ім’я і прізвище, TValue – об’єкти класу Співробітник. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени (програміста і керівника). Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Видалити 1 елемент за вказаним ключем. Знайти в колекції всіх програмістів. Перевірити, чи є в колекції Петров Василь і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Принтер. 5. Створити словник україньких термінів з абстрактних структур даних з використанням SortedDictionary<TKey, TValue> . TKey - український термін TValue – його значення (що це таке) Наприклад: Масив Впорядкована сукупність елементів одного типу І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
4 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про вироби компанії (10 записів) Код_виробу, Назва, Модель, Ціна Наприклад, 001, пилосос, M-100, 4000 002, блендер, B-200, 300 003, блендер, B-260, 360 Створити клас Виріб з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey назва виробу, TValue – об’єкти класу Виріб. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Видалити 1 елемент за вказаним ключем. Знайти в колекції всі блендери. Перевірити, чи є в колекції пилосос і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Планшет. 5. Створити словник термінів з описом вбудованих типів даних з використанням SortedDictionary<TKey, TValue> . TKey - тип числа у C# TValue – його значення і відповідний тип CLR(що це таке) Наприклад: int Int32. Цілий. 32-розрядне із знаком. double Double. Плаваючий. 64 розряди І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
5 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про організації (10 записів) Назва, Тип організації, Адреса, Керівник Наприклад, Інститут кібернетики, Інститут НАНУ,проспект Глушкова_ 40, Сергієнко МНТУ, університет, пров.Магнітогорський_3, Бугай КПІ, університет, просп.Перемоги_, Згуровський Створити клас Організаціяз відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey назва, TValue – об’єкти класу. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Знайти в колекції всі університети. Перевірити, чи є в колекції МНТУ і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Ноутбук. 5. Створити словник термінів з описом просторів імен .Net з використанням SortedDictionary<TKey, TValue> . TKey - назва простору TValue – його призначення Наприклад: System базовий простір імен.. System.Collections Класи для роботи з колекціями System.Collections.Generic -Класи для роботи з універсальними колекціями І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
6 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про журнали (10 записів) Назва, Адреса, Ціна Наприклад, Космополітен, адреса 1, 20 Мир ПК, адреса 2, 15 Наталі, адреса 3, 10 Створити клас Журнал з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey назва, TValue – об’єкти класу. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Видалити 1 елемент за вказаним ключем. Знайти в колекції Космополітен. Перевірити, чи є в колекції Наталі і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Модем. 5. Створити словник термінів ключових слів C# з використанням SortedDictionary<TKey, TValue>. TKey - клас колекції TValue – її опис Наприклад: array масив class - клас new – створення об’єкту І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
7 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про дерева (10 записів) Назва, Сорт, Кількість на складі, Ціна Наприклад, Яблуня, Голден, 10, 120 Яблуня, Антонівка, 45, 90 Груша, Бере, 20, 100 Створити клас Дерево з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey назва і сорт, TValue – об’єкти класу. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Знайти в колекції всі яблуні . Перевірити, чи є в колекції яблуня Голден і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Системний блок. 5. Створити словник українсько-англійський словник термінів з ООП з використанням SortedDictionary<TKey, TValue>. TKey - український термін TValue – англійський Наприклад: Перевизначення Owerride Спадкування - inheritance Поліморфізм - polymorphism Інтерфейс interface І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
8 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про міста (10 записів) Назва, Країна, Кількість населення, Площа Створити клас Місто з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey назва міста, TValue – об’єкти класу. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Знайти в колекції всі міста України. Перевірити, чи є в колекції Київ і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Модем. 5. Створити словник термінів стосовно класів-колекцій з використанням SortedDictionary<TKey, TValue>, . TKey - клас колекції TValue – її опис Наприклад: SortedDictionary Відсортований словник І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі. |
9 |
1.Клас SortedList <TKey,TValue> Створити текстовий файл з записами про товари (10 записів) Код_товару, Назва, Модель, Ціна Наприклад, 001, планшет, Lenovo, 8800 002, ноутбук, ASUS, 5000 003, ноутбук, Apple, 15000 Створити клас Товар з відповідними властивостями. Створити колекцію SortedList<TKey,TValue> де Tkey код товару, TValue – об’єкти класу Товар. Заповнити колекцію даними з файлу. Вивести значення колекції на консоль. Додати до колекції 2 члени. Вивести на консоль доповнену впорядковану колекцію. Обчислити ємність колекції. Видалити 1 елемент за вказаним ключем. Знайти в колекції всі ноутбуки. Перевірити, чи є в колекції товар з кодом 001 і якщо є – видалити його. 2. Клас Dictionary<TKey, TValue> Створити колекцію, яка містить назви дисциплін і Прізвища викладачів. Один викладач викладає декілька дисциплін. Заповнити колекцію за допомогою методу Add. Реалізувати методи додавання, видалення, сортування, пошуку за ключем. 3. Клас Dictionary<TKey, TValue> Створити текстовий файл. Прочитати його і виділити з нього усі слова. Створити частотний словник слів і вивести його на консоль. 4. Клас SortedDictionary<TKey, TValue> Створити текстовий файл для зберігання комплектуючих та ПК (5 записів): Код_ID Категорія Назва Постачальник Створити клас Ware з відповідними полями. Створити колекцію SortedDictionary<TKey, TValue> з ключем Код_ID. Заповнити її з файлу. Знайти вказаний товар за ключем за допомогою методу ContainsKey. Відібрати товари за значенням (метод ContainsValue), наприклад, Модем. 5. Створити словник з описом кінофільмів з використанням SortedDictionary<TKey, TValue> . TKey - назва фільму TValue - жанр, режисер, сюжет (про що) Наприклад: Аватар американский научно-фантастический фильм 2009 года автора сценария и режиссёра Джеймса Кэмерона с Сэмом Уортингтоном и Зои Салдана в главных ролях І т.д. Розмістити не менше 5 елементів. Організувати пошук у колекції, додавання і видалення елементів. Результати вивести на консоль. Додатково: (на підвищення балів) Створити Windows Form для роботи з цією колекцією (пошук, додавання і видалення). Ключі розмістити у списку, результат пошуку у текстовому полі.
|