- •Прикладное программирование
- •Часть 1
- •Прикладное программирование
- •Часть 1
- •1. Информация о дисциплине
- •1.1. Предисловие
- •2.1. Рабочая программа (220 часов) Введение
- •Раздел 1. Технология программирования
- •Раздел 2. Ввод данных
- •1.2. Содержание дисциплины и виды учебной работы
- •1.2.2. Перечень видов практических занятий и контроля
- •2. Рабочие учебные материалы
- •Раздел 3. Управляющие окна
- •Раздел 4. Развитые компоненты
- •Раздел 5. Основные понятия субд
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •Раздел 7. Основные приёмы программирования бд
- •Раздел 8. Развитые приёмы программирования бд
- •Раздел 9. Интерфейс прикладного программирования api
- •Заключение
- •2.2. Тематический план изучения дисциплины
- •Тематический план для студентов заочной формы обучения
- •Структурно-логическая схема дисциплины «Прикладное программирование»
- •2.4. Временной график изучения дисциплины при использовании информационно-коммуникационных технологий
- •2.5. Практический блок
- •2.5.1. Практические занятия
- •2.5.2. Лабораторный практикум
- •2.5.2.1. Лабораторные работы для очной формы обучения
- •2.5.2.2. Лабораторные работы для очно-заочной формы обучения
- •2.5.2.3. Лабораторные работы для заочной формы обучения
- •2.6. Балльно-рейтинговая система оценки знаний
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •Опорный конспект Введение
- •Раздел 1. Технология программирования
- •1.1. Основная тенденция технологии программирования
- •Раздел 2. Ввод данных
- •2.1. Организация надежного ввода
- •2.2. Обработка строк
- •2.3. Средства группирования компонентов
- •Раздел 3. Управляющие окна
- •3.1. Управление выбором
- •3.2. Диалоговые окна
- •3.3. Многострочные окна
- •Раздел 4. Развитые компонеты
- •4.1. Работа с данными типа DateTime
- •4.2. Работа с двумерными массивами
- •4.3. Компоненты навигаторов.
- •4.4. Использование указателей
- •Раздел 5. Основные понятия субд
- •5.1. Общие сведения о базах данных (бд)
- •5.2. Концепция управления бд из среды Builder
- •5.3. Файлы и индексы
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •6.2. Навигация по нд
- •6.3. Доступ к полям нд
- •6.4. Визуальные компоненты для работы с бд
- •Раздел 7. Основные приёмы программирования бд
- •7.1. Сортировка, фильтрация и редактирование нд
- •7.2.Организация надежного ввода данных в бд
- •Раздел 8. Развитые приёмы программирования бд
- •8.1. Построение связей между таблицами бд
- •8.2. Работа с изображениями.
- •Раздел 9. Интерфейс прикладного программирования api
- •9.1 Встраивание звука
- •9.2. Вызов других приложений
- •Заключение
- •3.3. Глоссарий (краткий словарь основных терминов и положений)
- •3.4. Технические средства обеспечения дисциплины
- •3.5. Методические указания к выполнению лабораторных работ
- •3.5.1. Лабораторные работы, семестр 1
- •Работа 1.1. Проектирование программного проекта.
- •Вспомогательный теоретический материал Основная тенденция технологии программирования
- •Компонент ActionList
- •Связь пунктов меню Main Menu1 с действиями ActionList
- •Связь действий ActionList с изображениями ImageList
- •Кнопки быстрого доступа
- •Всплывающие подсказки
- •Использование стандартных действий
- •10 Правил технологии программирования
- •Работа 1.2. Надёжный ввод
- •Работа 1.3. Контейнеры
- •Работа 1.4. Компоненты выбора
- •Работа 1.5. Диалоги
- •Работа 1.6. Многострочные окна
- •Работа 1.7. Определение даты и временного интервала.
- •Работа 1.8. Обработка двумерных массивов.
- •Работа 1.9. Работа с каталогами и файлами.
- •3.5.2. Лабораторные работы, семестр 2
- •Работа 2.1. Начальное создание базы данных
- •Вспомогательный теоретический материал Общие сведения о базах данных
- •Концепция управления бд из среды Builder
- •Средство dbe (Database Borland Engine – машина Borland управления базой данных)
- •Альяс базы данных
- •Поля файла бд
- •Набор данных таблицы бд
- •Управление наборами данных в среде Builder
- •Модуль данных DataModule
- •Файлы и индексы
- •Содержание работы
- •Работа 2.2. Сортировка набора данных, русификация заголовков
- •Работа 2.3. Организация надежного ввода
- •//Проверка полей Panel2 - только для режима замены
- •Работа 2.4. Ввод данных посредством вспомогательных словарей.
- •Работа 2.5. Связи таблиц типа 1:1 и 1:n
- •Работа 2.6. Поля синхронного просмотра типа Lookup
- •Работа 2.7. Поиск и фильтрация
- •Работа 2.8. Особенности сохранения изображений в бд
- •Работа 2.9. Встраивание звука
- •Работа 2.10. Вызов других приложений
- •Методические указания к практическим занятиям
- •Заключение
- •4. Блок контроля освоения дисциплины
- •Часть 1, первый семестр – контрольная работа, зачёт.
- •Часть 1, второй семестр – курсовой проект, экзамен.
- •4.1. Задание на контрольную работу и методические указания к её выполнению
- •Вниманию студентов, обучающихся с элементами дот.
- •Задание на курсовой проект и методические указания к его выполнению
- •Этапы работы над курсовым проектом
- •4.3. Текущий контроль Тренировочные тесты
- •4.4. Итоговый контроль Вопросы к зачёту, семестр 1
- •Вопросы к экзамену, семестр2
Работа 2.3. Организация надежного ввода
[1], с.585-588, 597-602, 617-619
Цель: Изучение способов защиты полей БД от ввода ошибочных символов.
Результат: Получить интерфейсы, аналогичные рис. 98-100
Основой для выполнения данной работы являются результаты, полученные в лабораторной работе №1.2.
Одним из основных средств надёжного ввода данных является управление видимостью органов управления. Для базы данных ввод информации осуществляется в двух допустимых режимах: ввод новых данных (состояние dsInsert) и редактирование старых данных (состояние dsEdit). Методы защиты различны для разных режимов, но общим требованием остаётся такое:
непосредственный ввод данных в таблицу недопустим.
Это объясняется тем, что при прямом вводе данных средства анализа и защиты сильно ограничены. Поэтому общие рекомендации отражаются в следующей процедуре.
Последовательность действий.
Постройте интерфейс по образцу рис. 98.
Рис. 98. Интерфейс надежного ввода
(На рисунке жирным шрифтом показаны программные имена компонентов, по которым построены программные обработчики. По этому примеру студенты должны оформлять отчёты по лабораторным работам. )
Запретите прямой доступ к таблице с консоли (gSpisok ->ReadOnly = true).
Подготовьте вспомогательные окна редактирования для защищённых полей(Edit1..Edit8).
Делайте видимыми только те компоненты, использование которых допустимо для текущего режима (по образцу рис. 99 - 100).
Рис. 99. При старте обе панели невидимы
Рис. 100. При нажатии кнопки «Добавить» видимой становится только первая панель
Вводите данные в эти дополнительные маски ввода; проверяйте допустимость символов и значений (процедура Proverka – см. листинг программы на рис. 101) и, если проверка завершена успешно, переносите данные из масок ввода в таблицу базы данных.
Листинг программы
#include <vcl.h>
#pragma hdrstop
#include "uDBD.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//запись в метку количества студетов
void KolichStud()
{Form1->lblKolStud->Caption="Всего студентов "+ IntToStr(Form1->tSpisok->RecordCount);
}
/*процедура Proverka проверяет правильность данных в полях ввода. Если данные в
полях допустимы, процедура возвращает true, иначе - false*/
boolean Proverka()
{int gp, gr;/ //год поступления и год рождения
/*1.проверка правильности шифра не производится, так как его уникальность
обеспечивается алгритмическим путём
2.проверка допустимости символов в полях не производится, так как они
защищены обработчиками событий OnKeyPress - см. соответствующие процедуры
3.здесь проверяются только допустимые диапазоны года рождения и года поступления
*/
//проверка полей Panel1 - только для режима ВСТАВКИ
if (Form1->tSpisok->State= =dsInsert)
{gp=StrToInt(Form1->Edit3->Text);gr=StrToInt(Form1->Edit4->Text);
if ((gp>2010)||(gp<1990))
{ ShowMessage("недопустимый год поступления \n"+Form1->Edit3->Text+
"\nРазрешено от 1990 до 2010 " );
return false; }
if ((gr>2000)||(gr<1950))
{ ShowMessage("недопустимый год рождения "+Form1->Edit4->Text +
"\nРазрешено от 1950 до 2000 " );
return false;}
}
Рис. 101. Листинг программы надёжного ввода (начало, продолжение на следующей странице)
