Альбом лабораторных работ по дисциплине: «Основные направления развития в отрасли. Перспективные языки и технологии программирования»

  • docx
  • 09.04.2022
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Альбом ОНРИО.docx

Министерство образования и науки ЛНР
Луганский государственный университет имени Владимира Даля
Стахановский инженерно-педагогический институт менеджмента
Кафедра информационных систем

 

 

 

 

 

 

 

 

Альбом лабораторных работ

по дисциплине: «Основные направления развития в отрасли. Перспективные языки и технологии программирования»

 

 

 

 

 

 

 

 



 

 

 

 

Стаханов 2021

ЛАБОРАТОРНАЯ РАБОТА №1

Тема: Построение графиков функции и 3D поверхностей в системе Mathcad

Цель: получение навыков построения графиков функций и 3D поверхностей.

 

Пример №1.

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

Рисунок 1.1 – Построение XY-графика двух векторов

 

Пример №2.

Для построения графика по функции с незаданной переменной необходимо создать функцию типа «f(x)» и таким же образом отметить ее на графике.

Рисунок 1.2 – Построение графика функции sin(a)

 

 

Пример №3

Имеется возможность построить график, на котором отложено несколько функций по оси ординат.

Рисунок 1.3 – Построение нескольких зависимостей на одном графике

 

Пример №4

Также, на одном графике можно отобразить несколько разных функций от разных аргументов.

Рисунок 1.4 – Построение зависимостей от разного аргумента разного типа данных

 

Пример №5.

При желании можно изменить диапазон отображения графика по обеим осям.

Рисунок 1.5 – Изменение диапазона оси X

Пример №6

Построение графика с тремя функциями от одного аргумента, отложенными по оси ординат.

Рисунок 1.6 – График с несколькими выражениями, отложенными по оси ординат

 

Пример №7

Построение графика с несколькими выражениями на обеих осях.

Рисунок 1.7 – График с несколькими выражениями на обеих осях

 

Пример №8

Построение графика поверхности функции приведено на рисунке 1.8.

Рисунок 1.8 – Построение графика поверхности функции

 

Пример №9

Пример возможной настройки отображения графика поверхности.

Рисунок 1.9 – Диалоговое окно 3-D Plot Format

 

Задание №1. Построение графика функции Y=cos(3X+П/2).

Рисунок 1.10 – График функции Y=cos(3X+П/2)

 

Задание №2.

Построение графика поверхности функции Z=b2/10 – c2/10.

Рисунок 1.11 – График поверхности функции Z=X2/10 - Y2/10

 

Задание №3

Построение графика трех функций с использованием дополнительной оси ординат. Функции:

Рисунок 1.12 – График трех функций с дополнительной осью ординат

 

Задание №4

Построение графика поверхности функции

Рисунок 1.13 –  График поверхности функции z

Рисунок 1.14 –  График поверхности

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛАБОРАТОРНАЯ РАБОТА №2

Тема: Построение графиков функции и 3D поверхностей в системе Mathcad. Создание анимации в MathCad

Цель: Получение навыков построения графиков функций и 3D поверхностей в системе Mathcad.

 

Построение простого графика в полярной системе координат.

Рисунок 2.1 – Полярный график функции от q

 

Построение графика двух функций в полярной системе координат.

Рисунок 2.2 – Фигура Лиссажу в молярной системе координат

Построение графика двух функций в полярной системе координат.

Рисунок 2.3 – графика двух функций в полярной системе координат.

 

Построение объемного графика фигуры вращения.

Рисунок 2.4 – Объемный график фигуры вращения

 

Построение графика фигуры вращения функции f(x) вокруг оси Oy указано на рисунке 2.5.

Рисунок 2.5 – Фигура вращения кривой f(x) вокруг оси Oy

 

Построение фигуры вращения кривой  вокруг оси Ox.

Рисунок 2.6 – График фигуры вращения вокруг оси Ох

 

Построение кривой в пространстве при помощи графика разброса изображено на рисунке 2.7.

