Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт.doc
Скачиваний:
15
Добавлен:
14.02.2016
Размер:
353.79 Кб
Скачать

2. Практична частина

2.1.1 Функціональні частини програми

Умовно можна поділити програму на три функціональні рівні: ввід даних, освоєння їх програмою і вивід нагадування. Нижче слідує короткий опис кожного з них.

Отже, ввід даних це перший крок, який ми маємо виконати, загалом для цього необхідно зазначити дату (число і місяць), коли має відбутись запланована подія. Цей перший крок є найлегшим і на ньому базується вся подальша робота програми.

Другий рівень заключається в обробці даних програмою. Він являється найважливішим, адже саме тут відбувається аналіз вхідних даних і вибір того, яким має бути результат

Третій рівень це результат обробки інформації і виведення у вказаний час нагадування та сповіщення за допомогою відтворення звукового файлу .

2.1.3. Опис алгоритму

Початок

Головне вікно

Введення подій

Обробка подій

Виведення

нагадувань

Видалення

подій які відбулися

Кінець

2.2. Тестування моделі

Запускаємо створену програму, відкривається головне вікно програми. Там ми бачимо заплановані події, а також календар, поточний час, та меню програми.(рис. 1)

Рис. 1

Далі ми можемо встановити якусь подію, використовуючи вікно додавання подій (рис. 2)

Рис. 2

Після того як ми записали подію і натиснули кнопку ок, відкривається діалогове вікно відкриття звукового файлу, який почне відтворюватись, коли настане час події.(рис.3)

Рис. 3

Саме нагадування події матиме наступний вигляд , воно відкривається, коли настає час події і виводиться на екран, а разом з ним починає відтворюватись звуковий файл який був вибраний користувачем під час додавання події.(Рис. 4)

Рис.4

2.3. Інтерфейс та керівництво користувача

Відкрити програму можна двічі клікнувши лівою кнопкою миші на ярлику. Після цього відкривається головна форма, на якій ви бачите заплановані події, календар, годинник та меню програми. Потім ви можете додати нову подію. Це можна зробити трьома способами: вибравши в меню пункт Події->Додати, клікнувши на кнопці додати на панелі, яка знаходиться трохи нижче меню, або двічі клікнувши на відповідну дату в календарі. Потім користувач вводить дані у вікні додавання подій і зберігає їх натиснувши кнопку ОК. А далі вже програма автоматично обробляє дані і в потрібний момент вмикає звуковий файл і виводить нагадування на монітор. Якщо ви помітили нагадування, то натисніть на кнопці ОК і програма закриє це вікно а також видалить подію з пам’яті.

Висновок

Курсова робота завершилась написанням висновку. Що ж, підведемо певні підсумки.

На основі мови програмування С++ було створено багато програм, що дозволяють людям більш зручно і раціонально використовувати час.

Так, як програма складається з окремих модулів, то кожний модуль можна використовувати для реалізації інших подібних програм, які необхідно виконати в стислий термін.

Таким чином, програмування на C++ та відкриває перед програмістом безмежну кількість варіантів та можливостей реалізації поставлених задач, а це досить важливо сьогодні, так як комп’ютери та комп’ютерні мережі та системи стали застосовуватись практично у всіх галузях

Важливим плюсом цієї конкретної програми є її простота, бо кожен намагається знайти речі, які будуть зручні у використанні і прості в освоєнні. Дана програма являється однією з таких речей, вона дає можливість відволіктись від думок про можливість забути про щось, так як є певним залогом впевненості.

В наш час багато хто покладає велику надію на цифрову, компютерну техніки, це стало вже необхідністю, а така річ як календарне планування подій для кожного стане корисною, бо пам'ять часто підводить, це звична річ, мати помічника, котрий не підведе, а, хто може бути кращим помічником, ніж технологія ХХІ століття?

Розумним завершенням висновку буде лише одне, тестування програми, бо лиш так всі бажаючі можуть переконатись у її доцільності і зручності.

Список використаної літератури

1) http://www.online.ru/sp/eel/russian

2)Adobe Illustrator 9.0.- K.: Диа-Софт, 2001.- 368с.

3) Agent Technology: Foundations, Applications, and Markets/ N.R.Jennings, M.J.Wooldridge (Eds.).- BerlinTokyo: Springer, 2002.- 325p.- 258.73

