Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсовая docx100 / Kursovaya_rabota(13).docx
Скачиваний:
168
Добавлен:
07.08.2013
Размер:
677.99 Кб
Скачать

Глава 2.Разработка электронного органайзера на Delphi.

2.1 Определение архитектуры и функциональной характеристики электронного органайзера

Электронный органайзер - программный продукт, который состоит из нескольких компонентов: календарь, блокнот, будильник, калькулятор и адресная книга.

При создании органайзера использовались следующие объекты:

  • Органайзер:

    • Image1

    • Label1

    • Label2

    • Label3

    • Label4

    • Label5

    • MainMenu1

    • Timer1

  • Календарь:

    • Button1

    • Button2

    • Button3

    • Calendar1

    • ComboBox1

    • Image1

    • Label1

    • SpinEdit1

  • Блокнот:

    • FontDialog1

    • MainMenu1

    • Memo

    • OpenDialog1

    • PrintDialog1

    • SaveDialog1

  • Будильник:

    • Button1

    • Edit1

    • Image1

    • Label1

  • Калькулятор:

    • Button1

    • Button2

    • Button3

    • Button4

    • Button5

    • Button6

    • Button7

    • Button8

    • Button9

    • Button10

    • Button11

    • Button12

    • Button13

    • Button14

    • Button15

    • Button16

    • Button17

    • Button18

    • Button19

    • Button20

    • Button21

    • Button22

    • Button23

    • Button24

    • Edit1

    • Image1

  • Адресная книга:

  • Button1

  • Button2

  • Button3

  • Button4

  • Image1

  • SaveDialog1

2.2 Кодирование, тестирование и отладка программы «Электронный органайзер»

Кодирование программы

  • Органайзер:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DateUtils, ExtCtrls, StdCtrls, Buttons, Menus;

type

TForm1 = class(TForm)

Timer1: TTimer;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,y:word;

implementation

uses Unit2, Unit3, Unit4, Unit6;

procedure TForm1.Button1Click(Sender: TObject);

var z: integer;

begin

z:= MessageDLG('Закрыть приложение? ', mtInformation, [mbOk,mbCancel],0);

case z of

mrOk: Form1.close;

mrCancel: exit;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Label2.Caption:=TimeToStr(Time);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Label1.Caption:=DateToStr(Date);

Label3.Caption:=Variant(DayOfTheYear(Date));

begin

x:= DayOfWeek(Date);

Case x of

1: Label4.Caption:='воскресенье';

2: Label4.Caption:='понедельник';

3: Label4.Caption:='вторник';

4: Label4.Caption:='среда';

5: Label4.Caption:='четверг';

6: Label4.Caption:='пятница';

7: Label4.Caption:='суббота';

end;end;

begin

y:=MonthOfTheYear(Date);

Case y of

1: Image1.Picture.LoadFromFile('1.bmp');

2: Image1.Picture.LoadFromFile('2.bmp');

3: Image1.Picture.LoadFromFile('3.bmp');

4: Image1.Picture.LoadFromFile('4.bmp');

5: Image1.Picture.LoadFromFile('5.bmp');

6: Image1.Picture.LoadFromFile('6.bmp');

7: Image1.Picture.LoadFromFile('7.bmp');

8: Image1.Picture.LoadFromFile('8.bmp');

9: Image1.Picture.LoadFromFile('9.bmp');

10: Image1.Picture.LoadFromFile('10.bmp');

11: Image1.Picture.LoadFromFile('11.bmp');

12: Image1.Picture.LoadFromFile('12.bmp');

end;end;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

form4.Show;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form6.Show;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

form2.Show;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

form1.Close;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

ShowMessage ('Автор: Ахмедзян Анна Сергеевна ');

end;

procedure TForm1.N9Click(Sender: TObject);

begin

form5.show;

end;

end.

Календарь:

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, Spin, Grids, Calendar, DateUtils, ExtCtrls;

type

TForm4 = class(TForm)

Calendar1: TCalendar;

SpinEdit1: TSpinEdit;

ComboBox1: TComboBox;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label1: TLabel;

Image1: TImage;

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Calendar1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1;

procedure TForm4.FormCreate(Sender: TObject);

var I: Integer;

begin

Button1.Width := 25;

Button3.Width := 25;

Label1.Font.Style :=[fsBold];

// Задаем номер первого дня в неделе (1 = понедельник)

Calendar1.StartOfWeek := 1;

SpinEdit1.MinValue := 1;

SpinEdit1.MaxValue := 9999;

// Заполняем список названиями месяцев

for I := 1 to MonthsPerYear do

ComboBox1.Items.Add(LongMonthNames[i]);

Button2Click(Sender);

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

Calendar1.CalendarDate := Now;

end;

procedure TForm4.Calendar1Change(Sender: TObject);

var

Tmp : String;

begin

// Выводим во вспомагательную строку дату, выбранную в календаре

// В собственном формате

Tmp:=FormatDateTime ('d. mmmm yyyy', Calendar1.CalendarDate);

