Скачиваний:
4
Добавлен:
31.05.2020
Размер:
226.83 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Институт информационных технологий

Специальность Программное обеспечение информационных технологий

Контрольная работа

По курсу Надежность программного обеспечения

Вариант № 13

Студент-заочник 2 курса

Группы № 781074

ФИО Красносельская Полина Юрьевна

Адрес Могилевская обл., г. Бобруйск, ул. Урицкого, 71/30

Тел. +375259550391

Минск, 2019

Подзадание 2.1

Ва-ри-ант

Условный

№ метрики по таблице 1

Название метрики

Число метрик в варианте

13

105

Адаптируемость окружения системного программного обеспечения (адаптируемость к операционной системе, сетевому программному обеспечению и связанному прикладному программному обеспечению) [System software environmental adaptability (adaptability to OS, network software and cooperated application software)]

3

106

Степень простоты установки [Ease of installation]

107

Легкость повтора процесса установки

[Ease of setup retry]

2.1.1 Изучите теорию настоящей контрольной и стандарт iso/iec 9126-2.

2.1.2 Вспомните о любой написанной Вами когда-либо программе или её фрагменте (далее – Ваша программа). Запишите текст или фрагмент текста программы с комментариями, скриншотами и кратким описанием (что она делает).

Фрагмент программы «Быки и коровы» - логическая игра, позволяющая отгадывать числа, задуманные другим игроком. Правила игры: каждый из противников задумывает четырехзначное число, все цифры которого различны. Необходимо разгадать задуманное число. Противники по очереди называют друг другу числа и сообщают о количестве «быков» и «коров» («бык» - цифра есть в записи задуманного числа и стоит в той же позиции, что и в задуманном числе, «корова» - цифра есть в записи задуманного числа, но не стоит в той же позиции, что и в задуманном числе). Очевидно, что число отгадано в том случае, если имеет 4 «быка».

void __fastcall TForm4::Image3Click(TObject *Sender) // угадывание чисел первым игроком