4) Harris, Chris Adaptive Modelling, Estimation and Fusion from Data: A Neurofuzzy Approach/ C.Harris, X.Hong, Q.Gan.- BerlinTokyo: Springer, 2002.- 323p.- На англ. Яз.- 552.35

5) Visual C и MFC курс МCSD профессионалов.- СПб: Питер

6) Object Windows для C++..- К: Диалектика, 1993.- 208с.

7) Архангельский А.Я. Программирование C++ Builder 6.- М.: БИНОМ, 2003.-

8) Архангельский А.Я. Программирование C++ Builder 6.- М.: БИНОМ, 2003.- 1152с.

9) Архангельский А.Я. Программирование в С++Builder 5..- М.: ЗАО"Изд-во БИНОМ", 2000.- 1152с.

10) Архангельский А.Я. Программирование в С++Builder 6.- М.: Бином, 2002.- 1152с.

11) Бишоп Дж., Хорспул Н. C# в кратком изложении.- М.: БИНОМ. Лаборатория знаний, 2005.-

Додаток 1. Лістинг програми

Unit1.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#include "Unit3.h"

#include "Registry.hpp"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "trayicon"

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

StringGrid1->Cells[0][0]="Дата";

StringGrid1->Cells[1][0]="Час";

StringGrid1->Cells[2][0]="Тема";

StringGrid1->Cells[3][0]="Подія";

}

//--------------------------------------------------------------------------

void __fastcall TForm1::ExitExecute(TObject *Sender)