// Вспомогательную строку отображаем в надписи

Label1.Caption := 'Календарь: ' + Tmp;

// Прокручиваем список до выбраного месяца

// (месяцы в календаре нумеруются от 1, а элементы

// списка — от 0, поэтому вычитаем 1)

ComboBox1.ItemIndex :=Calendar1.Month - 1;

// Прокручиваем поле со сткрелками до выбраного года

SpinEdit1.Value:= Calendar1.Year;

end;

procedure TForm4.SpinEdit1Change(Sender: TObject);

begin

// Прокручиваем календарь до года, выбраного в SpinEdit

Calendar1.Year := SpinEdit1.Value;

end;

procedure TForm4.ComboBox1Change(Sender: TObject);

begin

// Прокручиваем календарь до месяца, выбраного в списке

Calendar1.Month := ComboBox1.ItemIndex + 1;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

Calendar1.PrevMonth;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

Calendar1.NextMonth;

end;

end.

Блокнот:

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, Printers;

type

TForm6 = class(TForm)

Memo1: TMemo;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

PrintDialog1: TPrintDialog;

FontDialog1: TFontDialog;

N3: TMenuItem;

N11: TMenuItem;

N14: TMenuItem;

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

procedure TForm6.N4Click(Sender: TObject);

var

f:textfile;

begin

assignfile(f,'C:\new.txt');

rewrite(f);

writeln(f,'Новый файл создан');

closefile(f);

end;

procedure TForm6.N5Click(Sender: TObject);

begin

if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

procedure TForm6.N6Click(Sender: TObject);

begin

if SaveDialog1.Execute then Memo1.Lines.SaveToFile(SaveDialog1.FileName+'.txt');

end;

procedure TForm6.N7Click(Sender: TObject);

begin

with printer do begin

begindoc;

canvas.Font:=memo1.Font;

canvas.TextOut(100,100,memo1.Text);

enddoc;

end;

end;

procedure TForm6.N8Click(Sender: TObject);

var z: integer;

begin

z:= MessageDLG('Закрыть приложение? ', mtInformation, [mbOk,mbCancel],0);

case z of

mrOk: Form6.close;

mrCancel: exit;

end;

end;

procedure TForm6.N9Click(Sender: TObject);

begin

FontDialog1.Execute;

Memo1.Font:=FontDialog1.Font;

end;

procedure TForm6.N10Click(Sender: TObject);

begin

memo1.Undo;

end;

procedure TForm6.N12Click(Sender: TObject);

begin

Memo1.SelectAll;

end;

procedure TForm6.N13Click(Sender: TObject);

begin

if N13.Checked=False

then begin

N13.Checked:=True;

Memo1.ScrollBars:=ssVertical;

end

else begin N13.Checked:=False;

Memo1.ScrollBars:=ssBoth; end;

end;

procedure TForm6.N3Click(Sender: TObject);

begin

ShowMessage ('Автор: Ахмедзян Анна Сергеевна ');

end;

end.

Будильник:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DateUtils, ExtCtrls, StdCtrls, Buttons, ComCtrls;

type

TForm2 = class(TForm)

Button1: TButton;

Image1: TImage;

Label1: TLabel;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

t:string;

implementation

procedure TForm2.Button1Click(Sender: TObject);

begin

Form2.Close;

t:=Edit1.Text;

while (t>TimeToStr(Time))

do t:=t;

ShowMessage('Время вышло!') ;

end;

end.

Калькулятор:

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm3 = class(TForm)

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

Button23: TButton;

Button24: TButton;

Image1: TImage;

procedure Button11Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button24Click(Sender: TObject);

procedure Button23Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

kod : char;

x, y, z : real;

k, y1:integer;

implementation

procedure TForm3.Button7Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'7'

end;

procedure TForm3.Button8Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'4'

end;

procedure TForm3.Button9Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'1'

end;

procedure TForm3.Button10Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'0'

end;

procedure TForm3.Button11Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'8'

end;

procedure TForm3.Button12Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'5'

end;

procedure TForm3.Button13Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'2'

end;

procedure TForm3.Button16Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'9'

end;

procedure TForm3.Button17Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'6'

end;

procedure TForm3.Button18Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+'3'

end;

procedure TForm3.Button5Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+','

end;

procedure TForm3.Button15Click(Sender: TObject);

begin

edit1.Clear

end;

procedure TForm3.Button19Click(Sender: TObject);

begin

if edit1.Text<>'' then x:=strtofloat(edit1.text);

kod :='+';

edit1.Clear;

end;

procedure TForm3.Button24Click(Sender: TObject);

begin

if edit1.Text<>'' then x:=strtofloat(edit1.text);

kod := '-';

edit1.Clear;

end;

procedure TForm3.Button23Click(Sender: TObject);

begin

if edit1.Text<>'' then x:=strtofloat(edit1.text);

kod := '/';

edit1.Clear;

end;

procedure TForm3.Button22Click(Sender: TObject);

