|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Разработка электронного органайзера средствами C++ Builder 6Разработка электронного органайзера средствами C++ Builder 62 Курсовая работа РАЗРАБОТКА ЭЛЕКТРОННОГО ОРГАНАЙЗЕРА СРЕДСТВАМИ C++ BUILDER 6 Оглавление
Табл. 2 Структура таблицы TBL_ PEOPLE
Таблицы между собой не связаны, т.к несут разную смысловую нагрузку и реализуют разные задачи в приложении. Таблица TBL_EVENTS предназначена для работы планировщика задач. Она содержит данные о введенных событиях (название, дата). Таблица TBL_ PEOPLE предназначена для работы адресной книги. Она содержит данные о персоне (Ф.И. О, адрес, телефон (дом, раб, сотовый), ICQ, e-mail, дата рождения, название фирмы, должность). 2.2 Программная структура приложения "Organizer 1.0"В приложении используются:главная форма с главным меню, обеспечивающим переход ко всем функциям приложения (frmMain);формы, используемые Планировщиком задач для просмотра (frmViewEv), редактирования (frmEditEv) и добавления событий (frmAddEv);формы, используемые Адресной книгой для просмотра (frmBook), добавления (frmAddB) и редактирования записей (frmEditB), а также форма поиска в книге по различным параметрам (frmSearchB);модуль данных (DM), который содержит в себе компоненты DataSource, IBDataBase, IBTranzaction, IBQuery, обеспечивающие работу с базой данных.Для реализации просмотра, добавления и редактирования информации в приложении использованы следующие компоненты С++ Builder:IBDatabase Этот компонент в основном используется в приложениях, работающих на платформе InterBase. Его задачи связаны с общением с удаленным сервером, реализацией транзакций, работой с паролями.IBTransaction - организует управление транзакциями.DataSource В качестве источника данных всегда используется размещенный на странице Data Access компонент DataSource. Он связывается с набором данных своим свойством Data Set.IBQuery - невизуальный компонент набора данных, выполняющий запросы SQL к серверу InterBase.DBGrid представляет собой таблицу, в которой могут отображаться поля строк, числовые и булевы поля. Для связи этого компонента с набором данных используется только одно свойство - DataSource.DBNavigator - набор кнопок для навигации по DBGrid.2.3 Главная формаНа главной форме приложения представлено:главное меню,календарь,навигационные кнопки, обеспечивающие быстрый доступ к адресной книге и планировщику задач соответственно,список событий запланированных на сегодня.Рис. Главная форма2.3.1 Структура Главного менюФайлАдресная книга (осуществляет переход на форму, отображающую записи Адресной книги - frmBook)Напоминалка (осуществляет переход на форму, отображающую записи о событиях frmViewEv)Выход (закрывает приложение)Адресная книга2.1 Просмотреть (осуществляет переход на форму, отображающую записи Адресной книги - frmBook)2.2 Найти человека (осуществляет переход на форму поиска персоны по различным введенным данным - frmSearchB)2.3 Добавить новую запись (осуществляет переход на форму, добавляющую записи в Адресную книгу - frmAddB)3. События3.1 Просмотр событий (осуществляет переход на форму, отображающую записи о событиях frmViewEv)3.2 Создать напоминание (осуществляет переход на форму, добавляющую записи в Планировщик задач - frmAddEv)2.3.2 КалендарьВ качестве календаря для приложения был взят компонент C++ Builder TMonthCalendar, который находится во вкладке Win32.Компонент TMonthCalendar (Календарь) используется для быстрого выбора даты с помощью мыши. Сразу после размещения в форме календарь готов к работе.Рис.3. Календарь на формеВ красном кружке выделена текущая дата (она же подробнее указана в нижней части календаря), синим подсвечена дата, выбранная с помощью мыши или дата, устанавливаемая в календаре по умолчанию. Слева можно отображать номера недель в году (свойство WeekNumbers). С помощью кнопок в верхней части календаря можно перемещаться по месяцам. Чтобы вернуться к месяцу с текущей датой, достаточно щелкнуть на ней в нижней части календаря.Кроме информативной, календарь выполняет также одну из основных функций приложения. При двойном щелчке мыши на календарь вызывается форма добавления нового напоминания, что упрощает работу пользователя с программой.2.3.3 Список текущих событийРеализован при помощи компонента DBGrid. Он связан с ресурсом данных DS1 и запросом на выборку qr4, находящимися в модуле данных DM.При каждом запуске приложения выполняется функция FormCreate, которая выглядит следующим образом:void __fastcall TfrmMain:: FormCreate (TObject *Sender){MonthCalendar1->Date = Date ();DM->qr4->Close ();DM->qr4->SQL->Clear ();DM->qr4->SQL->Text="SELECT DATE1, NAME FROM TBL_EVENTS where DATE1=: CURRENT_DATE";DM->qr4->ParamByName ("CURRENT_DATE") - >AsDate = Date ();DM->qr4->Open ();DM->qr4->FetchAll ();}Здесь запрос qr4 производит выборку данных из таблицы TBL_EVENTS, значение столбца DATE1 которых совпадает с текущей датой.2.4 Планировщик задач2.4.1 Форма управления планировщиком задачПланировщик задач вызывается с помощью главного меню: "События", "Просмотр событий". Появляется форма (frmViewEv), которая позволяет просматривать, добавлять, редактировать и удалять записи.Рис.4 Форма управления планировщиком задач.На форме представлено содержимое таблицы TBL_EVENTS, с помощью DBGrid. Под таблицей расположены навигационные клавиши, позволяющие перемещаться по записям таблицы вперед и назад. Они реализованы при помощи компонента DBNavigator. Он связывается с базой данных ORGANIZER через свойство DataSet.Функциональная клавиша "Удалить" удаляет всю текущую запись в DBGrid с помощью функции btnDelClick:void __fastcall TfrmViewEv:: btnDelClick (TObject *Sender){if (Application->MessageBox ("Вы действительно хотите удалить эту запись??","Подтвердите удаление",MB_OKCANCEL + MB_ICONQUESTION) ! = IDCANCEL){try{DM->qr5->Close ();DM->qr5->SQL->Clear ();DM->qr5->SQL->Text = "DELETE from TBL_EVENTS where id=: id";DM->qr5->ParamByName ("id") - >AsInteger=DM->qr1->FieldByName ("id") - >AsInteger;DM->qr5->Prepare ();DM->qr5->ExecSQL ();DM->IBTransaction1->Commit ();DM->qr1->Close ();DM->qr1->SQL->Clear ();DM->qr1->SQL->Text = "SELECT * FROM TBL_EVENTS";DM->qr1->Open ();DM->qr1->FetchAll ();}catch (. .){DM->IBTransaction1->Rollback ();ShowMessage ("Error");}}}При нажатии кнопки "Удалить" функция вызывает диалоговое окно пользователя MessageBox, под названием "Подтвердите удаление", вопросом пользователю "Вы действительно хотите удалить эту запись?" и кнопками "Да" и "Отмена".При нажатии кнопки "Да" функция выполняет SQL-запрос к таблице TBL_EVENTS, удаляющий запись с текущим ID.При нажатии "Отмена" функция возвращается на форму управления планировщиком задач.На форме также представлена возможность просмотра записей таблицы TBL_EVENTS за определенный промежуток времени. Для этого на форму помещены два компонента DataTimePicker, задающие этот промежуток по датам. Нажатие кнопки "Просмотр" реализует следующая функция:void __fastcall TfrmViewEv:: btnViewClick (TObject *Sender){DM->qr1->Close ();DM->qr1->SQL->Clear ();DM->qr1->SQL->Text="SELECT DATE1, NAME FROM TBL_EVENTS where DATE1 between: d1 and: d2";DM->qr1->ParamByName ("d1") - >AsDate=DateTimePicker1->Date;DM->qr1->ParamByName ("d2") - >AsDate=DateTimePicker2->Date;DM->qr1->Open ();DM->qr1->FetchAll ();}После нажатия кнопки "Просмотр" выполняется SQL-запрос, который делает выборку тех записей в таблице TBL_EVENTS, значения столбца которых находятся в промежутке между значениями DataTimePickerов, которые посылаются в запрос в качестве параметров.Функциональные клавиши "Добавить" и "Редактировать" вызывают формы добавления и редактирования событий соответственно.2.4.2 Форма добавления нового напоминанияФорма вызывается как из главного меню, так и с главной формы приложения нажатием кнопки "Напомнить о…", а также из формы управления планировщиком задач.Рис.5. Форма добавления нового напоминанияНа форме помещены 2 компонента: DateTimePicker1 и Memo1. после ввода соответствующей информации и нажатии на кнопку "ОК" вызывается функция BitBtn1Click:void __fastcall TfrmAddEv:: BitBtn1Click (TObject *Sender){try{DM->qr1->SQL->Clear ();DM->qr1->SQL->Add ("INSERT into tbl_events (DATE1,TIME1,NAME) values (: par1,: par2,: par3)");DM->qr1->ParamByName ("par1") - >AsDate=DateTimePicker1->Date;DM->qr1->ParamByName ("par2") - >AsTime=DateTimePicker1->Time;DM->qr1->ParamByName ("par3") - >AsString= (Memo1->Text);DM->qr1->ExecSQL ();DM->IBTransaction1->Commit ();ShowMessage ("successfull");}catch (. .){DM->IBTransaction1->Rollback ();ShowMessage ("Error");}Она выполняет подстановку значений DateTimePicker1и Memo1 при помощи параметров в запрос qr1 для добавления новой записи в таблицу TBL_EVENTS.2.4 3 Форма редактирования выбранного напоминанияФорма редактирования выбранного напоминания вызывается при помощи нажатия кнопки "Редактировать" на форме управления планировщиком задач.Рис.6. Форма редактирования выбранного напоминанияЧтобы форма выводила значения компонентов DateTimePicker1и Memo1 была написана функция FormShow:void __fastcall TfrmEditEv:: FormShow (TObject *Sender){DM->IBQuery1->Close ();DM->IBQuery1->SQL->Clear ();DM->IBQuery1->SQL->Text = "SELECT * FROM TBL_EVENTS where id=: par";DM->IBQuery1->ParamByName ("par") - >AsInteger=DM->qr1->FieldByName ("ID") - >AsInteger;DM->IBQuery1->Open ();DM->IBQuery1->FetchAll (); // ShowMessage (DM->IBQuery1->FieldByName ("DATE1") - >AsString);DateTimePicker1->Date = DM->IBQuery1->FieldByName ("DATE1") - >AsDateTime;Memo1->Text = DM->IBQuery1->FieldByName ("NAME") - >AsString;}А процесс сохранения измененной записи описывается функцией BitBtn1Click:void __fastcall TfrmEditEv:: BitBtn1Click (TObject *Sender){ // DM->IBTransaction1->StartTransaction ();try{DM->qr2->Params->Clear ();DM->qr2->Close ();DM->qr2->SQL->Clear ();DM->qr2->SQL->Text="UPDATE TBL_EVENTS a SET a. name=: par22,date1=: par1 where id=: par3";DM->qr2->ParamByName ("par1") - >AsDateTime= DateTimePicker1->DateTime;DM->qr2->ParamByName ("par22") - >AsString= Memowhat->Text;DM->qr2->ParamByName ("par3") - >AsInteger=DM->qr1->FieldByName ("id") - >AsInteger;DM->qr2->Prepare ();DM->qr2->ExecSQL ();DM->IBTransaction1->Commit ();frmEditEv->ModalResult = mrOk;}catch (. .){DM->IBTransaction1->Rollback ();ShowMessage ("Ошибка при обновлении данных");}}Она выполняет обновление таблицы TBL_EVENTS новыми значениями DateTimePicker1и Memo1 запросом qr2.2.5 Адресная книга2.5 1 Форма управления адресной книгойАдресная книга вызывается из помощи главного меню "Файл"-"Адресная книга" или "Адресная книга"-"Просмотреть" или нажатием кнопки "Адресная книга" на главной форме.Рис.7. Форма управления адресной книгойАдресная книга позволяет просматривать, добавлять, удалять и редактировать записи таблицы TBL_PEOPLE.Функции удаления, добавления и редактирования реализованы точно так же как и в форме управления планировщиком задач, за исключением того, что в запросах используется таблица TBL_PEOPLE и ее соответствующие поля.Рис.8. Форма добавления новой записи в Адресную книгуНа формах просмотра и добавления новой записи Адресной книги имеется кнопка "Поиск", нажатие на которую вызывает форму поиска по параметрам.2.5.2 Форма поиска по параметрамФорма поиска по параметрам вызывается из главного меню "Адресная книга" "Найти человека" или из форм просмотра и добавления записей Адресной книги нажатием кнопки "Поиск".Поиск человека в адресной книге можно производить по трем параметрам:по фамилиипо дате рожденияпо месту работыРис.9. Форма поиска по параметрамДля каждого поиска по параметрам предусмотрена отдельная кнопка, нажатие которой выполняет функцию, реализующую выборку записей таблицы TBL_EVENTS отвечающие ключевым словам поиска.Поиск по фамилии реализует следующая функция:void __fastcall TfrmSearchB:: btn1Click (TObject *Sender){DM->qr123->Close ();DM->qr123->SQL->Clear ();DM->qr123->SQL->Text="SELECT * FROM TBL_PEOPLE where FAMILIA=: par1";DM->qr123->ParamByName ("par1") - >AsString=Edit1->Text;DM->qr123->Open ();DM->qr123->FetchAll ();}ЗаключениеВ результате проделанной курсовой работы был создан электронный органайзер "Organizer 1.0". Кроме функций классического органайзера он может использоваться как база клиентов, программа записной книжки для хранения контактов людей и предприятий, заметок, событий, праздников, юбилеев. Электронный ежедневник содержит удобный планировщик задач с напоминалкой. Каждая персона может сопровождаться такой информацией как Ф.И. О, адрес, телефон (дом, раб, сотовый), ICQ, e-mail, дата рождения, название фирмы, должность. В приложении есть функция быстрого поиска по адресной книге по нескольким параметрам, что существенно сокращает время для поиска нужной информации. В планировщике задач есть возможность просмотра событий за определенный промежуток времени, что поможет еще лучше спланировать свой рабочий график.В будущем, возможно, будет разработана более усовершенствованная вервия. Например, можно расширить возможности адресной книги, если реализовать загрузку фотографий для каждого контакта. А также дополнить планировщик задач загрузкой и выгрузкой документов MSOffice.Список использованных источниковАрхангельский А.Я. C++Builder 6. Справочное пособие. Книга 1. Язык C++. - М.: Бином-Пресс, 2002 г. - 544 с.: ил. Архангельский А.Я. C++Builder 6. Справочное пособие. Книга 2. Классы и компоненты. М.: Бином-Пресс, 2002 г. - 528 с.: ил. Хомоненко А.Д., Ададуров С.Е. Работа с базами данных в C++ Builder. - СПб.: БХВ-Петербург, 2006. - 496 с: ил. http://it. kgsu.ru/ |
РЕКЛАМА
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |