Главная страница

Лабы АИС. Практикум для студентов направления подготовки 230400. 68 Информационные системы и технологии


Скачать 2.14 Mb.
НазваниеПрактикум для студентов направления подготовки 230400. 68 Информационные системы и технологии
АнкорЛабы АИС
Дата19.05.2022
Размер2.14 Mb.
Формат файлаpdf
Имя файлаЛабы АИС.pdf
ТипПрактикум
#537797
страница2 из 5
1   2   3   4   5

вар.
Данные для создания массивов объектов и запросов к ним
1
Студент. Код, ФИО, группа, пол, дата рождения, средний бал, код научного руководителя.

15

вар.
Данные для создания массивов объектов и запросов к ним
Научный руководитель. Код, ФИО, должность.
1. Данные по студентам мужского пола.
2. ФИО студентов с датой рождения «дата».
3. Число студентов, у которых средний бал более «бал».
4. ФИО и даты рождения студентов группы «группа».
5. Общий средний бал для всех студентов группы «группа».
6. Все студенты, сгруппированные по студенческим группам (group).
7. ФИО студента и его группа с указанием ФИО и должности науч- ного руководителя (join).
2
Автомобиль. Код,фирма, модель, год выпуска, цена, расход топли- ва, код магазина.
Магазин. Код, название, телефон.
1. Данные по автомобилям фирмы «фирма».
2. Модели автомобилей с годом выпуска «год выпуска».
3. Число автомобилей с ценой от «цена» до «цена».
4. Фирмы и модели автомобилей с расходом топлива менее «…».
5. Средняя цена автомобиля фирмы «фирма».
6. Все автомобили, сгруппированные по коду магазина (group).
7. Фирмы и модели автомобилей с указанием названия и телефона магазина (join).
3
Сотрудник. Код,ФИО, пол, дата рождения, должность, зарплата, код отдела.
Отдел. Код, название, телефон.
1. Данные по сотрудникам, занимающим должность «должность».
2. ФИО сотрудников женского пола.
3. Число сотрудников с датой рождения «дата».
4. ФИО и должности сотрудников с зарплатой от «…» до «…».
5. Суммарная зарплата сотрудников с должностью «должность».
6. Все сотрудники, сгруппированные по коду отдела (group).
7. ФИО и даты рождения сотрудников с указанием названия и теле- фона отдела (join).
4
Книга. Код,название, автор, цена, число страниц, год издания, код стеллажа.
Стеллаж. Код, число полок, название отдела.
1. Данные по книгам автора «автор».
2. Названия книг, изданных в «год издания».
3. Число книг с ценой от «цена» до «цена».
4. Авторы и названия книг с числом страниц более «число страниц».
5. Средняя цена одой книги автора «автор».
6. Все книги, сгруппированные по коду стеллажа (group).
7. Названия и число страниц книг с указанием числа полок стеллажа

16

вар.
Данные для создания массивов объектов и запросов к ним
и отдела, в котором он расположен (join).
5
Учебная дисциплина. Код,название, ФИО преподавателя, форма контроля, семестр, число часов, код специальности.
Специальность. Код, название, факультет.
1. Данные по дисциплинам за семестр «семестр».
2. Названия дисциплин с формой итогового контроля «…».
3. Число дисциплин с количеством часов от «…» до «…».
4. ФИО преподавателей и названия дисциплин за семестр «».
5. Общее число часов по дисциплинам преподавателя «фио».
6. Все дисциплины, сгруппированные по коду специальности
(group).
7. Названия и семестры дисциплин с указанием специальности и фа- культета (join).
6
Банковский вклад. Код, номер счета, ФИО вкладчика, дата вклада, сумма, процент, код банка.
Банк. Код, название, адрес центрального офиса.
1. Данные по всем вкладам, сделанным «дата».
2. Счета, на которых размещены вклады размером более «…».
3. Число вкладов, по которым процент составляет от «…» до «…».
4. Номер счета и ФИО вкладчика для вкладов с суммой менее «…».
5. Средний процент по вкладам вкладчика «фио».
6. Все вклады, сгруппированные по вкладчикам (group).
7. Номера счетов и суммы вкладов с указанием названия и адреса банка (join).
7
Предмет обуви. Код, наименование, производитель, число пар, раз- мер, цена, код отдела.
Отдел. Код, название, число сотрудников.
1. Данные по всей обуви фирмы «…».
2. Наименования обуви с ценой более «цена».
3. Число наименований обуви с размером от «…» до «…».
4. Производитель и наименование обуви с количеством менее «…».
5. Суммарная стоимость обуви по каждому наименованию.
6. Вся обувь, сгруппированная по кодам отделов (group).
7. Наименования и цены обуви с указанием названия отдела и числа сотрудников (join).
8
Ноутбук. Код,фирма, модель, процессор, объем памяти, цена, код магазина.
Магазин. Код, название, адрес.
1. Данные по всем ноутбукам с процессором «…».
2. Модели ноутбуков фирмы «…».
3. Число моделей с ценой от «…» до «…».

