- •Башкирский государственный педагогический университет им. М.Акмуллы Институт профессионального образования и информационных технологий
- •З а д а н и е на курсовую работу
- •______________________________________________________________________
- •7. Консультанты по работе с указанием относящихся к ним разделов работы
- •Календарный план
- •Содержание
- •Глава 1. Технология визуального программирования в среде Delphi 7
- •Глава 2. Разработка электронного органайзера на Delphi. 15
- •Введение
- •Глава 1. Технология визуального программирования в среде Delphi
- •1.1 Обзор средств визуального программирования в среде Delphi
- •1.2 Анализ языковых средств Object Pascal.
- •Глава 2.Разработка электронного органайзера на Delphi.
- •2.1 Определение архитектуры и функциональной характеристики электронного органайзера
- •2.2 Кодирование, тестирование и отладка программы «Электронный органайзер»
- •Заключение
Глава 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). Во время разработки программы проводилось ее тестирование.
Программа проста для понимания и управления пользователем с минимальным уровнем подготовки, занимает мало места на жестком диске, может работать на компьютере с минимальными требованиями. Удобный и понятный интерфейс позволяет пользоваться программой любому человеку, хотя бы отдаленно знакомому с компьютером. Работа с программой не требует специальных знаний в какой-либо области. Кроме того, программа не требует инсталляции.
В ходе выполнения курсовой работы была разработана программа «Электронный органайзер». Программа содержит в себе календарь, блокнот, будильник, калькулятор и адресную книгу. Она может бать использована в повседневной жизни.
