Домашняя библиотека

Автор работы: Пользователь скрыл имя, 09 Января 2012 в 18:53, курсовая работа

Краткое описание

В данной курсовой работе реализован класс «Домашняя библиотека». В качестве средства разработки выбрана платформа Borland C++ Builder 6. Используется объектно-ориентированный язык программирования – С++.

Содержание работы

Введение 3
Постановка задачи 4
Описание класса 5
Описание полей класса 5
Описание методов класса 6
Работа со строками 12
Используемые компоненты 13
Форма 13
StringGrid 14
MainMenu 16
Выводы 17
Список литературы 18
Приложение А. Текст программы 19

Содержимое работы - 1 файл

Курсовая работа.docx

— 407.61 Кб (Скачать файл)

                      else

                        //если в первой строке символ  больше чем во второй то  меняем местами имена

                        if (s1 < s2) change = true; else change = false;

                  }

                  if (change) {

                           //меняем местами элементы

                           t1 = s1; s1 = s2; s2 = t1;

                  }

                  change = false;

              }

           } 

        Результат работы: 

 

Работа  со строками

 

     Стандартная библиотека предоставляет средства вычисления длины строки, копирования, сравнения, поиска вхождений одной  строки в другую и т.д.. Функции описаны в стандартном заголовочном файле "string.h".

     Для работы со строками в программе используются следующие функции:

     Определение длины строки:

     size_t strlen(const char *s);

     Копирование строк:

     char *strcpy(char *dst, const char *src); копировать строку src в строку dst;

     Сравнение строк:

     int strcmp(const char *s1, const char *s2); - лексикографическое сравнение строк s1 и s2. Результат нулевой, если строки равны, отрицательный, если первая строка меньше второй, и положительный, если первая строка больше второй;  

     Прежде  чем работать со строкой необходимо после ее объявления выделить для  нее память. Для этого используются функции: 
 

 

Используемые  компоненты

 
 

     Все компоненты в C++Builder создаются при помощи классов. Каждому компоненту соответствует класс. Множество визуальных компонентов составляют иерархию классов.

     Основными понятиями при работе с визуальными  компонентами являются свойства, события и методы компонентов.

Свойства  компонентов хранят характеристики компонента, такие как размер, цвет, положение на экране, шрифт и т.д.

     Методы  компонента – методы класса, от которого образован компонент. Методы компонентов  обычно служат для работы со свойствами данного компонента.

     События в C++Builder служат для управления работой программы при помощи функций. Эти функции называются обработчиками событий. Они задают действие программы на такие события как создание окна, манипуляции мышью, нажатие клавиш и т.д. Некоторые события могут быть вызваны действиями пользователя, другие – программно.

      Форма

     Форма является основным компонентом приложений. На формах располагаются все остальные  компоненты. Первая форма приложения является главной. По умолчанию при  запуске программы только первая  форма будет видимой. При закрытии главной формы завершается работа всего приложения.

     Как и любой визуальный компонент, форма  содержит свойства и методы, а также  «умеет» обрабатывать события.

     Некоторые свойства формы:

  • Align – задаёт выравнивание формы на экране.
  • AutoScroll – разрешает или запрещает автоскроллирование.
  • AutoSize – разрешает автоизменение размеров окна для того, чтобы оно умещало все компоненты.
  • Caption – заголовок окна. Отображается в верхней части окна.
  • ClientHeight и ClientWidth – высота и ширина клиентской части окна.
  • Color – цвет окна.
  • Font – шрифт по умолчанию для компонентов формы..
  • Height – высота окна.
  • HorzScrollBar – задаёт внешний вид и параметры горизонтальной линейки прокрутки.
  • Menu – задаёт главное меню формы.
  • Name – имя компонента.
  • VertScrollBar – задаёт внешний вид и параметры вертикальной линейки прокрутки.
  • Visible – разрешает или запрещает показ окна на экране.
  • Width – ширина окна.

     StringGrid

     Предназначен для представления текстовых данных в табличной форме.

     Каждая ячейка таблицы имеет ассоциированную с ней текстовую строку. Если ячейки не умещаются в пределах окна, то можно использовать линейки прокрутки для перемещения по таблице.

     Можно назначить фиксированные заголовки  строк и столбцов, которые не будут  перемещаться линейками прокрутки. Ширину столбцов (и высоту строк) таблицы  можно задавать независимо друг от друга для каждого столбца (строки). Значения ячеек нельзя задать в режиме проектирования, а только в работающей программе.

     При помощи обработчиков событий можно  управлять обработкой вводимых данных и отображением ячеек таблицы.

     Основные  свойства:

  • Cells – двухмерный массив, содержащий строки таблицы;
  • Cols – массив указателей на объекты TStringList, хранящие данные столбцов;
  • Rows – массив указателей на объекты TStringList, хранящие данные строк;
  • Col – столбец, в которой находится курсор;
  • ColCount – количество столбцов в таблице;
  • FixedCols – количество столбцов, которые не скроллируются;
  • FixedRows – количество фиксированных строк;
  • Options –набор флагов, задающих режимы таблицы;
  • Row – строка, в которой находится курсор;
  • RowCount – число строк в таблице;
  • RowHeights – массив, содержащий значения высоты каждой строки таблицы;
  • ScrollBars – задаёт наличие линеек прокрутки;
 

     Особые  обработчики событий:

  • OnColumnMoved – при перемещении столбца (свойство Options должно содержать goRowMoving);
  • OnGetEditText – задаёт текст для редактирования ячейки; вызывается при переходе в режим редактирования;
  • OnRowMoved – при перемещении строки;
  • OnSelectCell – вызывается перед выбором ячейки таблицы; возможен запрет выбора произвольных ячеек или другие операции в зависимости от выбранной ячейки;
  • OnSetText – вызывается, когда пользователь редактирует содержимое ячеек; можно задать дополнительные проверки при изменении текста;
 
 

 

     MainMenu

     Главное меню является стандартным элементом программ Windows.

     Главное меню располагается в верхней  части окна программы и обычно служит для стандартизированного выполнения всех действий в программе. Кроме  того, главное меню позволяет назначать  «горячие клавиши»

     Основные  свойства:

  • Action – позволяет назначать действие из списка действий ActionList.
  • Caption – заголовок пункта меню.
  • Enabled – разрешение. Принимает булевские значения. При Enabled=false пункт меню становится заблокирован, и не может быть выбран.
  • GroupIndex – номер группы. Можно сгруппировать элементы меню. Это можно использовать, например, для задания группы переключателей.
  • Name – имя компонента.
  • Shortcut – «горячая клавиша».
  • Visible – видимость.

     Основным  событием элементов меню является событие  OnClick. Оно определяет реакцию программы на выбор того или иного пункта меню. 

     Также в программе используются кнопки, метки и радиокнопки. 

 