Рисунок 2.7 – Кривая в пространстве

 

Создание анимации при помощи MathCad.

Рисунок 2.8 – Меню записи анимации

 

Создание анимации графика двух функций.

Рисунок 2.9 – Фрагмент анимации графика двух функций

 

Создание анимации движения точек по периметру квадрата отображено на рисунке 2.10

Рисунок 2.10 – Фрагмент анимации движения точек по периметру квадрата

 

Создание анимации движения окружности.

Рисунок 2.11 – Фрагмент анимации движения окружности

Рисунок 2.12 – График поверхности

 

Рисунок 2.13 – График поверхности

 

Выводы: в результате выполнения работы было построено 13 графиков функций, среди которых: графики функций в полярной системе координат, графики фигур вращения, графики с анимацией.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лабораторная работа №3

Тема: «Аналитические вычисления в Mathcad . Инструменты MathCad для задач математического анализа»

Цель: получение навыков аналитического вычисления в Mathcad.

Задание: 

1. Выполните все примеры, приведенные в лабораторной работе.

 

Решение

3.3. Пример 1

         3.2. Пример 2

3.3. Пример 3

3.4. Пример 4

 

3.5. Пример 5

 


3.6. Пример 6

3.7. Пример 7

3.8. Пример 8

3.9. Пример 9     

3.10. Пример 10

3.11. Пример 11

3.12. Пример 12

3.13. Пример 13

3.14. Пример 14

3.15. Пример 15

3.16. Пример 16

3.17. Пример 17

 

3.18. Пример 18

3.19. Пример 19

 

Выводы: в ходе выполнения лабораторной работы получила навыки аналитического вычисления в Mathcad.

 

 

 

 

 

 

ЛАБОРАТОРНАЯ РАБОТА №4

Тема: Работа с матрицами в среде Мathcad.

Цель: Получить навыки работы с матрицами в среде Мathcad.

Пример 1. Арифметические операции с матрицами.

Рисунок 4.1 – Пример выполнения арифметических операций с двумя матрицами

 

Пример 2. Транспонирование матриц.

Рисунок 4.2 – Пример транспонирования матрицы

 

Пример 3. Произведение матрицы и транспонированной матрицы.

Рисунок 4.3 – Пример произведения матрицы и транспонированной матрицы

 

Пример 4. Определитель матрицы.

Рисунок 4.4 – Пример вычисления определителя в Mathcad

 

Пример 5. Решение системы координат способом матричной записи.

Рисунок 4.5 – Пример решения системы координат способом матричной записи

 

Пример 6. Метод Крамера.

Рисунок 4.6 – Пример решения системы уравнений методом Крамера

 

Пример 7. Метод Гаусса.

Рисунок 4.7 – Пример решения системы уравнений методом Гаусса

 

 

 

 

Задание. Дано:

image038

Решим систему линейных уравнений с помощью методов Гаусса и Крамера.

Рисунок 4.8 – Решение способом Крамера

 

Рисунок 4.9 – Решение способом Гаусса

Рисунок 4.10 – Проверка

 

 

 

Рисунок 4.11 – Решение матричным способом

 

 

Выводы: в результате проделанной работы выполнены основные способы работы с матрицами: задание матрицы, вычисление определителя, арифметические действия над матрицами; решение линейных системных уравнений с использованием методов Крамера и Гаусса.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛАБОРАТОРНАЯ РАБОТА №5

Тема: Работа с векторами и матрицами в среде Mathcad.

Цель: ознакомиться с системой MathCAD, овладеть основными навыками работы с системой, научиться проводить элементарные вычисления с векторами и матрицами. Освоить технологию решения линейных уравнений матричным способом.

 

Задание 1. Дана система линейных уравнений с 4-мя неизвестными:

image038

Записать коэффициенты уравнения в виде матрицы А

Рисунок 5.1 – Представление коэффициентов системы уравнений в виде матрицы в система MathCAD

 

