- •Предисловие
- •Программа дисциплины
- •Рекомендуемая литература
- •Методические указания студентам по изучению теоретического курса
- •Методические указания по выполнению лабораторных работ
- •Список экзаменационных (зачетных) вопросов
- •Контрольные вопросы
- •Методические указания к выполнению курсовой работы
- •1. Общие требования
- •2. Техническое задание
- •3. Содержание
3. Содержание
Содержание должно включать в себя следующие разделы:
Введение
Анализ требований технического задания.
Разработка блок-схем алгоритмов.
Разработка и описание программы.
Руководство пользователя.
Назначение программы.
Условие работы с программой.
Описание функционирования программы.
Текст программы.
Заключение.
В приложении 2 приведен текст типовой программы для темы, предлагаемой для разработки в курсовой работе.
Приложение 1
Министерство образования и науки РФ
Федеральное агентство по образованию
Рыбинская государственная авиационная технологическая
академия им. П. А. Соловьева (РГАТА)
Факультет ФРЭИ
Кафедра Вычислительные системы
Курсовая работа
по дисциплине «Системное программное обеспечение»
на тему:
«Название темы»
Пояснительная записка
Студент группы…… Фамилия И. О.
Преподаватель Фамилия И. О.
Рыбинск, год оформления
Приложение 2
Текст программы «Часы с таймером и будильником»
program Chasi;
uses
Forms,
Unit1 in 'Unit1.pas'
Unit2 in 'Unit2.pas'
Unit3 in 'Unit3.pas'
Unit4 in 'Unit4.pas'
Unit5 in 'Unit5.pas'
Unit6 in 'Unit6.pas';
{$R*.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CrcateForm(TForm5, Form5);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, jpeg, StdCtrls, ImgList, Menus, ComCtrls, ExtDIgs;
type
TForm1 = class(TForm)
Timer1: TTimer;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
mImage: TMenuItem;
OpenPictureDialog1: TOpenPictureDialog;
mAnalog: TMenuItem;
mDigital: TMenuItem;
N5: TMenuItem;
GroupBox1: TGroupBox;
Image1: TImage;
DateTimePicker1: TDateTimePicker;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N11 TMenuItem;
N21 TMenuItem;
N31 TMenuItem;
N9: TMenuItem;
HotKey1: THotKey;
HotKey2: THotKey;
HotKey3: THotKey;
HotKey4: THotKey;
HotKey5: THotKey;
HotKey6: THotKey;
HotKey7: THotKey;
HotKey8: THotKey;
HotKey9: THotKey;
nHelp: TMenuItem;
N10: TMenuItem;
procedure Timer1Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure mImageClick(Sender: TObject);
procedure mAnalogClick(Sender: TObject);
procedure mDigitalClick(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N10 Click(Sender: TObject);
procedure nHelpClick(Sender: TObject);
private
{ Private declarations }
procedure PaintClock(Hour, Min, Sec: word);
procedure PaintDigitalClock(Hour, Min, Sec: word);
public
{ Public declarations }
end;
var
Form1 :Tfonn1;
Picture: TPicture;
{tr:TDateTime;}
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6;
{$R *.DFM}
procedure Tform1.PaintDigitalClock(Hour, Min, Sec: word);
var TimeStr: String;
StrHeight, StrWidth: integer;
begin
{IIpoцeдypa рисования цифровых часов}
{Строка со временем}
TimeStr := intToStr(Hour)+':'+intToStr(Min)+':'+intToStr(Sec);
with Image1.Canvas do
begin
Image1.Canvas.Brush.Color:=clBtnFace;
Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.Pen.Style:=psSolid;
Image1.Canvas.Font.Size:=28;
Image1.Canvas.FillRect(Rect(0,0,Width,Height));
StrHeight:= Image1.Canvas.TextHeight(TimeStr);
StrWidth:= Image1.Canvas.TextWidth(TimeStr);
Image1.Canvas.TextOut((Image1.Width div 2) - (StrWidth div 2),
(Image1.Height div 2) - (StrHeight div 2), TimeStr);
end;
end;
procedure Tform1.PaintClock(Hour, Min, Sec : word);
begin
{ Процедура рисования аналоговых часов }
Image1.Picture.Assign(Picture);
Image1.Canvas.Brush.Color:=clBtnFace;
Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Pen.Style:=psSolid;
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Color:=clRed;
Image1.Canvas.MoveTo(150,150);
Image1.Canvas.LineTo(150+round(80*sin(Sec*2*Pi/60)),150-round(80*cos(Sec*2*Pi/60)));
Image1.Canvas.Pen.Width:=2;
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.MoveTo(150,150);
Image1.Canvas.LineTo(I50+round(80*sin(Min*2*Pi/60)),150-round(80*cos(Min*2*Pi/60)));
Image1.Canvas.Pen.Width:=3;
Image1.Canvas.MoveTo(150,150);
Image1.Canvas.LineTo(150+round(60*cos(450*3.14/180-(hour*30+
min div 2) *3.14/180)), 150-round(60*sin(450*3.14/180-(hour*30+
min div 2)*3.14/180)));
Image1.Canvas.Pen.Width:= 1;
end;
procedure Tform1.Timer1Timer(Sender: TObject);
var
tr:TdateTime;
Hour, Min, Sec, MSec: word;
aHour, aMin, aSec, aMSec: word;
bHour, bMin, bSec, bMsec: word;
begin
tr:=Time;
DecodeTime(tr, Hour, Min, Sec, MSec);
{ Часы аналоговые, иначе цифровые }
if mAnalog.Checked then
PaintClock(Hour,Min,Sec)
else PaintDigitalClock(Hour,Min,Sec);
DecodeTime(Form4.DateTimePicker1.Time,bHour,bMin,bSec,bMsec);
{Настройка часов }
if Form4.CheckBox1.Checked then
begin
Hour:=bHour; Min:=bMin; Sec:=bSec;
PaintClock(Hour,Min,Sec);
Sec:=Sec+1;
if Sec=60 then begin
sec:=0;
Min:=Min+l;
end;
if Min=60 then begin
Min:=0;
Hour:=Hour+l;
end;
if Hour=24 then Hour:=0;
Form4.DateTimePicker1.Time:=EncodeTime(Hour,Min,Sec,MSec);
if mAnalog. Checked then
PaintClock(Hour,Min,Sec)
else PaintDigitalClock(Hour,Min,Sec);
end;
{ Проверка будильника }
if Form2.CheckBox1.Checked then
begin
DecodeTime(Form2.AlarmClock.Time, aHour, aMin, aSec, aMSec);
if (Hour = aHour) and (Min=aMin) and (Sec=aSec) then
begin
windows.Beep(6000,500);
MessageDlg(Form2.eMessage.Text, mtInformation, [mbOK], 0);
end;
end;
end;
procedure Tform1.N2Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure Tform1.FormCreate(Sender: TObject);
begin
Picture := TPicture.Create;
Image1.Picture.LoadFromFile('(фон.bmp');
Picture.Assign(Image1.Picture);
mAnalog.ShortCut:=HotKey1 .HotKey;
mDigital.ShortCut:=HotKey2.HotKey;
N6.ShortCut:=HotKey3.HotKey;
N2.ShortCut:=HotKey4.HotKey;
N3.ShortCut:=HotKey5.HotKey;
N11.ShortCut:=HotKey6.HotKey;
mImage.ShortCut:=HotKey9.HotKey;
N21.ShortCut:=HotKey7.HotKey;
N31.ShortCut:=HotKey8.HotKey;
end;
procedure Tform1.DateTimePicker1Change(Sender: TObject);
Var Hour, Min.Sec, Msec: word;
i:integer;
begin
end;
procedure Tform1.N3Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure Tform1.mImageClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Picture.Assign(Image1.Picture);
end;
end;
procedure Tform1.mAnalogClick(Sender: TObject);
begin
mAnalog.Checked:= True;
mDigital.Checked:= False;
end;
procedure Tform1.mDigitalClick(Sender: TObject);
begin
mAnalog.Checked:= False;
mDigital.Checked:= True;
end;
procedure Tform1.N6Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure Tform1.N11Click(Sender: TObject);
begin
Picture:= TPicture.Create;
Image1.Picture.LoadFromFile('Фон1.bmp');
Picture.Assign(Image1 .Picture);
end;
procedure Tform1.N21Click(Sender: TObject);
begin
Picture := TPicture.Create;
Image1.Picture.LoadFromFile(' Фон2.bmp');
Picture.Assign(Image1.Picture);
end;
procedure Tform1.N31Click(Sender: TObject);
begin
Picture:= TPicture.Create;
Image1.Picture.LoadFromFile('Фон3.bmp');
Picture.Assign(Image1.Picture);
end;
procedure TForm1.N10Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure TForm1.nRucClick(Sender: TObject);
begin
Form5.ShowModal;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Menus, StdCtrls;
type
TForm2 = class(TForm)
AlarmClock: TDateTimePicker;
Label1: TLabel;
Label3: TLabel;
eMessage: TEdit;
CheckBox1: TCheckBox;
procedure AlarmClockChange(Sender: TObject);
private
{ Private declarations}
public
{Public declarations}
end;
var
Form2: TForm2;
implementation
{$R*.DFM}
procedure TForm2.AlarmClockChange(Sender: TObject);
var Hour, Min, Sec, MSec: word;
i:integer;
tr:TdateTime;
begin
end;
end.
unit Uni3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls;
type
TForm3 = class(TForm)
Timer1:TTimer;
btStartStop: TButton;
Label1:TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Timer2: TTimer;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure btStartClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{Public declarations}
end;
var Form3: TForm3;
Hour3, Min3, Sec3, MSec3: word;
Button1:TButton;
implementation
{$R*.DFM}
procedure TForm3.btStartClick(Sender: TObject);
var i: integer;
tr3, t: TdateTime;
begin
if Timer1.Enabled then
begin
Timer1.Enabled:= False;
btStart.Caption:= '3anycк';
end
else
begin
Timer1.Enabled:= true;
end;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
var Hour, Min, Sec: integer;
begin
Hour: = StrToInt(Edit2.Text);
Min:= StrToInt(Edit3.Text);
Sec:= StrToInt(Edit4.Text);
if Sec=0 then
begin
if Min=0 then
begin
Hour:=Hour-1;
Min:=59;
Sec:=59;
end
else
begin
Min:=Min-1;
Sec:=59
end
end
else
Sec:=Sec-1;
Edit2.Text:=IntToStr(Hour);
Edit3.Text:=IntToStr(Min);
Edit4.Text:=IntToStr(Sec);
if (Hour=0) and (Min=0) and (Sec=0) then
begin
if Timer2.Enabled then
begin
Timer2.Enabled:= False;
btStart.Caption:= '3anycк';
end
else
begin
Timer2.Enabled:= true;
Timer1.Enabled:= False;
windows.Beep(6000,500);
end;
end;
end;
procedure TForm3.Timer2Timer(Sender: TObject);
var Hour, Min, Sec: integer;
begin
Hour:= StrToInt(Edit5.Text);
Min:= StrToInt(Edit6.Text);
Sec:= StrToInt(Edit7.Text);
if Sec=0 then
begin
ifMin=0 then
begin
Hour:=Hour-1;
Min:= 59;
Sec:= 59;
end
else
begin
Min:= Min-1;
Sec:=59
end
end
else
Sec:= Sec-1;
Edit5.Text:= IntToStr(Hour);
Edit6.Text:= IntToStr(Min);
Edit7.Text:= IntToStr(Sec);
if (Hour=0) and (Min=0) and (Sec=0) then
begin
Timer2.Enabled:= False;
btStart.Caption:= '3anycк';
windows.Beep(6000,500);
MessageDlg(Form3.Edit1.Text, mtInformation, [mbOK], 0);
end
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtris, ComCtrls, ExtCtrls;
type
TForm4 = class(TForm)
DateTimePicker1: TDateTimePicker;
Label1:TLabel;
CheckBoxl: TCheckBox;
private
{Private declarations}
public
{Public declarations}
end;
var
Form4: TForm4;
implementation
{$R*.dfm}
end.
unit Unit5;
interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm5 = class(TForm)
Panel1:TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button1:TButton;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfin} end.
unit Unit6;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls;
type
TAboutBox = class(TForm)
Panel1:TPanel;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
Comments: TLabel;
OKButton: TButton;
private
{Private declarations}
public
{Public declarations}
end;
var
AboutBox: TAboutBox;
implementation
{$R*.DFM}
end.