Читайте также:
|
|
Задача
§ В курсовой работе должны широко и с пониманием использоваться все средства, предоставляемые Lazarus в обоих парадигмах (ОО и обобщенного программирования).
§ Задача может иметь практическую значимость, однако это обычно плохо сочетается с первичной целью курсовой работы (изучение предмета "Программирование на ЯВУ"). Вот некоторые примеры тем:
-программа часы
Так как программа должна иметь графический и интуитивно-понятный интерфейс, то для решения очень подходит Lazarus.
Перечень вопросов, подлежащих разработке:
А. В пояснительной записке
Аннотация
Введение
1. Назначение и область применения
2. Технические характеристики
2.1. Постановка задачи на разработку программы
2.2. Описание применяемых математических методов и (или) математического аппарата
2.3. Описание алгоритма и (или) функционирования программы с обоснованием выбора
2.4. Описание и обоснование выбора метода организации входных и выходных данных
2.5. Описание и обоснование выбора состава технических и программных средств
Заключение
Приложения
Источники, использованные при разработке
Б. В графической (демонстрационной) части
Лист № 1 Схема программы
Презентация курсового проекта (работы)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
nCenterX, nCenterY: int64;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Caption:='Часы';
Timer1.Interval:=1000;
Timer1.Enabled:=true;
nCenterX:= Form1.ClientWidth div 2;
nCenterY:= Form1.ClientHeight div 2;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
nCenterX:= Form1.ClientWidth div 2;
nCenterY:= Form1.ClientHeight div 2;
//рисует основу формы
Canvas.Pen.Width:=1;
//фон
Canvas.Brush.Color:= clYellow;//должен совпадать из FormResize
Canvas.Rectangle(-1,-1,Form1.ClientWidth+1,Form1.ClientHeight+1);
Timer1Timer(self);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
nCenterX:= Form1.ClientWidth div 2;
nCenterY:= Form1.ClientHeight div 2;
//рисует форму
Canvas.Pen.Width:=1;
//фон
Canvas.Brush.Color:= clYellow; //должен совпадать из FormPaint
Canvas.Rectangle(-1,-1,Form1.ClientWidth+1,Form1.ClientHeight+1);
Timer1Timer(self);
end;
//рисует часы
procedure TForm1.Timer1Timer(Sender: TObject);
var
Radians: double;
i,x,y: integer;
begin
// рисует круг
Canvas.Pen.Color:=clBlack;
Canvas.Pen.Width:=10;
Canvas.Pen.Style:= psSolid;
//фон циферблата
Canvas.Brush.Color:= clSkyBlue;//
Canvas.Ellipse(15,15,Form1.Width-15,Form1.Height-15);
// рисует 12 часовые марки
for i:=1 to 12 do
begin
Radians:= (i*6.28 / 12.0);
if(i>=10) then
begin
x:=nCenterX -8 + trunc((nCenterX - 20)* sin(Radians));
y:=nCenterY -4 - trunc((nCenterY - 20)* cos(Radians));
end
else
begin
x:=nCenterX -4 + trunc((nCenterX - 20)* sin(Radians));
y:=nCenterY -4 - trunc((nCenterY - 20)* cos(Radians));
end;
Canvas.TextOut(x,y,IntToStr(i));
end;
// рисует 12 точек
for i:=1 to 12 do
begin
Radians:= (i*6.28 / 12.0);
x:=nCenterX + trunc(((Form1.ClientWidth) / 2.6)*sin(Radians));
y:=nCenterY - trunc(((Form1.ClientHeight) / 2.6)*cos(Radians));
Canvas.Pen.Color:= clBlack;
Canvas.Pen.Width:= 3;
Canvas.Ellipse(x-2, y-2, x+2, y+2);
end;
//рисует минутную стрелку
Radians:= StrToFloat(FormatDateTime('n',Now))+
StrToFloat(FormatDateTime('s',Now)) /60.0;
Radians:= Radians * (6.28/ 60.0);
//цвет стрелки минутной
Canvas.Pen.Color:=clRed;//
Canvas.Pen.Width:=10;
Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(nCenterX, nCenterY);
Canvas.LineTo(
nCenterX + trunc(((Form1.ClientWidth) / 3)*sin(Radians)),
nCenterY - trunc(((Form1.ClientHeight) / 3)*cos(Radians)));
//рисует часовую стрелку
Radians:= StrToFloat(FormatDateTime('h',Now))+
StrToFloat(FormatDateTime('n',Now))/60.0 +
StrToFloat(FormatDateTime('s',Now))/3600.0;
Radians:= Radians * (6.28/ 12.0);
//цвет стрелки часовой
Canvas.Pen.Color:=clLime;//
Canvas.Pen.Width:=11;
Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(nCenterX, nCenterY);
Canvas.LineTo(
nCenterX + trunc(((Form1.ClientWidth)/4.5)*sin(Radians)),
nCenterY - trunc(((Form1.ClientHeight)/4.5)*cos(Radians)));
//секундная стрелка
Radians:= StrToFloat(FormatDateTime('s',Now));
Radians:= Radians * (6.28/60.0);
//цвет секундной стрелки
Canvas.Pen.Color:=clFuchsia;//
Canvas.Pen.Width:=3;
Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(nCenterX, nCenterY);
Canvas.LineTo(
nCenterX + trunc((Form1.ClientWidth/3)*sin(Radians)),
nCenterY - trunc((Form1.ClientHeight/3)*cos(Radians)));
//рисует центральную точку
Canvas.Pen.Color:= clBlack;
Canvas.Pen.Width:= 3;
Canvas.Ellipse(nCenterX-2, nCenterY-2, nCenterX+2, nCenterY+2);
end;
{$R *.lfm}
end.
Примечания:
1. Пояснительная записка должна быть выполнена машинным способом, на одной стороне листа, шрифт Times New Roman 14. полуторный интервал.
2. Графические работы, как правило, выполняются в карандаше или автоматизированным способом.
3. Проектирование осуществляется на основании технического задания.
4. Программная документация и материалы к курсовому проекту (работе) оформляются в соответствии с требованиями ЕСПД.
5. Программный продукт, программные документы, презентация прикладываются на лазерном диске к курсовому проекту (работе).
Руководитель курсового проекта
(подпись)
1 Рассмотрено и одобрено предметной комиссией
Протокол № от «» 20 г.
Дата добавления: 2015-11-04; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
При выполнении заданий 21–26 используйте Бланк ответов №2. Сначала укажите номер задания, а затем запишите его решение и ответ. Пишите чётко и разборчиво. | | | Тема: Проблема багатокористувацького доступу. |