46907 (607987), страница 2

Файл №607987 46907 (База данных компьютерного магазина) 2 страница46907 (607987) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

2.3.1.4 Number

Number – эта кнопка предназначена для вывода на экран количества всех записей в базе данных. Использует одну функцию.

2.3.1.4.1 all()

Функция All() предназначена для подсчета записей в базе данных и вывода на форму сообщения «Количество записей в базе ». Входное данное для функции – переменная row (количество строк таблицы DataGrid1), выходным данным является метка на форме Label6, выводящая целые значения.

2.3.1.5 Search

Search – эта кнопка предназначена для сравнения значений, таких как: наименование товара, код товара, дата поступления, дата окончания срока годности, цена товара, количество, введенных с клавиатуры, с уже имеющимися соответствующими значениями в базе данных и вывода их на экран на отдельной таблице. Использует две функции.

2.3.1.5.1 search()

Функция search() предназначена для поиска совпадений в исходной базе данных и значениями, введенными пользователем с клавиатуры по любым критериям поиска и выводом возможных совпадений на экран. Входными данными для функции являются значения полей для ввода данных (Edit1, Edit3, Edit2, Edit4, Edit5), переменная row (количество строк таблицы DataGrid1), значения соответствующих ячеек таблицы DataGrid1, выходным данным является таблица поиска SearchGrid1.

2.3.1.5.2 Clear()

Функция была описана в 2.3.1.1.2

2.3.1.6 plus

Plus – эта кнопка служит для расчета дополнительной стоимости продукта и вывода его в базу в соответствующей ячейке. Использует одну функцию.

2.3.1.6.1 plus()

Функция plus() предназначена для расчета и прибавления к стоимости продукта определенного значения, определяемого пользователем.

Входными данными для функции являются: переменная row (количество строк таблицы DataGrid1) и вещественная переменная к, вводимая пользователем в Edit6, выходными данными являются значения колонки "Цена" таблицы DataGrid1.

2.3.1.7 sozdanie_form()

Функция sozdanie_form() предназначена для записи заголовочных колонок в таблицу, создания либо открытия уже имеющегося файла. Входными данными являются файл базы данных " Salon.txt", переменная row (количество строк таблицы DataGrid1), выходными данными являются значения ячеек таблицы DataGrid1.

2.4.1 Функциональные тесты

2.4.1.1 При вводе корректных данных в поля для ввода и нажатии на кнопку «Добавить» происходит запись этих данных в соответствующие ячейки в таблицу данных

2.4.1.2 Если в уже имеющейся таблице выбрать строку, кроме строки с названиями колонок и нажать на кнопку «Удалить», то произойдет удаление выбранной строки, а на ее место в таблицу будет записана строка, которая была в таблице последней. При удалении всех строк в таблице будет выдаваться сообщение "Таблица пуста".

2.4.1.3 Если в процессе работы требуется вывести на экран количество всех записей в базе данных, то достаточно нажать на кнопку «Количество». Если таблица не пустая, то будет выведено количество строк таблицы, если же она пустая, то будет выведен 0.

2.4.1.4 В процессе работы может возникнуть потребность в поиске записей в базе данных по различным критериям. Для решения этой проблемы надо ввести соответствующие значения в поля для ввода (поиск может проходить как по одному критерию, так и по нескольким) и нажать кнопку «Поиск». После нажатия кнопки открывается поисковая таблица, в которую будут выведены все найденные совпадения по критериям поиска между пользовательскими значениями и значениями из базы данных. Если же совпадений найдено не будет, то таблица поиска останется пустой.

2.4.1.5 При введении в поле Edit6 вещественного значения (процентная накрутка к первоначальной стоимости товара) и нажатии на кнопку «Накрутка» происходит замена значений колонки «Цена» в главной таблице новыми значениями. Новые значения также являются денежными, т.е. после запятой в числе только две цифры.

2.4.1.6 Для сохранения изменений в базе данных надо нажать кнопку «Сохранить». При этом происходит создание или перезапись файла "Salon.txt" в каталоге с программой. Файл может быть использован впоследствии отдельно от основной программы и открывается любым текстовым редактором.

  1. Заключение

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