{

Image9->Picture->Bitmap->FreeImage();

Image10->Picture->Bitmap->FreeImage();

Image11->Picture->Bitmap->FreeImage();

Image12->Picture->Bitmap->FreeImage();

int b=0,k=0,i,j,kk=0;

kk=Edit3->Text.Length();

if (kk<4) // если вводят число из меньшего количества цифр, чем 4, то на экран выводится сообщение об ошибке

Application->MessageBox("Введите четырехзначное число!","Ошибка");

Else // если введено четырехзначное число, то разбиваем его на 4 цифры

{

c=Edit3->Text.ToInt();

cc[0]=c/1000;

cc[1]=c/100%10;

cc[2]=c%100/10;

cc[3]=c%10;

if (cc[0]==cc[1] || cc[1]==cc[2] || cc[2]==cc[3] || cc[3]==cc[0] || cc[0]==cc[2] || cc[1]==cc[3]) // если какие-то цифры в числе повторяются, то на экран выводится сообщение об ошибке

Application->MessageBox("Цифры не должны повторяться!","Ошибка");

else if (cc[0]==0) // если число начинается с нуля, то на экран выводится сообщение об ошибке

Application->MessageBox("Число не может начинаться с нуля!","Ошибка");

Else // если введено корректное число, то сравниваем его с задуманным

{

for(i=0; i<4; i++)

for(j=0; j<4; j++)

if(bb[i]==cc[j])

{

if(i==j)

b++;

else if(i!=j)

k++;

}

if (b==3 && k==0) // выводим на экран изображения быков и коров в зависимости от количества совпадений

{

ListBox1->Items->Add(Edit3->Text+" 3 быка 0 коров");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("byk.ico");

Image7->Picture->LoadFromFile("byk.ico");

}

else if (b==2 && k==0)

{

ListBox1->Items->Add(Edit3->Text+" 2 быка 0 коров");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("byk.ico");

}

else if (b==1 && k==0)

{

ListBox1->Items->Add(Edit3->Text+" 1 бык 0 коров");

Image5->Picture->LoadFromFile("byk.ico");

}

else if (b==2 && k==2)

{

ListBox1->Items->Add(Edit3->Text+" 2 быка 2 коровы");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("byk.ico");

Image7->Picture->LoadFromFile("korova.ico");

Image8->Picture->LoadFromFile("korova.ico");

}

else if (b==2 && k==1)

{

ListBox1->Items->Add(Edit3->Text+" 2 быка 1 корова");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("byk.ico");

Image7->Picture->LoadFromFile("korova.ico");

}

else if (b==1 && k==3)

{

ListBox1->Items->Add(Edit3->Text+" 1 бык 3 коровы");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("korova.ico");

Image7->Picture->LoadFromFile("korova.ico");

Image8->Picture->LoadFromFile("korova.ico");

}

else if (b==1 && k==2)

{

ListBox1->Items->Add(Edit3->Text+" 1 бык 2 коровы");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("korova.ico");

Image7->Picture->LoadFromFile("korova.ico");

}

else if (b==1 && k==1)

{

ListBox1->Items->Add(Edit3->Text+" 1 бык 1 корова");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("korova.ico");

}

else if (b==0 && k==4)

{

ListBox1->Items->Add(Edit3->Text+" 0 быков 4 коровы");

Image5->Picture->LoadFromFile("korova.ico");

Image6->Picture->LoadFromFile("korova.ico");

Image7->Picture->LoadFromFile("korova.ico");

Image8->Picture->LoadFromFile("korova.ico");

}

else if (b==0 && k==3)

{

ListBox1->Items->Add(Edit3->Text+" 0 быков 3 коровы");

Image5->Picture->LoadFromFile("korova.ico");

Image6->Picture->LoadFromFile("korova.ico");

Image7->Picture->LoadFromFile("korova.ico");

}

else if (b==0 && k==2)

{

ListBox1->Items->Add(Edit3->Text+" 0 быков 2 коровы");

Image5->Picture->LoadFromFile("korova.ico");

Image6->Picture->LoadFromFile("korova.ico");

}

else if (b==0 && k==1)

{

ListBox1->Items->Add(Edit3->Text+" 0 быков 1 корова");

Image5->Picture->LoadFromFile("korova.ico");

}

else if (b==0 && k==0)

ListBox1->Items->Add(Edit3->Text+" 0 быков 0 коров");

if (b==4 && k==0) // если угадано 4 цифры в нужных позициях, то на экран выводится сообщение о победе и начинается новая игра

{

ListBox1->Items->Add(Edit3->Text+" 4 быка 0 коров");

Image5->Picture->LoadFromFile("byk.ico");

Image6->Picture->LoadFromFile("byk.ico");

Image7->Picture->LoadFromFile("byk.ico");

Image8->Picture->LoadFromFile("byk.ico");

Application->MessageBox("Игрок 1 победил!","Победа");

s1=s1+1;

Label3->Caption="Ход игрока 1";

Label4->Caption="Введите загадываемое число";

ListBox1->Clear();

ListBox2->Clear();

Label8->Caption=s1;

Edit3->Visible=false;

Edit2->Color=clWhite;

Edit4->Visible=false;

Image3->Visible=false;

Image4->Visible=false;

Edit1->Visible=true;

Edit1->Text="";

Edit1->Color=clGreen;

Edit1->Font->Color=clYellow;

Image2->Visible=true;

Image2->Enabled=true;

Edit2->Visible=true;

Edit2->Text="";

Edit2->Enabled=false;

Image1->Visible=true;

Image1->Enabled=false;

Image5->Picture->Bitmap->FreeImage();

Image6->Picture->Bitmap->FreeImage();

Image7->Picture->Bitmap->FreeImage();

Image8->Picture->Bitmap->FreeImage();

}

Else // если число не угадано полностью, то ход переходит ко второму игроку

{

Label3->Caption="Ход игрока 2";

Label4->Caption="Какое число загадал игрок 1?";

Edit3->Text="";

Edit3->Enabled=false;

Edit3->Color=clWhite;

Edit3->Font->Color=clBlack;

Edit4->Enabled=true;

Edit4->Color=clGreen;

Edit4->Font->Color=clYellow;

Image3->Enabled=false;

Image4->Enabled=true;

}

}

}

}

Соседние файлы в папке Контрольная работа 13 вариант (Сечко)