Автор работы: Пользователь скрыл имя, 09 Января 2012 в 18:53, курсовая работа
В данной курсовой работе реализован класс «Домашняя библиотека». В качестве средства разработки выбрана платформа Borland C++ Builder 6. Используется объектно-ориентированный язык программирования – С++.
Введение 3
Постановка задачи 4
Описание класса 5
Описание полей класса 5
Описание методов класса 6
Работа со строками 12
Используемые компоненты 13
Форма 13
StringGrid 14
MainMenu 16
Выводы 17
Список литературы 18
Приложение А. Текст программы 19
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 служат для управления работой программы при помощи функций. Эти функции называются обработчиками событий. Они задают действие программы на такие события как создание окна, манипуляции мышью, нажатие клавиш и т.д. Некоторые события могут быть вызваны действиями пользователя, другие – программно.
Форма
является основным компонентом приложений.
На формах располагаются все остальные
компоненты. Первая форма приложения
является главной. По умолчанию при
запуске программы только первая
форма будет видимой. При закрытии
главной формы завершается
Как и любой визуальный компонент, форма содержит свойства и методы, а также «умеет» обрабатывать события.
Некоторые свойства формы:
Предназначен для представления текстовых данных в табличной форме.
Каждая ячейка таблицы имеет ассоциированную с ней текстовую строку. Если ячейки не умещаются в пределах окна, то можно использовать линейки прокрутки для перемещения по таблице.
Можно
назначить фиксированные
При помощи обработчиков событий можно управлять обработкой вводимых данных и отображением ячеек таблицы.
Основные свойства:
Особые обработчики событий:
Главное меню является стандартным элементом программ Windows.
Главное меню располагается в верхней части окна программы и обычно служит для стандартизированного выполнения всех действий в программе. Кроме того, главное меню позволяет назначать «горячие клавиши»
Основные свойства:
Основным
событием элементов меню является событие
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);