Задание 2. Выделить матрицу А из матрицы М, которая получена из коэффициентов системы линейных уравнений и свободных членов:

а) инвертировать матрицу А;

б) транспонировать матрицу А;

в) найти определитель матрицы А;

г) определить размер матрицы А

 

Рисунок 5.2 – Выполнение основных операций над матрицами

Используя данные таблиц 1 и 2 (в ячейках указаны варианты, из которых необходимо составить матрицы) выполнить следующие операции:

а) найти матрицу АВС;

б) найти матрицу АВ + ВС;

в) найти матрицу А2 - В2.

 

Система В:                               Система С:

image056                  image058

 

Рисунок 5.3 – Представление коэффициентов систем уравнений В и С в виде матриц

 

Рисунок 5.4 – Результат произведения трех матриц

 

Рисунок 5.5 – Результат вычислений АВ + ВС

 

Рисунок 5.6 – Результат разницы квадратов двух матриц

 

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

 

ЛАБОРАТОРНАЯ РАБОТА №6

ВЫЧИСЛЕНИЕ ФУНКЦИЙ ПОЛЬЗОВАТЕЛЯ. БУЛЕВА АЛГЕБРА

Задания

Пример.

Рисунок 6.1 – Пример

Вариант №2

Ход работы

Рисунок 6.2 – Пример

Рисунок 6.3 – Задание № 2

Рисунок 6.4 - Задание № 9

Рисунок 6.5 – Задание № 16

Рисунок 6.6 – Задание № 23

Рисунок 6.7 – Задание № 30

Рисунок 6.8 – Булева алгебра

 

 

 

Вывод: изучено вычисление функций пользователя, булева алгебра.

 

 

 

 

 

 

 

 

 

Лабораторная работа №7-8

Тема: Современные электронные средства верстки InDesign

Цель: Закрепить теоретические знания и получить практические навыки работы с современной верстальной программой компьютерного творчества Adobe InDesign.

Задание: создать документ с простой версткой страниц, создать шаблоны страниц, добавить направляющие линии, колонтитул, текстовый заполнитель, заполнитель для графики, разделить текст на колонки, добавить разделы.

Ход работы

Для создания нового документа выполняем команду «Файл – Новый – Документ», затем выбираем категорию «Печать» и тип страницы «А5»

Рисунок 8.1 – Выбор параметров нового документа

 

Чтобы изменить шаблон, необходимо дважды нажать по нему на панели страниц. Разместить колонтитул можно под полями страница, для более точного размещения выставим направляющие линии: горизонтальную на 197,3 мм, вертикальные на 12,7мм; 60мм; 240мм; 283,3мм.

Рисунок 8.2 – Расположение направляющих на странице

 

Разместим колонтитул. Для этого выбираем инструмент «Текст», выделим область, которая была размечена направляющими, затем, внутри поля, вводим команду «Текст – Вставка специальных символов – Маркеры – Текущая страница»

Рисунок 8.3 – Вставка нижнего колонтитула

 

Рисунок 8.4 – Вставка верхнего колонтитула

 

При помощи инструмента «Текст» создадим область с текстовым заполнителем. Выделяем область на всю страницу, затем вызываем контекстное меню и жмем «Заполнить шаблонным текстом».

Рисунок 8.5 – Вставка текстового заполнителя на страницу

 

Вставляем новую страницу для создания графических объектов. Новая страница будет создана из пустого шаблона.

Инструментом «Прямоугольный фрейм» установим область для изображения, инструментом «Текст» разметим заголовок и текстовую область страницы.

Рисунок 8.6 – Базовая разметка страницы.

 

Далее выделим цветом главный заголовок и вставим изображение. Выбираем цвет из панели «Цвет». Чтобы вставить изображение, выделяем прямоугольный фрейм, выполняем команду «Файл – Поместить» и выбираем изображение.

Рисунок 8.7 – Готовая страница с изображением

 

