Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа Теоретические основы объектноориентированного программирования Цель данной ла.html

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.11.2024

Тема 5.2. Лабораторная работа

«Теоретические основы объектно-ориентированного программирования»

Цель данной лабораторной работы состоит в изучении  основных понятий объектно-ориентированной технологии и получении практических навыков разработки объектной  модели при решении различных задач.

5.2.1. Задание

  1.  Выбрать вариант задания из таблицы 5.1-1 в соответствии с указанием преподавателя.
  2.  Провести формализацию задачи, для чего необходимо:

определить перечень исходных данных;

представить смысловые данные, которые будут использоваться в ходе решения задачи в виде переменных или массивов, присвоив им соответствующие имена;  

определить размерности и типы используемых данных;

привести геометрическую иллюстрацию решения задачи;

при необходимости привести расчетные формулы, которые будут использоваться для преобразования исходных данных в результаты.

  1.  Разработать объектную  модель решения задачи, для чего необходимо:

провести  объектно-ориентированную декомпозицию;

разработать объектную модель задачи, т.е. определить данные и действия, которые имеются или необходимы  для решения задачи.

5.2.2.  Варианты задания

                          Таблица 5.1-1

1)

2)

3)

4)

5)

6)

7)

В разных городах провели обследование одинакового процента жителей на предмет употребления или неупотребления ими  наркотиков.  Общее число обследованных составило n человек (n задано).  Результаты обследования жителей поступают по городам неупорядоченными. Составить алгоритм и программу, которые определяют города  с максимальной тенденцией к употреблению наркотиков.  

В ГИБДД  имеется  информация  о  n  владельцах автомобилей.  О  каждом  автовладельце известно:  фамилия,  номер его машины,   год ее выпуска,  цвет, год  прохождения технического  осмотра.  Необходимо составить  алгоритм и программу, формирующие списки автомобилей, не  проходивших техосмотр  последние два года с  указанием фамилии их владельца,   номера  и года выпуска. Каждый  список должен содержать машины одного цвета.

Каждое из n предприятий города (n - заданное число) выпускает 5 одинаковых наименований продукции (наименования предприятий и наименования продукции заданы). Для каждого из предприятий известны объем выпуска и стоимость единицы продукции каждого вида.  Необходимо для каждого предприятия города  определить процентную долю стоимости  производимой  им продукции  каждого вида.

Имеются сведения об n студентах (n - заданное число): фамилия, номер группы и 4 экзаменационные отметки. Составить алгоритм и программу, которые для каждой группы формируют список фамилий студентов, сдавших сессию на “4” и “5.    

       

В профкоме завода имеются неупорядоченные сведения об n рабочих: номер цеха,  фамилия, нуждается ли он в жилплощади (0 - нет, 1 - да). Составить алгоритм и программу, которые для каждого цеха формируют списки рабочих, нуждающихся в жилплощади, и в конце выводят их количество.                                                                                                            

Имеется список n команд, принимающих участие в чемпионате мира по футболу. Перед турниром проведен опрос k человек, каждый из которых назвал по 3 команды, которые с его точки зрения, займут 1-е, 2-е и 3-е место. Составить алгоритм и программу, которые по результату турнира определяют приз каждого из тех опрошенных, которые точно угадали последовательность победителей, если общий призовой фонд - S.

Ремонтное предприятие выполняет 6 видов работ. Для каждого вида известно название и стоимость. К предприятию обратились n заказчиков с предложениями выполнить определенное количество работ каждого вида. Составить алгоритм и программу, которые для каждого заказчика определяют сумму договора с ремонтным предприятием, а также организуют формирование списка заказчиков в порядке убывания сумм договоров.

8)

9)

10)

11)

12)

13)

14)

15)

16)

17)

18)

19)

20)

21)

22)

23)

24)

25)

26)

27)

28)

29)

30)

31)

32)

33)

34)

Дана таблица среднесуточных температур за 2-й квартал года (апрель, май, июнь). Холодным считается месяц, в котором большинство составляют дни с  температурой меньше, чем заданная для каждого месяца величина. Квартал считается холодным, если большинство месяцев были холодными. Составить алгоритм и программу, которые определяют, каким был 2-й квартал года.

