У вас вопросы?
У нас ответы:) SamZan.net

Курсовая в среде Borland Builde

Работа добавлена на сайт samzan.net: 2015-12-26

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.7.2025

Курсовая в среде Borland Builder.

 

Рассматриваемый далее проект реализует базу данных сотрудников. Имя класса – штат (staff), поля – имя (name), должность (job) и оклад (pay). Контейнер (таблица) называется crew (штат, шайка, экипаж и т.п.). Вы должны назвать класс соответственно теме Вашего проекта. Естественно названия полей и контейнера так же необходимо поменять. Обратите внимание, что свойство Name редактируемых полей формы включает в себя класс визуального компонента  и имя поля Вашего класса. Это необязательно, но очень удобно при написании кода. Так же из соображений удобства свойство Name кнопок включает в себя имя операции над базой данных.

Запустите Borland Builder. Создайте новый проект – тип Application Form.

Сохраните проект (Save Project As) в папке на рабочем столе. Будьте внимательны – будет предложено сохранить две группы файлов Unit (форма) и Project (проект). В каждой группе по три файла, плюс еще один, дополнительный. Откройте папку и запишите имена этих семи файлов – именно их надо сохранять и переносить, это исходники.

Вы находитесь в режиме проектирования формы (design). Перейдите в окно кода – выберите файл формы типа h, по умолчанию - Unit1.h. Добавьте после последней директивы #include… инструкции:

#include <vector.h>

#include <algorith.h>

struct staff{

       char name[50];

       char job[20];

       int pay;

       friend bool operator<(const staff& a,const staff& b)

       { return a.pay<b.pay; }         // for sort by pay

       friend bool operator==(const staff& a,const staff& b)

       { return a.pay==b.pay; }        // for search by pay

};

using namespace std;

extern vector <staff> crew;

extern int iMax,iCur;

Теперь выберите файл формы типа cpp, по умолчанию - Unit1. cpp. Добавьте после объявления TForm1 *Form1; инструкции:

vector <staff> crew;

int iMax=0,iCur=0;

Вернитесь в режим проектирования формы (design для Builder 2009).

Поместите на форму компонент TLabel, это метка (надпись). Выберите этот компонент на форме и в окне инспектора задайте свойство Auto Size = false, а свойство Caption = имя. Добавьте на форму компонент TEdit (редактируемое поле) и задайте его свойства: Text – пустое значение, Name = EditName.

Аналогично добавьте еще две пары  метка – поле: TLabel (Auto Size = false, Caption = должность), TEdit (Name = EditJob, Text – пустое значение) и TLabel (Auto Size = false, Caption = оклад), TEdit (Name = EditPay, Text – пустое значение).

Поместите внизу на форму еще один компонент TLabel для вывода номера текущей записи. Задайте свойство Auto Size = false, свойство Name = LabelNum, а свойство Caption = 0 (ноль).

Поместите на форму кнопку – компонент TButton. Задайте свойства кнопки: Caption = добавить, Name = ButtonAdd. Для создания кода, выполняемого при нажатии на кнопку, дважды щелкните по этой кнопке. Вы попадете в режим редактирования кода. При этом будет создана заготовка функции, вызываемой при щелчке по кнопке:

void __fastcall TForm1::ButtonAddClick(TObject *Sender)

{

}

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

crew.push_back(staff());

strcpy(crew[iMax].name,EditName->Text.c_str());  // t_str() for Builder 2009

strcpy(crew[iMax].job,EditJob->Text.c_str()); // t_str() for Builder 2009

crew[iMax].pay=EditPay->Text.ToIntDef(0);

iCur=iMax; iMax++;

LabelNum->Caption= IntToStr(iMax);

 Добавьте «вручную» в класс формы функцию, выводящую выбранную запись базы данных в окно формы. Для этого опять выберите файл формы с расширением h. Добавьте после инструкции:

public:  // User declarations

строчку:

void __fastcall ShowRecord();

Выберите файл формы с расширением cpp. Добавьте в конец файла код функции:

void __fastcall TForm1::ShowRecord()

{

EditName->Text=crew[iCur].name;

EditJob->Text=crew[iCur].job;

EditPay->Text=IntToStr(crew[iCur].pay);

LabelNum->Caption=IntToStr(iCur+1);

}

