Автор работы: Пользователь скрыл имя, 20 Февраля 2013 в 22:06, курсовая работа
Цель работы заключается в том, чтобы правильно составить алгоритм поставленной задачи по разработке календаря, разработать и отладить программу, реализующую разработанный алгоритм.
Введение 3
Глава 1. Программирование в Delphi. 5
1.1. Borland Delphi. 5
1.2. Интерфейс. 6
1.3. Типы данных. 9
Глава 2. Построение календаря. 14
2.1. Создание формы календаря. 14
2.2. Листинг программы 15
2.3. Описание используемых функций. 19
Заключение 21
Список литературы 22
Label1.Caption := IntToStr(C) ;
Такая программа, кроме показа числа 15, ни на что не способна. Мы должны научиться вводить в программу другие числа. Используем компоненты Edit. Введённые числа будут содержаться в свойстве Text этих компонентов. Расположим на форме два компонента Edit, один компонент Label и кнопку Button, по нажатию на которую и будем проводить вычисления. В компоненты Edit1 и Edit2 будем вводить числа для суммирования. Чтобы переместиться в редактор кода, щёлкнем дважды по нашей кнопке Button1. Мы попадём прямо в сформированную для нас средой Delphi заготовку обработчика нажатия на кнопку, непосредственно между операторами begin и end. Напишем такой простой код:
procedure TForm1.Button1Click(Sender: TObject);
var A, B, C: Integer;//Не забудьте описание переменных
begin
//Начало кода:
A := Edit1.Text;
B := Edit2.Text;
C := A+B;
Label1.Caption := IntToStr(C);
//Конец кода
end ;
При попытке исполнить этот код Delphi покажет ошибки по аналогичной причине - переменные A и B имеют цифровой тип Integer, а свойство Text - текстовый тип String. Исправить ошибки поможет встроенная функция StrToInt, выполняющая обратное преобразование - текст в целое число. Операторы присвоения переменным A и B должны выглядеть так:
A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);
В данном случае переменные A, B, C использовались для наглядности. Можно обойтись одной строчкой:
Label1.Caption:=IntToStr(
Аналогично, имеются функции и для преобразования в строку и обратно действительных чисел c плавающей (Floating англ.) запятой, имеющих тип Real. Для преобразования в строку - FloatToStr, обратно - StrToFloat.
Поместим на форму компоненты, расположенные на вкладке Samples: календарь (Calendar) и поле ввода со стрелками SpinEdit. Мы используем их для создания приложения, позволяющего установить системную дату и просмотреть календарь за любой месяц. Также поместим список ComboBox, три надписи Label и пять кнопок Button.
Приложение будет обрабатывать события:
Разместите компоненты примерно так:
Интерфейс нашего приложения интуитивен: в календаре пользователь может выбрать дату отображенного месяца, из списка выбрать месяц для отображения, а с помощью поля со стрелками ввести год. Нажатие на кнопку «Сегодня» прокручивает календарь до месяца, содержащего текущую системную дату, а кнопка «Установить», наоборот, устанавливает дату, выбранную в календаре, в качестве текущей.
Кнопки « << » и « >> » прокручивают календарь на один месяц назад и вперед соответственно.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DateUtils, StdCtrls, Spin, Grids, Calendar;
type
TForm1 = class(TForm)
Calendar1: TCalendar;
SpinEdit1: TSpinEdit;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Button4: TButton;
Button5: TButton;
Label2: TLabel;
Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Calendar1Change(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
C2 : array [0..11] of String = ('крысы','коровы','тигра',
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var I: Integer;
begin
Form1.Caption := 'Календарь';
Button1 .Caption := '&<<';
Button2.Caption := '&Сегодня';
Button3 .Caption := '&>>';
Button1.Width := 25;
Button3.Width := 25;
Button4.Caption := '&Установить';
Button5.Caption := '&Готово';
Label1.Font.Style :=[fsBold];
// Задаем номер первого дня в неделе (1 = понедельник)
Calendar1.StartOfWeek := 1;
SpinEdit1.MinValue := 1;
SpinEdit1.MaxValue := 9999;
// Заполняем список названиями месяцев
for I := 1 to MonthsPerYear do
ComboBox1.Items.Add(
Button2Click(Sender);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Calendar1.CalendarDate := Now;
end;
procedure TForm1.Calendar1Change(Sender: TObject);
var
Tmp : String;
begin
// Выводим во вспомагательную строку дату, выбранную в календаре
// В собственном формате
Tmp:=FormatDateTime ('dddd d mmmm yyyy', Calendar1.CalendarDate);
// Вспомогательную строку отображаем в надписи
Label1.Caption := 'Дата: ' + Tmp;
// Прокручиваем список до выбраного месяца
// (месяцы в календаре нумеруются от 1, а элементы
// списка — от 0, поэтому вычитаем 1)
ComboBox1.ItemIndex :=Calendar1.Month - 1;
// Прокручиваем поле со сткрелками до выбраного года
SpinEdit1.Value:= Calendar1.Year;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
// Прокручиваем календарь до года, выбраного в SpinEdit
Calendar1.Year := SpinEdit1.Value;
if ((Calendar1.Year-1996)/4)=int(
else Label2.Caption:='невисокосный год';
Label3.Caption:='Год '+C2[(Calendar1.Year-4) mod 12];
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
// Прокручиваем календарь до месяца, выбраного в списке
Calendar1.Month := ComboBox1.ItemIndex + 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Calendar1.PrevMonth;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Calendar1.NextMonth;
end;
procedure TForm1.Button4Click(Sender: TObject);
var SysTime: TSystemTime;
TmpTime: TdateTime;
begin
// Сохраняем в SysTime системную дату и время
GetSystemTime (SysTime);
TmpTime := SystemTimeToDateTime (SysTime);
// Заменяем часть "дата" датой, выбранной в календаре
ReplaceDate(TmpTime, Calendar1.CalendarDate);
// Преобразуем обратно в SystemTime
DateTimeToSystemTime (TmpTime, SysTime);
// Устанавливаем новым системным временем
SetSystemTime (SysTime);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Close;
end;
end.
Для получения системного времени мы использовали функцию GetSystemTime из Windows API исключительно для иллюстрации преобразования типов: в Delphi существует функция Now аналогичного назначения, но возвращающая результат типа TDateTime.
Функция SetSystemTime возвращает
значение логического типа (True в
случае успеха), которое мы никак
не проверяем, хотя в реальном
приложении выполнять проверку
обязательно: установка системн
В методе TForm1. FormCreate мы для наглядности вместо константы 12 использовали константу MonthsPerYear, объявленную в модуле DateUtils, ради которой мы этот модуль и подключаем. Эта константа появилась в Delphi начиная с версии 6, а для предыдущих версий (или для того, чтобы вычеркнуть модуль DateUtils из секции Uses) ее нужно объявить:
Код:
const Months PerYear=12;
Чтобы определить, високосный это год или нет, используется функция IsLeapYear. Функция IsLeapYear возвращает True, если данное календарное значение является високосным годом. Год может иметь значение 0.. 9999.
Заключение
Язык программирования Delphi 7 относится к языкам высокого уровня. Выделяются несколько базовых понятий в Delphi 7, такие как объекты, классы и методы. Этот язык прост в оперировании и широко используется для создания программ разного типа сложности.
Данный язык программирования поддерживает принципы объектно-ориентированного языка программирования. Это новый подход к программированию сложных программ, который включает в себя лучшие идеи структурного программирования и модульного. Этот метод позволяет разложить проблему на составные части. Каждая составная часть становится самостоятельным объектом, который содержит коды и данные. Программирование в целом упрощается, и программист получает возможность оперировать большими по объему программами.
В данной контрольной работе была поставлена задача: разработка календаря.
При решении поставленной задачи были изучены такие возможности, как: создавать собственные модули, вызывать процедуры и функции из других модулей, получила навыки в создании собственных объектов, также изучена работа с графикой, с основными графическими инструментами среды программирования Delphi.
Данная работа выполнялась на компьютере, на котором установлена операционная система Microsoft Windows 7 Максимальная.
Компьютер имеет достаточную производительность и емкость внешней памяти для функционирования ОС Microsoft Windows XP и программного обеспечения, а также оснащен мышью, клавиатурой и монитором с разрешением не менее 1024 на 768.