17

вар.
Данные для создания массивов объектов и запросов к ним
4. Модель и производитель ноутбуков с объемом памяти более «…».
5. Средняя цена ноутбуков фирмы «фирма».
6. Все ноутбуки, сгруппированные по коду магазина (group).
7. Модель и цена ноутбуков с указанием названия и адреса магазина
(join).
9
Билет на междугородный автобус. Код, рейс, пункт назначения, время отправления, длительность, номер места, код автобуса.
Автобус. Код, модель, число посадочных мест.
1. Данные по всем билетам с пунктом назначения «…».
2. Рейсы с временем отправления «…».
3. Число билетов с номерами мест от «…» до «…».
4. Пункты назначения и рейсы с длительностью более «…».
5. Средняя длительность рейсов в пункт назначения «…».
6. Все билеты, сгруппированные по пункту назначения (group).
7. Рейсы и места с указанием модели автобуса и числа мест в нем
(join).
10 Квартира. Код, дом, номер, этаж, площадь, цена, код агентства.
Агентство недвижимости. Код, название, телефон.
1. Данные по всем продаваемым квартирам.
2. Номера квартир, продаваемых в доме «дом».
3. Число квартир с ценой не более «цена».
4. Дома и номера квартир, расположенных на этажах от «...» до «...».
5. Средняя стоимость квартир с площадью менее «площадь».
6. Все квартиры, сгруппированные по коду агентства (group).
7. Код и цена квартиры с указанием названия агентства и его теле- фона (join).
11 Заказ на перевозку груза. Код, номер, дата, адрес доставки, вес гру- за, стоимость перевозки, код водителя.
Водитель. Код, ФИО, дата рождения.
1. Данные по всем заказам на перевозку.
2. Номера заказов, сделанных «дата».
3. Число заказов со стоимостью перевозки более «стоимость».
4. Даты и адреса доставки грузов весом от «вес» до «вес».
5. Общий вес груза, переведенный «дата».
6. Все заказы, сгруппированные по коду водителя (group).
7. Номера и стоимости заказов с указанием ФИО и даты рождения водителя (join).
12 Спортсмен. Код, ФИО, вид спорта, дата рождения, пол, рост, вес, код тренера.
Тренер. Код, ФИО, звание.
1. Данные по всем спортсменам.

18

вар.
Данные для создания массивов объектов и запросов к ним
2. ФИО спортсменов мужского пола.
3. Число спортсменов с весом от «вес» до «вес».
4. Даты рождения и ФИО спортсменов, имеющих рост более «».
5. Средний рост спортсменов по «вид спорта».
6. Все спортсмены, сгруппированные по видам спорта (group).
7. ФИО и дата рождения спортсмена с указанием ФИО и звания тре- нера (join).
1.4. Контрольные вопросы
1. Для чего предназначена технология LINQ?
2. Какие выделяют разновидности LINQ по источнику дан- ных?
3. Что такое неявно типизированные переменные и как они используются в LINQ?
4. Из каких этапов состоит выполнение запроса LINQ?
5. Каков синтаксис для простейшего выражения запроса
LINQ?
6. Как задается фильтрация данных в выражении запроса
LINQ?
7. Каким образом задается сортировка результатов запроса
LINQ?
8. Как можно сгруппировать данные запроса LINQ по опре- деленному ключу?
9. Для чего предназначена операция join в выражении за- проса LINQ?
10. Что называют анонимным типом и как он записывается в выражении запроса LINQ?