Вернитесь в режим проектирования формы (design). Добавьте слева от надписи, предназначенной для вывода номера текущей записи кнопку TButton. Задайте свойства кнопки: Caption = <<, Name = ButtonPrev. Справа от надписи еще одну кнопку (Caption = >>, Name = ButtonNext). Эти кнопки предназначены для навигации по записям базы данных.

Выберите кнопку ButtonPrev. Дважды щелкните по ней и в созданную заготовку функции добавьте инструкции:

if(iCur<=0) return;

iCur--; ShowRecord();

Аналогично создайте функцию для кнопки ButtonNext. Соответствующий код:

if(iCur>=iMax-1) return;

iCur++; ShowRecord();

Проверьте работу программы. Она позволяет заполнять базу данных и осуществлять выбор нужной записи. Однако все записи остаются в оперативной памяти. Следовательно, следующим шагом должна стать реализация операций сохранения и чтения из файла нашей информации. Поместите на форму компоненты TSaveDialog и TOpenDialog.

В начало файла формы с расширением h или файла формы с расширением cpp добавьте директиву:

#include <stdio.h>

Добавьте на форму кнопки «сохранить» и «открыть». Код для кнопки «сохранить» может быть следующим:

SaveDialog1->Execute();

FILE *f=fopen(SaveDialog1->FileName.c_str(),"wb"); // t_str() for Builder 2009

if(f)fwrite(&crew[0],sizeof(staff),iMax,f);

else ShowMessage("file error");

fclose(f);

А код кнопки «открыть» таким:

OpenDialog1->Execute();

FILE *f=fopen(OpenDialog1->FileName.c_str(),"rb"); // t_str() for Builder 2009

if(f==0){

       ShowMessage("file error");return;

}

for(int i=0;i<crew.max_size();i++){

       staff s;

       fread(&s,sizeof(staff),1,f);

       if(feof(f)) break;

       crew.push_back(s);

}

fclose(f);

iMax=crew.size(); iCur=0; ShowRecord();

Далее реализуем операции поиска и сортировки записей базы данных по окладу сотрудника. Поместите на форму компонент TEdit (редактируемое поле) и задайте его свойства: Text = 0 , Name = EditName. Добавьте на форму кнопки «искать» и «сортировать». Код для кнопки «сортировать» может быть следующим:

sort(crew.begin(),crew.end());

iCur=0; ShowRecord();

А код кнопки «искать» таким:

staff s;

vector <staff>::iterator p;

s.pay=EditSearch->Text.ToIntDef(0);

s.pay=EditSearch->Text.ToIntDef(0);

p=find(crew.begin(),crew.end(),s);

iCur=p-crew.begin(); ShowRecord();

Замечание: Эти коды не устойчивы. Не хватает проверок на случай пустой базы данных, безуспешного поиска и т.п. Более аккуратную реализацию этих, а так же других операций можно найти в пособии: «Маслянкин В.И. Разработка Windows – приложений в среде Borland».

Возможный дизайн главного окна (формы) приведен ниже:

В пояснительной записке нужно отметить что:

1. Проект выполнен в среде Borland Builder.

2. Проект состоит из шести основных файлов (здесь приведены имена файлов,

задаваемые по умолчанию):

- Project1.bpr – файл проекта

- Project1.res – ресурсы проекта

- Project1.cpp – функция WinMain (точка входа)

- Unit1.dfm – ресурсы формы

- Unit1.h – объявление класса формы

- Unit1.cpp – реализация класса формы и основных операций

3. Необходимо полностью привести код четырех файлов:

 Project1.cpp, Unit1.dfm, Unit1.h и Unit1.cpp

4. Программа написана не Вами и Вы в ней так ничего и не поняли...




1. Петербурге на карманные деньги На фото- Анна ПУЛЬЧЕВА Основательница сети хостелов Nrni 22летняя Анна Пу
2. высыхание те конденсатор теряет емкость
3. Патріотичне виховання підлітків та юнакі
4. Судейская этика
5. Проектирование зоны текущего ремонта АТП
6. а характеризуется нарушением ритма менструаций и продолжительности менструального цикла
7. Реферат- Портфель власних акці
8. Курсовая работа- Конституционно-правовая ответственность
9. з курсу ldquo;Основи товарознавства продовольчих товарів.html
10. Вексель