Ежедневник

Автор: Пользователь скрыл имя, 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 Кб (Скачать)

{ TTypFile } 
 

//***********************************************

//                БАЗОВЫЙ КЛАСС                 *

//*********************************************** 

// СОЗДАЕМ ФАЙЛ  БАЗЫ ДАННЫХ

function TTypFile.CreateDb(const DBname: string): boolean;

begin

     AssignFile(FFile, Dbname);     // ПРИВЯЗЫВАЕМ К ФАЙЛУ ИМЯ

     try

        Rewrite(FFile);             // СОЗДАЕМ ФАЙЛ С ЭТИМ ИМЕНЕМ

        DbOpen:= true;                  // ОТМЕЧАЕМ ЧТО ФАЙЛ ОТКРЫТ

     except

        DbOpen:= False;                 // ФАЙЛ НЕ ОТКРЫТ

     end; 

     NumberRec:= 0;                     // КОЛ-ВО СТРОК РАВНО НУЛЮ

     Result:= DbOpen;                   // РЕЗУЛЬТАТ СОЗДАНИЯ ФАЙЛА

end; 
 

// ОТКРЫВАЕМ  ФАЙЛ.

function TTypFile.OpenDb(const DBName: string): boolean;

begin

     AssignFile(FFile, DbName);

    {$I-}

        Reset(FFile);                   // открываем базу

    {$I+}

    if IOResult <> 0 then

      begin

         NumberRec:= 0;

         DbOpen:= False;

      end

     else

      begin

        NumberRec:= FileSize(FFile);   // кол-во записей

        DbOpen:= True;

      end;

    Result:= DbOpen;

end; 
 

// ДОБАВИТЬ ЗАПИСЬ  В ФАЙЛ

procedure TTypFile.AddRec(const Rec: TEGRec);

begin

    ModifyNextRec(Rec, NumberRec);    // переместиться на последнею запись и добавить запись

    NumberRec := FileSize(FFile);  // новое кол. записей

end; 

// ИЗМЕНИТЬ ЗАПИЬ  ПОД НОМЕРОМ N

procedure TTypFile.ModifyNextRec(const Rec: TEGRec; N: integer);

begin

      Seek(FFile,  n); // переместиться на n - запись

      Write(FFile, rec);

end; 

// ЧИТАТЬ ЗАПИСЬ  ПОД НОМЕРОМ RecNo

function TTypFile.ReadRec(const RecNo: integer): TEGRec;

begin

     Seek(FFile, RecNo);

     read(FFile, result);

end; 
 

// ЗАКРЫВАЕМ ФАЙЛ

procedure TTypFile.CloseDB;

begin

    if DbOpen then

          CloseFile(FFile);

end; 
 

// КОНСТРУКТОР

constructor TTypFile.Create;

begin

     if not OpenDb('BD.txt') then

        CreateDB('BD.txt');

end; 
 

// ОСБОЖДАЕМ  ПАМЯТЬ

destructor TTypFile.Destroy;

begin

      inherited Destroy;

end; 
 

// ПРОЦЕДУРА  ПОИСКА ДАТЫ

function TTypFile.FindRec(d: string): integer;

var

    i: integer;

begin

      Seek(FFile, 0);

      DableDate:= false;

      for i:= 0 to NumberRec - 1 do

         begin

            Read(FFile, EG);

            if D = EG.Date then

              begin

                result:= i;

                dableDate:= true;

                exit;

              end;

         end;

end; 
 

// ПРОЦЕДУРА  УДАЛЕНИЯ ВСЕХ ЗАПИСЕЙ

procedure TTypFile.DeleteDb;

begin

      Seek(FFile, 0);

      Truncate(FFile);

      NumberRec:= FileSize(FFile);

end; 
 

// ПРОЦЕДУРА  УДАЛЕНИЯ N ЗАПИСИ

procedure TTypFile.DeleteRec(n: integer);

begin

      seek(FFile, NumberRec - 1);

      read(FFile, EG);

      Seek(FFile, n);

     write(FFile, eg); 

      seek(FFile, NumberRec-1);

      truncate(FFile);

      NumberRec:= FileSize(FFile);

end; 
 

// ПРОЦЕДУРА  ЗАПИСЫВАЕТ НОМЕР ЗАПИСИ

procedure TTypFile.SetCurNum(n: integer);

begin

     CurNum:= n;

end; 
 

// ПРОЦЕДУРА  ЧТЕНИЯ НОМЕРА ЗАПИСИ

function TTypFile.GetCurNum: integer;

begin

     result:= CurNum;

end; 
 

// ПРОЦЕДУРА  ИЩЕТ НАЧАЛО СЛЕДУЮЩЕЙ НЕДЕЛИ

function TTypFile.NextWeek(CurDate: TDate): TDate;

var

    Y,M,D: word;                // ГОД МЕСЯЦ ДЕНЬ

    i: integer;

begin

    i:= DayOfWeek(CurDate);     //

    DecodeDate(CurDate, Y, M, D);

      case i of

        1:  D:= D + 1;          // ВОСКРЕСЕНИЕ

        2:  D:= D + 7;          // ПОНЕДЕЛЬНИК

        3:  D:= D + 6;          // ВТОРНИК

        4:  D:= D + 5;          // СРЕДА

        5:  D:= D + 4;          // ЧЕТВЕРГ

        6:  D:= D + 3;          // ПЯТНИЦА

        7:  D:= D + 2;          // СУББОТА

      end; 

      CheckDay(Y,M,D); 

      result:= EncodeDate(Y,M,D);