{

TStringList *Table = new TStringList;

for(int i = 0 ; i < StringGrid1->RowCount ; i++){

Table->Add(StringGrid1->Rows[i]->DelimitedText);

}

Table->SaveToFile(ExtractFilePath(Application->ExeName)+"dat.txt");

delete Table;

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::EditExecute(TObject *Sender)

{

Form2->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::MonthCalendar1DblClick(TObject *Sender)

{

AnsiStringdat = "";

dat = Form1->MonthCalendar1->Date;

Form2->DateTimePicker1->DateTime = dat;

Form2->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

TimePanel1->Caption=TimeToStr(Time());

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

TRegistry *reg = new TRegistry();

reg->RootKey=HKEY_CURRENT_USER;

reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);

reg->WriteString("Client",Application->ExeName);

reg->CloseKey();

deletereg;

TStringList *Table = new TStringList;

Table->LoadFromFile(ExtractFilePath(Application->ExeName)+"dat.txt");

for(int i = 0 ; i < (StringGrid1->RowCount-1) ; i++)

{

StringGrid1->Rows[i]->DelimitedText = Table->Strings[i];

}

delete Table;

//читаннязфайлу//

}

//---------------------------------------------------------------------------

void __fastcall TForm1::AboutBoxExecute(TObject *Sender)

{AboutBox->ShowModal();

}

//--------------------------------------------------------------------------

void __fastcall TForm1::N4Click(TObject *Sender)

{

AboutBox->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Visible = true;

TrayIcon1->Restore();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N9Click(TObject *Sender)

{

Form1->Visible = false;

}

//--------------------------------------------------------------------------

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool&CanClose)

{

CanClose = false;

TrayIcon1->Visible = true;

Form1->Hide();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N10Click(TObject *Sender)

{

Application->Terminate();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N11Click(TObject *Sender)

{

TStringList *Table = new TStringList;

for(int i = 0 ; i < StringGrid1->RowCount ; i++){

Table->Add(StringGrid1->Rows[i]->DelimitedText);

}

Table->SaveToFile(ExtractFilePath(Application->ExeName)+"dat.txt");

deleteTable;

Close();

}

//---------------------------------------------------------------------------

Unit2.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

int S;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{S++;

Form1->StringGrid1->RowCount=S+1;

Form1->StringGrid1->FixedRows=1;

Form1->StringGrid1->Cells[0][S]=DateTimePicker1->Date;

Form1->StringGrid1->Cells[1][S]=DateTimePicker2->Time;

Form1->StringGrid1->Cells[2][S]=Edit1->Text;

Form1->StringGrid1->Cells[3][S]=Memo1->Text;

Form4->Label1->Caption = Memo1->Text;

Form2->Close();

{

do

{

if(OpenDialog1->Execute())

{

MediaPlayer1->FileName=OpenDialog1->FileName;

}

if(MediaPlayer1->FileName=="")

Application->MessageBox("Виповиннівибратимелодіюдлянагадування!", MB_OK+MB_ICONWARNING);

}

while(MediaPlayer1->FileName=="");

iAlarmDates=StrToInt(FormatDateTime("d", DateTimePicker1->Date));

iAlarmMonth=StrToInt(FormatDateTime("m", DateTimePicker1->Date));

iAlarmYears=StrToInt(FormatDateTime("yyyy", DateTimePicker1->Date));

iAlarmHours=StrToInt(FormatDateTime("h", DateTimePicker2->Time));

iAlarmMinutes=StrToInt(FormatDateTime("n", DateTimePicker2->Time));

MediaPlayer1->Open();

Timer1->Enabled=true;

bIsTimerOn=true; //

}

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Form2->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::FormActivate(TObject *Sender)

{

bIsTimerOn=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Timer1Timer(TObject *Sender)

{

if(bIsTimerOn==true)

{iDates=StrToInt(FormatDateTime("d", Date()));

iMonth=StrToInt(FormatDateTime("m", Date()));

iYears=StrToInt(FormatDateTime("yyyy", Date()));

iHours=StrToInt(FormatDateTime("h", Time()));

iMinutes=StrToInt(FormatDateTime("n", Time()));

if((iHours==iAlarmHours) && (iMinutes>=iAlarmMinutes)&&(iDates==iAlarmDates)&&(iMonth==iAlarmMonth)&&

(iYears==iAlarmYears))

{ Form4->Show();

MediaPlayer1->Play();

}

if(MediaPlayer1->Mode==mpPlaying) bIsTimerOn==false;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm2::FormCreate(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Unit 3.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

//---------------------------------------------------------------------------

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm4::Button1Click(TObject *Sender)

{Form2->Timer1->Enabled=false;

Form2->MediaPlayer1->Stop();

Form4->Close();

int j;

int r = Form1->StringGrid1->Row;

if (r < Form1->StringGrid1->FixedRows|| r >=Form1->StringGrid1->RowCount) return;

(j, r, Form1->StringGrid1->RowCount-1); {

Form1->StringGrid1->Cols[j] = Form1->StringGrid1->Cols[j+1];

Form1->StringGrid1->Cells[0][j] =Form1->StringGrid1->Cells[0][j+1]; // (*)

}

Form1->StringGrid1->RowCount = Form1->StringGrid1->RowCount - 1;

}

Unit1.h

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ActnList.hpp>

#include <ComCtrls.hpp>

#include <ImgList.hpp>

#include <Menus.hpp>

#include <ToolWin.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include "trayicon.h"

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TMainMenu *MainMenu1;

TMenuItem *N2;

TMenuItem *N3;

TMenuItem *N4;

TMenuItem *N5;

TMenuItem *N6;

TMenuItem *N7;

TToolBar *ToolBar1;

TImageList *ImageList1;

TToolButton *ToolButton1;

TToolButton *ToolButton2;

TToolButton *ToolButton3;

TToolButton *ToolButton4;

TToolButton *ToolButton5;

TToolButton *ToolButton6;

TToolButton *ToolButton7;

TActionList *ActionList1;

TAction *Exit;

TAction *Edit;

TAction *Add;

TMonthCalendar *MonthCalendar1;

TGroupBox *TimeBox1;

TPanel *TimePanel1;

TStringGrid *StringGrid1;

TTimer *Timer1;

TTrayIcon *TrayIcon1;

TPopupMenu *PopupMenu1;

TMenuItem *N8;

TMenuItem *N9;

TMenuItem *N10;

TMenuItem *N1;

TMenuItem *N11;

void __fastcallExitExecute(TObject *Sender);

void __fastcallEditExecute(TObject *Sender);

void __fastcall MonthCalendar1DblClick(TObject *Sender);

void __fastcall Timer1Timer(TObject *Sender);

void __fastcallFormCreate(TObject *Sender);

void __fastcallAboutBoxExecute(TObject *Sender);

void __fastcall N4Click(TObject *Sender);

void __fastcall N8Click(TObject *Sender);

void __fastcall N9Click(TObject *Sender);

void __fastcallFormCloseQuery(TObject *Sender, bool&CanClose);

void __fastcall N10Click(TObject *Sender);

void __fastcall N5Click(TObject *Sender);

void __fastcall N11Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcallTForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]