Разработка и тестирование программного модуля

Разработка программного модуля для отслеживания стоимости междугородних телефонных переговоров с целью облегчения работы администратора гостиницы. Описание данных, используемых при решении задачи. Код программы и ее тестирование. Руководство программиста.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.