Программный продукт рекомендован к использованию для широкого круга пользователей. Использование программного продукта позволяет существенно сократить используемое место на жестком диске и время, проводимое за компьютером, что очень актуально в наши дни.

  1. Список использованных источников

  1. Архангельский, А.Я., Тагин, М.А. Программирование в C++Builder 6 и 2006 [Текст] / М..: ООО “Бином-Пресс”, 2002. – 1184 с.

  2. Архангельский, А.Я. Компоненты общего назначения библиотеки Delphi 5.0 [Текст] / А.Я. Архангельский – М.: Бином, 2001. – 416 с.

  3. Архангельский, А.Я. Программирование в Delphi 6 [Текст] / А.Я. Архангельский – С.-П.: Бином, 2002. – 1120 с.

  1. Приложение А

Текст программы

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "Unit1.h"

#include "stdio.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

int row = 1;

int rowtab = -1;

class Ta

{

public:

AnsiString Naimenovanie, Date1, Kod, Price, Quantity;

FILE *f;

void input(AnsiString, AnsiString, AnsiString, AnsiString, AnsiString);

void sozdanie_form();

void add();

void clear();

void delet();

void close();

void form_save();

void all();

void search();

void plus();

};

void Ta::input(AnsiString Naimenovanie, AnsiString Date, AnsiString Kod, AnsiString Price, AnsiString Quantity)

{

this->Naimenovanie = Naimenovanie ;

this->Date1 = Date1 ;

this->Kod = Kod;

this->Price = Price;

this->Quantity = Quantity;

}

void Ta::sozdanie_form()

{

Form1->DataGrid1->RowCount = 1;

Form1->DataGrid1->Cells[0][0] = "Íàèìåíîâàíèå";

Form1->DataGrid1->Cells[1][0] = "Äàòà ïîñòóïëåíèÿ";

Form1->DataGrid1->Cells[2][0] = "Êîä òîâàðà";

Form1->DataGrid1->Cells[3][0] = "Öåíà";

Form1->DataGrid1->Cells[4][0] = "Êîëè÷åñòâî";

char a1[50];

char b1[50];

char c1[50];

char d1[50];

char e1[50];

if ((this->f = fopen("salon.txt","rb")) != NULL)

{

f = fopen("salon.txt","rb");

while(!(feof(this->f)))

{

fread(a1,sizeof(char),50,this->f);

fread(b1,sizeof(char),50,this->f);

fread(c1,sizeof(char),50,this->f);

fread(d1,sizeof(char),50,this->f);

fread(e1,sizeof(char),50,this->f);

this->Naimenovanie = a1;

this->Date1 = b1;

this->Kod = c1;

this->Price = d1;

this->Quantity = e1;

if (!(feof(this->f)))

{

row++;

Form1->DataGrid1->RowCount = row;

Form1->DataGrid1->Cells[0][row - 1] = this->Naimenovanie;

Form1->DataGrid1->Cells[1][row - 1] = this->Date1;

Form1->DataGrid1->Cells[2][row - 1] = this->Kod;

Form1->DataGrid1->Cells[3][row - 1] = this->Price;

Form1->DataGrid1->Cells[4][row - 1] = this->Quantity;

}

}

}

else {this->f = fopen("salon.txt","wb");};

fclose(this->f);

}

void Ta::add()

{

Form1->DataGrid1->Cells[0][Form1->DataGrid1->RowCount] = Form1->Edit1->Text;

Form1->DataGrid1->Cells[1][Form1->DataGrid1->RowCount] = Form1->Edit2->Text;

Form1->DataGrid1->Cells[2][Form1->DataGrid1->RowCount] = Form1->Edit3->Text;

Form1->DataGrid1->Cells[3][Form1->DataGrid1->RowCount] = Form1->Edit4->Text;

Form1->DataGrid1->Cells[4][Form1->DataGrid1->RowCount] = Form1->Edit5->Text;

row++;

Form1->DataGrid1->RowCount = row;

Form1->Edit1->Clear();

Form1->Edit2->Clear();

Form1->Edit3->Clear();

Form1->Edit4->Clear();

Form1->Edit5->Clear();

}

void Ta::form_save()

