.2.4 Свойства компонента Label (поле вывода текста)Данный компонент предназначен для вывода теста на поверхность формы, его свойства определяют вид и расположение текста. Таблица 1.2 - Свойства Label |
Свойство | Описание | | Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам | | Caption | Отображаемый текст | | Left | Расстояние от левой границы поля вывода до левой границы формы | | Top | Расстояние от верхней границы поля вывода до верхней границы формы | | Height | Высота поля вывода | | Width | Ширина поля вывода | | AutoSize | Признак того, что размер поля определяется его содержимым | | Wordwrap | Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть false) | | Alignment | Задает способ выравнивания текста внутри поля. Текст может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRight Justify) | | Font | Шрифт, используемый для отображения текста. Уточняющие свойства определяют шрифт (Name), размер (size), стиль (style) и цвет символов (Color) | | Parent Font | Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно true, то текст выводится шрифтом, установленным для формы | | Color | Цвет фона области вывода текста | | Visible | Позволяет скрыть текст (false) или сделать его видимым (true) | | | 1.2.5 Свойства компонента DBGridКомпонент DBGrid отображает набор данных в формате электронной таблицы.Таблица 1.3 - Свойства компонента DBGrid |
DataSource | Источник данных (компонент Table или Query) | | Columns | Отображаемая информация (поля записей) | | Options.dgTitles | Разрешает вывод строки заголовка столбцов | | Options.dglndicator | Разрешает вывод колонки индикатора. Во время работы с базой данных текущая запись помечается в колонке индикатора треугольником, новая запись -- звездочкой, редактируемая -- специальным значком | | Options.dgColumnResize | Разрешает менять во время работы программы ширину колонок таблицы | | Options.dgColLines | Разрешает выводить линии, разделяющие колонки таблицы | | Options.dgRowLines | Разрешает выводить линии, разделяющие строки таблицы | | | 1.2.6 Свойства компонента CheckBoxКомпонент CheckBox представляет собой независимую кнопку (переключатель).Таблица 1.4 - Свойства CheckBox |
Свойство | Описание | | Caption | Текст, который находится справа от флажка | | Checked | Состояние, внешний вид флажка: если флажок установлен (в квадратике есть «галочка»), то значение Checked равно true; если флажок сброшен (нет «галочки»), то значение Checked равно false | | State | Состояние флажка. В отличие от свойства Checked, позволяет различать установленное, сброшенное и промежуточное состояния. Состояние флажка определяет одна из констант: cbChecked (установлен); cbGrayed (серый, неопределённое состояние); cbUnChecked (сброшен) | | AllowGrayed | Свойство определяет, может ли флажок быть в промежуточном состоянии: если значение AllowGrayed равно false, то флажок может быть только установленным или сброшенным; если значение AllowGrayed равно true, то допустимо промежуточное состояние | | Font | Шрифт, используемый для отображения поясняющего текста | | | 1.2.7 Свойства компонента ButtonКомпонент Button представляет собой кнопку, при нажатии которой будет происходить какое - либо событие.Таблица 1.5 - Свойства Button |
Свойство | Описание | | Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам | | Caption | Текст на кнопке | | Left | Расстояние от левой границы кнопки до левой границы формы | | Top | Расстояние от верхней границы кнопки до верхней границы формы | | Height | Высота кнопки | | Width | Ширина кнопки | | Enabled | Признак доступности кнопки. Если значение свойства равно true, то кнопка доступна. Если значение свойства равно false, то кнопка недоступна например, в результате щелчка на кнопке, событие Click не возникает | | Visible | Позволяет скрыть кнопку (false) или сделать ее видимой (true) | | Height | Высота кнопки | | Width | Ширина кнопки | | | 1.2.8 Свойства компонента TTabSheetКомпонент TTabSheet представляет собой кнопку, при нажатии которой будет происходить какое - либо событие.Таблица 1.5 - Свойства TTabSheet|
Свойство | Описание | | Name | Имя, по которому можно ссылаться на страницу | | Caption | Надпись, которая появляется на ярлычке закладки | | PageIndex | Индекс страницы, по которому можно ссылаться на страницу | | ImageIndex | Индекс изображения, которое может появляться на ярлычке закладки | | Style | Определяет стиль отображения компонента | | Images | Ссылка на компонент ImageList | | ScrollOpposite | Определят способ перемещения закладок при размещении их в несколько рядов | | ActivePage | Имя активной страницы | | PageCount | Количество страниц. Свойство только для чтения | | | 1.3 Постановка задачи1.3.1 Название и назначение разрабатываемого приложенияЯ назвал своё приложение “Автоматизированное рабочее место для продавца компакт дисков”.Разработанная программа предназначена для ведения учета и контроля за базой данных, спроектированной с учетом реализации запросов различного типа по получению информации.1.3.2 Спецификация входных и выходных данныхВходной информацией для данной программы являются:o Наименование диска; o Группа, к которой относятся диски; o Количество; o Закупочная цена; o Цена продажи; Выходной информацией для данной программы является o Сортировка данных по убыванию и возрастанию; o Добавление данных о дисках вновь поступающих в базу; o Фильтрация данных по некоторым полям; o Поиск и возврат дисков; o Визуализация приложения в удобной форме 1.3.3 Обоснование выбора средства программированияЯ выбрал RAD - систему Borland C++ Builder 6.0, потому что она изучена в течение семестра, а также является удобным и мощным средством для разработки как простых консольных приложений, так и обширных комплексных приложений с графическим интерфейсом.1.3.4 Требования к аппаратной части и ПОПерсональный компьютер фирмы IBM серии PC (или совместимый с этими моделями), работающий под управлением операционной системы (ОС) Windows 98/XP/Vista, оперативная память объемом не менее 32 Мбайт, процессор с тактовой частотой не менее 133 MHz, клавиатура, мышь.2. Технология разработки приложения2.1 Макет приложения2.1.1 Описание экранных формПри запуске программы появляется форма 1При нажатии на TabSheet2 появится следующая вкладка, в которой можно будет добавить информацию о дисках.При нажатии на TabSheet3 появится следующая вкладка, в которой можно При нажатии на TabSheet4 появится следующая вкладка, в которой можно будет удалять информацию о дисках с базы предварительно отфильтровав.При нажатии кнопки “О программе” появляется форма, в которой содержится информация о программе.2.1.2 Описание файлов проектаВажно отметить, что программа состоит из следующих файлов:- файл проекта (файл с расширением . cbproj);- файл описания класса формы (файл с расширением .h);- файл исходного текста (файл с расширением .cpp);- файл с описанием окон формы (файл с расширением .dfm);В файле проекта находится информация о модулях, составляющих данный проект.Файл исходного текста - программный модуль, предназначенный для размещения текстов программ на языке С++.Проект содержит следующие файлы Project1. cbproj - файл проекта, 2 модуля Unit1.cpp, Unit2.cpp и соответствующие им 2 формы.2.2 Описание программыПрограмма состоит из 2-х модулей:Unit1void __fastcall TForm1::N1Click(TObject *Sender)// Открытия формы2 показ информации о программеvoid __fastcall TForm1::Button1Click(TObject *Sender)// Добавление информации о дисках в БД.void __fastcall TForm1::TabSheet1Show(TObject *Sender)// Отображение данных БД в DBGrid1.void __fastcall TForm1::Button2Click(TObject *Sender)// Сортировка данных по убыванию или возрастанию.void __fastcall TForm1::Button3Click(TObject *Sender)// Фильтрация данных по значениям полей базы данных.void __fastcall TForm1::Button4Click(TObject *Sender)// Поиск данных в таблице по наименованию для удаления из БД.void __fastcall TForm1::Button5Click(TObject *Sender)// Удаление записи из БД.Unit2void __fastcall TAboutBox::OKButtonClick(TObject Sender)//закрытие формы №22.3 Результаты работы программыРезультатом курсовой работы является полноценное приложение с графическим интерфейсом, которое может считаться полноценной программой. После её запуска пользователю предоставляется возможность просмотреть существующую БД компакт дисков, отсортировать её по возрастанию или убыванию со следующим параметрам: наименование, группа, количество, закупочная цена и цена продажи. Так же пользователь имеет возможность самостоятельно добавить запись в базу данных, отфильтровать и удалить указанные записи.3. Руководство пользователяУстановка приложения производится посредством копирования всех файлов в любой каталог.Внимание: Обязательно присутствие в одном и том же каталоге всех файлов!Работа программы начинается с окна запуска программы Project1.exeПосле запуска программы появляется следующая формаВ результате приложение предоставляет пользователю полный доступ к базе данных компакт дисков. Для того чтобы отсортировать данные по какому либо из признаков необходимо выбрать все указанные поля и нажать кнопку выполнить. Для того чтобы добавить информацию о дисках необходимо обязательно заполнить все указанные поля и нажать кнопку добавить, иначе будет выведено на экран сообщение об ошибке.Также приложение позволяет осуществить фильтрацию и удаление дисков из базы данных, что тоже требует определенной внимательности при заполнении существующих полей, иначе можно встретить следующие сообщения об ошибке.ЗаключениеБаза данных - это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление, выборку и отображение информации.В ходе выполнения курсовой работы были выполнены все поставленные задачи и разработано работоспособное приложение “Автоматизированное рабочее место для продавца компакт дисков”. В частности, разработана и описана предметная область программы, разработан и реализован алгоритм на языке С++, проведено тестирование, которое не выявило существенных ошибок, однако это не исключает возможности их появления при проведении более глубокого и длительного тестирования.Так же в процессе выполнения работы были получены и закреплены практические навыки разработки программ с использованием SQL запросов и баз данных в написании программ в среде визуального программирования Borland C++ Builder 6.0.Список использованных источников1. Бобровский С. Самоучитель програмирования на языке C++ в среде Borland C++ Builder 2. Культин Н.Б. С++ Buider в задачах и примерах - СПб.:БХВ-Петербург, 2007. - 336с.: ил. 3. Лаптев В.В. C++. Экспресс-курс . 2004г. 4. Послед Б.С. Borland C++ Builder 6. Разработка приложений баз. 2003г. -360ст. 5. Технология разработки приложения на языке С++. Методическое указание к лабораторным работам для студентов первого курса специальности 080801.65 “Прикладная информатика” (по областям) 6. Учебник по программированию в среде С++ Builder 5, Д. Холингворт, Б. Сворт, Д. Баттерфилд 865 с. 7. Б., Эллисон Ч. Философия С++. Практическое программирование. С.Петербург 2004г. 608 с.:ил. ПриложениеЛистинг файла - проекта Project1.cpp//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "ABOUT.h"#include "Unit1.h"#include "Unit2.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){ADOConnection1->Connected = false;ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ExtractFileDir(Application->ExeName)+" \\ БАЗА ДАННЫХ \\ CD.mdb; Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";ADOConnection1->Connected = true;PageControl1->ActivePage = TabSheet1;}//---------------------------------------------------------------------------void __fastcall TForm1::N1Click(TObject *Sender){AboutBox->Show();}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){DataSource1->DataSet = ADOQuery1;ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT [Наименование] FROM Tab1 WHERE [Наименование] =\""+Edit1->Text+"\";");ADOQuery1->ExecSQL();ADOQuery1->Open();if(Edit1->Text!=""&&ComboBox1->Text!=" "&&Edit2->Text!=" "&Edit3->Text!=""&&Edit4->Text!=""){if(ADOQuery1->RecordCount==0){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("INSERT INTO Tab1 ([Наименование],[Группа],[Количество],[Закупочная цена],[Цена продажи])");ADOQuery1->SQL->Add("Values("+QuotedStr(Edit1->Text)+","+QuotedStr(ComboBox1->Text)+","+Edit2->Text+","+Edit3->Text+","+Edit4->Text+");");ADOQuery1->ExecSQL();}else{MessageDlg("Такие диски уже есть!"mtInformation,TMsgDlgButtons()<<mbOK,0);}else{MessageDlg("Введены не все данные для добавления диска(-ов) в базу!"mtInformation,TMsgDlgButtons()<<mbOK,0);}Edit1->Clear();ComboBox1->Clear();Edit2->Clear();Edit3->Clear();Edit4->Clear();}//---------------------------------------------------------------------------void __fastcall TForm1::TabSheet1Show(TObject *Sender){DataSource1->DataSet = ADOQuery1;ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1;");ADOQuery1->ExecSQL();ADOQuery1->Open();}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ADOQuery1->SQL->Clear();if(RadioButton1->Checked){ADOQuery1->SQL->Add("SELECT * FROM Tab1 ORDER BY +["+ComboBox2->Text+"] DESC;");ADOQuery1->ExecSQL();DataSource1->DataSet = ADOQuery1;ADOQuery1->Open();}else{if(RadioButton2->Checked){ADOQuery1->SQL->Add("SELECT * FROM Tab1 ORDER BY +["+ComboBox2->Text+"] ASC;");ADOQuery1->ExecSQL();DataSource1->DataSet = ADOQuery1;ADOQuery1->Open();}}}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){if(RadioButton3->Checked){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Наименование] "+ComboBox3->Text+"\""+Edit5->Text+"\";");ADOQuery1->ExecSQL();ADOQuery1->Open();ComboBox3->Clear();Edit5->Clear();}else{if(RadioButton4->Checked){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Группа] "+ComboBox4->Text+"\""+ComboBox8->Text+"\";");ADOQuery1->ExecSQL();ADOQuery1->Open();ComboBox4->Clear();ComboBox8->Clear();}else{if(RadioButton5->Checked){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Количество] "+ComboBox5->Text+" "+Edit7->Text+";");ADOQuery1->ExecSQL();ADOQuery1->Open();ComboBox5->Clear();Edit7->Clear();}else{if(RadioButton6->Checked){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Закупочная цена] "+ComboBox6->Text+" "+Edit8->Text+";");ADOQuery1->ExecSQL();ADOQuery1->Open();ComboBox6->Clear();Edit8->Clear();}else{if(RadioButton7->Checked){ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Цена продажи] "+ComboBox7->Text+" "+Edit9->Text+";");ADOQuery1->ExecSQL();ADOQuery1->Open();ComboBox7->Clear();Edit9->Clear();}else{MessageDlg("Укажите хотя бы одно поле..."mtInformation,TMsgDlgButtons()<<mbOK,0);}}}}}}//---------------------------------------------------------------------------void __fastcall TForm1::Button4Click(TObject *Sender){if(Edit10->Text!=""){//MessageDlg("Укажите не достаюшие поля..."mtInformation,TMsgDlgButtons()<<mbOK,0);}ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add("SELECT * FROM Tab1 WHERE [Наименование] =\""+Edit10->Text+"\";");ADOQuery1->ExecSQL();ADOQuery1->Open();Edit10->Clear();} else{MessageDlg("Укажите не достаюшие поля..."mtInformation,TMsgDlgButtons()<<mbOK,0);}}//---------------------------------------------------------------------------void __fastcall TForm1::Button5Click(TObject *Sender){ADOQuery1->Delete();}//---------------------------------------------------------------------------
Страницы: 1, 2
|