Выводы

 

      В ходе выполнения данной курсовой работы я ознакомился со средством разработки Borland C++ Biulder 6. Изучил свойства объектно-ориентированного программирования. Закрепил навыки программирования при работе с классами, а также навыки работы с файлами и со строками.  

Список  литературы

 

    1. Архангельский  А.Я. Программирование в  C++ Builder 6. – М.: «Издательство БИНОМ», 2003г. – 1152с.

    2. Карпов Б., Баранов Т. С++: специальный справочник – СПБ: Питер, 2001. – 48с.

    3. Программирование: лаб. Практикум / сост. И.Т.Артемьев, Д.В.Ильин, Л.А. Ильина; Чуваш. Ун-т.  Чебоксары. 2009.96с.   

Приложение  А. Текст программы

 

    Bibl.h 

    const Max_Num_Books = 2000;

    const Max_Num_EqBooks = 5;

    class HomeBibl{

        public:

            char *avtor;

            char *name;

            int year;

            //конструктор

            HomeBibl();

            //поиск книги

            void SearchBook();

            //сортировка книги

            void SortBooks(int mode, bool HighLow);

            //удаление книги

            void DelBook(int idx);

            //удаление всех книг

            void DelAllBooks();

            //добавление книги

            void AddBook();

            void EditBook(int idx);

            //деструктор

            ~HomeBibl(){};

    };

    class Records{

       public:

            int idx;};

    Records arr[Max_Num_EqBooks];

    HomeBibl ob [Max_Num_Books];

    const char* const BiblFile = "bibl.txt";

    int numRecords=0;

    int numFindRecords=0;

 

    Bibl.cpp 

    #include <vcl.h>

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    #include <ctype.h>

    #include "Bibl.h"

    #include "MainFormUnit.h"

    #pragma hdrstop

    //********** Конструктор *****************

    HomeBibl::HomeBibl(){

         year = 0;

    }

    //********** Загружаем книжки из файла*****************

    int LoadBooks(){

        char line[256]; // Буфер для ввода строки

        int i;

        FILE *f = fopen(BiblFile, "r");

        numRecords = 0;

        int len=0;

        while (fgets(line, 256, f) != 0) {

            len = strlen(line);

            char *avtor;

            char *name;

            int year;

            char *t;

           // Удалим разделители строк

            if (len > 0 && line[len - 1] == '\n') {

                line[len - 1] = 0; --len;

            }

             // Запомним имя

            avtor = (char *) malloc((len) +1);

            strcpy(avtor, line); 

            // Считаем строку

            if (fgets(line, 256, f) != 0) {

                len = strlen(line);

            if (len > 0 && line[len - 1] == '\n') {

                line[len - 1] = 0; --len;

            }

            name = (char *) malloc((len) + 1);

            strcpy(name, line);

Информация о работе Домашняя библиотека