Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовик рэис.doc
Скачиваний:
6
Добавлен:
20.08.2019
Размер:
548.86 Кб
Скачать

2 Разработка программного обеспечения

2.1 Технологический процесс машинной реализации задачи

Основным инструментов SADT является декомпозиция, т.е. разбитие функциональной точки на ряд мелких модулей. Каждый блок имеет уникальное имя. При декомпозиции происходит объединение с помощью связи каждой из функциональных точек. Модели SADT ограниченно количество блоков на каждом уровне декомпозиции(3-6).

Рисунок 1 – SADT модель «Учет кассовых операций на счете 50»

Рисунок 2 – Декомпозиция SADT – модели

2.2 Алгоритм задачи и его описание

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

Алгоритм «учета кассовых операций» будет состоять из последовательных действий, таких как:

-сначала оформляются ПКО и РКО ;

-затем формируется ведомость, журнал ордер, кассовая книга;

Модель сущность – связь(ER).

Рисунок 3 – Модель сущность связь(ER)

Физическая модель базы данных

Таблица 1 – ПКО

Таблица 2 – РКО

Таблица 3 – ведомость

Таблица 4 – Журнал ордер

Таблица 5 – Кассовая книга

2.3 Программы и их описание

2.3.1 Алгоритм и текст программы меню

Для осуществления процесса проектирования разрабатываются комплексы программ и запросов на языке SQL.

Рисунок 4 – Меню программы

Основой интерфейса программы является пользовательское меню. В него входят такие пункты как «Документы», «Операции», «Выход»

Переход на формы осуществляется с помощью команд:

void __fastcall TForm1::N2Click(TObject *Sender)

{

Form2->Show();

}

void __fastcall TForm1::N4Click(TObject *Sender)

{

Form6->Show();

}

void __fastcall TForm1::N5Click(TObject *Sender)

{

Form5->Show();

}

void __fastcall TForm1::N6Click(TObject *Sender)

{

Form4->Show();

}

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form7->Show();

}

void __fastcall TForm1::N9Click(TObject *Sender)

{

Form8->Show();

}

void __fastcall TForm1::N10Click(TObject *Sender)

{

Form1->Close();

}

2.4.2 Алгоритм и тексты (вид форм) программ ввода данных

Рисунок 5 – Форма «форма заполнения ПКО»

Кнопка «Записать»

void __fastcall TForm2::BitBtn1Click(TObject *Sender)

{

float rezult=0;

AnsiString num=Edit1->Text;

int date=DateTimePicker1->Date;

AnsiString name=Edit2->Text;

int kod=StrToInt(Edit3->Text);

AnsiString glbuch=Edit4->Text;

AnsiString kassir=Edit5->Text;

AnsiString nameplat=Edit6->Text;

int debet=StrToInt(Edit7->Text);

int kredit=StrToInt(Edit8->Text);

float sum=StrToFloat(Edit9->Text);

AnsiString osnovan=Edit10->Text;

AnsiString prilog=Edit11->Text;

DM->ADOTable1->Append();

DM->ADOTable1->FieldByName("pkonum")->AsString=num;

DM->ADOTable1->FieldByName("pkodate")->AsDateTime=date;

DM->ADOTable1->FieldByName("pkonameorg")->AsString=name;

DM->ADOTable1->FieldByName("pkokodokpo")->AsInteger=kod;

DM->ADOTable1->FieldByName("pkoglbuch")->AsString=glbuch;

DM->ADOTable1->FieldByName("pkokassir")->AsString=kassir;

DM->ADOTable1->FieldByName("pkonameplat")->AsString=nameplat;

DM->ADOTable1->FieldByName("pkodebet")->AsInteger=debet;

DM->ADOTable1->FieldByName("pkokredit")->AsInteger=kredit;

if( RadioButton1->Checked )

{

if( ComboBox1->Text=="10%" )

{

rezult=(10*100/sum);

rezult=sum-rezult;

DM->ADOTable1->FieldByName("pkosum")->AsFloat=rezult;

}

if( ComboBox1->Text=="18%" )

{

rezult=(18*100/sum);

rezult=sum-rezult;

DM->ADOTable1->FieldByName("pkosum")->AsFloat=rezult;

}

}//end if

if ( RadioButton2->Checked )

{

DM->ADOTable1->FieldByName("pkosum")->AsFloat=sum;

}

DM->ADOTable1->FieldByName("pkoosnovan")->AsString=osnovan;

DM->ADOTable1->FieldByName("pkoprilog")->AsString=prilog;

DM->ADOTable1->Refresh();

DM->ADOTable1->Append();

}//end if