Выводы: для разнообразной вёрстки печатных изданий в настоящее время существует мощный инструмент – Adobe InDesign, – который позволяет выполнять разнообразные задачи по вёрстке. Среди основных функций данной программы: шаблонизация страниц, создание структуры документа из шаблонов, широкие возможности текстового форматирования.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛАБОРАТОРНЫЕ РАБОТЫ №№9-10

ТЕМА: ПЛАТФОРМА .NET И СРЕДА РАЗРАБОТКИ

VISUAL STUDIO

 

Пример 1:

Рисунок 9.1 – Пример 1

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace пример1

{

    public partial class MainForm : Form

    {

        public MainForm()

        {

            InitializeComponent();

        }

 

        private void HelloWord_Click(object sender, EventArgs e)

        {

            MessageBox.Show("Здравствуй,мир");

        }

    }

 

}

 

 

 

 

 

 

 

Пример 2:

Рисунок 9.2 – Пример 2

Код программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace TestConsole

{

    class Program

    {

        static void Main(string[] args)

        {

            //объявляем переменную для хранения строки введенных данных

            string strText;

            //выводим на экран информационное сообщение

            Console.WriteLine("Введите Ваше имя.");

            //вводим данные с консоли

            strText = Console.ReadLine();

            //Выводим на экран обработанные данные

            Console.WriteLine("Здравствуйте {0}", strText);

        }

    }

}

 

Задание к лабораторной работе

1. Создайте на форме Windows-приложения кнопку «Выход», при нажатии на которую закрывается форма.

Рисунок 9.3 – Задание 1

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.Close();

        }

    }

}

 

 

2. Создайте на форме Windows-приложения кнопку «Цвет фона», при нажатии на которую случайным образом изменяется фон формы.

Рисунок 9.4 – Задание 2

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _2

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            Random rnd = new Random(DateTime.Now.Millisecond);

            this.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));

        }

    }

}

 

 

3. Создайте проект Windows-приложения с двумя формами «Форма 1» и «Форма 2». При запуске приложения на экране вначале появляется «Форма 1», а при закрытии первой формы появляется «Форма 2».

Рисунок 9.5 – Задание 3

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _3

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

           

           {

Form ifrm = new Form2();

ifrm.Left = this.Left; ifrm.Top = this.Top; ifrm.Show();

this.Hide();

        }

    }

 

 }

}

 

4. Создайте проект Windows-приложения с двумя формами «Форма 1» и «Форма 2». На первой форме создайте две кнопки «Выход» (нажатие на которой закрывает «Форму 1») и кнопку «Переход» (нажатие на которой отображает «Форму 2», при этом «Форма 1» не закрывается). На «Форме 2» должны быть кнопки «Выход» (закрытие всего приложения) и «Закрыть» (закрытие только второй формы).

Рисунок 9.6 – Задание 4

Код формы 1:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _4

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            Form ifrm = new Form2();

            ifrm.Show(); // отображаем Form2

 

        }

    }

}

 

Код формы 2:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace _4

{

    public partial class Form2 : Form

    {

        public Form2()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

    }

}

 

 

5. Создайте консольное приложение, в котором вводятся два целых числа с клавиатуры и выводится на экран их сумма.

Рисунок 9.7 – Задание 5

Код программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace _4

{

    class Program

    {

        static void Main(string[] args)

        {

            int a, b = 0;

            Console.WriteLine("Введите первое число:");

            a = int.Parse(Console.ReadLine());

            Console.WriteLine("Введите второе число:");

            b = int.Parse(Console.ReadLine());

            Console.WriteLine("Сумма равна:{0}", a + b);

            Console.ReadKey();

 

        }

    }

}

 

 

 

Вывод: получен опыт работы с платформой .Net и средой разработки Visual Studio.

ЛАБОРАТОРНЫЕ РАБОТА №11-12

Решение профессиональных задач с использованием MathCad Цель работы: Закрепить теоретический материал путем выполнения лабораторной работы; получение навыков расчёта метода анализа иерархий с использованием MathCad.

 Порядок выполнения работы (отчёт):

 1. Ознакомиться с теоретическим материалом данных методических указаний.