Фермеру  необходимо продать свою продукцию. Свои услуги по продаже ему предложили 5 посреднических фирм. Известны названия этих фирм, а также затраты, планируемые каждой фирмой на транспортировку, рекламу и продажу продукции. Известен процент отчислений каждой фирмой себе за услуги от общей суммы продажи продукции. Требуется составить алгоритм и программу, которые определяют фирму,  обеспечивающую фермеру максимальную выручку от продажи, если общая сумма  продажи продукции составляет величину S.

В автохозяйстве имеются n автомашин (n -  заданное число). Для каждого  автомобиля заданы три характеристики: номер автомашины, марка автомашины, тип неисправности (или ее отсутствие). Составить алгоритм и программу, которые составляют сводные заявки на ремонт (по типу неисправностей) с указанием  номеров автомашин и их марок.

Имеются сведения о количестве мест и среднем количестве  билетов, проданных на один сеанс, для каждого из 10-ти кинотеатров города. Считая заданной среднюю стоимость билета, составить алгоритм и программу, которые оценивают общие потери всех 10-ти кинотеатров и кинотеатр, у которого убытки превышают выручку от  проданных билетов.

Ежедневно в течение июня регистрировали выход на работу n сотрудников фирмы, работающей без выходных дней (n - заданное число, фамилии сотрудников известны). Составить алгоритм и программу определения числа месяца, когда был зарегистрирован максимальный процент сотрудников, не вышедших на работу и сформировать списки фамилий сотрудников, работавших в этот день.

Имеется список 60-ти зданий города, подлежащих реконструкции. Сведения о каждом здании содержат название микрорайона, улицу, номер дома и год постройки. Составить алгоритм и программу определения самых старых зданий, подлежащих реконструкции. Сформировать списки, содержащие полные сведения об этих домах по микрорайонам. Если в микрорайоне таких домов нет, выдать соответствующее сообщение.

В бюро по ремонту квартир поступили сведения о состоянии n кооперативных квартир (n - задано). Сведения о каждой квартире содержат: номер квартиры, фамилию владельца и тип необходимого ремонта (или отсутствие необходимости в ремонте). Составить алгоритм и программу, позволяющие составить сводные (по типам ремонта) заявки на ремонт с указанием номеров квартир и фамилий владельцев.

Составить алгоритм и программу, которые составляют общий перечень необходимых марок машин для n фермерских хозяйств с указанием их количеств. Причем каждое фермерское хозяйство представило свой перечень, состоящий из m машин разных наименований (марок) и потребность в каждой из них (n и m - заданы).

Составить алгоритм и программу, которые из 8-ми строительных объектов, использующих по пять строительных материалов, определяют, какой объект использует наибольшее количество материалов: по общему весу и по общей стоимости.  Известно потребление в кг. каждого материала каждым объектом, а также стоимость  одного кг. каждого материала.

Известны фамилии и результаты сдачи студентами (не более 30 человек) четырех экзаменов. Составить алгоритм и программу, которые формируют список студентов - отличников, и список студентов, у которых имеются двойки (с указанием их количества).

Произведен опрос 1000 жителей Москвы. Каждый из них назвал фамилию самого любимого телеведущего. Составить алгоритм и программу  формирования пронумерованного списка фамилий первых десяти наиболее популярных ведущих, расположив фамилии в списке в порядке уменьшения количества поданных за них голосов. Учесть, что общее число фамилий может быть меньше 10-ти.

Фермер может продать свою продукцию, воспользовавшись услугами одной из пяти посреднических фирм. Известны названия фирм, цена продукции, установленная каждой фирмой, и процент отчисления от цены каждой фирме за услуги. Составить алгоритм и программу, которые определяют наиболее выгодную для  фермера фирму (фирмы) и его доход.

