Будь умным!


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

Лабораторная работа 1 КОНСТРУИРОВАНИЕ КЛАССОВ Цель- приобрести умения и навыки по созданию простых класс

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

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

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

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

от 25%

Подписываем

договор

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

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

Лабораторная работа 1 

КОНСТРУИРОВАНИЕ КЛАССОВ

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

Назначение: программирование класса с несколькими конструкторами  и функциями-свойствами  Проверка работоспособности созданного класса.

1.1. Задания

  1.  Создать базовый класс «цилиндр», такой, что:
    1.  его экземпляр содержит размер радиуса и высоты.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением радиуса и высоты.
    3.  его методы позволяют получать и присваивать значения радиуса, высоты  и объема, выполняя при этом соответствующие преобразования.
    4.  функция print_val() выводит на экран значение его объема.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «шар», такой, что:
    1.  его экземпляр содержит размер радиуса.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением радиуса.
    3.  его методы позволяют получать и присваивать значения радиуса и объема, выполняя при этом соответствующие преобразования.
    4.  функция print_val() выводит на экран значение его объема.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «конус», такой, что:
    1.  его экземпляр содержит размер радиуса и высоты.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением радиуса и высоты.
    3.  его методы позволяют получать и присваивать значения радиуса, высоты  и объема, выполняя при этом соответствующие преобразования.
    4.  функция print_val() выводит на экран значение его объема.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «трапеция», такой, что:
    1.  его экземпляр содержит размер двух оснований и высоты.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением оснований и высоты.
    3.  его методы позволяют получать и присваивать значения оснований, высоты  и площади, выполняя при этом соответствующие преобразования.
    4.  функция print_sqrt() выводит на экран значение ее площади.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «смайлик», такой, что:
    1.  его экземпляр содержит размер  радиуса лица R и радиуса r  глаз.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением R и r.
    3.  его методы позволяют получать и присваивать значения R, r  и площади, выполняя при этом соответствующие преобразования.
    4.  функция print_sqrt() выводит на экран значение ее площади (без площади глаз).

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «крест», такой, что:

                                                                            a

                                                                                b

  1.  его экземпляр содержит размер два размера a и b .
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a и b ..
    2.  его методы позволяют получать и присваивать значения a , b и площади, выполняя при этом соответствующие преобразования.
    3.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «шайба» (правильный шестиугольник, такой, что:

                                                                                                  a

                                                                            

                                                                                

  1.  его экземпляр содержит размер стороны a.
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a.
    2.  его методы позволяют получать и присваивать значения a и площади, выполняя при этом соответствующие преобразования.
    3.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

Составить программу, проверяющую выполнение перечисленных функций.

  1.  Создать базовый класс «ромб» : 
    1.  его экземпляр содержит размеры  a и b.
    2.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a и b.
    3.  его методы позволяют присваивать значения a, b и получать значения площади, выполняя при этом соответствующие преобразования.
    4.  .
    5.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

  1.  Создать базовый класс «песочные часы» :                              a

                                                                                                   

                                                                                                  

                                                                                                                              

                                                                                                 b

                                                                                

  1.  его экземпляр содержит размеры  a и b.
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a и b.
    2.  его методы позволяют присваивать значения a, b и получать значения площади, выполняя при этом соответствующие преобразования.
    3.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

  1.  Создать базовый класс «четырехконечная звезда» :

                                                                                                            

                                                                                                  

                                                                               

                                                                                

  1.  его экземпляр содержит размеры  a и b.
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a и b.
    2.  его методы позволяют присваивать значения a, b и получать значения площади, выполняя при этом соответствующие преобразования.
    3.  .
    4.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

  1.  Создать базовый класс «вигвам»

(заштрихованная фигура):

                                                                                                        H

                                                                                                  

                                                                                                              h                 

                                                                                

                                                                                                                                   a

  1.  его экземпляр содержит размеры  a, H и h.                                                           
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением .
    2.  его методы позволяют присваивать значения a, h, H и получать значения площади, выполняя при этом соответствующие преобразования.
    3.  функция print_sqrt() выводит на экран значение  площади этой фигуры.

  1.  Создать базовый класс «ведро»

                                                                                                                R

                                                                                                  

                                                                                                              h                 

                                                                                

                                                                                                                          r

  1.  его экземпляр содержит размеры  R, r и h.                                                           
    1.  его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением .
    2.  его методы позволяют получать и присваивать значения a и объема, выполняя при этом соответствующие преобразования R, r и h
    3.  функция print_val() выводит на экран значение  объема этой фигуры.

2.1 Рекомендации по планированию и пример выполнения работы

Рассмотрим пример решения такого задания:

Задание:

Создать базовый класс «кольцо», такой, что:

  1.  его экземпляр содержит радиус внутренней окружности (не менее 1.0 мм) и площадь (не менее 10.0 мм2).
    1.  его конструктор без параметра создает кольцо с минимальными значениями радиуса и площади, а конструкторы с параметрами создают экземпляр в соответствии с заданными радиусами или с минимальным радиусом и заданной площадью.
    2.  его методы позволяют получать и присваивать значения радиусов и площади, выполняя при этом соответствующие преобразования.
    3.  функция print() выводит на экран сообщение о радиусах и площади кольца.

Составить программу, проверяющую выполнение перечисленных функций.

Решение:

План разработки:

  1.  Создаем новый класс с названием Ring. При этом в текст программы автоматически включаются объявления библиотек и пространства имен.
  2.  В соответствии с п. a)  задания вводим в класс две переменные r и s -  радиус и площадь кольца.
  3.  Поскольку в п. a)  задания указаны ограничения на переменные класса, вводим в него константы r_min  и s_min - минимальный радиус и максимальная площадь.  
  4.  Замечаем, что при реализации методов и свойств этого класса нужно учитывать введенные ограничения: сравнивать изменившиеся радиус и площадь с заданными константами. Поэтому создаем закрытую функцию MinimRS(), которая выполняет такое сравнение, и будем вызывать ее каждый раз при изменении переменных.
  5.  В соответствии с п. b)  создаем конструктор без параметров. Поскольку С# проинициализирует поля r и s нулевыми значениями,  достаточно вызвать функцию  MinimRS(), чтобы реализовать такой конструктор.
  6.  В п. b)  указана необходимость еще двух перегруженных конструкторов: конструктор с двумя аргументами-радиусами и конструктор с одним аргументом-площадью. Программируем их вычисления, не забывая вызывать функцию MinimRS().
  7.  В соответствии с п. с) создаем методы-свойства R_in, R_out и S. Чтобы не дублировать вычисления, отдельно программируем закрытые статические методы R1 и R2 для определения одного из радиусов по заданной площади и другому радиусу. В разделах set не забываем вызывать функцию MinimRS().
  8.  В соответствии с п. d) программируем функцию print()для выполнения в консольном режиме.
  9.  Программируем функцию Main, в которой создаем три экземпляра объектов класса Ring, чтобы проверить работу всех конструкторов. Затем вызываем все запрограммированные свойства и методы. 