2. Выполнить задания к лабораторной работе.

 3. Оформить отчет и сделать выводы.

Ход работы

Рисунок 11.1 - МАИ

 

Таблица 1 − Матрица попарных сравнений для критериев

K

Q1

Q2

Q3

Q4

Рi

Xi

Q1

1

3

 1/9

 1/5

0,508

0,08

Q2

 1/3

1

 1/8

 1/5

0,302

0,048

Q3

9

8

1

3

3,834

0,604

Q4

5

5

 1/3

1

1,699

0,268

Решение в Mathcad:

  Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:

Далее найдем векторы приоритетов и сумму векторов:

Определим приведенные векторы приоритетов и сумму векторов:

Далее следует определить уровень согласованности мнений экспертов:

Таблица 2 − Матрица попарних сравнений для первой альтернативы

Q1

A1

A2

A3

A4

Рi

Xi

A1

1

3

3

9

3

0,5

A2

 1/3

1

 1/5

7

0,827

0,138

A3

 1/3

5

1

9

1,968

0,328

A4

 1/9

 1/7

 1/9

1

0,205

0,034

 

Решение в Mathcad:

  Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:

Далее найдем векторы приоритетов и сумму векторов:

Определим приведенные векторы приоритетов и сумму векторов:

Далее следует определить уровень согласованности мнений экспертов:

 

Таблица 3 − Матрица попарних сравнений для второй альтернативы

Q2

A1

A2

A3

A4

Рi

Xi

A1

1

5

3

9

3,409

0,559

A2

 1/5

1

 1/2

7

0,915

0,15

A3

 1/3

2

1

9

1,565

0,257

A4

 1/9

 1/7

 1/9

1

0,205

0,034

 

Решение в Mathcad:

Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:

Далее найдем векторы приоритетов и сумму векторов:

Определим приведенные векторы приоритетов и сумму векторов:

Далее следует определить уровень согласованности мнений экспертов:

 

Таблица 4 − Матрица попарних сравнений для третьей альтернативы

Q3

A1

A2

A3

A4

Рi

Xi

A1

1

 1/7

 1/9

1   

0,355

0,053

A2

7

1

3

9

3,708

0,555

A3

9

 1/3

1

9

2,28

0,341

A4

1

 1/9

 1/9

1

0,333

0,05

Решение в Mathcad:

  Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:

Далее найдем векторы приоритетов и сумму векторов:

Определим приведенные векторы приоритетов и сумму векторов:

Далее следует определить уровень согласованности мнений экспертов:

 

 Таблица 5 − Матрица попарних сравнений для четвертой альтернативы

Q4

A1

A2

A3

A4

Рi

Xi

A1

1

3

 1/9

 1/5

0,508

0,08

A2

 1/3

1

 1/8

 1/5

0,302

0,048

A3

9

8

1

3

3,834

0,604

A4

5

5

 1/3

1

1,699

0,268

Решение в Mathcad:

Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:

 

Далее найдем векторы приоритетов и сумму векторов:

Определим приведенные векторы приоритетов и сумму векторов:

Далее следует определить уровень согласованности мнений экспертов:

 

Расчет глобального вектора приоритетов:

 

Вывод: из полученных данных выходит, что подавляющим по совокупности всех критериев является язык Delphi, на втором месте – VBA, на третьем – C++ и на последнем Python.

 

Лабораторные работы №№13-14

ООП для .NET. Классы и принцип инкапсуляции

Цель: Знакомство с принципом инкапсуляции в объекте ориентированном программировании (ООП) и его реализацией на различных языках программирования для .NET.

Задание

1. Выполнить в среде разработки Visual Studio пример 1 и пример 2.

2. В отчёт включить примеры и скриншоты результатов работы программ.

3. Модернизировать примеры 1 и пример 2: ввод своих данных в объекты; добавить свои поля или методы.

4. Решить задачу согласно варианту задания.

 

Ход работы

 

Пример 1.