Список n рабочих цеха (n – заданное число) содержит следующие сведения о каждом: фамилия, числовой номер бригады, зарплата. Список не имеет определенной упорядоченности. Составить алгоритм и программу, которые формируют списки рабочих по бригадам, располагая фамилии в порядке убывания зарплаты, и, кроме того, определяют и печатают значения средних зарплат по бригадам.

В бюро по трудоустройству имеются сведения о N вакансиях на предприятиях города. О каждом  вакантном месте известно: название предприятия, должность, оклад, требуемое образование (высшее или среднее), предельный возраст. Составить алгоритм и программу, которые  по данным об образовании и возрасте формируют список вакансий, располагая их в порядке убывания окладов.

Составить алгоритм и программу, которые формируют список фамилий школьников по убыванию их среднего балла за год, а также определяют процент отличников (все отметки 5) и процент хорошистов (отметки 5 и 4), если для каждого из 25 школьников известны итоговые оценки по 15 предметам.

Для  каждого из  20 классов школы известно, сколько в них мальчиков и сколько девочек. Составить алгоритм и программу, которые определяют номера классов по убыванию процентного состава мальчиков, и определяют процент девочек и мальчиков по школе в целом.     

На продажу выставлено N квартир. О каждой квартире известно: адрес, категория дома, общая площадь, количество комнат, цена 1 м2. Составить алгоритм и программу, которые для каждого обратившегося клиента формируют списки подходящих квартир (все сведения) с разбивкой по категориям в порядке уменьшения их стоимости. Квартира считается подходящей, если ее общая площадь не менее  требуемой, а ее цена не превышает требуемую.

Известны фамилии и месячные заработки 10 рабочих бригады в течение года. Составить алгоритм и программу, которые формируют список фамилий рабочих, имевших хотя бы раз минимальный в этом году для члена бригады месячный заработок. Вместе с фамилией указать названия всех месяцев получения минимального заработка.

Рекламное агентство по продаже моющих средств, провело опрос N случайных прохожих, каждый из них назвал название самого качественного и самого некачественного  моющего средства. Составить алгоритм и программу, которые определяют, список каких  моющих средств оказался длиннее, а также печатают название самого популярного качественного моющего средства.

Известны наименования и количество 10-ти видов товаров, на каждой из 15-ти баз города, а также потребность города в товаре этого вида. Составить алгоритм и программу, которые  для каждого товара определяют номер базы с его максимальным запасом и  формируют список товаров, которые необходимо пополнить, чтобы удовлетворить потребности города.

В театральную кассу поступило n заявок от школ города. Каждая заявка содержит название спектакля и необходимое количество билетов. Составить алгоритм и программу, которые  на основании этих данных определяют популярность каждого спектакля и печатают их названия в порядке убывания количества заказанных на них билетов.

Каждое из n предприятий (n задано) выпускает 5 видов товаров (одинаковых для всех предприятий). Известны названия предприятий и товаров, стоимость единицы и общий объем выпуска товаров каждого вида на каждом предприятии. Составить алгоритм и программу, которые для каждого предприятия    определяют вид произведенного товара с максимальной общей стоимостью.

Каждый из 12 магазинов имеет свой список товаров с известными ценами и в известном количестве. Число товаров в каждом списке различно и заранее не определено. Составить алгоритм и программу, которые подсчитывают, на какую сумму денег имеет товаров каждый магазин, сформировав список магазинов в порядке убывания суммы.

Каждый из 10-ти машиностроительных заводов области специализируется на традиционных для данного завода видах продукции (по 5 видов). Названия видов известны. Составить алгоритм и программу, позволяющие определить виды продукции, выпуск которых дублируется заводами, и перечислить номера этих заводов. Нумерация заводов от 1 до 10.

На заводе работает N человек. В заводской поликлинике ежедневно в течение мая регистрировались фамилии больных. Составить алгоритм и программу, которые определяют число и название дня месяца, в который зафиксировано максимальное количество больных, а также формируют список их фамилий. Название дня недели последнего дня апреля считать известным.

Заданы два списка. В одном списке фамилии спортсменов - участников турнира, в другом - занятые ими места. Составить алгоритм и программу, которые переставляют фамилии спортсменов в 1-м списке в соответствии с занятыми местами, и отображают его. В турнире участвовало n спортсменов.

