Автор работы: Пользователь скрыл имя, 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
Основной алгоритм программы включает в себя основные процедуры:
- ввод данных, которая состоит из ввода новой позиции, при этом в конце процедура предусмотрена функция сохранения в файл;
- вывод данных, которая состоит
из поиска необходимых данных
по условиям и
- удаление/восстановление, процедура
заключается в изменении
- удаление записи, процедура безвозвратного
удаления позиции из базы
- подготовка к печати, процедура создания файла с выбранной позицией к печати.
- процедура void __fastcall TForm1::FormCreate(TObject *Sender) – создание формы;
- процедура void __fastcall void __fastcall TForm1::Button7Click(TObject *Sender) – ввод данных;
- процедура void __fastcall TForm1::StringGrid1Click(
- процедура 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 Выходные данные
Выходными данными программы являются:
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.
Список использованных источников
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=
if(Edit9->Text.Length()==0)st=
if(Edit2->Text.Length()==0)st=
if(st==1)Label6->Caption="
else {
Label6->Caption="OK!";
for (a=1;a<1000;a++)if(
StringGrid1->Cols[0]->Add(a);
StringGrid1->Cols[1]->Add(
StringGrid1->Cols[2]->Add(
StringGrid1->Cols[3]->Add(
StringGrid1->Cols[4]->Add(
StringGrid1->Cols[5]->Add(
StringGrid1->Cols[6]->Add(
st=StrToInt(Edit3->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-
}
}
Memo1->Lines->SaveToFile("
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("
for(int i=0; i<1000; i+=10)
{
if(Memo1->Lines->Strings[i+8]!
else break;
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(
}
Memo1->Lines->Clear();
}
//----------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Panel2->Visible=true;
}
//----------------------------
void __fastcall TForm1::StringGrid1Click(
{
Button2->Enabled=true;
Button4->Enabled=true;
Button8->Enabled=true;
int a=0;
AnsiString txt1="",txt2="",txt3="",txt=""
a=StringGrid1->Row;
Edit1->Text=StringGrid1->
txt=StringGrid1->Cells[2][a];
if(txt!="")
{
Edit9->Text=StringGrid1->
Edit2->Text=StringGrid1->
Edit1->Text=StringGrid1->
Edit5->Text=StringGrid1->
Edit10->Text=StringGrid1->
Edit3->Text=StringGrid1->
Edit4->Text=StringGrid1->
ComboBox1->Text=StringGrid1->
}
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->
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]=
else break;
}
if(txt=="Продавец"&&txt2=="0")
}
}
//----------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
int a=0,b=0;
a=StringGrid1->Row;
Memo1->Lines->Clear();
a=StrToFloat(StringGrid1->
for (b=1;b<1000;b++)
if(StringGrid2->Cells[0][b]=="
for(a;a<=b;a++){StringGrid2->
if(StringGrid2->Cells[0][a+1]!
for(int i=1; i<1000; i++)
{
for(int j=0;j<10;j++)
{
Memo1->Lines->Add(StringGrid2-
}
}
Memo1->Lines->SaveToFile("
Memo1->Lines->Clear();
StringGrid1->Visible=false;
}
//----------------------------
void __fastcall TForm1::ComboBox1Change(
{
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(
//Panel1->Visible=false;
StringGrid2->Cols[0]->Add(a);
StringGrid2->Cols[1]->Add(
StringGrid2->Cols[2]->Add(
StringGrid2->Cols[3]->Add(
if(ComboBox1->Text=="Продавец"