begin

if edit1.Text<>'' then x:=strtofloat(edit1.text);

kod := '*';

edit1.Clear;

end;

procedure TForm3.Button6Click(Sender: TObject);

begin

x:= strtofloat(edit1.text);

kod := '^';

end;

procedure TForm3.Button14Click(Sender: TObject);

begin

if edit1.Text<>'' then y:=strtofloat(edit1.text); // в переменную y кладем edit1.text

case kod of

'+': z:=x+y;

'-': z:=x-y;

'*': z:=x*y;

'/': z:=x/y;

'^': begin

y1:=strtoint(edit1.Text);

edit1.clear;

z:=1;

for k:=1 to y1 do

begin

z:=z*x

end; end;

end ;

edit1.Text:=floattostr(z) //вывод в поле Edit1 значение переменной z

end;

procedure TForm3.Button21Click(Sender: TObject);

begin

x:=strtofloat( edit1.Text);

edit1.clear;

z:=sqrt(x);

edit1.Text:=floattostr(z);

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

x:=strtofloat(edit1.Text);

x:=(x*3.14)/180;

edit1.Clear;

z:=sin(x);

edit1.Text:=floattostr(z);

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

x:=strtofloat(edit1.Text);

x:=(x*3.14)/180;

edit1.Clear;

z:=cos(x)/sin(x);

edit1.Text:=floattostr(z);

end;

procedure TForm3.Button4Click(Sender: TObject);

begin

x:=strtofloat(edit1.Text);

x:=(x*3.14)/180;

edit1.Clear;

z:=sin(x)/cos(x);

edit1.Text:=floattostr(z);

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

x:=strtofloat(edit1.Text);

x:=(x*3.14)/180;

edit1.Clear;

z:=cos(x);

edit1.Text:=floattostr(z);

end;

procedure TForm3.Button20Click(Sender: TObject);

var z: integer;

begin

z:= MessageDLG('Закрыть приложение? ', mtInformation, [mbOk,mbCancel],0);

case z of

mrOk: Form3.close;

mrCancel: exit;

end;

end;

end.

Адресная книга:

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, jpeg, ExtCtrls;

type

TForm5 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

SaveDialog1: TSaveDialog;

Image1: TImage;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

n,m,k,k1:byte;

a:array[1..100,1..3] of string;

implementation

{$R *.dfm}

procedure TForm5.FormCreate(Sender: TObject);

var i,j:byte;

begin

StringGrid1.RowCount:=1;

StringGrid1.ColCount:=3;

begin a[1,1]:='ÈÌß';

a[1,2]:='ТЕЛЕФОН';

a[1,3]:='ПОЧТА';

for i:=1 to 3 do

for j:=1 to 3 do

StringGrid1.Cells[j-1,i-1]:=a[i,j];

end;

end;

procedure TForm5.Button1Click(Sender: TObject);

var i,n:integer;

begin

n:=StringGrid1.RowCount;

n:=n+1;

StringGrid1.RowCount:=n;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

form5.Close;

end;

procedure TForm5.Button4Click(Sender: TObject);

var List: TStringList;

i, j: Integer;

begin

List:=TStringList.Create;

with Sender do

for i:=0 to StringGrid1.RowCount-1 do

for j:=0 to StringGrid1.ColCount-1 do

List.Add(StringGrid1.Cells[i, j]);

with SaveDialog1 do

if Execute then

List.SaveToFile(FileName+'.xls');

end;

procedure TForm5.Button3Click(Sender: TObject);

var i,j,y:byte; z:string;

begin

for j:=1 to StringGrid1.RowCount do

for i:=1 to StringGrid1.RowCount-2 do

if (StringGrid1.Cells[0,i]> StringGrid1.Cells[0,i+1])

then begin for y:=0 to StringGrid1.ColCount-1 do begin

z:= StringGrid1.Cells[y,i];

StringGrid1.Cells[y,i]:=StringGrid1.Cells[y,i+1];

StringGrid1.Cells[y,i+1]:=z; end;

end;

end;

end.

Тестирование программы

Органайзер:

Календарь:

Блокнот:

Будильник:

Калькулятор:

Адресная книга:

Вывод.

Согласно разработанному алгоритму была составлена и отлажена программа на алгоритмическом языке программирования Delphi (Object Pascal). Во время разработки программы проводилось ее тестирование.

Программа проста для понимания и управления пользователем с минимальным уровнем подготовки, занимает мало места на жестком диске, может работать на компьютере с минимальными требованиями. Удобный и понятный интерфейс позволяет пользоваться программой любому человеку, хотя бы отдаленно знакомому с компьютером. Работа с программой не требует специальных знаний в какой-либо области. Кроме того, программа не требует инсталляции.

В ходе выполнения курсовой работы была разработана программа «Электронный органайзер». Программа содержит в себе календарь, блокнот, будильник, калькулятор и адресную книгу. Она может бать использована в повседневной жизни.

Соседние файлы в папке курсовая docx100