В чемпионате  по футболу приняло участие n команд (названия команд известны). Составить алгоритм и программу, которые определяют 4 команды, показавшие лучшие результаты, если известен счет каждого матча. При равных условиях лучшей считается команда, у которой разность между забитыми и пропущенными мячами лучше.

5.2.3. Содержание отчета

  1.  Тема и название работы.
  2.  Задание на разработку модели и вариант задания.
  3.  Формализация задания.
  4.  Геометрическая иллюстрация получения результата.
  5.  Объектная  модель решения задачи:
  •  данные (поля) класса;
  •  свойства для чтения и записи полей класса;
  •  свойства только для чтения полей класса;
  •  свойства только для записи полей класса;
  •  методы класса (процедуры и функции, которые реализуют действия с полями класса, необходимые для решения задачи)

5.2.4. Пример выполнения задания

  1.  Тема  и название работы:

Теоретические основы объектно-ориентированного программирования – Формирование списка фамилий студентов, которым по итогам сессии необходимо повысить успеваемость до фактического среднего уровня.

  1.  Задание:

Разработать объект (класс), который может быть использован для решения задачи формирования списка фамилий студентов, которым по итогам сессии необходимо повысить успеваемость до фактического среднего уровня, при условии, что для каждого студента известны по 5 оценок, полученных им в сессию, а  всего в группе  n студентов. Формируемый список фамилий студентов должен быть представлен в порядке убывания среднего балла, полученного за сессию. Исходные списки студентов и результатов сессии могут находиться как в текстовом файле, так, и введены с клавиатуры.

  1.  Формализация задания:

Для решения всех вариантов задач необходимо  определить:

  •  данные (имена и тип):
  •   входные:
    •  kg – число групп студентов  (если число групп > 1) (As Integer);
    •  n – количество студентов в одной группе  (As Integer);
    •  fam(n-1) – одномерный массив фамилий студентов одной группы
      (
      As String);
    •  oc(n-1,5) – двумерный массив оценок студентов одной группы  
      (
      As Integer);

  •  выходные:

                      средние баллы за сессию so(i) каждого из n студентов одной группы;

фамилии студентов, для которых  средняя оценка so(i) меньше средней по группе sr;

  •   действия:
    •  вычисление sr - среднего балла за сессию студентов одной группы; для получения этого среднего бала следует  накопить сумму баллов, полученных n студентами за 5 экзаменов, а затем разделить эту сумму на количество оценок 5*n (As Single);
    •  вычисление so(n-1) - среднего балла за сессию каждого из n студентов одной группы; для получения каждого  i-го элемента следует  накопить сумму баллов, полученных i-м студентом за 5 экзаменов, а затем разделить эту сумму на 5 (As Single);
    •  формирование списка фамилий студентов, которым необходимо повысить  успеваемость;  
    •  сортировка баллов (массив so( )) и соответственно фамилии студентов   (массив fam( )) в порядке убывания.

  1.  Геометрическая иллюстрация получения результата:

Приведем геометрическую иллюстрацию вычисления so(n-1) (рис. 5.2-1).

Массив фамилий

fam( )

 0

Шакин

Сосновиков

Кравченко

Загвоздкина

Минязов

 n-1

Массив оценок

oc ( , )

   0                                4

2

3

3

4

2

3

3

3

3

3

4

4

4

4

4

4

5

4

5

4

5

5

5

5

5

   n-1

Средние балы студентов

so( )

             0

         n-1

Рис. 5.2-1.

  1.  Определение объектной  модели решения задачи.

           Определим члены класса Студенты:

  •  Поля:
    •  число студентов в одной группе  n (As Integer) ;
    •  одномерный  строковый массив фамилий студентов fam( );
    •  двумерный целочисленный массив оценок oc( , );
    •  вещественный  массив средних оценок каждого  студента so( );
    •  общий средний балл за сессию студентов одной группы sr (As Single).

  •  Свойства для чтения и записи полей класса:  
    •  Famil –  для чтения и записи фамилий студентов;
    •   ocen  –  для чтения и записи массива оценок;  
    •   num    –  для чтения и записи количества студентов в группе.

  •   Свойства только для чтения полей класса:
    •  SrStud - для чтения средних оценок студентов;
    •  SrGrup - для чтения общего среднего балла в группе.