Программный код:

Imports System

Module Module1

 

    Sub Main(ByVal args As String())

        Dim S As Integer, R As Integer, Stud1 As Student

        ' Создаем объект класса Student

        Stud1 = New Student

        ' Выводим в консоль запрос

        Console.WriteLine("Введите год рождения:")

        ' Чтение введенных символов

        S = Console.ReadLine()

        ' Переводим введенные символы в целое число

        R = Int(S)

        ' Задаем значение свойства

        ' Фактически, это будет обращение к процедуре Set

        Stud1.God = R

        ' Выводим значение свойства God.

        ' Если была ошибка, получим значение 0

        Console.WriteLine("Значение свойства =" & Stud1.God)

        ' Выводим в консоль приглашение на завершение

        Console.WriteLine("Для завершения нажмите ENTER")

        S = Console.Read()

    End Sub

    Public Class Student

        Private intGod As Integer

        Public Property God() As Integer

            Get

                Return intGod

            End Get

            Set(ByVal R As Integer)

                If R <= 0 Then

                    Console.WriteLine("Ошибка!")

                    intGod = 0

                Else

                    intGod = R

                End If

            End Set

        End Property

    End Class

End Module

 

Рисунок 13.1 – Реакция ЭВМ

Пример 2.

Программный код:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace primer2

{

    class Program

    {

        static void Main(string[] args)

        {

            staff A;

            Int16 birthyear, children;

            string name, surname, patron, gender;

            Console.WriteLine("Введите Имя:");

            name = Console.ReadLine();

            Console.WriteLine("Введите Фамилию:");

            surname = Console.ReadLine();

            Console.WriteLine("Введите Отчество:");

            patron = Console.ReadLine();

            Console.WriteLine("Введите Пол:");

            gender = Console.ReadLine();

            Console.WriteLine("Введите Год рождения:");

            birthyear = Convert.ToInt16(Console.ReadLine());

            Console.WriteLine("Введите Количество детей:");

            children = Convert.ToInt16(Console.ReadLine());

            A = new staff(name, surname, patron, gender, birthyear, children);

            Show(A);

        }

static void Show(staff A)

        {

    Console.WriteLine();

Console.WriteLine("Информация о персонале:");

Console.WriteLine("Фамилия: " + A.surname);

Console.WriteLine("Имя: " + A.name);

Console.WriteLine("Отчество: " + A.patronymic);

Console.WriteLine("Пол: " + A.gender);

Console.WriteLine("Год рождения: " +A.birthday);

Console.WriteLine("Число детей: " + A.numberOfChildren);

Console.WriteLine("Нажмите ENTER");

Console.ReadLine();

    }

}

    class staff

    {

        string strname, strsurname, strpatronymic, strgender;

        Int16 Intbirthday, IntnumberOfChildren;

        static Boolean Symbols(string s)

        {

            string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",

            SmallLat = "qwertyuiopasdfghjklzxcvbnm",

            BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",

            SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",

            letter,

            c;

            int i;

            letter = BigLat + SmallLat + BigKyr + SmallKyr;

            for (i = 1; i <= s.Length; i++)

            {

                c = s.Substring(i - 1, 1);

                if (!letter.Contains(c)) { return false; }

            }

            return true;

        }

        static Boolean GenderType(string s)

        {

            string letter, c;

            int i;

            letter = "МЖмж";

            for (i = 1; i <= s.Length; i++)

            {

                c = s.Substring(i - 1, 1);

                if (!letter.Contains(c)) { return false; }

            }

            return true;

        }

        static Boolean SymbNumb(string s)

        {

            string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",

            SmallLat = "qwertyuiopasdfghjklzxcvbnm",

            BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",

            SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",

            Numbers = "1234567890",

            letter,

            c;

            int i;

            letter = BigLat + SmallLat + BigKyr + SmallKyr + Numbers;

            for (i = 1; i <= s.Length; i++)

            {

                c = s.Substring(i - 1, 1);

                if (!letter.Contains(c)) { return false; }

            }

            return true;

        }

        static Boolean Range(int N, int LBorder, int RBorder)

        {

            if ((N >= LBorder) & (N <= RBorder)) { return true; }

            return false;

        }

        // Свойства //

        public string name

        {

            get { return strname; }

            set

            {

                if (!Symbols(value))

                    Console.WriteLine("Ошибка в имени");

                else

                    strname = value;

            }

        }

        public string surname

        {

            get { return strsurname; }

            set

            {

                if (!Symbols(value))

                    Console.WriteLine("Ошибка в фамилии");

                else

                    strsurname = value;

            }

        }

        public string patronymic

        {

            get { return strpatronymic; }

            set

            {

                if (!Symbols(value))

                    Console.WriteLine("Ошибка в отчестве");

                else

                    strpatronymic = value;

            }

        }

        public string gender

        {

            get { return strgender; }

            set

            {

                if (!GenderType(value))

                    Console.WriteLine("Ошибка ввода: Допустимы только символы 'М' и 'Ж'");

                else

                    strgender = value;

            }

        }

        public Int16 birthday

        {

            get { return Intbirthday; }

            set

            {

                if (!Range(value, 1900, 2021))

                    Console.WriteLine("Ошибка в дате: Введите актуальный год.");

                else

                    Intbirthday = value;

            }

        }

        public Int16 numberOfChildren

        {

            get { return IntnumberOfChildren; }

            set

            {

                if (!Range(value, 0, 12))

                    Console.WriteLine("Ошибка в имени");

                else

                    IntnumberOfChildren = value;

            }

        }

        // Конструкт //

        public staff(string name, string surname, string patronymic, string gender,

        Int16 birthday, Int16 numberOfChildren)

        {

            this.name = name;

            this.surname = surname;

            this.patronymic = patronymic;

            this.gender = gender;

            this.birthday = birthday;

            this.numberOfChildren = numberOfChildren;

        }

    }

}

 

Рисунок 13.2 – Реакция ЭВМ

 

 

Программный код приложения в C#:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace zadanie2

{

    class Program

    {

        static void Main(string[] args)

        {

            staff A;

            Int16 kolstr, god;

            string nazvanie, format;

            Console.WriteLine("Введите название печатного издания:");

            nazvanie = Console.ReadLine();

            Console.WriteLine("Введите Формат:");

            format = Console.ReadLine();

            Console.WriteLine("Введите количество страниц:");

            kolstr = Convert.ToInt16(Console.ReadLine());

            Console.WriteLine("Введите год выпуска:");

            god = Convert.ToInt16(Console.ReadLine());

            A = new staff(nazvanie, format, kolstr, god);

            Show(A);

        }

        static void Show(staff A)

        {

            Console.WriteLine();

            Console.WriteLine("Информация о печатном издании:");

            Console.WriteLine("Название: " + A.name);

            Console.WriteLine("Формат: " + A.surname);

            Console.WriteLine("Количество страниц: " + A.numberOfChildren);

            Console.WriteLine("Год выпуска: " + A.birthday);

            Console.WriteLine("Нажмите ENTER");

            Console.ReadLine();

        }

    }

    class staff

    {

        string strname, strsurname;

        Int16 Intbirthday, IntnumberOfChildren;

        static Boolean Symbols(string s)

        {

            string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",

            SmallLat = "qwertyuiopasdfghjklzxcvbnm",

            BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",

            SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",

            letter,

            c;

            int i;

            letter = BigLat + SmallLat + BigKyr + SmallKyr;

            for (i = 1; i <= s.Length; i++)

            {

                c = s.Substring(i - 1, 1);

                if (!letter.Contains(c)) { return false; }

            }

            return true;

        }

      

        static Boolean SymbNumb(string s)

        {

            string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",

            SmallLat = "qwertyuiopasdfghjklzxcvbnm",

            BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",

            SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",

            Numbers = "1234567890",

            letter,

            c;

            int i;

            letter = BigLat + SmallLat + BigKyr + SmallKyr + Numbers;

            for (i = 1; i <= s.Length; i++)

            {

                c = s.Substring(i - 1, 1);

                if (!letter.Contains(c)) { return false; }

            }

            return true;

        }

        static Boolean Range(int N, int LBorder, int RBorder)

        {

            if ((N >= LBorder) & (N <= RBorder)) { return true; }

            return false;

        }

        // Свойства //

        public string name

        {

            get { return strname; }

            set

            {

                if (!Symbols(value))

                    Console.WriteLine("Ошибка в названии");

                else

                    strname = value;

            }

        }

        public string surname

        {

            get { return strsurname; }

            set

            {

                if (!Symbols (value))

                    Console.WriteLine("Ошибка в формате");

                else

                    strsurname = value;

            }

        }

 

 

        public Int16 numberOfChildren

        {

            get { return IntnumberOfChildren; }

            set

            {

                if (!Range(value, 1, 2000))

                    Console.WriteLine("Ошибка: Введите допустимое количество страниц.");

                else

                   IntnumberOfChildren  = value;

            }

        }

        public Int16  birthday

        {

            get { return Intbirthday; }

            set

            {

                if (!Range(value, 1500, 2021))

                    Console.WriteLine("Допущена ошибка в годе выпуска");

                else

                    Intbirthday = value;

            }

        }

        // Конструкт //

        public staff(string name, string surname,

        Int16 numberOfChildren, Int16 birthday)

        {

            this.name = name;

            this.surname = surname;

            this.numberOfChildren = numberOfChildren;

            this.birthday = birthday;

        }

    }

}

 

 

