База данных продавцов и покупателей

Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 20:59, курсовая работа

Краткое описание

Необходимо предусмотреть ввод всей необходимой информации для покупателей и продавцов, такой как:
- наименование товара;
- объём партии товара (объём покупки для покупателей);
- цена

Содержание

Введение…………………………………………………………………
3
1
Разработка алгоритма…………………………………………………….
4

1.1
Постановка задачи…………………………………………………
4

1.2
Описание алгоритма………………………………………………
11
2
Разработка рабочего проекта…………………………………………
13

2.1
Описание логической структуры…………………………………
13

2.2
Входные данные……………………………………………………
14

2.3
Выходные данные…………………………………………………
15

2.4
Вызов программы…………………………………………………
15
3
Тестирование проекта……………………………………………………
18
4
Внедрение………………………………………………………………..
20

4.1
Условия выполнения программы………………………………
20

Заключение………………………………………………………………
22

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

Приложение А – Блок-схема…………………………………………
24

Приложение Б – Код программы………………………………………
28

Приложение В – Результаты выполнения программы…………………
35

Прикрепленные файлы: 1 файл

ПЗ.doc

— 487.50 Кб (Скачать документ)

Основной алгоритм программы  включает в себя основные процедуры:

- ввод данных, которая состоит из ввода новой позиции, при этом в конце процедура предусмотрена функция сохранения в файл;

- вывод данных, которая состоит  из поиска необходимых данных  по условиям и непосредственного  вывода информации (вывод продавцов,  покупателей, архива, товара по поиску);

- удаление/восстановление, процедура  заключается в изменении статуса  записи. Либо она находится в  основном списке покупателей/продавцов  либо в архиве;

- удаление записи, процедура безвозвратного  удаления позиции из базы данных;

