Автор работы: Пользователь скрыл имя, 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 (strcmp(this->name, "") != 0) {
for(int i = 0; i<numRecords; i++){
if (strcmp(AnsiStrLower(ob[i].
if (this->year != 0)
if (ob[i].year == this->year) f = true; else f=false;
else f=true;
//else f=true;
if (f) {arr[k].idx=i; k++;}
f = false;
}
}
else {
if (this->year != 0) {
for(int i = 0; i<numRecords; i++){
if (this->year != 0)
if (ob[i].year == this->year) f = true; else f=false;
else f=true;
if (f) {arr[k].idx=i; k++;}
f = false;
}
}
}
}
numFindRecords = k;
}
//********** Удаление книги *****************
void HomeBibl::DelBook (int idx){
for (int i = 0; i < numRecords; i++){
ob[idx+i].avtor = ob[idx+i+1].avtor;
ob[idx+i].name = ob[idx+i+1].name;
ob[idx+i].year = ob[idx+i+1].year;
}
numRecords--;
char line[256]; // Буфер для ввода строки
int i;
AnsiString as;
FILE *f = fopen(BiblFile, "w");
for (int i = 0; i < numRecords; i++){
fputs(ob[i].avtor, f);
fputs("\n", f);
fputs(ob[i].name, f);
fputs("\n", f);
as = IntToStr(ob[i].year);
fputs(as.c_str(), f);
fputs("\n", f);
}
fclose(f);
}
//********** Редактирование книги *****************
void HomeBibl::EditBook (int idx){
ob[idx].avtor = this->avtor;
ob[idx].name = this->name;
ob[idx].year = this->year;
char line[256]; // Буфер для ввода строки
int i;
AnsiString as;
FILE *f = fopen(BiblFile, "w");
for (int i = 0; i < numRecords; i++){
fputs(ob[i].avtor, f);
fputs("\n", f);
fputs(ob[i].name, f);
fputs("\n", f);
as = IntToStr(ob[i].year);
fputs(as.c_str(), f);
fputs("\n", f);
}
fclose(f);
}
AddFormUnit.cpp
//----------------------------
#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#pragma hdrstop
#include "AddFormUnit.h"
#include "Bibl.cpp"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TAddBookForm *AddBookForm;
//----------------------------
__fastcall TAddBookForm::TAddBookForm(
: TForm(Owner)
{
}
//----------------------------
void __fastcall TAddBookForm::bCancelClick(
{
AddBookForm->Close();
}
//----------------------------
void __fastcall TAddBookForm::bOKClick(TObject *Sender)
{
HomeBibl book;
char *s;
//avtor
s = (char *) malloc((strlen(eAvtor->Text.c_
strcpy(s, eAvtor->Text.c_str());
book.avtor = s;
//name
s = (char *) malloc((strlen(eBook->Text.c_
strcpy(s, eBook->Text.c_str());
book.name = s;
//year
s = (char *) malloc((strlen(eYear->Text.c_
strcpy(s, eYear->Text.c_str());
book.year = atoi(s);
if (book.year == 0)
ShowMessage("Год издания введен неверно!");
else
{book.AddBook();ShowMessage("
if (book.year != 0) {
AddBookForm->Close();
eAvtor->Text = "";
eBook->Text = "";
eYear->Text = "";
}
}
//----------------------------
EditUnit.cpp
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "EditUnit.h"
#include "Bibl.cpp"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TEditForm *EditForm;
//----------------------------
__fastcall TEditForm::TEditForm(
: TForm(Owner)
{
}
//----------------------------
void __fastcall TEditForm::bCancelClick(
{
EditForm->Close();
}
//----------------------------
void __fastcall TEditForm::bOKClick(TObject *Sender)
{
HomeBibl b;
int len = 0;
len = strlen(eAvtor->Text.c_str());
b.avtor = (char *) malloc((len) +1);
strcpy(b.avtor, eAvtor->Text.c_str());
len = strlen(eBook->Text.c_str());
b.name = (char *) malloc((len) +1);
strcpy(b.name, eBook->Text.c_str());
b.year = StrToInt(eYear->Text);
b.EditBook(StrToInt(Edit1->
EditForm->Close();
}
//----------------------------
MainFormUnit.cpp
//----------------------------
#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#pragma hdrstop
#include "MainFormUnit.h"
#include "ProgInfUnit.h"
#include "AddFormUnit.h"
#include "Bibl.cpp"
#include "SearchUnit.h"
#include "EditUnit.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//----------------------------
__fastcall TMainForm::TMainForm(
: TForm(Owner){
}
//----------------------------
void __fastcall TMainForm::bExitClick(TObject *Sender){
MainForm->Close();
}
//----------------------------
void __fastcall TMainForm::bProgInfClick(
{
InfForm->Show();
}
//----------------------------
void __fastcall TMainForm::bSortOkClick(
{
char *s1, *s2, *t1, *t2, *t3;
int l1,l2;
//сортировка по имени автора
if (rbAvtor->Checked) {
if (rbHigh->Checked) ob->SortBooks(1, true); else ob->SortBooks(1, false);
}
else
if (rbName->Checked) {
//сортировка по названию
if (rbHigh->Checked) ob->SortBooks(2, true); else ob->SortBooks(2, false);
}
if (rbYear->Checked) {
//сортировка по году издания
if (rbHigh->Checked) ob->SortBooks(3, true); else ob->SortBooks(3, false);
}
for(int i=0;i<numRecords;i++){
Table->Cells[0][i+1]= ob[i].avtor;
Table->Cells[1][i+1]= ob[i].name;
Table->Cells[2][i+1]= ob[i].year;
}
}
//----------------------------
void __fastcall TMainForm::bAddClick(TObject *Sender)
{
AddBookForm->Show();
}
//----------------------------
void __fastcall TMainForm::FormShow(TObject *Sender)
{
LoadBooks();
Table->RowCount = numRecords+1;
Table->Font->Style=
Table->Cells[0][0]="Автор книги";
Table->Cells[1][0]="Название книги";
Table->Cells[2][0]="Год издания";
Table->Font->Size = 8;
for(int i=0;i<numRecords;i++){
Table->Cells[0][i+1]= ob[i].avtor;
Table->Cells[1][i+1]= ob[i].name;
Table->Cells[2][i+1]= ob[i].year;
}
Label3->Caption="Количество
записей: "+IntToStr(numRecords);
}
//----------------------------
void __fastcall TMainForm::bDelAllBooksClick(
{
ob->DelAllBooks();
for(int i=0;i<numRecords;i++){
Table->Cells[0][i+1]= ob[i].avtor;
Table->Cells[1][i+1]= ob[i].name;
Table->Cells[2][i+1]= ob[i].year;
}
numRecords = 0;
}
//----------------------------
void __fastcall TMainForm::bFindClick(TObject *Sender)