Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по ПР ПМ0_Копец1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.37 Mб
Скачать

Описание лабораторной работы Задани 1

Требуется создать приложение отображающее расписание занятий в табличной форме. Предметы выбираются из списка и по щелчку мыши заносятся в выбранную ячейку таблицы.

1. Создать приложение. На форме разместить необходимые компоненты.

2. Установить следующие свойства:

Компонент

Свойство

Значение

Form1

Caption

Расписание

Form1

BorderStyle

bsSingle

Form1

BorderIcons->biMaximize

false

Label1

Caption

Предметы

ComboBox1

Text

Button1

Caption

Добавить

Button2

Caption

Удалить

Button3

Caption

Выход

StringGrid1

BorderStyle

bsNone

StringGrid1

ColCount

7

StringGrid1

RowCownt

7

StringGrid1

ScrollBars

ssNone

3. Задать начальный список предметов в c свойстве Items компонента ComboBox1. Первый элемент в списке должен быть пустым для возможности удаления предмета из ячейки таблицы.

4. Создать обработчик события OnShow компонента Form1. Это событие возникает в момент прорисовки формы. В тело обработчика события ввести код:

AnsiString par[] = {"1 пара","2 пара","3 пара","4 пара",

"5 пара","6 пара"};

AnsiString day[] = {"Пн","Вт","Ср","Чт","Пт","Сб"};

for(int i=1;i<7;i++)

{

StringGrid1->Cells[0][i]=par[i-1];

StringGrid1->Cells[i][0]=day[i-1];

}

5. Создать обработчик события OnClick компонента Button1. В тело обработчика события вести код:

ComboBox1->Items->Add(ComboBox1->Text);

ComboBox1->Text="";

6. Создать обработчик события OnClick компонента Button2. В тело обработчика события вести код:

if(ComboBox1->ItemIndex >=1)

ComboBox1->Items->Delete(ComboBox1->ItemIndex);

7. Создать обработчик события OnClick компонента Button3. В тело обработчика события вести код:

Close();

8. Создать обработчик события OnSelectCell компонента StringGrid1. В тело обработчика события вести код:

StringGrid1->Cells[ACol][ARow]=

ComboBox1->Items->Strings[ComboBox1->ItemIndex];

Запустить приложение. Убедиться в работоспособности всех функций приложения.

Задание 2

Написать программу перемножения двух матриц размерностью 4х4.

Пример умножения двух матриц:

Умножить на .

Решение.

В ходе вычислений были выполнены следующие действия

Умножаем 1 строку на 1 столбец 1 • (-1) + (-2) • 23 + 3 • 4.4 + 1 • (-4.4) = -38.2

Умножаем 1 строку на 2 столбец 1 • 2 + (-2) • (-23) + 3 • 12 + 1 • 12 = 96

Умножаем 1 строку на 3 столбец 1 • 3 + (-2) • 1 + 3 • 1 + 1 • (-1) = 3

Умножаем 2 строку на 1 столбец 23 • (-1) + (-23) • 23 + 1 • 4.4 + 2 • (-4.4) = -556.4

Умножаем 2 строку на 2 столбец 23 • 2 + (-23) • (-23) + 1 • 12 + 2 • 12 = 611

Умножаем 2 строку на 3 столбец 23 • 3 + (-23) • 1 + 1 • 1 + 2 • (-1) = 45

Умножаем 3 строку на 1 столбец (-44) • (-1) + 12 • 23 + 0 • 4.4 + 1 • (-4.4) = 315.6

Умножаем 3 строку на 2 столбец (-44) • 2 + 12 • (-23) + 0 • 12 + 1 • 12 = -352

Умножаем 3 строку на 3 столбец (-44) • 3 + 12 • 1 + 0 • 1 + 1 • (-1) = -121

Пример компоновки формы

Спецификация программы:

1) Для работы с матрицами (ввод и вывод матриц) должен быть использован компонент StringGrid.

2) Перемножаемые матрицы должны вводиться пользователем. То есть таблица StringGrid1 и StringGrid2 должны быть редактируемые.

3) Таблица с результатом StringGrid3должна быть закрыта для редактирования пользователем.

Контрольные вопросы

  1. Как узнать количество строк и столбцов в таблице?

  2. Как очистить всю таблицу?

  3. Как убрать фиксированные столбец и строку?

  4. Как программно добавить столбец и строку?

  5. Что означает оператор StringGrid1->ColWidths[Index] = -1;?

  6. Что означает оператор A=StringGrid1->Cells[i][j];?

  7. Что означает оператор R=StringGrid1->VisibleColCount;?

Практическая работа № 12

Тема: «Обработка событий клавиатуры и мыши в приложении».

Цель работы: Ознакомление с основными принципами программирования работы с манипулятором «мышь» и клавиатурой в C++ Builder.

Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.

Теоретическая часть

Основные события клавиатуры и мыши

Событие

Описание

OnKeyDown

Происходит при нажатии пользователем любой клавиши, включая функциональные и вспомогательные, такие, как Shift, Alt и Ctrl. клавиши, когда компонент находится в фокусе при нажатии пользователем

OnKeyPress

Происходит при нажатии одной из алфавитно-цифровых клавиш, клавиши Tab, BackSpace, Enter или Esc.

OnKeyUp

Происходит при отпускании клавиши.

OnMouseDown

Событие возникает при нажатии кнопки мыши на компоненте. Параметры, передаваемые обработчику события, содержат информацию о том, какой кнопкой мыши щелкнули и какие функциональные клавиши при этом были задействованы (Alt, Ctrl или Shift), а также координаты X и Y курсора мыши в момент щелчка.

OnMoveMouse

Происходит при перемещении курсора через объект управления

OnMouseUp

Событие возникает при отпускании кнопки мыши на компоненте, если перед этим кнопка была нажата на этом же компоненте.

Cобытия для клавиатуры

Событие OnEnter наступает в момент получения фокуса

Событие OnExit наступает в момент потери элементом фокуса, в момент его переключения на другой элемент.

Событие OnCreate возникает в момент создания формы и может использоваться для выполнения каких-то процедур настройки ее самой или содержащихся на ней компонентов.

Событие OnResize заключительное событие при изменении размеров формы.

Событие OnShortCut возникает при нажатии пользователем клавиши, до того, как возникло стандартное событие OnKeyDown.