19
2. ОСНОВЫ РАБОТЫ С XML-ДОКУМЕНТАМИ
С ПОМОЩЬЮ LINQ TO XML
2.1. Цель работы
Цель работы – приобрести умение работать с документами
XML с помощью технологии LINQ to XML.
Работа рассчитана на 4 часов.
2.2. Основные теоретические сведения
2.2.1. Основные классы LINQ to XML.
Осевые методы LINQ to XML
Основные классы LINQ to XML.
Программная модель LINQ to XML позволяет выражать структуру XML-данных в коде на языках Visual Basic и C# и предлагает простой способ создания, манипулирования и сохра- нения XML-данных. Также с помощью выражений запросов
LINQ можно легко извлекать информацию из XML-документов.
Пространство имен System.Xml.Linq содержит классы, представляющие различные аспекты XML-документа (элементы, атрибуты, пространства имен XML и др.) (рис. 2.1).
Основными классы пространства имен System.Xml.Linq яв- ляются:
XDocument – представляет целиком весь XML-документ;
XElement – представляет определенный элемент внутри
XML-документа;
XAttribute – представляет атрибут определенного элемен- та;
XDeclaration – представляет открывающее объявление
XML-документа;
XComment – представляет комментарий XML;
XName – представляет имя элемента или атрибута XML;
XNamespace – представляет пространство имен XML;
XNode – представляет узел на дереве XML-документа
(элемент, атрибут, комментарий и др.).

20
Рис. 2.1. Отображение классов пространства имен Sys-
tem.Xml.Linq в окне обозревателя объектов Visual Studio 2010
В качестве свойства класса XDocument можно отметить
Root, которое получает корневой элемент данного документа.
Можно отметить следующие общие методы класса XDocu-
ment:
Load(string fileName) – создает новый объект XDocument из файла с именем fileName (статический метод);
Parse(string text) – создает новый объект XDocument из строки text (статический метод);
Save(string fileName) – преобразует объект XDocument в
XML-файл с именем fileName;
Element(XName name) – возвращает первый (в порядке следования) дочерний элемент с именем name;
Elements(XName name) – возвращает коллекцию дочер- них элементов для данного документа; в состав коллекции входят только элементы с именем name.
Класс XElement обозначает элемент XML и является одним из основных классов в LINQ to XML. Этот класс можно исполь- зовать для создания элементов, изменения содержимого элемен- та, добавления, изменения или удаления дочерних элементов, до- бавления к элементам атрибутов или преобразования содержимо- го элемента в текстовую форму.

21
Некоторые свойства класса XElement:
Name – получает или задает имя элемента;
Value – получает или задает текстовое содержимое эле- мента;
Parent – получает родительский элемент для данного эле- мента.
Некоторые методы класса XElement:
• Element(XName name) – возвращает первый дочерний элемент объекта XElement, имеющий указанное имя name;
• Attribute(XName name) – возвращает атрибут XAttribute, имеющий имя name;
• Attribute() – возвращает коллекцию IEnumerable всех ат- рибутов XAttribute.
Пример 2.1. Создание XML-документа с помощью кон-
сольного приложения на языке C#.
Требуется, используя классы LINQ to XML, создать с нуля одну ветвь XML-документа, полученного в приложении П.1. Для этого создадим консольное приложение на языке C#.
Исходный код полученного приложения представлен на рис. 2.2.

22
Рис. 2.2. Исходный код консольного приложения
После выполнения метода Main() консольного приложения в файл «komUslug.xml» будут записаны данные, показанные на рис. 2.3.

23
Рис. 2.3. XML-код полученного документа
Пример 2.2. Создание XML-документа из массива объ-
ектов с помощью консольного приложения на языке C#.
Требуется создать XML-документ на основе массива объек- тов, полученного в примере 1.1.
Для этого добавим в код консольного приложения из при- мера 2.1 метод GenerXML(), приведенный на рис. 2.4. Кроме то- го, в процедуре Main() необходимо добавить вызов этого метода с передачей ему массива объектов:
GenerXML(itemsInStock);
В результате будет получен XML-документ, приведенный на рис. 2.5.

24
Рис. 2.4. Код метода для создания XML-документа из мас- сива объектов
Рис. 2.5. Код XML-документа, полученного из массива объ- ектов