{

this->f = fopen("salon.txt", "w+b");

char one[50];

char two[50];

char three[50];

char four[50];

char five[50];

for(int i = 1; i < row; i++)

{

AnsiString a1 = Form1->DataGrid1->Cells[0][i];

AnsiString a2 = Form1->DataGrid1->Cells[1][i];

AnsiString a3 = Form1->DataGrid1->Cells[2][i];

AnsiString a4 = Form1->DataGrid1->Cells[3][i];

AnsiString a5 = Form1->DataGrid1->Cells[4][i];

strncpy(one,a1.c_str(),50);

strncpy(two,a2.c_str(),50);

strncpy(three,a3.c_str(),50);

strncpy(four,a4.c_str(),50);

strncpy(five,a5.c_str(),50);

fwrite(one,sizeof(char),50,this->f);

fwrite(two,sizeof(char),50,this->f);

fwrite(three,sizeof(char),50,this->f);

fwrite(four,sizeof(char),50,this->f);

fwrite(five,sizeof(char),50,this->f);

}

fclose(this->f);

}

void Ta::delet()

{

int k = 0;

for(int i = 1; i < row; i++)

k++;

if (Form1->DataGrid1->RowCount == 1)ShowMessage( "Òàáëèöà ïóñòà" );

else

{

Form1->DataGrid1->Cells[0][rowtab] = Form1->DataGrid1->Cells[0][k];

Form1->DataGrid1->Cells[1][rowtab] = Form1->DataGrid1->Cells[1][k];

Form1->DataGrid1->Cells[2][rowtab] = Form1->DataGrid1->Cells[2][k];

Form1->DataGrid1->Cells[3][rowtab] = Form1->DataGrid1->Cells[3][k];

Form1->DataGrid1->Cells[4][rowtab] = Form1->DataGrid1->Cells[4][k];

Form1->DataGrid1->Cells[5][rowtab] = Form1->DataGrid1->Cells[5][k];

Form1->DataGrid1->RowCount--;

}

}

void Ta::all()

{

int k = 0;

for(int i = 1; i < row; i++)

k++;

Form1->Label6->Caption = "Êîëè÷åñòâî çàïèñåé â áàçå " + IntToStr(k);

}

void Ta::search()

{

int k = 0;

for (int i = 1; i < row; i++)

{

if ((Form1->DataGrid1->Cells[0][i] == Form1->Edit1->Text)||(Form1->DataGrid1->Cells[1][i] == Form1->Edit2->Text)||(Form1->DataGrid1->Cells[2][i] == Form1->Edit3->Text)||(Form1->DataGrid1->Cells[3][i] == Form1->Edit4->Text)||(Form1->DataGrid1->Cells[4][i] == Form1->Edit5->Text))

{

Form1->SearchGrid1->Cells[0][k] = Form1->DataGrid1->Cells[0][i];

Form1->SearchGrid1->Cells[1][k] = Form1->DataGrid1->Cells[1][i];

Form1->SearchGrid1->Cells[2][k] = Form1->DataGrid1->Cells[2][i];

Form1->SearchGrid1->Cells[3][k] = Form1->DataGrid1->Cells[3][i];

Form1->SearchGrid1->Cells[4][k] = Form1->DataGrid1->Cells[4][i];

Form1->SearchGrid1->Cells[5][k] = Form1->DataGrid1->Cells[5][i];

k++;

Form1->SearchGrid1->RowCount = k;

}

Form1->SearchGrid1->Visible = True;

}

Form1->Edit1->Clear();

Form1->Edit2->Clear();

Form1->Edit3->Clear();

Form1->Edit4->Clear();

Form1->Edit5->Clear();

}

void Ta::plus()

{

float k = StrToFloat(Form1->Edit6->Text);

k = k/100;

for (int i = 1; i < row; i++)

Form1->DataGrid1->Cells[3][i] = ((float)((int)((Form1->DataGrid1->Cells[3][i]*(1 + k))*100))/100);

}

void __fastcall TForm1::AddClick(TObject *Sender)

{

Ta a;

a.add();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SaveClick(TObject *Sender)

{

Ta a;

a.form_save();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Ta a;

a.sozdanie_form();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::DeleteClick(TObject *Sender)

{

Ta a;

a.delet();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SearchClick(TObject *Sender)

{

Ta a;

a.search();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::NumberClick(TObject *Sender)

{

Ta a;

a.all();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::plusClick(TObject *Sender)

{

Ta a;

a.plus();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::DataGrid1SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

rowtab = ARow;

}

//---------------------------------------------------------------------------

Характеристики

Тип файла
Документ
Размер
17,02 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6898
Авторов
на СтудИзбе
268
Средний доход
с одного платного файла
Обучение Подробнее