- подготовка к печати, процедура создания файла с выбранной позицией к печати.

 

  • Общая структура программы такова:
  • - процедура void __fastcall TForm1::FormCreate(TObject *Sender) – создание формы;

    - процедура void __fastcall void __fastcall TForm1::Button7Click(TObject *Sender) – ввод данных;

    - процедура void __fastcall TForm1::StringGrid1Click(TObject *Sender) – перевод текущей строки базы данных в поле ввода, выбор позиции;

    - процедура void __fastcall TForm1::Button4Click(TObject *Sender) – удаление данных;

    - процедура void __fastcall TForm1::Button3Click(TObject *Sender) – показать продавцов,

    - процедура void __fastcall TForm1::Button5Click(TObject *Sender) – вывод покупателей,

    - процедура void __fastcall TForm1::Button8Click(TObject *Sender) – удалить/восстановить запись,

    - процедура void __fastcall TForm1::Button6Click(TObject *Sender) – показать архив,

    - процедура void __fastcall TForm1::Button2Click(TObject *Sender) – подготовка к печати,

    - процедура void __fastcall TForm1::Button9Click(TObject *Sender) – поиск.

    Любая из этих процедур вызывается действием нажатия OnClick.

     

     2.2 Входные данные

    Входными данным для  программы являются:

    Информация о товаре (наименование товара;  объём партии товара, объём покупки для покупателей;  цена; условия продажи-отгрузки для продавцов; форма оплаты; контакты; примечание) вводимая в поля TEdit.

    Файл data.txt, информация в котором хранится в определённом порядке:

    Доска

    50м3

    169

     

    Нал

    ЧУП "Светопол"

     

    1

    Продавец

    4

    Лист ДСП

    100м2

    12

    Доставка

    Безнал

    ОДО "Лесхоз"

    Доставка бесплатно

    0

    Продавец

    …..

     

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

     

    2.3 Выходные данные

    Выходными данными программы  являются:

    1. Структура поля вывода в виде таблицы StringGrid.

     

    2.4 Вызов и загрузка

    Для вызова и загрузки программы необходимо запустить  исполняемый файл программы Base.exe.

     

    3 Тестирование проекта

     

    Тестирование проекта  буде производить с помощью анализа  входных и выходных данных.

    Пусть мы имеем некоторую  базу данных, хранящуюся в файле data.txt. Добавим позицию.

    Рисунок 6 – База данных. Выведены продавцы

    Рисунок 7 – База данных. Ввод данных в поля TEdit

     

     

    Рисунок 8 – Результат ввода новой позиции

     

    После ввода данных необходимо снова обновить поле вывода нажатием соответствующей кнопки.

    Пусть мы имеем некоторую  базу данных. Удалим запись в архив.

    Рисунок 9 – База данных. Выведены покупатели

    Удалим позицию 5. Доска  в архив.

    Рисунок 10 – База данных. Выведен архив. Позиция помещена

     

    Пусть мы имеем некоторую  базу данных. Найдём доску и подготовим самый дешёвый вариант продавца к печати.

    Рисунок 11 – База данных. Ввод наименования в поле поиска

    Рисунок 12 – База данных. Результат поиска

    Файл сохраняется как print.txt и выглядит следующим образом:

    Наименование товара |Партия,шт| Цена,$ |Условия пр. |Оплата |Контакты | Примечание| 

    _____________________________________________________________________________________________

     

    Доска   |50м3 | 169 |   |Нал |ЧУП "Светопол"|    | 

     

     

     

     

     

     

     

    4 Внедрение

     

    4.1 Условия выполнения программы

    Программа запускается  с помощью файла Base.exe.

    Вывод информации:

    Рисунок 13 – Вывод данных покупателей

     

    Для ввода информации необходимо:

    - заполнить графы поля  ввода;

    - выбрать «продавец или покупатель»;

    - нажать кнопку «Добавить».

    Для просмотра базы необходимо нажать кнопку «Продавцы», «Покупатели» или «Архив».

    Для удаления (перемещения) информации необходимо:

    - выбрать нужную строку (её данные отобразятся в поле ввода);

    - удалить либо переместить в архив, нажав кнопки «Удалить» или «Удалить/Добавить в архив».

    Для поиска информации необходимо:

    - нажать кнопку «Поиск»;

    - в появившемся окне ввести наименование искомого товара и нажать кнопку «Искать».

     

    Для подготовки к печати информации необходимо:

    - выбрать нужную строку (её данные отобразятся в поле ввода);

    - нажать кнопку «На печать».

     

    Заключение

     

    Итогом курсовой работы стала разработка программы в среде C++Builder. Программа предоставляет возможность управлять базой данных, а именно вводить, сохранять и выводить данные. Приведён подробный алгоритм в виде блок-схемы и его описание, код программы. Изложена инструкция по работе с программой. Показана верная работоспособность программы.

    Для выполнения курсовой работы использовались следующие системы автоматизированного проектирования: С++Builder 6, MSOffice 2007, AutoCAD 2004, MSPaint.

     

     

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

     

      1. Романов Е.Л., Практикум по программированию на С++. СПБ, 2004 – 432с.
      2. Герберт Шилдт, Полный справочник по С++, 4-е издание. М.: Издательский дом «Вильямс», 2004. – 800с.

    3. Липпман Дж. Основы программирования на С++. М.: СПБ, 2002

     

    Приложение А – Блок-схема.

     

    Блок-схема главного алгоритма  программы.

     

     

     

    Блок-схема алгоритма  ввода данных

     

    Приложение Б – Код  программы

     

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

    #include <vcl.h>

    #pragma hdrstop

    #include "DataBase.h"

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

    #pragma package(smart_init)

    #pragma resource "*.dfm"

    TForm1 *Form1;

    int stop=0;

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

    __fastcall TForm1::TForm1(TComponent* Owner)

            : TForm(Owner)

    {

    }

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

    void __fastcall TForm1::BitBtn1Click(TObject *Sender)

    {

    int a=0;

    int st=0;

    float s=0;

    AnsiString txt1="",txt2="",txt3="";

    if(Edit1->Text.Length()==0)st=1;

    if(Edit9->Text.Length()==0)st=1;

    if(Edit2->Text.Length()==0)st=1;

     

    if(st==1)Label6->Caption="ERROR!!!";

    else    {

            Label6->Caption="OK!";

            for (a=1;a<1000;a++)if(StringGrid1->Cells[0][a]=="")break;

            StringGrid1->Cols[0]->Add(a);

            StringGrid1->Cols[1]->Add(Edit1->Text);

            StringGrid1->Cols[2]->Add(Edit9->Text);

            StringGrid1->Cols[3]->Add(Edit2->Text);

            StringGrid1->Cols[4]->Add(Edit3->Text);

            StringGrid1->Cols[5]->Add(Edit4->Text);

            StringGrid1->Cols[6]->Add(Edit5->Text);

            st=StrToInt(Edit3->Text)+StrToInt(Edit4->Text)+StrToInt(Edit5->Text);

            s=st/3.0;

           StringGrid1->Cols[7]->Add(s);

            StringGrid1->Row++;

            }

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

            {

            for(int j=0;j<8;j++)

                    {

                     Memo1->Lines->Add(StringGrid1->Cells[j][i]);

                    }

            }

    Memo1->Lines->SaveToFile("data.txt");

    Memo1->Lines->Clear();

    }

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

    void __fastcall TForm1::FormCreate(TObject *Sender)

    {

     

    Memo1->Lines->Clear();

    StringGrid2->Cols[0]->Add("№");

    StringGrid2->Cols[1]->Add("Наименование товара");

    StringGrid2->Cols[2]->Add("Партия,шт");

    StringGrid2->Cols[3]->Add("Цена,$");

    StringGrid2->Cols[4]->Add("Условия пр.");

    StringGrid2->Cols[5]->Add("Оплата");

    StringGrid2->Cols[6]->Add("Контакты");

    StringGrid2->Cols[7]->Add("Примечание");

    StringGrid2->Cols[8]->Add("А");

    StringGrid2->Cols[9]->Add("P");

    StringGrid2->RowCount=1000;

     

     

    Memo1->Lines->LoadFromFile("data.txt");

    for(int i=0; i<1000; i+=10)

            {

            if(Memo1->Lines->Strings[i+8]!="") StringGrid2->Row++;

            else break;

            StringGrid2->Cols[0]->Add(Memo1->Lines->Strings[i]);

            StringGrid2->Cols[1]->Add(Memo1->Lines->Strings[i+1]);

            StringGrid2->Cols[2]->Add(Memo1->Lines->Strings[i+2]);

            StringGrid2->Cols[3]->Add(Memo1->Lines->Strings[i+3]);

            StringGrid2->Cols[4]->Add(Memo1->Lines->Strings[i+4]);

            StringGrid2->Cols[5]->Add(Memo1->Lines->Strings[i+5]);

            StringGrid2->Cols[6]->Add(Memo1->Lines->Strings[i+6]);

            StringGrid2->Cols[7]->Add(Memo1->Lines->Strings[i+7]);

            StringGrid2->Cols[8]->Add(Memo1->Lines->Strings[i+8]);

            StringGrid2->Cols[9]->Add(Memo1->Lines->Strings[i+9]);

            }

    Memo1->Lines->Clear();

     

    }

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

    void __fastcall TForm1::Button1Click(TObject *Sender)

    {

    Panel2->Visible=true;

    }

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

    void __fastcall TForm1::StringGrid1Click(TObject *Sender)

    {

    Button2->Enabled=true;

    Button4->Enabled=true;

    Button8->Enabled=true;

    int a=0;

    AnsiString txt1="",txt2="",txt3="",txt="";

     

    a=StringGrid1->Row;

    Edit1->Text=StringGrid1->Cells[1][a];

    txt=StringGrid1->Cells[2][a];

    if(txt!="")

            {

            Edit9->Text=StringGrid1->Cells[3][a];

            Edit2->Text=StringGrid1->Cells[2][a];

            Edit1->Text=StringGrid1->Cells[1][a];

            Edit5->Text=StringGrid1->Cells[7][a];

            Edit10->Text=StringGrid1->Cells[4][a];

            Edit3->Text=StringGrid1->Cells[5][a];

            Edit4->Text=StringGrid1->Cells[6][a];

            ComboBox1->Text=StringGrid1->Cells[9][a];

            }

    if(ComboBox1->Text=="Покупатель")

            {Edit10->Visible=false;

            Label8->Visible=false;}

    else

            {Edit10->Visible=true;

            Label8->Visible=true;}

    }

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

    void __fastcall TForm1::Button3Click(TObject *Sender)

    {

    StringGrid1->Visible=true;

    for (int i=0;i<1000;i++)StringGrid1->Rows[i]->Clear();

     

    AnsiString txt="",txt2="";

    StringGrid1->Visible=true;

    StringGrid2->Visible=false;

     

    Memo1->Lines->Clear();

    StringGrid1->Cols[0]->Add("№ в БД");

    StringGrid1->Cols[1]->Add("Наименование  товара");

    StringGrid1->Cols[2]->Add("Партия,шт");

    StringGrid1->Cols[3]->Add("Цена,$");

    StringGrid1->Cols[4]->Add("Условия пр.");

    StringGrid1->Cols[5]->Add("Оплата");

    StringGrid1->Cols[6]->Add("Контакты");

    StringGrid1->Cols[7]->Add("Примечание");

    StringGrid1->Cols[8]->Add("А");

    StringGrid1->Cols[9]->Add("П");

    StringGrid1->RowCount=1000;

     

    int k=1;

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

            {

            for(int j=0;j<10;j++)

                    {

                    txt=StringGrid2->Cells[9][i];

                    txt2=StringGrid2->Cells[8][i];

                    if(txt=="Продавец"&&txt2=="0")

                    StringGrid1->Cells[j][k]=StringGrid2->Cells[j][i];

                    else break;

                    }

            if(txt=="Продавец"&&txt2=="0")k++;

            }

    }

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

    void __fastcall TForm1::Button4Click(TObject *Sender)

    {

    int a=0,b=0;

    a=StringGrid1->Row;

    Memo1->Lines->Clear();

     

    a=StrToFloat(StringGrid1->Cells[0][a]);

     

    for (b=1;b<1000;b++)

            if(StringGrid2->Cells[0][b]=="")break;

                    for(a;a<=b;a++){StringGrid2->Rows[a]=StringGrid2->Rows[a+1];

                            if(StringGrid2->Cells[0][a+1]!="")StringGrid2->Cells[0][a]=a;}

     

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

            {

            for(int j=0;j<10;j++)

                    {

                     Memo1->Lines->Add(StringGrid2->Cells[j][i]);

                    }

            }

    Memo1->Lines->SaveToFile("data.txt");

    Memo1->Lines->Clear();

    StringGrid1->Visible=false;

    }

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

     

    void __fastcall TForm1::ComboBox1Change(TObject *Sender)

    {

    if(ComboBox1->Text=="Покупатель")

            {Edit10->Visible=false;

            Label8->Visible=false;}

    else

            {Edit10->Visible=true;

            Label8->Visible=true;}       

    }

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

     

    void __fastcall TForm1::Button7Click(TObject *Sender)

    {

    int a=0;

    for (a=1;a<1000;a++)if(StringGrid2->Cells[0][a]=="")break;

    //Panel1->Visible=false;

            StringGrid2->Cols[0]->Add(a);

            StringGrid2->Cols[1]->Add(Edit1->Text);

            StringGrid2->Cols[2]->Add(Edit2->Text);

            StringGrid2->Cols[3]->Add(Edit9->Text);

            if(ComboBox1->Text=="Продавец")StringGrid2->Cols[4]->Add(Edit10->Text);

    Информация о работе База данных продавцов и покупателей