Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
‹‹Курский государственный технический университет››
Кафедра_____________________________________________________
КУРСОВАЯ РАБОТА (ПРОЕКТ)
по дисциплине ‹‹____________________________________________››
(наименование учебной дисциплины)
на тему ‹‹____________________________________________________
Специальность (направление подготовки)________________________
(код, наименование)
Авторы работы (проекта)_______________ _______________________
(инициалы, фамилия) (подпись, дата)
Группа____________
Руководитель работы (проекта)______________ ___________________
(инициалы, фамилия) (подпись, дата)
Работа (проект) защищена __________________
(дата)
Оценка____________________
Председатель комиссии__________________ ______________________
(инициалы, фамилия) (подпись, дата)
Члены комиссии _____________________ _________________________
(инициалы, фамилия) (подпись, дата)
Курск, 20___г.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
‹‹Курский государственный технический университет››
Кафедра_____________________________________________________
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ (ПРОЕКТ)
Студент (слушатель)______________ шифр _______ группа _________
(фамилия, инициалы)
1. Тема______________________________________________________
_____________________________________________________________
2. Срок предоставления работы (проекта) к защите ‹‹___››_____20___г.
3. Исходные данные (для проектирования, для научного исследования):
_____________________________________________________________
4. Содержание пояснительно записки курсовой работы (проекта):
4.1.__________________________________________________________
4.2._________________________________________________________
4.3.__________________________________________________________
4.4.__________________________________________________________
4.5.__________________________________________________________
4.6.__________________________________________________________
4.7.__________________________________________________________
5. Перечень графического материала:____________________________
_____________________________________________________________
Руководитель работы (проекта)_______________ __________________
(подпись, дата) (инициалы, фамилия)
Задание принял к исполнению_________________________
(подпись, дата)
Реферат
Представляемый документ содержит:
35 страниц текста, четыре рисунка, три используемых источника.
Перечень ключевых слов: база данных, учет товаров, программы для магазинов.
Объектом исследования является база данных компьютерного магазина.
Цель работы состоит в создании программного комплекса, обеспечивающего использование структурированной базы данных для компьютерного магазина. Методы, используемые при разработке - язык программирования высокого уровня C++. Созданный программный продукт обеспечивает выполнение всех требований технического задания.
Содержание
Введение
Цель данной курсовой работы разработать программный продукт, предназначенный для учёта, реализации товаров в компьютерного магазине.
Область применения программного продукта. Программный продукт может быть использован для широкого потребления среди пользователей.
До внедрения первых ЭВМ в торговую отрасль вести учёт за товарами, которые находятся в наличии и которые только поступают в продажу было крайне трудно. Когда на производстве появились первые ЭВМ, то одновременно появились и программы систематизирующие и ускоряющие работу и учёт магазинов. Эти программы представляют собой базы данных в которых хранятся все данные о товарах. Современное программное обеспечение позволяет пользователям хранить огромные объёмы информации о продукции, вводить в базу данных значения введённые с клавиатуры, удалять любую строку по желанию пользователя, просматривать все записи, хранящиеся в базе данных, выводить количество всех записей на экран, легко и быстро находить нужный товар по необходимым параметрам, без сложной работы с документами производить быструю надбавку в процентном соотношении на нужный товар. Подобный программный продукт широко используется в большинстве современных сетей крупных магазинов и торговых центров.
Практическое значение. Программный продукт позволяет сократить время и автоматизировать учёт, реализацию товаров.
Актуальность разработки программного продукта состоит значительном упрощении и автоматизации учёта, приёма, продажи товаров в каком-либо техническом учреждении.
Программный продукт должен быть разработан на языке программирования высокого уровня C++, использовать принципы объектно-ориентированного программирования и структурный подход к решению поставленных задач.
Результатами выполнения дипломной работ должен стать готовый программный продукт, обеспечивающий всем требованиям технического задания.
1.1. Основание для разработки
Задача дана на основании курсовой работы. База данных для продуктового магазина.
1.2 Назначение разработки
Программный продукт разрабатывается с целью создания упорядоченной структуры данных, что позволяет существенно экономить используемое для работы время.
1.3 Требования пользователя к программному изделию
Необходимо реализовать программный продукт, позволяющий использовать структурированную базу данных.
1.4 Требования к программе или программному изделию
Продукт должен размещаться в виде файлов на CD дисках. В процессе работы могут использоваться Flash, CD-R/-RW, DVD-R/RW или другие носители информации.
устройство удаленного доступа к сети: модем или сетевая карта.
1.5 Требования к программной документации
Программная документация должна включать следующие документы:
· техническое задание;
· рабочий проект;
· диск с приложением.
В приложении к документу "Рабочий проект" должен быть приведен листинг исходных текстов программного изделия.
1.6 Стадии и этапы разработки
Выполнение разработки должно осуществляться в три этапа:
· техническое задание;
· рабочий проект.
На стадии "Техническое задание" проводится:
· постановка задачи;
· разработка требований к программному изделию;
· изучение литературы по задаче.
На стадии "Рабочий проект" проводится:
· разработка схем алгоритмов;
· физическое проектирование программного изделия;
· тестирование и отладка программного изделия;
· оформление работы.
2.1 Описание программы:
Данная программа состоит из двух частей:
- Внешний вид форм;
- Компоненты на форме.
2.1.1 Тип входных данных
Входные данные, введенные пользователем с клавиатуры:
- Наименование товара (Edit1, тип AnsiString);
- Код товара (Edit3, тип AnsiString);
- Дата поступления (Edit2, тип AnsiString);
- Цена товара (Edit4, тип AnsiString);
- Количество(Edit5, тип AnsiString);
- Надбавка(Edit6, тип float).
Имеющийся файл базы данных «Salon.txt».
2.1.2 Выходные данные
Выходными данными для программного продукта являются значения, выводимые программой пользователю на экран или полученные в процессе обработки данных, такие как:
- файл базы данных «Salon.txt»;
- таблица, созданная пользователем в результате работы программы (DataGrid1);
- таблица поиска с выведенными на экран табличными значениями и значениями, введенными пользователем (SearchGrid1);
- количество всех записей в базе данных (Label6, тип Int);
- сообщение об удалении всех записей из базы данных
(ShowMessage( "Таблица пуста" ).
2.2.1 Форма
2.2.1 Стандартная форма
Рисунок 1 -- Стандартная форма программы
2.2.1.2 Форма с выведенным на экран количеством записей в базе данных и примером введенной таблицы
Рисунок 2 - Форма с выведенным на экран количеством записей в базе данных.
2.2.1.3 Форма с выведенной на экран таблицей поиска и совпадением критерия поиска пользователя и уже имеющейся в базе данных записи.
Рисунок 3 -- Форма с выведенной на экран таблицей поиска.
2.2.1.4. Форма с выводом сообщения об удалении всех строк в базе данных
Рисунок 4 -- Форма с выводом сообщения об удалении всех строк в базе данных
2.3.1 Компоненты на форме.
2.3.1.1 Add
Add - эта кнопка предназначена для добавления в базу данных введенных с клавиатуры значений, таких как: наименование товара, код товара, дата поступления, дата окончания срока годности, цена товара, количество. Кнопка использует две функции.
2.3.1.1.1 add()
Функция add() используется для передачи значений полей для ввода в таблицу DataGrid1.
Входными данными для функции являются значения полей для ввода данных (Edit1, Edit3, Edit2, Edit4, Edit5), выходными данными являются значения соответствующих ячеек таблицы DataGrid1.
2.3.1.1.2 Clear()
Функция Clear() предназначена для очищения значений после ввода их с клавиатуры в базу данных. Не использует входных и выходных данных.
2.3.1.2 Save
Save - эта кнопка предназначена для сохранения готовой базы данных в файл с именем Salon.txt в каталоге с программой. Кнопка вызывает одну функцию.
2.3.1.2.1 form_save()
Функция form_save() предназначена для открытия или создания файла с именем Salon.txt, записи в него всех значений базы данных и закрытии файла.
Входными данными для функции являются значения соответствующих ячеек таблицы DataGrid1, выходным данным является файл с записанными в него этими значениями.
2.3.1.3 Delete
Delete - эта кнопка предназначена для удаления выбранной пользователем строки из базы данных. Кнопка вызывает одну функцию.
2.3.1.3.1 delet()
Функция delet() предназначена для вывода сообщения «Таблица пуста» в случае, если в базе данных не окажется записей, и для удаления выбранной пользователем строки в базе данных путем записи в эту строку последней строки в базе данных и уменьшении базы данных по размеру.
Входными данными для функции являются свойство RowCount таблицы DataGrid1 и значение указателя на строку rowtab, выходным данным является измененная таблица DataGrid1.
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 Архангельский, А.Я., Тагин, М.А. Программирование в C++Builder 6 и 2006 [Текст] / М..: ООО “Бином-Пресс”, 2002. - 1184 с.
2 Архангельский, А.Я. Компоненты общего назначения библиотеки Delphi 5.0 [Текст] / А.Я. Архангельский - М.: Бином, 2001. - 416 с.
3 Архангельский, А.Я. Программирование в Delphi 6 [Текст] / А.Я. Архангельский - С.-П.: Бином, 2002. - 1120 с.
Приложение А
Текст программы
//---------------------------------------------------------------------------
#include <vcl.h>
#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;
}
//---------------------------------------------------------------------------
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |