Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии программирования. Учебно-методическое пособие для СПО

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Задайте атрибут Text для всех элементов Label и Кнопки Button аналогичным образом. Наша форма должна принять примерно следующий вид:
Теперь измените для текстовых полей (TextBox) атрибуты Name в Панели Свойств – для первого поля это будет num1, а для второго, соответственно num2. Тем самым мы изменили имена классов для полей TextBox, чуть позднее Вы поймете зачем.
Итак, каркас формы готов. Если откомпилировать и запустить программу, то мы увидим, какой будет наша форма на финише, правда сейчас она совершенно
бесполезна.
61
4. Сделать кнопку “развернуть” неактивной,
так как изменение размеров данной формы испортит ее внешний вид. Вы также можете это сделать, щелкнув левой кнопкой мыши на пустом месте формы и в
Панели свойств задать для атрибута MaximizeBox параметр False.
5. Создать обработчик событий для кнопки.
Перейдем к написанию обработчика событий для кнопки Button, т.е. что будет происходить при нажатии на эту кнопку. Также мы напишем саму функцию
вычисления факториала, которую мы будем использовать в обработчике.
Первым делом нужно добавить заголовочный файл fact.h в проект. Для этого
щелкнем правой кнопкой мыши в Обозревателе решений на папке Заголовочные файлы, далее меню Добавить -> Создать Элемент, вписываем название файла – fact.h и нажимаем Добавить. В данном файле будет
содержаться прототип (заголовок) функции для вычисления факториала.
Добавляем туда следующий исходный код.
longdouble fact(int N); Далее подключаем этот файл к проекту с помошью директивы #include – Открываем файл factr.cpp и добавляем туда после строчки: #include "stdafx.h" следующий код: #include "fact.h"
Теперь наш заголовочный файл подключен к проекту. Далее аналогичным
образом создаем файл исходного кода fact.cpp в проект. В него добавляем саму функцию вычисления факториала целого числа.
#pragma once #include "stdafx.h" long double fact(int N) { // если пользователь ввел отрицательное число if(N < 0) // возвращаем ноль return 0;
62
// если пользователь ввел ноль if (N == 0) // возвращаем факториал нуля return 1; // Во всех остальных случаях else // делаем рекурсию return N * fact(N - 1); }
Теперь наш проект содержит функцию вычисления факториала. Откомпилируйте его. Если ошибок нет, то можно приступить к написанию
обработчика событий для кнопки Button.
Открываем файл Form1.h, в нем мы видим визуальное представление нашей формы. Щелкаем двойным щелчком на кнопке Button и переходим к исходному
коду процедуры обработки события нажатия кнопки(click). После фигурной скобки ставим абзац и приступаем к кодированию. Сначала нам необходимо описать и инициализировать переменную, в которой
будет храниться число, для которого должен быть вычислен факториал.
Добавим в то место, где Вы поставили абзац, следующий код:
int number = System::Convert::ToDouble(num1->Text);
Эта строка инициализирует переменную, которая хранит в себе число для вычисления его факториала.(Любой набор символов, которые мы будем
вводить с клавиатуры в текстовое поле (TextBox) является строкой. Поэтому
нам нужно вытащить значение из текстового поля и привести его к целочисленному типу. Это довольно сложная процедура, но, к счастью, в языке C++ есть функций, выполняющие конвертирование типов данных.Одна из
таких функций (Convert) используется в приведенном выше коде). Далее нам нужно будет произвести вызов нашей функции fact с переменной
number в качестве единственного аргумента и занести результат работы
функции в новую переменную factor.
double factor = fact(number);
63
Затем необходимо преобразовать полученное значение обратно в строку и присвоить его второму текстовому полю.
num2->Text = System::Convert::ToString(factor);
Таким образом, наш простой обработчик событий будет выглядеть вот так:
int number = System::Convert::ToDouble(num1->Text); double factor = fact(number); num2->Text = System::Convert::ToString(factor);
6. Запустить программу на выполнение.
Теперь можно скомпилировать и запустить готовую программу и проверить ее работу. Помните, что тип double в С++ может хранить число не превышающее
170!.
Результат работы программы можно проверить в инженерном калькуляторе
Windows.
Задание 2. Разработка рекурсивной функции по индивидуальному
заданию.
Напишите рекурсивную функцию на языке С++ по варианту, выбранному из списка вариантов и добавьте ее в уже созданную библиотеку fact. Разработайте
интерфейс для просмотра результатов вычислений данной функции.
Представьте результат преподавателю.
64
Варианты заданий:
4
242
10;7.0;
)!2(
...
!4!2
1
Ex
n
xxx
chx
n
4
10;
)12(
1
1...
5
1
3
1
14
 
 
E
n
n
3
12
1
53
105.0;11;
)12(
1...
53
Ex
n
xxx
xxarctg
n
n
4
242
105.0;
)!2(
6/
1...
!4
6/
!2
6/
1
6
cos
E
n
n
n
3
10;7.1;
)!12(
12
...
!5
5
!3
3
Ex
n
x
n
xx
xshx
4
105.0;
)!12(
3/
12
1...
!5
3/
5
!3
3/
3
33
sin
E
n
n
n
3
10;0;
)!12(
12
1
1...
!5
5
!3
3
sin
Ex
n
x
n
n
xx
xx
3
10;0;
)!2(
2
1...
!4
4
!2
2
1cos
Ex
n
x
n
n
xx
x
3
2
10;0;;
!
ln
...
!2
ln
!1
ln
1
Ebлюбоеx
n
bxbxbx
b
n
x
3
12
123
10;0;
1)12(
1
...
13
1
1
1
2ln
 
 
Ex
xn
x
x
x
x
x
x
n
n
3
10;20;
1
1
1...
3
1
3
2
1
2
1ln

Ex
n
x
n
n
xx
xx
3
10;5.0;
1
...
3
3
1
3
2
2
1
2
1
ln
Ex
n
nx
x
n
x
x
x
x
x
x
x
4
2
10;10
;;
!
2/sin
...
!2
sin
cossinsin
Ex
любоеb
n
nbx
bx
bxbbx
n
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
65
4
2
10;10
;;
!
2/cos
...
!2
sin
sincoscos
Ex
любоеb
n
nbxbx
bxbbx
n
3
1
4
32
10;10;1...
432
1ln
Ex
n
x
n
x
xx
xx
n
3
1253
10;1;
)12(
...
53
2
1
1
ln
 
 
Ex
n
xxx
x
x
x
n
3
12
22
3
10;1;
)12(
)!(2
)!2(
...
322
)arccos(
 
 
Ex
n
x
n
nx
xx
n
n
3
1253
10;11;
)12(
1...
53
Ex
n
xxx
xxarctg
n
n
3
1253
10;1;
)12(
1...
532
 
 
Ex
n
xxx
xxarcctg
n
n
3
12
1
3
10;1;
)12(
1
1...
3
11
2
 
 
Ex
xnx
x
xarctg
n
n
3
12
22
53
10;1;
)12()!(2
)!2(
...
542
3
32
)arcsin(
Ex
n
x
n
nxx
xx
n
n
3
22
2
2
10;;...
3
3cos
2
2cos
cos4
3
 
 
Ex
xx
xx
14.
15.
16.
17.
18.
19.
20.
21.
22.
66
23.
 
 
xE
xxx
xx 0;10;...
3
6cos
2
4cos
1
2cos
6
3
222
2
3
12
1
3
10;1;
)12(
1
1...
3
11
2
 
 
Ex
xnx
x
xarctg
n
n
3
10;
!
1
...
!2
1
!1
1
1
E
n
e
3
1
10;
1
1...
4
1
3
1
2
1
1
4
E
n
n
3
2222
10;
1
1...
4
1
3
1
2
1
1
12
E
n
n
3
10;0;
!
...
!2
2
!1
1
Ex
n
x
n
xx
e
x
24.
25.
26.
27.
28.
67
Занятие № 9
Работа с таймером
Цель работы: научиться создавать движущиеся объекты с помощью объекта
Timer в приложении WindowsForms, работающего под управления .NET Framework.
Методические указания к практическому занятию
В лабораторной работе необходимо научиться использовать элементами
управления, такими как Таймер (Timer), Графическое окно (PictureBox) и Меню (MenuStrip) для разработки программного интерфейса.
Таймер (Timer) не является визуальным элементом управления. Иногда при решении задач требуется создать процедуру, которая выполняется через определенные интервалы времени или запускается по истечении
установленного интервала. Создание такой процедуры возможно благодаря компоненту Timer.
Таймер имеет не так много свойств. Два свойства, которые наиболее
важны Enabled и Interval.
Свойство Enabled, принимая значение истинно – (true) запускает таймер, и останавливает, когда это свойство имеет значение ложь –(false).
Свойство Interval задает время ожидания между тактами таймера или время активации события Tick.
Задание. В лабораторной работе необходимо разработать приложение, в
котором по форме движется машинка. Доехав до края формы, машинка должна
развернуться и ехать в противоположном направлении. Управлять началом и
остановкой движения необходимо с помощью пунктов меню Start и Stop.Для этого:
1. Подготовка к проектированию.
Для создания движущегося объекта подготовьте файл с картинкой, например, детской машинкой, которая и будет двигаться на форме и назовите его Car1.png. Используя графический редактор Paint, создайте второй файл, с
машинкой, развернутой в противоположном направлении и назовите его
Car2.png. Например:
Car1.png -> < - Car2.png
68
2. Создание и настройка внешнего вида формы.
Создайте новый проект с пустой формой. Поместите на форму элемент управления GroupBox1 для создания рамки и установите цвет фона свойством BackColor аналогичный цвету фона картинки.
Далее поместите на форму элемента управления PictureBox1 в свойствоImageпропишем путь к файлу Car1.png. Настройте размер PictureBox1 так, чтоб онсовпадал с размером картинки:
Добавьте на форму ещё один элемент PictureBox2, так чтобы он
разместился ниже машинки. Это будет дорога. Поэтому свойство
BackColorэтого элемента измените на коричневый цвет. Форма примет примерно следующий вид:
Для того, чтоб машинка могла в дальнейшем менять направление
движения, в нижней части формы создайте ещё два элемента PictureBox и выведите в них картинки Car1.pngи Car2.png:
69
Чтобы в конечном проекте эти картинки было не видно на экране, закройте их ещё одной картинкой, цвет которой установите такой же, как цвет всего фона:
На этом внешний вид формы будем считать оформленным.
3. Программирование действий.
Для программирования действий перетащите на форму элемент
управления MenuStrip (Меню). При этом на форме появится светлый
прямоугольник с текстом: «Вводить здесь». Щелкнув мышью по прямоугольнику, вы перейдете в режим ввода названия пункта меню.
Создайте два пункта меню:Start и Stop. В окне свойств установите свойство Enabled для пункта меню Stop в значение False. После этого добавьте на форму элемент Timer. В окне конструктора эти элементы появятся ниже формы:
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]