Кнопка «Следующая»

void __fastcall TForm2::BitBtn2Click(TObject *Sender)

{

DM->ADOTable1->Next();

}

Кнопка «Предыдущая»

void __fastcall TForm2::BitBtn3Click(TObject *Sender)

{

DM->ADOTable1->Prior();

}

Кнопка «К началу»

void __fastcall TForm2::BitBtn4Click(TObject *Sender)

{

if(DM->ADOTable1->RecNo!=0)

{

for (int i=0; i<DM->ADOTable1->RecordCount; i++)

DM->ADOTable1->Prior() ;

}

}

Кнопка «К концу»

void __fastcall TForm2::BitBtn5Click(TObject *Sender)

{

if (!DM->ADOTable1->Eof)

for (int i=0; i<DM->ADOTable1->RecordCount; i++)

DM->ADOTable1->Next();

}

Кнопка «Удалить»

void __fastcall TForm2::BitBtn6Click(TObject *Sender)

{

DM->ADOTable1->Delete();

}

Кнопка «Добавить»

void __fastcall TForm2::BitBtn7Click(TObject *Sender)

{

DM->ADOTable1->Insert();

}

Рисунок 6 – Форма «РКО»

На этой форме, как и на остальных, используется стандартный набор кнопок.

Кнопка «Записать»

void __fastcall TForm3::BitBtn1Click(TObject *Sender)

{

float rezult=0;

AnsiString num=Edit1->Text;

int date=DateTimePicker1->Date;

AnsiString name=Edit2->Text;

int kod=StrToInt(Edit3->Text);

AnsiString dolgruk=Edit4->Text;

AnsiString fioruk=Edit5->Text;

AnsiString glbuch=Edit6->Text;

AnsiString kassir=Edit7->Text;

AnsiString namepoluch=Edit8->Text;

AnsiString document=Edit9->Text;

int debet=StrToInt(Edit10->Text);

int kredit=StrToInt(Edit11->Text);

float sum=StrToFloat(Edit12->Text);

AnsiString osnovan=Edit13->Text;

AnsiString prilog=Edit14->Text;

DM->ADOTable1->Append();

DM->ADOTable1->FieldByName("rkonum")->AsString=num;

DM->ADOTable1->FieldByName("rkodate")->AsDateTime=date;

DM->ADOTable1->FieldByName("rkonameorg")->AsString=name;

DM->ADOTable1->FieldByName("rkokodokpo")->AsInteger=kod;

DM->ADOTable1->FieldByName("rkodolgruk")->AsString=dolgruk;

DM->ADOTable1->FieldByName("rkofioruk")->AsString=fioruk;

DM->ADOTable1->FieldByName("rkoglbuch")->AsString=glbuch;

DM->ADOTable1->FieldByName("rkokassir")->AsString=kassir;

DM->ADOTable1->FieldByName("rkonamepoluch")->AsString=namepoluch;

DM->ADOTable1->FieldByName("rkodocument")->AsString=document;

DM->ADOTable1->FieldByName("rkodebet")->AsInteger=debet;

DM->ADOTable1->FieldByName("rkokredit")->AsInteger=kredit;

DM->ADOTable1->FieldByName("rkosum")->AsInteger=sum;

DM->ADOTable1->FieldByName("rkoosnovan")->AsString=osnovan;

DM->ADOTable1->FieldByName("rkoprilog")->AsString=prilog;

DM->ADOTable1->Refresh();

}

