Разработка и тестирование программного модуля
Разработка программного модуля для отслеживания стоимости междугородних телефонных переговоров с целью облегчения работы администратора гостиницы. Описание данных, используемых при решении задачи. Код программы и ее тестирование. Руководство программиста.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.06.2014 |
Размер файла | 2,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
{
paste=i;
break;
}
}
if(Edit7->Text=="") {ShowMessage("Введи фамилию"); Edit7->SetFocus();}
else if(Edit8->Text=="") {ShowMessage("Введи имя"); Edit8->SetFocus();}
else if(Edit9->Text=="") {ShowMessage("Введи отчество"); Edit9->SetFocus();}
else if(ComboBox3->Text=="") {ShowMessage("Укажите номер"); ComboBox3->SetFocus();}
else if(DateTimePicker1->Date<Now()) {ShowMessage("Неользя указывать дату задним числом!");}
else if(int(DateTimePicker2->Date-DateTimePicker1->Date)<0) {ShowMessage("Невозможно уехать раньше чем приехал, лол :D");}
else if(strcmp(Form1->Nomers[paste].Guest,"free")==0)
{ Memo1->Lines->Clear();
Memo1->Lines->Add("Фамилия: "+Edit7->Text);
Memo1->Lines->Add("Имя: "+Edit8->Text);
Memo1->Lines->Add("Отчество: "+Edit9->Text);
Memo1->Lines->Add("Дата приезда: "+DateToStr(DateTimePicker1->Date));
Memo1->Lines->Add("Дата отезда: "+DateToStr(DateTimePicker2->Date));
Memo1->Lines->Add("Номер: "+ComboBox3->Text);
Memo1->Lines->Add("-----------------------------------");
Memo1->Lines->Add("Итого к оплате: "+ IntToStr(StrToInt(Nomers[paste].Stoim)*int(DateTimePicker2->DateTime-DateTimePicker1->DateTime))+" руб.");
Panel6->Show();
}
else
ShowMessage("Извините, номер занят.");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox3Click(TObject *Sender)
{
for(int i=1;i<=KolN;i++)
{
ComboBox3->Items->Add(Nomers[i].Nomer);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
GUEST=fopen("guest.dat","wb");
fwrite(&Guests, sizeof(Guests), KolG, GUEST);
fclose(GUEST);
NOMER=fopen("nomer.dat","wb");
fwrite(&Nomers, sizeof(Nomers), KolN, NOMER);
fclose(NOMER);
KOLG=fopen("kolg.dat","wb");
fwrite(&KolG,sizeof(KolG),1,KOLG);
fclose(KOLG);
KOLN=fopen("koln.dat","wb");
fwrite(&KolN,sizeof(KolN),1,KOLN);
fclose(KOLN);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
PanelAutor->Visible=false;
int j=0;
RadioButton1->Checked=true;
if(RadioButton2->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolG+2;
StringGrid1->ColCount=4;
StringGrid1->ColWidths[0]=200;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=50;
StringGrid1->Cells[0][0]="ФИО";
StringGrid1->Cells[1][0]="Дата прибытия";
StringGrid1->Cells[2][0]="Дата отъезда";
StringGrid1->Cells[3][0]="Номер";
for(int i=1;i<=KolG;i++)
{
if(Guests[i].Del==false)
{
j++;
StringGrid1->Cells[0][j]=Guests[i].Fam;
StringGrid1->Cells[1][j]=Guests[i].DataPr;
StringGrid1->Cells[2][j]=Guests[i].DataOt;
StringGrid1->Cells[3][j]=Guests[i].Nomer;
}
}
}
else if(RadioButton1->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolN+2;
StringGrid1->ColWidths[0]=50;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=70;
StringGrid1->ColCount=5;
StringGrid1->Cells[0][0]="Номер";
StringGrid1->Cells[1][0]="Класс";
StringGrid1->Cells[2][0]="Кол-во мест";
StringGrid1->Cells[3][0]="Стоимость";
StringGrid1->Cells[4][0]="Занятость";
for(int i=1;i<=KolN;i++)
{
j++;
StringGrid1->Cells[0][j]=Nomers[i].Nomer;
StringGrid1->Cells[1][j]=Nomers[i].Class;
StringGrid1->Cells[2][j]=Nomers[i].KolMest;
StringGrid1->Cells[3][j]=Nomers[i].Stoim;
StringGrid1->Cells[4][j]=Nomers[i].Guest;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
int j=0;
RadioButton2->Checked=true;
if(RadioButton2->Checked)
{
char FIObuf[50];
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolG+2;
StringGrid1->ColCount=4;
StringGrid1->ColWidths[0]=200;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=50;
StringGrid1->Cells[0][0]="ФИО";
StringGrid1->Cells[1][0]="Дата прибытия";
StringGrid1->Cells[2][0]="Дата отъезда";
StringGrid1->Cells[3][0]="Номер";
for(int i=1;i<=KolG;i++)
{
if(Guests[i].Del==false)
{
j++;
strcpy(FIObuf,Guests[i].Fam);
strcat(FIObuf," ");
strcat(FIObuf,Guests[i].Name);
strcat(FIObuf," ");
strcat(FIObuf,Guests[i].Otch);
StringGrid1->Cells[0][j]=FIObuf;
StringGrid1->Cells[1][j]=Guests[i].DataPr;
StringGrid1->Cells[2][j]=Guests[i].DataOt;
StringGrid1->Cells[3][j]=Guests[i].Nomer;
}
}
}
else if(RadioButton1->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolN+2;
StringGrid1->ColWidths[0]=50;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=70;
StringGrid1->ColCount=5;
StringGrid1->Cells[0][0]="Номер";
StringGrid1->Cells[1][0]="Класс";
StringGrid1->Cells[2][0]="Кол-во мест";
StringGrid1->Cells[3][0]="Стоимость";
StringGrid1->Cells[4][0]="Занятость";
for(int i=1;i<=KolN;i++)
{
j++;
StringGrid1->Cells[0][j]=Nomers[i].Nomer;
StringGrid1->Cells[1][j]=Nomers[i].Class;
StringGrid1->Cells[2][j]=Nomers[i].KolMest;
StringGrid1->Cells[3][j]=Nomers[i].Stoim;
StringGrid1->Cells[4][j]=Nomers[i].Guest;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
bool EstNomer=false, EstGuest=false;
int IndexNomer=0,IndexGuest=0;
if(RadioButton4->Checked)
{
for(int i=1;i<=KolN;i++) номера
{
if(strcmp(Nomers[i].Nomer,Edit5->Text.c_str())==0)
{
EstNomer=true;
IndexNomer=i;
break;
}
}
for(int i=1;i<=KolG;i++) // найти гостя из этого номера
{
if(strcmp(Form1->Guests[i].Nomer,Edit5->Text.c_str())==0)
{
EstGuest=true;
IndexGuest=i;
break;
}
}
if(EstNomer&&EstGuest)
{
strcpy(Nomers[IndexNomer].Guest,"free");
Guests[IndexGuest].Del=true;
}
else
{
EstGuest=false; EstNomer=false;
ShowMessage("Такого номера нет, либо он пуст.");
}
}
if(RadioButton3->Checked) //введена только фамилия
{
for(int i=1;i<=KolG;i++)
{
if(strcmp(Guests[i].Fam,Edit6->Text.c_str())==0)
{
EstGuest=true;
IndexGuest=i;
break;
}
}
for(int i=1;i<=KolN;i++) //найти номер в котором этот гость
{
if(strcmp(Nomers[i].Guest,Edit6->Text.c_str())==0)
{
EstNomer=true;
IndexNomer=i;
break;
}
}
if(EstNomer&&EstGuest)
{
strcpy(Form1->Guests[IndexGuest].Nomer,"0");
strcpy(Form1->Nomers[IndexNomer].Guest,"free");
}
else
{
EstGuest=false; EstNomer=false;
ShowMessage("Такого гостя нет.");
}
}
int j=0;
if(RadioButton2->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolG+2;
StringGrid1->ColCount=4;
StringGrid1->ColWidths[0]=200;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=50;
StringGrid1->Cells[0][0]="ФИО";
StringGrid1->Cells[1][0]="Дата прибытия";
StringGrid1->Cells[2][0]="Дата отъезда";
StringGrid1->Cells[3][0]="Номер";
for(int i=1;i<=KolG;i++)
{
if(Guests[i].Del==false)
{
j++;
StringGrid1->Cells[0][j]=Guests[i].Fam;
StringGrid1->Cells[1][j]=Guests[i].DataPr;
StringGrid1->Cells[2][j]=Guests[i].DataOt;
StringGrid1->Cells[3][j]=Guests[i].Nomer;
}
}
}
else if(RadioButton1->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolN+2;
StringGrid1->ColWidths[0]=50;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=70;
StringGrid1->ColCount=5;
StringGrid1->Cells[0][0]="Номер";
StringGrid1->Cells[1][0]="Класс";
StringGrid1->Cells[2][0]="Кол-во мест";
StringGrid1->Cells[3][0]="Стоимость";
StringGrid1->Cells[4][0]="Занятость";
for(int i=1;i<=KolN;i++)
{
j++;
StringGrid1->Cells[0][j]=Nomers[i].Nomer;
StringGrid1->Cells[1][j]=Nomers[i].Class;
StringGrid1->Cells[2][j]=Nomers[i].KolMest;
StringGrid1->Cells[3][j]=Nomers[i].Stoim;
StringGrid1->Cells[4][j]=Nomers[i].Guest;
}
}
//////////////
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
bool flag=false;
AnsiString date1=DateToStr(DateTimePicker1->Date);
AnsiString date2=DateToStr(DateTimePicker2->Date);
KolG++;
//проверка свободен ли номер
for(int i=1;i<=KolN;i++)
{
if(strcmp(Nomers[i].Nomer,ComboBox3->Text.c_str())==0) //Если есть такой номер
{
if(strcmp(Nomers[i].Guest,"free")==0)
{
flag=true;
strcpy(Nomers[i].Guest,Edit7->Text.c_str()); //добавить в структуру "номер" поле ФАМИЛИЯ из гостя
break;
}
else
{
flag=false;
}
}
else
{
flag=false;
}
}
if(flag)
{
strcpy(Guests[KolG].Fam,Edit7->Text.c_str());
strcpy(Guests[KolG].Name,Edit8->Text.c_str());
strcpy(Guests[KolG].Otch,Edit9->Text.c_str());
strcpy(Guests[KolG].DataPr,date1.c_str());
strcpy(Guests[KolG].DataOt,date2.c_str());
strcpy(Guests[KolG].Nomer,ComboBox3->Text.c_str());
Guests[KolG].Del=false;
AnsiString buf=Guests[KolG].Fam;
Memo1->Lines->SaveToFile("Квитанция "+buf+".txt");
}
else
{
KolG--;
ShowMessage("Такого номера не существует либо он занят другим гостем");
}
Panel6->Visible=false;
///////////
int j=0;
if(RadioButton2->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolG+2;
StringGrid1->ColCount=4;
StringGrid1->ColWidths[0]=200;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=50;
StringGrid1->Cells[0][0]="ФИО";
StringGrid1->Cells[1][0]="Дата прибытия";
StringGrid1->Cells[2][0]="Дата отъезда";
StringGrid1->Cells[3][0]="Номер";
for(int i=1;i<=KolG;i++)
{
if(Guests[i].Del==false)
{
j++;
StringGrid1->Cells[0][j]=Guests[i].Fam;
StringGrid1->Cells[1][j]=Guests[i].DataPr;
StringGrid1->Cells[2][j]=Guests[i].DataOt;
StringGrid1->Cells[3][j]=Guests[i].Nomer;
}
}
}
else if(RadioButton1->Checked)
{
SGCLEAR(StringGrid1);
StringGrid1->RowCount=KolN+2;
StringGrid1->ColWidths[0]=50;
StringGrid1->ColWidths[1]=100;
StringGrid1->ColWidths[2]=100;
StringGrid1->ColWidths[3]=70;
StringGrid1->ColCount=5;
StringGrid1->Cells[0][0]="Номер";
StringGrid1->Cells[1][0]="Класс";
StringGrid1->Cells[2][0]="Кол-во мест";
StringGrid1->Cells[3][0]="Стоимость";
StringGrid1->Cells[4][0]="Занятость";
for(int i=1;i<=KolN;i++)
{
j++;
StringGrid1->Cells[0][j]=Nomers[i].Nomer;
StringGrid1->Cells[1][j]=Nomers[i].Class;
StringGrid1->Cells[2][j]=Nomers[i].KolMest;
StringGrid1->Cells[3][j]=Nomers[i].Stoim;
StringGrid1->Cells[4][j]=Nomers[i].Guest;
}
}
//////////////
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
char ved[100];
Memo1->Lines->Clear();
for(int i=1;i<=KolG;i++)
{
strcpy(ved,Guests[i].Fam); strcat(ved," ");
strcat(ved,Guests[i].Name); strcat(ved," ");
strcat(ved,Guests[i].Otch); strcat(ved," поселён в номере ");
strcat(ved,Guests[i].Nomer); strcat(ved," c ");
strcat(ved,Guests[i].DataPr); strcat(ved," по ");
strcat(ved,Guests[i].DataOt);
Memo1->Lines->Add(ved);
}
Memo1->Lines->SaveToFile("Ведомость гостей.txt");
Memo1->Lines->Clear();
ShowMessage("Ведомость успешно сохранена");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
PanelAutor->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N19Click(TObject *Sender)
{
PanelAutor->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Panel6->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)
{
if(IsCharAlpha(Key) || Key == '*' || Key == ' '|| Key == '&'|| Key == '!'|| Key == '@'|| Key == '#'|| Key == '$'|| Key == '%'|| Key == '^'|| Key == '('|| Key == ')'|| Key == '-'|| Key == '='|| Key == '+'|| Key == '_'|| Key == '~'|| Key == ','|| Key == '.'|| Key == '<'|| Key == '>'|| Key == '|'|| Key == '?'|| Key == ';'|| Key == ':')
Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label14->Caption =Now();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
Panel7->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N18Click(TObject *Sender)
{
Panel7->Visible=true;
WideString patch=WideString(ExtractFilePath(ParamStr(0)));
CppWebBrowser1->Navigate(patch+WideString(L"Spravka/Index.html"));
}
//---------------------------------------------------------------------------
Размещено на Allbest.ru
...Подобные документы
Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Проектирование программного модуля. Описание схемы программы и структуры разрабатываемого пакета. Написание кода ввода исходных данных и основных расчетов. Тестирование программного модуля. Тестирование решения задачи. Методы численного интегрирования.
курсовая работа [549,9 K], добавлен 20.03.2014Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.
курсовая работа [215,3 K], добавлен 01.09.2010Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.
отчет по практике [296,1 K], добавлен 19.04.2015Сравнительный анализ технологий тестирования. Разработка программного модуля "Интеллектуальная обучающая система для широкого перечня курсов". Обоснование необходимости и важности этапа отладки в процессе разработки данного программного обеспечения.
дипломная работа [101,2 K], добавлен 17.06.2011Определение системы m линейных уравнений с n неизвестными. Математическая модель задачи. Анализ входных и выходных данных. Требования к надежности разрабатываемой программы. Структурная диаграмма программного модуля. Разработка блок-схем и тестирование.
курсовая работа [162,0 K], добавлен 28.08.2012Описание данных, используемых при решении задачи. Структура программного модуля. Составление блок-схемы процедуры заполнения класса ZapisBook из текстового файла. Описание разработанной программы для упрощения работы с электронной записной книжкой.
курсовая работа [687,2 K], добавлен 03.10.2013Разработка СУБД - программного модуля для систематизации, хранения и обработки сведений о работниках лаборатории. Технологический процесс машинной реализации задачи, составление алгоритма, описание переменных процедур и функций. Листинг программы.
курсовая работа [1,7 M], добавлен 11.01.2013Структурная диаграмма программного модуля. Нахождение суммы элементов, находящихся над главной диагональю. Реализация программного модуля: код программы; описание использованных операторов и функций. Особенности тестирования программного модуля.
курсовая работа [146,6 K], добавлен 01.09.2010Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.
курсовая работа [488,7 K], добавлен 08.09.2010Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.
дипломная работа [3,2 M], добавлен 30.06.2011Проектирование модуля регистрации документов. Анализ предметной области, спецификация требований. Построение диаграммы прецедентов Анализ архитектуры модуля в "OpenText Content Server 16.2". Разработка программы регистрации документов, ее тестирование.
дипломная работа [1,9 M], добавлен 25.08.2017Принципы разработки программы для хранения информации о клиентах, которым предоставляются услуги проката автомобилей, а так же для осуществления оперативного поиска необходимой информации. Структура программного модуля. Описание руководства программиста.
курсовая работа [872,3 K], добавлен 10.06.2014Разработка структурной диаграммы программного модуля. Представление схемы для основных расчетов выбранного приложения для создания прямоугольной матрицы. Особенности создания пользовательского интерфейса. Тестирование и отладка спроектированного модуля.
курсовая работа [648,4 K], добавлен 27.05.2015Основы метода Монте-Карло и его применение. Разработка и тестирование программного модуля для ПК BRAND, позволяющего строить двумерные и трехмерные изображения для сложных геометрических объектов для обеспечения контроля за качеством сборки конструкций.
дипломная работа [5,2 M], добавлен 10.10.2015Основные стадии разработки, принципы тестирования и отладка программного модуля "VFS". Особенности проектирования на языке UML. Методы "грубой силы" и их применение при отладке программы. Вредные факторы, присутствующие на рабочем месте программиста.
дипломная работа [827,0 K], добавлен 07.03.2012Техническое задание на разработку программного продукта и требования к программе. Написание алгоритма работы и разработка интерфейса программы. Руководство системного программиста и оператора. Основные методы и принципы тестирования базы данных.
дипломная работа [2,7 M], добавлен 27.01.2013Разработка программы для моделирования работы парикмахерского салона в течение рабочего дня. Отладка и тестирование программного продукта, руководство пользователю. Сценарий диалога с пользователями. Основные переменные, константы и типы модуля.
курсовая работа [629,8 K], добавлен 22.01.2015Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.
курсовая работа [1,4 M], добавлен 07.08.2013Постановка задачи для модуля 1С. Бухгалтерия 3.0. Анализ существующих разработок в области интегрирования данных. Информационное обеспечение модуля "Связь 1С Предприятия 8.2. с "Казначейством". Программное и технологическое обеспечение данного модуля.
курсовая работа [1,5 M], добавлен 10.06.2013