Рисунок 13.3 – Реакция ЭВМ

Программный код VB.NET: 

Imports System

Module Module1

 

    Sub Main(ByVal args As String())

        Dim S As Int16, R As Int16, Pechatnoe_izdanie1 As Pechatnoe_izdanie, format As String, nazvanie As String, kolstr As Int16

        ' Создаем объект класса Pechatnoe_izdanie

        Pechatnoe_izdanie1 = New Pechatnoe_izdanie

        ' Выводим в консоль запрос

        Console.WriteLine("Введите название печатного издания:")

        nazvanie = Console.ReadLine()

        Console.WriteLine("Введите формат:")

        format = Console.ReadLine()

        Console.WriteLine("Введите количество страниц:")

        kolstr = Console.ReadLine()

        Console.WriteLine("Введите год:")

        ' Чтение введенных символов

        S = Console.ReadLine()

        ' Переводим введенные символы в целое число

        R = Int(S)

        ' Задаем значение свойства

        ' Фактически, это будет обращение к процедуре Set

        Pechatnoe_izdanie1.God = R

        ' Выводим значение свойства God.

        ' Если была ошибка, получим значение 0

        Console.WriteLine("----------------------------------------------")

        Console.WriteLine("Название = " & nazvanie)

        Console.WriteLine("Формат = " & format)

        Console.WriteLine("Количество страниц = " & kolstr)

        Console.WriteLine("Год выпуска = " & Pechatnoe_izdanie1.God)

        ' Выводим в консоль приглашение на завершение

        Console.WriteLine("Для завершения нажмите ENTER")

        S = Console.Read()

    End Sub

   

    Public Class Pechatnoe_izdanie

        Private intGod As Integer

        Public Property God() As Integer

            Get

                Return intGod

            End Get

            Set(ByVal R As Integer)

                If R < 1500 Or R > 2021 Then

                    Console.WriteLine("Ошибка ввода года!")

                    intGod = 0

                Else

                    intGod = R

                End If

            End Set

        End Property

    End Class

End Module

 

 

Рисунок 13.4 – Реакция ЭВМ

 

 

Вывод: при выполнении лабораторной работы ознакомились с принципом инкапсуляции в объектно-ориентированном программировании (ООП) и его реализацией на различных языках программирования для .NET.

 

 

 

 


 

Скачано с www.znanio.ru