Кнопка «Следующая»

void __fastcall TForm3::BitBtn2Click(TObject *Sender)

{

DM->ADOTable1->Next();

}

Кнопка «Предыдущая»

void __fastcall TForm3::BitBtn3Click(TObject *Sender)

{

DM->ADOTable1->Prior();

}

Кнопка «К началу»

void __fastcall TForm3::BitBtn5Click(TObject *Sender)

{

if(DM->ADOTable1->RecNo!=0)

{

for (int i=0; i<DM->ADOTable1->RecordCount; i++)

DM->ADOTable1->Prior() ;

}

}

Кнопка «К концу»

void __fastcall TForm3::BitBtn4Click(TObject *Sender)

{

if (!DM->ADOTable1->Eof)

for (int i=0; i<DM->ADOTable1->RecordCount; i++)

DM->ADOTable1->Next()

}

Кнопка «Удалить»

void __fastcall TForm3::BitBtn6Click(TObject *Sender)

{

DM->ADOTable1->Delete();

}

Кнопка «Добавить»

void __fastcall TForm3::BitBtn7Click(TObject *Sender)

{

DM->ADOTable1->Insert();

}

Рисунок 7 – Форма «Журнал-ордер»

Кнопка «Сформировать»

void __fastcall TForm6::Button1Click(TObject *Sender)

{

DM->ADOTable1->Close();

DM->ADOTable1->TableName="pko";

DM->ADOTable1->Open();

DM->ADOQuery1->Close();

DM->ADOQuery1->SQL->Clear();

DM->ADOQuery1->SQL->Add("select pko.pkodate from pko");

DM->ADOQuery1->Open();

DM->ADOTable2->Close();

DM->ADOTable2->TableName="zurnalorder";

DM->ADOTable2->Open();

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

{

DM->ADOTable2->Edit();

DM->ADOTable2->FieldByName("date")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("pkodate")->AsString;

DM->ADOTable2->FieldByName("numpko")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("pkonum")->AsString;

}

DM->ADOTable1->Close();

DM->ADOTable1->TableName="rko";

DM->ADOTable1->Open();

DM->ADOQuery1->Close();

DM->ADOQuery1->SQL->Clear();

DM->ADOQuery1->SQL->Add("select rko.rkonum from rko");

DM->ADOQuery1->Open();

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

{

DM->ADOTable2->Edit();

DM->ADOTable2->FieldByName("numrko")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("rkonum")->AsString;

}

DM->ADOTable2->Refresh();

DM->ADOTable2->Next();

}

Кнопка «Печать»

void __fastcall TForm6::Button2Click(TObject *Sender)

{

DM->ADOTable2->Close();

DM->ADOTable2->TableName="zurnalorder";

DM->ADOTable2->Open();

TStringList *list=new TStringList;

AnsiString s1,s2,s3,s7;

list->Add(" Журнал ордер № 7 " );

list->Add(" " );

list->Add("| дата | номер ПКО | номер РКО |");

list->Add("___________________________________________");

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

{

s1=DM->ADOTable2->FieldByName("date")->AsString ;

s2=DM->ADOTable2->FieldByName("numpko")->Value;

s3=DM->ADOTable2->FieldByName("numrko")->Value;

s7+=" "; s7+=s1; s7+=" "; s7+=" "; s7+=s2; s7+=" "; s7+=" "; s7+=s3;

list->Add(s7);

list->Add("|___________|_________________|_______________|");

s7=""; s1=""; s2=""; s3="";

DM->ADOTable2->Next();

}

list->Add(" ");

list->Add("Подпись Дирктора__________");

list->Add(" ");

list->Add("Подпись Гл.Бухгалтера__________");

list->SaveToFile("zhurnal.txt");

}

Рисунок 8 – Форма «Ведомость»

