Автор: Пользователь скрыл имя, 12 Декабря 2010 в 02:16, курсовая работа
В данной курсовой работе разрабатывается прикладная программа «Ежедневник», реализующая функции телефонного справочника и планировщика заданий. Программа позволяет пользователю планировать свое расписание на целый день, который разбит с шагом 30 минут. А телефонный справочник позволяет хранить все важные контакты.
Введение………………………………………………………………………………..
1 Техническое задание………………………………………………………………...
1.Название и назначение разрабатываемой программы……………………….
2.Основание для разработки……………………………………………………..
3.Технические требования к программе………………………………………...
4.Функциональные требования к программе....………………………………...
5.Требования по надежности…………………………………………………….
2.Анализ технического задания…...…………………………………………………
3.Разработка и описание программы………………………………………………..
4.Руководство пользователя…………………………………………………………
5.Приложение ……………………………………………………………………
1.Модуль Unit1……………………………………………………………………
2.Модуль Unit2……………………………………………………………………
3.Модуль Unit3……………………………………………………………………
4.Модуль Unit4……………………………………………………………………
5.Модуль MyUnit…………………………………………………………………
Заключение……………………………………………………………………………..
Глоссарий ……………………………………………………………………………...
Список использованной литературы………………………………………………..
// ПРИ ВЫБОРЕ ДАТЫ ОЧИЩАЕМ СЕТКУ
procedure TForm2.DateTimePicker1Change(
var
i: integer;
begin
for i:= 0 to 49 do
StringGrid1.Cells[1,i]:= '';
end;
//****************************
// КНОПКИ УПРАВЛЕНИЯ *
//****************************
// КНОПКА <ДОБАВИТЬ ЗАПИСЬ>
procedure TForm2.AddButtonClick(Sender: TObject);
var
i: integer;
begin
TypFile.FindRec(datetostr(
if TypFile.DableDate then
begin
MessageDlg('Такая дату уже
' Для редактирования нажмите кнопку <Редактировать>',
mtInformation, [mbOk], 0);
exit;
end;
EG.Date:=
DateToStr(DateTimePicker1.
for i:= 0 to 49 do
begin
eg.clock[i]:= StringGrid1.Cells[0,i]; // ЗАПИСЫВАЕМ ПОЛЯ СЕТКИ
eg.work[i]:= StringGrid1.Cells[1,i];
end;
TypFile.AddRec(eg);
DaysDate; // список дат
end;
// КНОПКА <РЕДАКТИРОВАТЬ ЗАПИСЬ>
procedure TForm2.EditDBButtonClick(
var
i: integer;
begin
TypFile.PNum:=
TypFile.FindRec(DateToStr(
EG:= TypFile.ReadRec(TypFile.PNum);
for i:= 0 to 49 do
begin
StringGrid1.Cells[0,i]:= EG.clock[i];
StringGrid1.Cells[1,i]:= eg.work[i];
end;
end;
// КНОПКА <СОХРАНИТЬ ЗАПИСЬ>
procedure TForm2.SaveDbButtonClick(
var
i: integer;
begin
EG.Date:=
DateToStr(DateTimePicker1.
for i:= 0 to 49 do
begin
eg.clock[i]:= StringGrid1.Cells[0,i]; // ЗАПИСЫВАЕМ ПОЛЯ СЕТКИ
eg.work[i]:= StringGrid1.Cells[1,i];
end;
TypFile.ModifyNextRec(EG, TypFile.PNum);
end;
// КНОПКА <УДАЛИТЬ ВСЕ ЗАПИСИ>
procedure TForm2.Button1Click(Sender: TObject);
var
a: integer;
begin
a:= messageDlg('ВЫ ХОТИТЕ ОЧИСТИТЬ СПИСОК ДАТ?', mtInformation,
[mbYes, mbNo], 0);
if a = mrYes then
begin
ListBox1.Items.Clear;
TypFile.DeleteDb;
end;
end;
// КНОПКА <УДАЛИТЬ ЗАПИСЬ>
procedure TForm2.DeletRecButtonClick(
var
a: integer;
begin
a:= messageDlg('ВЫ
ХОТИТЕ УДАЛИТЬ ДАТУ ' + DateToStr(DateTimePicker1.
[mbYes, mbNo], 0);
if a = mrYes then
begin
a:= TypFile.FindRec(DateToStr(
if TypFile.DableDate then
if a <> TypFile.NumberRec - 1 then
TypFile.DeleteRec(a)
else
begin
seek(TypFile.FFile, a);
truncate(TypFile.FFile);
TypFile.NumberRec:= FileSize(TypFile.FFile);
end;
end;
DaysDate; // список дат
end;
// ЗАКРЫВАЕМ
ФОРМУ - ОБНОВЛЯЕМ СПИСОК
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
i: integer;
begin
i:= TypFile.FindRec(DateToStr(
Form1.ListBox1.Items.Clear;
Form1.PlanDay(i);
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,
MyUnit;
type
TForm3 = class(TForm)
ComboBox1: TComboBox;
BitBtn1: TBitBtn;
Label1: TLabel;
procedure FormShow(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
end;
var
Form3: TForm3;
x: string;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.FormShow(Sender: TObject);
var
i: integer;
begin
seek(PhoneFile.FPhoneFile, 0);
for i:= 0 to PhoneFile.NumberRec - 1 do
begin
read(PhoneFile.FPhoneFile, Phone);
ComboBox1.Items.Add(Phone.
end;
end;
procedure TForm3.ComboBox1Change(Sender: TObject);
begin
x:= ComboBox1.Text;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
var
a: integer;
begin
a:= PhoneFile.FindName(x);
if a <> PhoneFile.NumberRec - 1 then
PhoneFile.DeleteRec(a)
else
begin
seek(PhoneFile.FPhoneFile, a);
truncate(PhoneFile.FPhoneFile)
PhoneFile.NumberRec:= FileSize(PhoneFile.FPhoneFile)
end;
form3.Close;
Form1.StringGrid1.RowCount:= Form1.StringGrid1.RowCount - 1;
Form1.PhoneDbButtonClick(nil);
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;
type
TForm4 = class(TForm)
MonthCalendar1: TMonthCalendar;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
end.
unit MyUnit;
interface
uses Controls, Dialogs, grids,
SysUtils, MMSystem;
type
TEgRec = record
Date: string[10]; // дата
clock: array [0..49] of string[8]; // время
work: array [0..49] of string[100] // событие
end;
TPhoneRec = record
Name: string[30];
Tel: string[10];
Address: string[30];
Org: string[15];
comment: string[20];
end;
// БАЗОВЫЙ КЛАСС
TTypFile = class
private
CurNum: integer; // текущее положение записи
public
NumberRec: integer; // номер записи в файле
DbOpen: boolean; // признак отрытия файла
FFile: File of TEgRec;
DableDate: boolean;
constructor Create;
Destructor Destroy; override;
procedure CloseDB; virtual;
function OpenDb(const DBName: string): boolean; virtual;
function CreateDb(const DBname: string): boolean; virtual;
procedure AddRec(const Rec: TEGRec); overload;
procedure ModifyNextRec(const Rec: TEGRec; N: integer); overload;
function ReadRec(const RecNo: integer): TEGRec; overload;
function FindRec(d: string): integer;
procedure DeleteDb;
procedure DeleteRec(n: integer); overload;
function NextWeek(CurDate: TDate): TDate;
procedure CheckDay(var Y,M,D: word);
procedure SetCurNum(n: integer);
function GetCurNum: integer;
property PNum: integer read GetCurNum write SetCurNum;
end;
// КЛАСС НАСЛЕДНИК
TPhoneFile = class(TTypFile)
private
public
FPhoneFile: file of TPhoneRec;
constructor create;
Destructor Destroy; override;
procedure CloseDB; override;
function OpenDb(const DBName: string): boolean; override;
function CreateDb(const DBname: string): boolean; override;
procedure AddRec(const Rec: TPhoneRec); overload;
procedure ModifyNextRec(const Rec: TPhoneRec; N: integer); overload;
function ReadRec: TPhoneRec; overload;
function FindName(s: string): integer;
procedure DeleteRec(n: integer); overload;
end;
// КЛАСС БУДИЛЬНИК
TAlarm = class
private
handled: Boolean;
public
MsgText: string; // ТЕКСТ СООБЩЕНИЯ
AlarmTime: TDateTime; // ВРЕМЯ СИГНАЛА
constructor Create;
Destructor Destroy; override;
Function GetAlarmStr: String;
procedure CheckTime;
function GetHandle: boolean;
property Handl: boolean read GetHandle;
end;
var
TypFile: TTypFile;
EG: TEgRec;
PhoneFile: TPhoneFile;
Phone: TPhoneRec;
Alarm: TAlarm;
implementation