Главная страница
Навигация по странице:

  • UserFunctions_unit. cpp

  • UserFunctions_unit. h

  • Библиотека. библиотека. Задание на курсовой проект Студенту Джаборову Алламырату (фамилия, имя собственное, отчество) группа 10701121 Тема курсовой работы Электронная библиотека Сроки сдачи финальной работы 19 декабря 2022 г


    Скачать 486.8 Kb.
    НазваниеЗадание на курсовой проект Студенту Джаборову Алламырату (фамилия, имя собственное, отчество) группа 10701121 Тема курсовой работы Электронная библиотека Сроки сдачи финальной работы 19 декабря 2022 г
    АнкорБиблиотека
    Дата01.11.2022
    Размер486.8 Kb.
    Формат файлаdocx
    Имя файлабиблиотека.docx
    ТипКурсовой проект
    #765616
    страница5 из 5
    1   2   3   4   5

    frmSearch (Unit2. h)

    // ---------------------------------------------------------------------------

    #ifndef Unit2H

    #define Unit2H

    // ---------------------------------------------------------------------------

    #include

    #include

    #include

    #include

    // ---------------------------------------------------------------------------

    class TfrmSearch: public TForm

    {

    __published: // IDE-managed Components

    TEdit *txtUdk;

    TEdit *txtTitle;

    TEdit *txtAuthor;

    TEdit *txtYear;

    TEdit *txtNum_in_lib;

    TButton *btnSearch;

    TLabel *lblUDK;

    TLabel *lblTitle;

    TLabel *lblAuthor;

    TLabel *lblNum_in_lib;

    TLabel *lblyear;

    TButton *btnCleartext;

    void __fastcall btnSearchClick (TObject *Sender);

    void __fastcall btnCleartextClick (TObject *Sender);

    void __fastcall txtYearKeyPress (TObject *Sender, char &Key);

    void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);

    private: // User declarations

    public: // User declarations

    __fastcall TfrmSearch (TComponent* Owner);

    };

    // ---------------------------------------------------------------------------

    extern PACKAGE TfrmSearch *frmSearch;

    // ---------------------------------------------------------------------------

    #endif

    frmEdit (Unit3. cpp)

    // ---------------------------------------------------------------------------

    #include

    #pragma hdrstop

    #include "Unit3. h"

    #include "Unit1. h"

    #include "UserFunctions_unit. h"

    // ---------------------------------------------------------------------------

    #pragma package (smart_init)

    #pragma resource "*. dfm"

    TfrmEdit *frmEdit;

    extern int frmEditState; // Объявляем общую переменную для форм frmMain, frmEdit

    extern bool sortedbooks; // Объявляем общую переменную для форм frmMain, frmEdit и frmSearch

    MyFunctions func3; // объявление объекта типа MyFunctions

    // ---------------------------------------------------------------------------

    __fastcall TfrmEdit:: TfrmEdit (TComponent* Owner)

    : TForm (Owner)

    {

    }

    // ---------------------------------------------------------------------------

    void __fastcall TfrmEdit:: FormShow (TObject *Sender)

    {

    if (frmEditState == 0) // Если frmEditState равняется 0

    {

    frmEdit->Caption = "Добавление книги"; // Изменяем заголовок формы

    }

    else

    {

    frmEdit->Caption = "Редактирование книги"; // Изменяем заголовок формы

    btnOK->Caption = "Сохранить изменения"; // Изменяем заголовок кнопки

    txtUdk->Text=frmMain->DBGrid1->Fields [0] - >AsString; // заполняем текстовые

    txtAuthor->Text=frmMain->DBGrid1->Fields [1] - >AsString; // поля значениями из DBGrid1

    txtTitle->Text=frmMain->DBGrid1->Fields [2] - >AsString;

    txtNum_in_lib->Text=frmMain->DBGrid1->Fields [4] - >AsString;

    txtYear->Text=frmMain->DBGrid1->Fields [3] - >AsString;

    }

    }

    // ---------------------------------------------------------------------------

    // Функция обработки нажатия кнопки

    void __fastcall TfrmEdit:: btnOKClick (TObject *Sender)

    {

    if (frmEditState == 0) // Если frmEditState равняется 0

    { // Если заполнены все поля

    if (txtAuthor->Text! ="" && txtNum_in_lib->Text! ="" && txtTitle->Text! ="" && txtUdk->Text! ="" && txtYear->Text! ="")

    { // Формируем SQL запрос на добавление записи

    String QueryAdd = "INSERT INTO Books (num_udk, autor, title, year_print, count_in_library) VALUES ('" \

    +txtUdk->Text+"', '"+txtAuthor->Text+"', '"+txtTitle->Text+"', "+txtYear->Text+", "+txtNum_in_lib->Text+"); "; // Строковая переменная, содержащая SQL запрос к базе данных

    try // Перехватываем возможные ошибки во время выполнения блока программного кода

    {

    frmMain->ADOCommand1->CommandText = QueryAdd; // Устанавливаем значение SQL-запроса в объект ADOCommand1

    frmMain->ADOCommand1->Execute (); // активировать SQL-запрос

    // Обновляем список книг в DBGrid1

    String TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных

    frmMain->ADOQuery1->SQL->Clear (); // очистить SQL-запрос

    frmMain->ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1

    frmMain->ADOQuery1->Open (); // активировать SQL-запрос

    }

    catch (EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

    {

    Application->MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

    }

    frmMain->mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые

    frmMain->popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню

    sortedbooks = false; // значение переменной - сортировка не проводилась

    func3. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов

    frmEdit->Close (); // Закрываем форму

    }

    else ShowMessage ("Заполнены не все поля!"); // Если заполнены не все поля выводим сообщение

    }

    else if (frmEditState == 1) // Если frmEditState равняется 0

    { // Формируем SQL запрос на обновление записи

    String QueryUpdate = "UPDATE Books SET num_udk='"+txtUdk->Text+"', autor='"+txtAuthor->Text+"', title='"+txtTitle->Text+"', year_print="+txtYear->Text+", count_in_library="+txtNum_in_lib->Text+ \

    " WHERE num_udk='"+frmMain->DBGrid1->Fields [0] - >AsString+"' and autor='"+frmMain->DBGrid1->Fields [1] - >AsString+"'and title='"+frmMain->DBGrid1->Fields [2] - >AsString+"'and year_print="+frmMain->DBGrid1->Fields [3] - >AsString+" and count_in_library="+frmMain->DBGrid1->Fields [4] - >AsString; // Строковая переменная, содержащая SQL запрос к базе данных

    try // Перехватываем возможные ошибки во время выполнения блока программного кода

    {

    frmMain->ADOCommand1->CommandText = QueryUpdate; // Устанавливаем значение SQL-запроса в объект ADOCommand1

    frmMain->ADOCommand1->Execute (); // активировать SQL-запрос

    // Обновляем список книг в DBGrid1

    String TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных

    frmMain->ADOQuery1->SQL->Clear (); // очистить SQL-запрос

    frmMain->ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1

    frmMain->ADOQuery1->Open (); // активировать SQL-запрос

    }

    catch (EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

    {

    Application->MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

    }

    frmMain->mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые

    frmMain->popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню

    sortedbooks = false; // значение переменной - сортировка не проводилась

    func3. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов

    frmEdit->Close (); // Закрываем форму

    }

    }

    // ---------------------------------------------------------------------------

    // Функция обработки ввода текста в поле txtYear

    void __fastcall TfrmEdit:: txtYearKeyPress (TObject *Sender, char &Key)

    {

    // разрешаем вводить только цифры

    if (! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

    }

    // ---------------------------------------------------------------------------

    // Функция обработки ввода текста в поле txtNum

    void __fastcall TfrmEdit:: txtNum_in_libKeyPress (TObject *Sender, char &Key)

    {

    // разрешаем вводить только цифры

    if (! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

    }

    // ---------------------------------------------------------------------------

    frmEdit (Unit3. h)

    // ---------------------------------------------------------------------------

    #ifndef Unit3H

    #define Unit3H

    // ---------------------------------------------------------------------------

    #include

    #include

    #include

    #include

    // ---------------------------------------------------------------------------

    class TfrmEdit: public TForm

    {

    __published: // IDE-managed Components

    TEdit *txtUdk;

    TEdit *txtTitle;

    TEdit *txtAuthor;

    TEdit *txtYear;

    TEdit *txtNum_in_lib;

    TButton *btnOK;

    TLabel *lblUDK;

    TLabel *lblTitle;

    TLabel *lblAuthor;

    TLabel *lblNum_in_lib;

    TLabel *lblyear;

    void __fastcall FormShow (TObject *Sender);

    void __fastcall btnOKClick (TObject *Sender);

    void __fastcall txtYearKeyPress (TObject *Sender, char &Key);

    void __fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);

    private: // User declarations

    public: // User declarations

    __fastcall TfrmEdit (TComponent* Owner);

    };

    // ---------------------------------------------------------------------------

    extern PACKAGE TfrmEdit *frmEdit;

    // ---------------------------------------------------------------------------

    #endif

    frmAbout (Unit4. cpp)

    // ---------------------------------------------------------------------------

    #include

    #pragma hdrstop

    #include "Unit4. h"

    // ---------------------------------------------------------------------------

    #pragma package (smart_init)

    #pragma resource "*. dfm"

    TfrmAbout *frmAbout;

    // ---------------------------------------------------------------------------

    __fastcall TfrmAbout:: TfrmAbout (TComponent* Owner)

    : TForm (Owner)

    {

    Label6->Caption = "Программа осуществляет отображение\nи редактирование списка литературы \nсодержащейся в библиотеке";

    }

    // ---------------------------------------------------------------------------

    void __fastcall TfrmAbout:: FormCreate (TObject *Sender)

    {

    }

    // ---------------------------------------------------------------------------

    frmAbout (Unit4. cpp)

    // ---------------------------------------------------------------------------

    #ifndef Unit4H

    #define Unit4H

    // ---------------------------------------------------------------------------

    #include

    #include

    #include

    #include

    // ---------------------------------------------------------------------------

    class TfrmAbout: public TForm

    {

    __published: // IDE-managed Components

    TLabel *Label1;

    TLabel *Label2;

    TLabel *Label3;

    TLabel *Label4;

    TLabel *Label5;

    TLabel *Label6;

    TLabel *Label7;

    private: // User declarations

    public: // User declarations

    __fastcall TfrmAbout (TComponent* Owner);

    };

    // ---------------------------------------------------------------------------

    extern PACKAGE TfrmAbout *frmAbout;

    // ---------------------------------------------------------------------------

    #endif

    UserFunctions_unit. cpp

    // ---------------------------------------------------------------------------

    #pragma hdrstop

    #include "UserFunctions_unit. h"

    // ---------------------------------------------------------------------------

    #pragma package (smart_init)

    // Функция изменения названий столбцов

    void MyFunctions:: ChangeCollName (TDBGrid *DBGrid)

    {

    AnsiString colname; // строка имени колонки

    AnsiString collable; // строка присвоения lable колонки на русском

    int width = 0;

    for (int i = 0; i < (DBGrid->FieldCount); i++) // Осуществляем перебор всех столбцов в DBGrid1

    {

    colname = DBGrid->Fields [i] - >FullName; // получаем имя колонки и присваиваем его переменной

    if (colname == "num_udk") // В слечае совпадения имени колонки в DBGrid и заданной строки

    { // меняем lable колонки на русские названия

    collable = "Номер УДК"; // Устанавливаем название колонки

    width=90; // Устанавливаем ширину колонки

    }

    else if (colname == "autor") // В слечае совпадения имени колонки в DBGrid и заданной строки

    { // меняем lable колонки на русские названия

    collable = "Автор";

    width=220;

    }

    else if (colname == "title") // В слечае совпадения имени колонки в DBGrid и заданной строки

    { // меняем lable колонки на русские названия

    collable = "Название";

    width=270;

    }

    else if (colname == "year_print") // В слечае совпадения имени колонки в DBGrid и заданной строки

    { // меняем lable колонки на русские названия

    collable = "Год издания";

    width=90;

    }

    else if (colname == "count_in_library") // В слечае совпадения имени колонки в DBGrid и заданной строки

    { // меняем lable колонки на русские названия

    collable = "Количество";

    width=90;

    }

    DBGrid->Fields [i] - >DisplayLabel = collable; // Меняем название столбца в DBGrid на установленное

    DBGrid->Columns->Items [i] - >Width = width; // Меняем ширину столбца в DBGrid на установленное

    DBGrid->Columns->Items [i] - >Alignment = taLeftJustify; // Меняем выравнивание в столбце DBGrid на выравнивание по левому краю

    }

    }

    UserFunctions_unit. h

    // ---------------------------------------------------------------------------

    #include

    #ifndef UserFunctions_unitH

    #define UserFunctions_unitH

    class MyFunctions

    {

    public: // User declarations

    void ChangeCollName (TDBGrid*);

    private:

    };

    // ---------------------------------------------------------------------------

    #endif

    1   2   3   4   5


    написать администратору сайта