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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Лабораторная работа 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. Космическая программа Кита
4. жаві аристократичного характеру
5. На тему- Язычество древних славян
6. Sculpture
7. Тема 8 Планування інвестицій Завдання зміст вихідні дані і порядок розробки плану інвестицій
8. Рисунок семьи Считают что идея использования рисунка семьи для диагностики внутрисемейных отношений во
9. Задание B11 27130 Во сколько раз увеличится площадь поверхности куба если его ребро увеличить в три раза
10. естественное состояние людей