Значения этих полей не могут изменяться вне класса, а вычисляются методами класса из значений массива oc(,).

  •  Методы:
    •  процедура-подпрограмма нахождения средних оценок каждого студента и общего среднего балла в группе sred( );
    •   процедура-подпрограмма сортировки по убыванию поля средних оценок студентов с одновременной перестановкой их фамилий sort( );
    •  процедура-функция  vivod( ) формирования строки из фамилий и средней оценки тех студентов, которым надо повысить успеваемость до фактического среднего уровня.


5.2.5. Контрольные вопросы по теме
«Теоретические основы объектно-ориентированного программирования»

  1.  Что означает объектно-ориентированный подход в программировании?
  2.  Что является классом в ООП?
  3.  Что является объектом в ООП?
  4.  Какие основополагающие свойства ООП известны?
  5.  Что лежит в основе ООП?
  6.  Что такое инкапсуляция?
  7.  Что такое наследование?
  8.  Что такое полиморфизм?
  9.  Из каких элементов состоит класс?
  10.  Какие модификаторы доступа известны?
  11.  Что такое модификаторы, устанавливающие принадлежность к классу или  к экземпляру класса?
  12.  Как описывается класс?
  13.  Что может быть членом класса?
  14.  Какие правила обращения к переменным и процедурам?
  15.  Какие области видимости известны?
  16.  Каким образом можно изменять состояние объекта,
  17.  Какие средства описания свойства класса известны?
  18.  Что такое конструкторы и для чего они используются?
  19.  Какие члены класса называются разделяемыми (статическими)?
  20.  Какие члены класса называются экземплярными?
  21.  В чем сходство и различие стандартных модулей, форм и классов?
  22.  Что такое поле класса?
  23.  Что такое свойство класса?
  24.  Что такое конструктор класса?
  25.  Для  чего нужен конструктор?
  26.  Какая концепция искусственного интеллекта является наиболее близкой к понятию объекта?
  27.  Что такое множественное наследование? Когда оно используется?

ема 5.2. ЛР Страница 13




1. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ К СЕМИНАРСКОМУ ЗАНЯТИЮ ДЛЯ СТУДЕНТА Тема 2
2. Вариант 1 1. Конституция РФ 1993 г вступила в силу а 12 декабря 1993 г
3. Анализ горимости лесов в Рыбинском лесничестве Ярославской области
4. Методы научного анализа размещения и территориальной организации народного хозяйства Украины
5. 23 верасня 2013 г 2 Заг
6. Оборона и безопасность Название Оборона и безопасность инф
7. ТЕМА 2 ОСНОВНЫЕ ПОНЯТИЯ 1 Причины рассеяния параметров при изготовлении деталей
8. щее и анальгезии рующее средство Возможны аллергические реакции
9. ин- блоки Азиин- маков Антие- могут Антки- аллие Антом какого преат- фенил Антом какого пр
10. ТЕМА 6 ФІЛОСОФСЬКА ДУМКА В УКРАЇНІ Дохристиянські витоки української філософії
11. Введение Проблема возникновения т.
12. реферату- Технологія навчання іншомовного матеріалуРозділ- Мовознавство Технологія навчання іншомовног
13. теория слизи нашла поддержку и в современной медицине
14. процессоры8 MISCпроцессоры9 VLIWпроцессоры9 Многоядерные процессоры10
15. продавать чужое
16. реферат дисертації на здобуття наукового ступеня доктора технічних наук Одеса ~ 2004 Дисер
17. Тема 2 УПРАВЛІННЯ ПЕРСОНАЛОМ ЯК СОЦІАЛЬНА СИСТЕМА 1
18. един и многолик
19. 879 Правление князя Рюрика в Новгороде 865 Захват Киева варягам
20. Тема Системи числення