Кнопка «Сформировать»

void __fastcall TForm5::Button1Click(TObject *Sender)

{

DM->ADOTable1->Close();

DM->ADOTable1->TableName="pko";

DM->ADOTable1->Open();

DM->ADOQuery1->Close();

DM->ADOQuery1->SQL->Clear();

DM->ADOQuery1->SQL->Add("select pko.pkodate from pko");

DM->ADOQuery1->Open();

DM->ADOTable2->Close();

DM->ADOTable2->TableName="vedomost";

DM->ADOTable2->Open();

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

{

DM->ADOTable2->Edit();

DM->ADOTable2->FieldByName("veddate")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("pkodate")->AsString;

DM->ADOTable2->FieldByName("summapko")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("pkosum")->AsString;

}

DM->ADOTable1->Close();

DM->ADOTable1->TableName="rko";

DM->ADOTable1->Open();

DM->ADOQuery1->Close();

DM->ADOQuery1->SQL->Clear();

DM->ADOQuery1->SQL->Add("select rko.rkosum from rko");

DM->ADOQuery1->Open();

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

{

DM->ADOTable2->Edit();

DM->ADOTable2->FieldByName("summarko")->AsString=DM->ADOQuery1->DataSource->DataSet->FieldByName("rkosum")->AsString;

}

DM->ADOTable2->Refresh();

DM->ADOTable2->Insert();

}

Кнопка «Печать»

void __fastcall TForm5::Button2Click(TObject *Sender)

{

AnsiString t1, t2, t3, t4, t5, t6;

DM->ADOTable2->Close();

DM->ADOTable2->TableName="vedomost";

DM->ADOTable2->Open();

TStringList *list=new TStringList;

AnsiString s1,s2,s3,s7, s8;

list->Add(" Журнал Ордер № 7 ");

list->Add(" ");

list->Add("| Дата | Сумма прихода | Сумма расхода |");

list->Add("_______________________________________________________");

int sum1,sum2;

sum1=0; sum2=0;

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

{

s1=DM->ADOTable2->FieldByName("veddate")->AsString;

s2=DM->ADOTable2->FieldByName("summapko")->AsString;

// sum1+=StrToInt(DM->ADOTable2->FieldByName("summapko")->AsString);

s3=DM->ADOTable2->FieldByName("summarko")->AsString;

// sum2+=StrToInt(DM->ADOTable2->FieldByName("summarko")->AsString);

s7+="| "; s7+=s1; s7+=" ";

s7+=s2; s7+=" ";

s7+=s3; s7+=" ";

list->Add("__________________|__________________|___________________|");

//s7+=s1+s2+s3;

list->Add(s7);

s7=""; s1=""; s2=""; s3="";

DM->ADOTable2->Next();

}

list->Add("__________________|__________________|___________________|");

DM->ADOTable1->Close();

DM->ADOTable1->TableName="pko";

DM->ADOTable1->Open();

int kol1=DM->ADOTable1->RecordCount;

for (int i=0; i<kol1; i++)

{

sum1+=StrToInt(DM->ADOTable1->FieldByName("pkosum")->AsString);

DM->ADOTable1->Next();

}

DM->ADOTable1->Close();

DM->ADOTable1->TableName="rko";

DM->ADOTable1->Open();

int kol2=DM->ADOTable1->RecordCount;

for (int i=0; i<kol2; i++)

{

sum2+=StrToInt(DM->ADOTable1->FieldByName("rkosum")->AsString);

DM->ADOTable1->Next();

}

s8+=" Итого: ";

s8+=" ";

s8+=IntToStr(sum1);

s8+=" ";

s8+=IntToStr(sum2);

s8+=" ";

list->Add(s8);

list->Add("|_________________|__________________|____________________|");

list->Add(" ");

list->Add("Подпись Директора _______________");

list->Add(" ");

list->Add("Подпись Гл.Бухгалтер______________");

list->SaveToFile("vedomost.txt");

}