end; 

// ПРОВЕРЯЕМ  ДАТУ НА ПЕРЕПОЛНЕНИЕ

procedure TTypFile.CheckDay(var Y, M, D: word);

begin

      // 30 ДНЕВНЫЕ МЕСЕЦА

      if (M = 4) or (M = 6) or (m = 9) or (m = 11) then

          if d > 30 then

            begin

              d:= d mod 30;

              m:= m + 1;

            end; 

      // 31 ДНЕВНЫЕ МЕСЕЦА

      if (M = 1) OR (M = 3) OR (M = 5) OR (M = 7) OR (M = 8) OR (M = 10) OR (M = 12) then

          if d > 31 then

            begin

              d:= d mod 31;

              m:= m + 1;

            end; 

      // ФЕВРАЛЬ МЕСЯЦ

       if m = 2 then

      begin

          if y mod 4 <> 0 then      // не  высокосный год

            if d > 28 then

            begin

              d:= d mod 28;

              m:= m + 1;

            end; 

          if y mod 4 = 0 then       // высокосный  год

              if d > 29 then

              begin

                d:= d mod 29;

                m:= m + 1;

              end;

       end; 

       if m > 12 then

        begin

            y:= y + 1;

            m:= 1;

        end; 

end; 

{ TPhoneFile } 

//***************************************************

//                КЛАСС НАСЛЕДНИК                   *

//*************************************************** 

// СОЗДАЕМ ИЛИ  ОТРЫВАЕМ ФАЙЛ

constructor TPhoneFile.create;

begin

     if not OpenDb('PhoneDb.txt') then

        CreateDB('PhoneDb.txt');

end; 
 

// ОСВОБОЖДЕНИЕ  ПАМЯТИ

destructor TPhoneFile.Destroy;

begin

  inherited Destroy;

end; 
 

// СОЗДАНИЕ ФАЙЛА  БАЗЫ ДАННЫХ ТЕЛЕФОНОВ

function TPhoneFile.CreateDb(const DBname: string): boolean;

begin

     AssignFile(FPhoneFile, Dbname);     // ПРИВЯЗЫВАЕМ К ФАЙЛУ ИМЯ

     try

        Rewrite(FPhoneFile);             // СОЗДАЕМ ФАЙЛ С ЭТИМ ИМЕНЕМ

        DbOpen:= true;                  // ОТМЕЧАЕМ ЧТО ФАЙЛ ОТКРЫТ

     except

        DbOpen:= False;                 // ФАЙЛ НЕ ОТКРЫТ

     end; 

     NumberRec:= 0;                     // КОЛ-ВО СТРОК РАВНО НУЛЮ

     Result:= DbOpen;                   // РЕЗУЛЬТАТ СОЗДАНИЯ ФАЙЛА

end; 
 

// ОТКРЫТИЕ ФАЙЛА  БАЗЫ ДАННЫХ

function TPhoneFile.OpenDb(const DBName: string): boolean;

begin

     AssignFile(FPhoneFile, DbName);

    {$I-}

        Reset(FPhoneFile);                   // открываем базу

    {$I+}

    if IOResult <> 0 then

      begin

         NumberRec:= 0;

         DbOpen:= False;

      end

     else

      begin

        NumberRec:= FileSize(FPhoneFile);   // кол-во записей

        DbOpen:= True;

      end;

    Result:= DbOpen;

end; 
 

// ЗАКРЫВАЕМ  ФАЙЛ

procedure TPhoneFile.CloseDB;

begin

    if DbOpen then

          CloseFile(FPhoneFile); 

end; 
 

// ДОБАВИТЬ ЗАПИСЬ

procedure TPhoneFile.AddRec(const Rec: TPhoneRec);

begin

    ModifyNextRec(Rec, NumberRec);    // переместиться на последнею запись и добавить запись

    NumberRec := FileSize(FPhoneFile);  // новое кол. записей

end; 
 

// ИЗМЕНИТЬ ЗАПИЬ  ПОД НОМЕРОМ N

procedure TPhoneFile.ModifyNextRec(const Rec: TPhoneRec; N: integer);

begin

     Seek(FPhoneFile,  n); // переместиться на n - запись

     Write(FPhoneFile, rec);

end; 
 

// ПРОЦЕДУРА  ЧТЕНИЯ ДАННЫХ

function TPhoneFile.ReadRec: TPhoneRec;

begin

      read(FphoneFile, result);

end; 
 

// ИЩЕМ ИМЯ

function TPhoneFile.FindName(s: string): integer;

var

    i: integer;

begin

      Seek(FPhoneFile, 0);

      for i:= 0 to NumberRec - 1 do

         begin

            Read(FPhoneFile, phone);

            if s = phone.Name then

              begin

                result:= i;

                exit;

              end;

         end;

end; 
 

// УДАЛЯЕМ ЗАПИСЬ

procedure TPhoneFile.DeleteRec(n: integer);

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