Ниже приведен возможный вариант реализации этого плана:

       // 1.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Lek_1_08

{

   class Ring // Кольцо

   {   

       // 2.

       double r=0; // радиус внутренней окружности (мм)

       double s=0; // площадь кольца (кв.мм)

       // 3.

       const double r_min=1.0; // Ограничение на внутренний радиус (мм)

       const double s_min=10.0; // Ограничение на площадь (кв.мм)

       // 4.

       void MinimRS()

       { // Приводит неправильные значения полей

         // в соответствие с условием задачи

           r = Math.Max(r, r_min);

           s = Math.Max(s, s_min);

       }

       

       // 7-Б.

       static double R2(double r1, double s)

       {// Вычисляет радиус внешней окружности

           double s1 = Math.PI * r1 * r1;

           double s2 = s1 + Math.Max(s,0.0);

           return Math.Sqrt(s2 / Math.PI);

       }

       static double R1(double r2, double s)

       {// Вычисляет радиус внутренней окружности

           double s2 = Math.PI * r2 * r2;

           double s1= Math.Max(s2-s,0.0);

           return Math.Sqrt(s1 / Math.PI);

       }

       

       // 5.

       public Ring()

       {// Конструктор по умолчанию

           MinimRS();

       }

       // 6.

       public Ring(double s1)

       {// Конструктор по заданной площади

           s = s1;

           MinimRS();

       }

       public Ring(double r1, double r2)

       {// Конструктор по заданным радиусам

           r = Math.Min(r1, r2);

           s = Math.PI * Math.Abs((r1*r1 - r2*r2));

           MinimRS();

       }

       // 7.

       public double R_in

       {// Свойство - внутренний радиус

           get { return r; }

           set { r = value; MinimRS(); }

       }

       public double R_out

       {// Свойство - внешний радиус

           get { return R2(r,s); }

           set { r = R1(value,s); MinimRS(); }

       }

       public double S

       {// Свойство - площадь

           get { return s; }

           set { s = value; MinimRS(); }

       }

       // 8.

       public void print()

       { // Вывод параметров кольца на экран

           Console.WriteLine("Кольцо: R1={0:F}, R2={1:F}, S={2:F};  ",

               r,R2(r,s),s);

       }

       

   }

   class Program

   {

       static void Main(string[] args)

       {   // 10.

// Проверка работы конструкторов

           Ring a1=new Ring();

           a1.print();

           Ring a2=new Ring(22);

           a2.print();

           Ring a3=new Ring(0.5,15);

           a3.print();

// Проверка методов-свойств

           a3.R_in =10;

           a3.print();

           a3.R_out =10;

           a3.print();

           Console.ReadKey();  

       }

   }

}

Результат выполнения:


a

b

a

b




1. Тема- Производительность труда на АТ
2. самый красивый и большой тюльпан для ветерана для единственного ветерана в нашей деревне
3. ТЕМАТИЧ и СЛУЧАЙН.html
4. на тему- Выполнил-Давутов И
5. Действия нарядов милиции на месте происшествия
6. 18 от всего оборудования
7. Лабораторная работа 4 по дисциплине Обеспечение безопасности движения.
8. 101 Каб
9. Тема ПОДГОТОВКА И СОСТАВЛЕНИЕ СЛУЖЕБНЫХ ДОКУМЕНТОВ При составлении документов используется следующий
10. Миссия фирмы. Причины формулирования миссии Разработка миссии является первым этапом стратегичес
11. Аппроксимация характеристик нелинейных элементов и анализ цепей при гармонических воздействиях
12. Бюджетная система государства и проблемы бюджетной политики
13. 2.2.4. Фоносемантические способы воздействия на аудиторию Специалистами выявлено что одна и та же мысль.html
14. что как и для кого производить могут иметь отношение- к любому обществу безотносительно его социально э
15. Электрические сети Шпаргалка
16. ДОКЛАД В связи с расширением цифровых сетей связи в России остро стоит проблема перевода э
17. невообразимую смесь
18. элементы графического интерфейса пользователя- кнопки переключатели строки редактирования списки и проч
19. тематик и экономист пионер и один из создателей линейного программирования.
20. вовсе не христианским