Будь умным!


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

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

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


Курсовая в среде 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.  Возьмем точку М0E3 и вектор где Vпространство переносов пространства E3
2. капли на кусочек сахара 23 раза в день
3. Государство можно рассматривать с разных позиций философской исторической социологической юридической
4. Проблема- Молодежь не интересуется инетлектуальными видами спорта
5. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата педагогічних наук Харків ~
6. .Понятие уголовной ответственности ее основания.
7. 1710 160018
8. Патриархи в освящении науки и сакральной истории
9. бассейн из пластика в бетонной чаше с необработанным краем
10. В Красильщиков Что происходит со странами Латинской Америки в процессе глобальных переходов к постиндус
11. Менеджмент безопасности в экскурсионнотуристской сфере на мой взгляд заключается в том что насколько
12. Интернет в Китае. Первые шаги
13. Кеки Р Боте энд Ассошиэйтс
14. Судебное разбирательство в уголовном процессе
15. Франчайзинг
16. Проведення Всеукраїнського референдуму 1 грудня 1991р
17. СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА 1 п
18. Успешно осуществляющиеся на западе аутсорсинговые услуги сегодня находят своего потребителя и в Российско
19. Модуль 1 Модуль 2 ВСЕГО ПО УЧЕБНОЙ РАБОТЕ Аттестация
20. Що таке форматування тексту Як ввімкнути панель інструментів форматуванн