Ежедневник

Автор: Пользователь скрыл имя, 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…………………………………………………………………
Заключение……………………………………………………………………………..

Глоссарий ……………………………………………………………………………...

Список использованной литературы………………………………………………..

Работа содержит 1 файл

пояснительная записка.doc

— 545.00 Кб (Скачать)

// ПРИ ВЫБОРЕ  ДАТЫ ОЧИЩАЕМ СЕТКУ

procedure TForm2.DateTimePicker1Change(Sender: TObject);

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(DateTimePicker1.Date));

    if TypFile.DableDate then

        begin

          MessageDlg('Такая дату уже есть  в списке!!!' + #13+

          ' Для редактирования нажмите  кнопку <Редактировать>',

                      mtInformation, [mbOk], 0);

          exit;

        end;

    EG.Date:= DateToStr(DateTimePicker1.Date);    // ЗАПИСЫВАЕМ  ДАТУ

    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(Sender: TObject);

var

    i: integer;

begin

     TypFile.PNum:= TypFile.FindRec(DateToStr(DateTimePicker1.Date));

     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(Sender: TObject);

var

    i: integer;

begin

    EG.Date:= DateToStr(DateTimePicker1.Date);    // ЗАПИСЫВАЕМ  ДАТУ

    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(Sender: TObject);

var

   a: integer;

begin

    a:= messageDlg('ВЫ  ХОТИТЕ УДАЛИТЬ ДАТУ ' + DateToStr(DateTimePicker1.Date) + '?', mtInformation,

                  [mbYes, mbNo], 0);

    if a = mrYes then

      begin

        a:= TypFile.FindRec(DateToStr(DateTimePicker1.Date));

        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.DateTimePicker1.Date));

    Form1.ListBox1.Items.Clear;

    Form1.PlanDay(i);

end; 

end. 

    1. Модуль  Unit3
 

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.Name);

        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.

    1. Модуль Unit4
 

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. 
 

    1. Модуль  MyUnit
 

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 

Информация о работе Ежедневник