25
2.2.2. Осевые методы LINQ to XML. Модификация
XML-документов с помощью LINQ to XML
Осевые методы LINQ to XML. Использование XPath.
После загрузки XML-документа к нему можно применить запросы LINQ для поиска коллекций элементов и атрибутов, а также извлечения их значений.
Коллекции элементов и атрибутов XML получают с помо- щью методов, называемых осевыми методами или осями. Эти методы можно применять непосредственно к частям дерева XML или узлам либо использовать их для построения более сложных запросов LINQ.
Часть осей являются методами классов XElement и
XDocument. Другие оси являются методами расширений в классе
Extensions.
Некоторые осевые методы LINQ to XML:
• Elements(XName name) – возвращает коллекцию дочер- них элементов объекта XElement, имеющих указанное имя name;
• Descendants(XName name) – возвращает коллекцию эле- ментов-потомков объекта XElement, имеющих имя name;
• Ancestors() – возвращает коллекцию элементов-предков объекта XElement.
LINQ to XML обеспечивает поддержку XPathNavigator че- рез методы расширения в пространстве имен System.Xml.XPath.
К данным методам относятся:
• XPathSelectElement(string expr) – выбирает требуемый элемент с помощью выражения expr на языке XPath;
• XPathSelectElements(string expr) – выбирает коллекцию элементов с помощью выражения expr на языке XPath;
• XPathValue(string expr) – вычисляет выражение XPath
expr.
Пример 2.3. Выполнение запросов LINQ к документу
XML с помощью консольного приложения на языке C#.
Требуется разработать консольное приложение на языке C#, которое с помощью технологии LINQ to XML выполняет задан- ный набор запросов к XML-документу из приложения П.1.
Запросы к XML-документу:

26 1. Данные по всем жильцам обслуживаемых домов (в алфа- витном порядке).
2. Суммарный расход холодной и горячей воды и электро- энергии.
3. Данные квартирам, расположенным в доме номер 8 по улице «Волгоградская».
4. Число квартир, в которых расход горячей воды менее 100 м
3
или расход электроэнергии менее 120 квтч.
5. Квартиры с площадью более 30 м
2
, сгруппированные по обслуживаемым домам.
6. ФИО жильцов дома с кодом «h18», сгруппированные по номерам квартир.
7. Работники ЖКК с указанием адресов домов, которые они обслуживают.
8. Квартиры, в которых размер квартплаты превышает 2000 руб. (с помощью XPath).
Для выполнения запроса №7 необходимо использовать до- полнительные XML-данные о работниках ЖКК (код, код дома,
ФИО, должность). Для этого в методе, реализующем запрос
LINQ, опишем XML-элемент работники_ЖКК, в котором соз- дадим три дочерних элемента работник. Выражение для этого запроса должно включать операцию join.
Для выполнения запроса №8 требуется импортировать в мо- дуль пространство имен System.Xml.XPath.
Исходный код метода Main() консольного приложения по- казан на рис. 2.6. Код методов, выполняющих запросы к доку- менту XML, показан на рис. 2.7 – 2.9.

27
Рис. 2.6. Исходный код метода Main() консольного прило- жения

28
Рис. 2.7. Исходный код процедур выполнения запросов к
XML-документу (часть 1)

29
Рис. 2.8. Исходный код процедур выполнения запросов к
XML-документу (часть 2)

30
Рис. 2.9. Исходный код процедур выполнения запросов к
XML-документу (часть 3)

31
Рис. 2.10. Результат работы консольного приложения
2.3. Порядок выполнения работы
Данная лабораторная работа предполагает выполнение сле- дующих этапов:
1. Изучить методические указания к лабораторной работе.
2. Разработать консольное приложение на языке C#, в кото- ром с помощью классов System.Xml.Linq «с нуля» создается од- на ветвь XML-документа.
3. Добавить метод в приложение из работы №1 (запросы к массиву объектов), который с помощью запроса LINQ преобразо- вывает данные из массива объектов в XML.
4. Разработать консольное приложение на языке C#, кото- рое обеспечивает выполнение заданных запросов (табл. 2.2) к
XML-документу. Запрос №3 требуется сделать с использованием операции group, запрос №4 – с помощью join, а запрос №5 – с помощью выражения на языке XPath.

32 5. Оформить и защитить отчет по лабораторной работе.
Таблица 2.2
Варианты заданий для разработки запросов LINQ к XML- документу

вар.
Данные для разработки запросов LINQ к XML-документу
1   2   3   4   5


написать администратору сайта